P. 1
Pascal)

Pascal)

|Views: 4,528|Likes:
Published by Hendra Cahyana

More info:

Published by: Hendra Cahyana on May 14, 2011
Copyright:Attribution Non-commercial

Availability:

Read on Scribd mobile: iPhone, iPad and Android.
download as PDF, TXT or read online from Scribd
See more
See less

05/19/2013

pdf

text

original

Algoritma & Pemrograman I(Pascal

)

by:chairuddin

PENGANTAR LOGIKA DAN ALGORITMA DENGAN PASCAL
Sebelum anda masuk ke bab pokok mengenai pascal ada baiknya jika anda terlebih dahulu mengenal struktur algoritma dan flowchart. Definisi dari algoritma adalah urutan langkah-langkah untuk memecahkan suatu masalah yang disusun secara sistematis dan logis. Pengertian LOGIKA: Logika berasal dari bahasa Yunani yaitu LOGOS yang berarti ilmu. Logika pada dasarnya filsafat berpikir. Berpikir berarti melakukan suatu tindakan yang memiliki suatu tujuan. Jadi pengertian Logika adalah ilmu berpikir / cara berpikir dengan berbagai tindakan yang memiliki tujuan tertentu. Pengertian ALGORITMA: Pada Merriam-Webster’s Collegiate Dictionary, istilah algoritma diartikan sebagai prosedur langkah demi langkah untuk memecahkan masalah atau menyelesaikan suatu tugas. Kamus Besar Bahasa Indonesia (KBBI) mendefinisikan algoritma sebagai urutan logis pengambilan keputusan untuk pemecahan masalah. Pascal merupakan program yang berorientasi pada object sekaligus merupakan prosedural programming. Pascal sebagai prosedural programming berparadikma “tentukan prosedur yang kita inginkan; Gunakan algoritma yang terbaik yang bisa ditemukan.” Pemrograman terstruktur terdiri atas perancangan struktur data dan memanipulasinya dengan fungsi-fungsi dengan suatu cara tertentu yang secara teori bisa berhenti. Fungsifungsi ini yang biasa dikenal dengan algoritma dan flowchart. Niklaus Wirth memberikan judul bukunya Algoritms + Data Structure = programs. Dari judulnya secara tidak langsung beliau mengatakan bahwa algoritma dahulu, baru menentukan struktur data kemudian. Untuk membuat suatu program seorang programer harus memilih algoritma yang baik. Ciri algoritma yang baik adalah sebagai berikut: 1. 2. 3. 4. 5. Tepat , benar, standart, dan efektif. Logis, terstruktur, dan sistematis. Semua operasi harus terdefinisi. Semua proses harus berakhir. Ditulis dengan bahasa yang standart agar mudah diimplementasikan dan tidak menimbulkan arti ganda.

Dalam penyajian sebuah algoritma seorang programer biasanya mengguanakan struktur bahasa Indonesia, pseudocode, maupun flowchart tergantung situasi dan kondisinya.

1

Algoritma & Pemrograman I(Pascal)

by:chairuddin

Alat Bantu untuk menuliskan Logika dan Algoritma, salah satunya adalah FLOWCHART.

flowchart dan algoritma
Pengertian FLOWCHART: Flowchart adalah penggambaran secara grafik dari langkah-langkah dan urutan-urutan prosedur dari suatu program. Atau dapat didefinisikan gambaran dalam bentuk diagram alir dari algoritma dalam suatu program atau prosedur sistem secara logika, yang menyatakan arah alur program dalam menyelesaikan suatu masalah Biasanya flowchart digunakan untuk mendesain suatu program atau untuk mempresentasikan suatu program. Dalam flowchart terdapat lambang-lambang yang biasa digunakan oleh seorang programer sebagai berikut. SIMBOL Flowchart

2

Algoritma & Pemrograman I(Pascal)

by:chairuddin

Pedoman-pedoman dalam Membuat Flowchart: 1. Bagan alir sebaiknya digambar dari atas ke bawah dan mulai dari bagian kiri dari suatu halaman. 2. Kegiatan di dalam bagan alir harus ditunjukkan dengan jelas. 3. Harus ditunjukkan dari mana kegiatan akan dimulai dan dimana akan berakhirnya (diawali dari satu titik START dan diakhiri dengan END). 4. Masing-masing kegiatan di dalam bagan alir sebaiknya digunakan suatu kata yang mewakili suatu pekerjaan, misalnya: - "Persiapkan" dokumen - "Hitung" gaji 5. Masing-masing kegiatan di dalam bagan alir harus di dalam urutan yang semestinya. 6. Kegiatan yang terpotong dan akan disambung di tempat lain harus ditunjukkan dengan jelas menggunakan simbol penghubung. 7. Gunakanlah simbol-simbol bagan alir yang standar.

3

Luas Segitiga 2. Panjang. Tentukan nama variabel yang akan menampung data Panjang. Luas Lingkaran 4 . Lebar Inputkan: Panjang dan lebar Hitung: Luas Persegi Outputkan: Luas Persegi Panjang END Latihan: Buat algoritma dan Flowchart untuk Menghitung: 1. 3. Ada 3 bagian utama dalam flowchart : INPUT 1 PROSES 2 OUTPUT 3 Contoh: Buat algoritma dan Flowchart untuk Menghitung Luas Persegi Panjang: Pekerjaan: Rumus: LuasPersegiPanjang = Panjang x Lebar Algoritma: 1. Tampilkan (outputkan) Luas persegi panjang. 4.Algoritma & Pemrograman I(Pascal) by:chairuddin Secara garis besar. lebar dan luas persegi panjang. 2. Masukkan (inputkan) data Panjang dan Lebar pada variabel yang sudah ditentukan. Hitung Luas persegi panjang. Flowchart: START Luas.

{label-label yang dipakai } . . { pengumuman tipe-tipe data }. Function Nama_Fungsi. . . label . end. uses . . . {Unit-unit yang dipakai} . . const .Algoritma & Pemrograman I(Pascal) by:chairuddin IMPLEMENTASI DALAM PROGRAM (Sebagai contoh: Bahasa Pemrograman Pascal) Pengertian PROGRAM: Kumpulan instruksi (statements) yang disusun secara logis untuk memecahkan suatu masalah. . Bentuk perintah: Read dan Readln Struktur penulisan: Read(nama variabel). . . { pengumuman peubah-peubah }. end. . begin . . {pengumuman tetapan-tetapan} . type . begin . . procedure Nama_Prosedur. . { Program utama begin . Readln(nama Variabel) Perintah Output: Perintah Pascal yang digunakan untuk menampilkan/mengoutputkan data. Instruksi-instruksi yang digunakan disesuaikan dengan jenis bahasa pemrograman yang digunakan (reserved word yang disediakan). . . 5 . Stuktur Penulisan Pascal: Program Nama_Program. end. } Perintah Input : Perintah Pascal yang digunakan untuk memasukkan/menginputkan data. . var .

Algoritma & Pemrograman I(Pascal) by:chairuddin Bentuk perintah: Write : setelah menampilkan data atau teks. Apabila Panjang diisi 7 dan lebar diisi 8 maka hasil perintah diatas tampil sbb: 6 . Contoh: Buat program sederhana untuk Menghitung Luas Persegi Panjang: Program LuasPersegiPanjang. Var Luas. End. Write : setelah menampilkan data atau teks. writeln(‘teks’). Begin Readln(panjang). Lebar : integer. Tampilan pada lembar kerja Pascal: Menjalankan program dengan perintah: Ctrl+F9(tekan tombol Ctrl dan F9 bersama-sama). kursor berada pada baris berikutnya. Panjang. Struktur penulisan: write(nama variabel).Luas). Readln. write(‘teks’). Writeln(‘Luas Persegi Panjang adalah:’.Luas:= Panjang*Lebar. Readln(Lebar). writeln(nama Variabel). kursor berada tepat disamping kanan data yang ditampilkan.

Readln (B). End. If A > B then Terbesar := A Else Terbesar := B. Input : Nilai A Nilai B A>B Ya Terbesar = A Tidak Terbesar = B Output : Nilai Terbesar END 7 .Algoritma & Pemrograman I(Pascal) by:chairuddin Latihan: Buat flowchart dan program sederhana untuk menampilkan bilangan terbesar. Writeln(Terbesar). START Begin Readln (A).

Algoritma & Pemrograman I(Pascal) by:chairuddin Dasar-Dasar Pemrograman Pada halaman ini. contohnya ‘s’ . 8 . Salah satu bahasa program komputer yang terkenal adalah bahasa Pascal. Pencipta bahasa Pascal. menciptakan bahasa Pascal ini dengan tujuan untuk mengajarkan pemrograman secara terstruktur kepada para mahasiswanya. contohnya ‘saya’ Char : Satu huruf atau angka. div (Hasil bagi) Input/Output Idendifier : Pengenalan . akan dipelajari mengenai konsep-konsep dasar yang berkaitan dengan pembuatan program.Var (variabel atau bilangan dapat berubah dan di inputkan) • Apa Itu Program Komputer? Program Komputer merupakan sekumpulan instruksi/perintah yang diberikan oleh programmer kepada mesin komputer. Ada banyak bahasa pemrograman di dalam dunia ilmu komputer. Prof. maka instruksi tersebut harus dalam bentuk bahasa yang komputer mengerti. Agar instruksi tersebut dimengerti oleh komputer.Const (Konstanta atau bilangan tetap) . yaitu: • Variabel • Tipe Data Sederhana • Masukan dan Keluaran (Input dan Output) • Operator: o Operator Akhir Program (End of Program Operator) o Operator Akhir Instruksi (End of Statement Operator) o Operator Pengisian Nilai (Assignment Operator) o Operator Aritmatika (Arithmetic Operator) • Komentar Tipe Data Tipe Data terbagi 4 bagian yaitu : String : Satu Kata atau kalimat. ‘2’ Integer : Bilangan Bulat Real : Bilangan Pecahan Tipe-tipe operator Operator Penegasan X:= 10 artinya X diisi dengan 10 Operator Aritmatika + – x / (hasilnya pasti bilangan bulat) mod (Sisa hasil bagi) . Niklaus Wirth.

karena tidak melakukan apa pun. teks yang akan dicetak end. interaksi yang paling sederhana adalah. program kosong dibuat dengan cara: begin end. ln merupakan singkatan dari line).). Dalam sebuah program Pascal hanya akan terdapat satu saja Operator Akhir Program • Program Halo Program komputer perlu untuk berinteraksi dengan pengguna komputer (user). // instruksi untuk mencetak & parameter Setelah program tersebut dijalankan. komputer mencetak sesuatu di layar sehingga pengguna bisa melihatnya. cobalah program ini: begin writeln('Halo Pembaca').Algoritma & Pemrograman I(Pascal) by:chairuddin • Program Kosong Program Kosong adalah program yang paling sederhana. Penjelasan: (tanda // slash ganda artinya adalah komentar/keterangan) begin // instruksi untuk mengawali program Pascal end. instruksi end harus diikuti Operator Akhir Program yaitu tanda titik (. yaitu instruksi writeln yang gunanya untuk mencetak lalu menambahkan Enter/baris baru (write and add new line. end. Penjelasan: begin writeln('Halo Pembaca'). Ada sebuah instruksi baru di sini. // instruksi untuk mengakhiri program Pascal diikuti Operator Akhir Program Kesalahan yang sering terjadi: Untuk mengakhiri program Pascal. maka komputer akan mencetak kata Halo Pembaca di layar. Untuk membuat hal tersebut. writeln berasal dari write + ln. Dalam bahasa Pascal. Instruksi writeln ini disertai dengan parameter teks Halo Pembaca yang harus diapit oleh tanda petik tunggal ('). 9 .

dengan tujuan: 1. Cara ini berguna untuk memudahkan membaca blok-blok perintah program. Komentar Banyak Baris (multiple line comment). Memberi tanda pada bagian perintah/blok perintah tertentu yang sengaja dilompati atau akan diganti/direvisi pada versi perubahan berikutnya 3. harus diakhiri dengan Operator Akhir Instruksi yaitu tanda titik koma (. sehingga memudahkan untuk memahami ulang perintah tersebut. yaitu: 1. disebut dengan indentasi. yaitu komentar yang berlaku dalam banyak baris. Mengingatkan diri sendiri supaya tidak lupa.) Tips pemrograman yang baik: Cara menulis program dengan diketik agak ke dalam. dimulai dari tanda // (slash ganda) sampai ke akhir baris 2. Menjelaskan arti suatu perintah/blok perintah. 10 . dimulai dari tanda { (kurung kurawal buka) sampai tanda } (kurung kurawal tutup) // ini adalah single line comment begin // ini juga single line comment end. sehingga memudahkan orang lain untuk memahami apa kegunaan perintah tersebut 2. apabila pada suatu waktu di masa mendatang membaca ulang perintah tersebut Ada 2 macam komentar dalam program Pascal. Komentar 1 Baris (single line comment). terutama pada program yang memiliki banyak struktur subblok • Komentar Komentar adalah teks tambahan yang ditambahkan ke dalam program dan tidak akan dikerjakan oleh komputer. yaitu komentar yang hanya berlaku dalam 1 baris perintah saja.Algoritma & Pemrograman I(Pascal) by:chairuddin Kesalahan yang sering terjadi: Setiap instruksi dalam bahasa Pascal. { ini adalah multiple line comment semua teks yang ada di antara kurung kurawal buka dan kurung kurawal tutup ini akan diabaikan oleh komputer } begin end.

kita dapat melakukan operasi matematika seperti tambah.9 e-39 s/d 1. kali. dan real. Variabel ini melambangkan atau merepresentasikan data. apabila komentar tersebut dipakai untuk keperluan pengajaran/tutorial) • Variabel Variabel adalah suatu lokasi/tempat di dalam memori komputer yang bisa dipakai untuk menyimpan nilai. Variabel dibedakan dengan cara diberikan nama yang berbeda. dan "tinggi". pada saat membaca ulang program tersebut di masa yang akan datang Tambahan Informasi/Catatan: Jangan berlebihan dan bertele-tele dalam memberikan komentar! Usahakan singkat. Berikut ini adalah berbagai macam tipe variabel. dibutuhkan variabel yang berbeda pula. Dan kantong ini juga bisa diakses oleh statement program lainnya. dan bagi. Nama Tipe Shortint Byte Integer Word Longint Real String Char Range -128 s/d 127 0 s/d 255 -32768 s/d 32767 0 s/d 65535 -2146473648 s/d 2146473647 2. Nilai dari sebuah variabel dapat dimasukkan oleh pengguna melalui deklarasi di program ataupun pemasukan (input) di dalam program. padat. "lebar". maka inputannya harus ditampung ke dalam kantong yang bernama variabel ini. integer. Dalam program Pascal. word. Variabel bisa diibaratkan sebagai sebuah kantong yang bisa menyimpan sesuatu. Untuk setiap data yang berbeda. Dalam program yang meminta inputan ke user. apabila terdapat data "panjang". "l".Algoritma & Pemrograman I(Pascal) by:chairuddin Tips pemrograman yang baik: Berikan komentar secukupnya. maka dapat dipakai variabel "p". Orang lain yang membaca program tersebut akan sangat terbantu pada saat membacanya. Contohnya. Beberapa contoh tipe data untuk menampung angka adalah byte. kurang.7 e37 s/d 255 huruf 1 huruf saja Type Integer Integer Integer Integer Integer Pecahan Non numeric Non numeric 11 . Demikian juga diri sendiri pun akan sangat terbantu. tepat dan jelas (kecuali. Tipe data dari sebuah variabel harus dideklarasikan di awal program. dan "t" untuk melambangkannya.

readln(p).t. Untuk tipe pecahan. nama : string. Textcolor : memberi warna pada tulisan. TextBackground : memberi warna pada latar belakang tulisan tersebut. pada statement masukan perintah: <Nama_variabel> := <nilai>. 3. double. Contoh program: var p. readln(t). Beberapa perintah atau syntax yang memakai library ini adalah: 1.t. // Deklarasi variabel dengan semua variabel bertipe integer begin writeln('Masukkan nilai panjang').Algoritma & Pemrograman I(Pascal) by:chairuddin Tipe variabel di atas adalah tipe variabel yang paling sering digunakan.l. Untuk memberikan suatu nilai pada variabel. // Input nilai l writeln('Masukkan nilai tinggi'). USES CRT Crt merupakan suatu unit yang mempunyai beberapa perintah yang dapat kita gunakan dalam hal pengolahan program berbasis teks. dsb. // Operasi matematika: v=p kali l kali t writeln(v).l. writeln('Masukkan nilai tinggi'). // Input nilai t v := p * l * t. Contoh: Var umur : byte.v:integer. readln(l). Variabel di deklarasikan di blok var. 2. 12 . Silahkan pelajari sendiri di help yang tersedia (Ctrl+F1). extended. begin writeln('Masukkan nilai panjang'). readln(p). Berikutnya adalah cara pendeklarasian variabel. // Supaya pembaca dapat membaca nilai v sebelum program otomatis keluar end. writeln('Masukkan nilai lebar'). v := p * l * t. // Input nilai p writeln('Masukkan nilai lebar'). masih ada tipe seperti single. readln. Clrscr : untuk membersihkan layar. // Tampilkan nilai v readln. readln(t). Penjelasan: var p.v:integer. writeln(v). readln(l). end.

Algoritma & Pemrograman I(Pascal) by:chairuddin 4.c : integer. Textcolor(14). delay(1000). NoSound : membunyikan speaker dan menghentikannya. Contoh program : Uses crt. 6. b:=5. {penjumlahan} c:=a+b. Sound. 13 . Writeln(’Tulisan kunig di atas biru!’) {penggunaan Sound dan NoSound} Sound(440). Delay : menunda pemrosesan program beberapa waktu. Begin Clrscr. Gotoxy(10. End. Daftar warna: 1: hitam 2: biru 3: cyan 4: merah 5: magenta 6: coklat 7: abu-abu terang 8: abu-abu gelap 9: biru muda 10: hijau muda 11: cyan muda 12: merah muda 13: magenta muda 14: kuning 15: pu PERHITUNGAN MATEMATIKA Suatu statement pada blok program bisa digunakan untuk menghitung perhitungan matematika. 5. GotoXY : memindahkan kursor ke posisi X.Y. nosound. Textbackground(1). Perhatikan program berikut: … Var a. writeln(c).20). Textmode : mengubah besar karakter. 7. {pengurangan} c:=b-a.b. Begin a:=1.

Contoh: trunc(c). {perkalian} c:=a*b. 7. Round Pembulatan ke nilai integer terdekat. KONSTANTA Konstanta ini seperti variabel.6 dibulatkan ke enam. writeln(c). Contoh: c:=a mod b. Contoh: c:=a div b. misal 5. {pembagian} c:=b/a. Var i:word. End. Contoh: round(c). Nilai konstanta tidak dapat diubah. Misalnya angka 5.1 dibulatkan menjadi tujuh.7 dibulatkan menjadi 5. Begin i:=40. writeln(i*myconst). … Div Adalah pembagian yang selalu menghasilkan bilangan bulat (integer). Contoh: Const Myconst = 1234. Mod adalah sisa dari pembagian modulo atau remainder yang selalu menghasilkan integer. hanya saja nilainya sudah didefinisikan sebelumnya dan selalu tetap dan tidak bisa diubah dalam program. maka akan error 14 . writeln(c). Trunc Pembulatan angka ke bawah. End.Algoritma & Pemrograman I(Pascal) by:chairuddin writeln(c). Jika dalam program dicoba untuk diubah.

write ('masukan nilai jari-jari: '). 15 . Tiga struktur dasar tersebut adalah : 1.Algoritma & Pemrograman I(Pascal) by:chairuddin Struktur Dasar Algoritma Ada 3(tiga) Struktur Dasar algoritma yang menjadi landasan pembuatan struktur algoritma dan Program.z: real. uses wincrt. Runtunan (Sequence) Algoritma merupakan runtunan (sequence) satu atau lebih instruksi.z:8:2) end. Akhir dari instruksi terakhir merupakan akhir algoritma. 3. read (r). writeln ('======================================'). dan 3. var x. z:=x+y.y. uses wincrt. read (x). Pemilihan. Sebelum membuat program dengan algoritma runtunan (sequence) yang lebih rumit. Tiap instruksi dikerjakan satu persatu.ls:real. 4. Buatlah program penjumlahan 2 buah bilangan dimana bilangan ke-1 dan ke-2 dimasukkan oleh pengguna? program jumlah2bilangan. write ('Hasil Penjumlahan = '. tidak ada instruksi yang diulang. Pengulangan Untuk lebih jelasnya mari kita bahas satupersatu ketiga struktur tersebut. Runtunan 2. Buatlah program untuk menghitung luas lingkaran dan keliling lingkaran? program lingkaran. 2. begin writeln ('MENGHITUNG KELILING DAN LUAS LINGKARAN'). read (y). begin writeln ('MENGHITUNG JUMLAH 2 BILANGAN'). kita coba dulu program-program yang tidak terlalu rumit seperti di bawah ini: 1. write ('masukan bilangan 2 : '). var r.kel. Urutan instruksi yang dilaksanakan pemroses sama dengan urutan instruksi sebagaimana yang tertulis di dalam teks algoritmanya. yang berarti bahwa: 1. 2. writeln ('============================'). Tiap instruksi dilaksanakan tepat sekali. write ('masukan bilangan 1 : ').

read (t).ls2:real. dimana suhu awal yang diketahui dalam derajat Fahrenheit. ls:=2*3.t.at. ls2:=al*t/2. var al. read (al). Hitung pula luas segitiga yang alasnya dan tingginya sama dengan alas dan tinggi trapesium? program luas_trapesium. 3. write ('masukan nilai alas : '). write ('masukan nilai atas : '). ls1:=(al+at)*t/2. writeln ('luas trapesium = '. write ('masukan nilai alas : '). writeln ('======================================'). uses wincrt. writeln ('========================'). writeln ('keliling lingkaran = '. uses wincrt.R. 16 . var a. ls:8:2) end. ls2:8:2) end.14*r*r. begin writeln ('MENGHITUNG LUAS TRAPESIUM DAN SEGITIGA'). Buatlah program untuk meghitung luas trapesium yang diketahui panjang alas dan atas (kedua sisi sejajar) serta tingginya. ls1:8:2).Algoritma & Pemrograman I(Pascal) by:chairuddin kel:=2*3. read (at).kel:8:2). read (t).14*r. write ('luas lingkaran = '. Catatan: Gunakan formula sbb: C = 5 / 9 (F – 32). var F. 4. ls:=a*t/2.ls:real.ls:6:2) end. Buatlah program untuk mencari nilai konversi dari suatu temperatur/ suhu .t. uses wincrt. 5.ls1. R = 4 / 9 (F – 32) program temperatur. read (a). write ('masukan nilai tinggi : '). write ('masukan nilai tinggi : '). Buatlah program untuk menghitung luas segitiga? program luas_segitiga. begin writeln ('MENGHITUNG LUAS SEGITIGA'). write ('luas segitiga = '. write ('luas segitiga = '.C: real. konversikan ke dalam derajat Celcius. Reamur.

var x:string. tetapi mungkin juga menghasilkan keluaran yang berbeda pula. writeln (''). begin writeln ('PERBANDINGAN ALGORITMA'). Bergantung pada masalahnya. readln (b). write ('masukan nilai pertama : ').'HASIL PERKALIAN = '. writeln ('Senang bertemu dengan anda '. Buatlah sebuah program untuk menampilkan kalimat : ”Senang bertemu dengan anda.'. write ('masukan nilai kedua : '). • Contoh urutan instruksi yang tidak berpengaruh terhadap solusi persoalan Contoh kasus: Dibaca dua buah nilai integer. readln (a).. c:=a+b.'thanks.c. write ('nilai F= '. readln (x).C:4:2). mari kita lanjutkan pembahasan mengenai runtanan (sequence) ini. writeln ('ALGORITMA 1 .d). lalu cetak jumlah dan hasil kali tersebut. writeln (''). read (f). nama.BENAR').') end. Hitung jumlah keduanya dan hasil kali keduanya. R:=(4/9)*(F-32).'. writeln ('ALGORITMA 2 . '. C:=(5/9)*(F-32).BENAR').. writeln ('=========================='). d:=a*b. 17 . '. 6. write ('masukan nilai fahrenheit yang telah diketahui: '). writeln ('======================'). writeln ('HASIL PENJUMLAHAN = '. begin write ('Masukan nama anda : '). uses wincrt. A dan B. urutan instruksi yang berbeda mungkin tidak ada pengaruhnya terhadap solusi persoalan.R:4:2) end.d:integer.b. Urutan instruksi di dalam algoritma adalah penting. var a. uses wincrt. writeln ('nilai C = '. Urutan instruksi menunjukkan urutan logik penyelesaian masalah.c. d:=a*b.x. Setelah mencoba program-program diatas. thanks…” Diimana nama adalah yang dimasukkan oleh user? program nice2meetyou.Algoritma & Pemrograman I(Pascal) by:chairuddin begin writeln ('MENGHITUNG TEMPERATUR/SUHU').

nilai A=merah dan B=biru. sebelumnya pertukaran A=biru dan B=merah. masing-masing disimpan di dalam dua buah peubah (variabel). misalnya C. Kedua algoritma di atas akan memberikan hasil yang berbeda. a:=b. dan detik dari masukan berupa lamanya waktu dalam detik. writeln ('HASIL PENJUMLAHAN = '. write ('Tulis warna isi bejana A : '). Sebagai contoh. writeln ('').a). var a. Bagaimana cara mempertukarkan nilai A dan B ? Misalnya.b. c:=a. Dalam mempertukarkan nilai dua buah variabel.d). readln (a). writeln ('================'). a:=b. jam.000 detik 18 . menit.SALAH').'HASIL PERKALIAN = '.c.BENAR'). masukan 100.a).c: string. writeln ('ALGORITMA 1 . b:=c. perlu digunakan variabel bantu. Tulislah program untuk menampilkan jumlah hari. writeln (''). • Contoh Urutan instruksi berpengaruh terhadap solusi persoalan Contoh kasus: Diketahui dua buah nilai. uses wincrt. maka setelah pertukaran. Kedua algoritma di atas akan menghasilkan keluaran yang sama meskipun urutan instruksinya diubah.b). begin writeln ('TUKAR ISI BEJANA'). end. writeln ('Warna isi bejana B = '. Contoh – contoh Runtunan Lainnya: 1. '. writeln ('Warna isi bejana A = '. write ('Tulis warna isi bejana B : ').b) end. writeln ('Warna isi bejana B = '. b:=c. writeln ('Warna isi bejana A = '. c:=a. readln (b). program tukarbejana. writeln ('ALGORITMA 2 .Algoritma & Pemrograman I(Pascal) by:chairuddin c:=a+b.'. Pada algoritma pertama akan memberikan hasil yang diinginkan sebaliknya pada algortima kedua nilai A dan nilai b tidak akan bertukar. A dan B.

Berdasarkan contoh penghitungan di atas.dt:longint. writeln ('=========================').sisa:longint. jj:=sisa div 3600. menit dan detik dari waktu detik yang dimasukan. var hr.000 – 1 * 86. readln (detik). 3 jam 46 menit dan 40 detik. dt:=detik-(mn*60). Langkah-langkah penghitungan tersebut dapat diltuliskan sebagai berikut: .760 = 40 detik. writeln ('HASILNYA:').800 / 60 = 46 menit .' detik') end. 19 .detik. dd:=sisa mod 60.400 = 1 hari.' jam '. mm:=sisa div 60.Banyaknya jam = (100.' hari '. Program diatas juga bisa dikerjakan dengan fungsi mod. sisa:=sisa mod 3600. sisa:=detik mod (60*60*24). end. maka dapat dituliskan algoritma pencarian hari.dd.000 / 86. hr:=detik div (60*60*24). begin writeln ('MENGHITUNG KONVERSI WAKTU').hr.Banyaknya menit = (13.jj.jj. write (hr. hr:=detik div (60*60*24). write ('masukan nilai detik : ').' menit'). writeln (mn.600 – 3 * 3. Jawab: Misalkan masukan 100. menit dan detik adalah sebagai berikut: program konversi_waktu. readln (detik).jm. writeln (jm. detik:=detik-(jm*60*60). writeln (hr. jm:=detik div (60*60). jam. var detik.000 / (60 * 60 * 24) = 100.800 – 2. uses wincrt.Banyaknya hari = 100. Codingnya yaitu seperti ini: program waktu3.Banyaknya detik = (2. jam. writeln (dt.400)/ (60 * 60) = 13.' hari').600) / 60 = 2.mn.' detik'). Keluaran dari program ini adalah banyaknya hari. write ('Masukkan nilai detik: ').800 – 46 * 60) = 2.600 / 3600 = 3 jam .' jam').Algoritma & Pemrograman I(Pascal) by:chairuddin akan menghasilkan keluaran: 1 hari.dd.' menit '. begin writeln ('MENGHITUNG WAKTU'). .mm. mn:=detik div (60).mm. writeln ('================'). detik:=detik-(hr*60*60*24). uses wincrt.000 detik.

nilai tugas.mm. write ('Masukkan nilai detik: '). absen. sedangkan pajak adalah 15% dari gaji pokok ditambah tunjangan. Berdasarkan absen.' detik') end.pajak:real.mm. 3.dd. write ('Masukkan Gaji Pokok: ').2 * gaji pokok Pajak = 0. var nama:string.sisa:longint.2*gapok.' menit '.. tunjangan:=0. Dibaca nama karyawan dan gaji pokok bulanannya.Algoritma & Pemrograman I(Pascal) by:chairuddin Sedangkan jika tidak menampilkan jumlah hari. sisa:=detik mod 3600. maka programya menjadi lebih sederhana. begin writeln ('MENGHITUNG WAKTU'). 2.15*(gapok+tunjangan). var jj. Jawab: Tunjangan = 0. gapok. yaitu: program waktu2. nilai uts dan nilai uas tersebut hitunglah nilai akhir mahasiswa tersebut dengan menggunakan formula sebagai berikut: 20 . uses wincrt.dd.tunjangan. write ('Masukkan nama karyawan: '). readln (detik). writeln ('================'). jj:=detik div 3600. nim. dd:=sisa mod 60.gaber:10:2). write (jj. Buatlah program dalam bahasa Pascal untuk meminta masukan berupa nama.detik.' mempunyai gaji bersih sebesar '.' jam '. pajak:=0. writeln ('========================').15 * (gaji pokok + tunjangan) Gaji bersih = gaji pokok + tunjangan – pajak Dari ketentuan di atas kita dapat tuliskan algoritma sebagai berikut: program gaji. nilai tugas. readln (nama). mm:=sisa div 60. write (nama. Gaji bersih yang diterima pegawai adalah: gaji bersih = gaji pokok + tunjangan – pajak Tunjangan karyawan dihitung 20% dari gaji pokok. Buatlah programnya. Nama karyawan dan gaji bersihnya dicetak ke piranti keluaran.gaber. nilai uts dan nilai uas. end. gaber:=gapok+tunjangan-pajak. readln (gapok). begin writeln ('MENGHITUNG GAJI KARYAWAN'). uses wincrt.

write ('nilai UTS : ').na:5:2) end. uts. write ('masukan nama mahasiswa/i : '). begin writeln ('MENCARI NILAI MAHASISWA/I'). readln (uts). write (nama.2*tugas)+(0. var nama.' '.1*absen)+(0. readln (nama). write ('nilai absen : '). readln (tugas). write ('nilai tugas : '). 21 .4*uas). readln (nim).nim. uses wincrt.3*uts)+(0. tugas. write ('masukan NIM nya : '). write ('nilai UAS : '). readln (absen). writeln ('========================='). readln (uas).nim:string. uas.Algoritma & Pemrograman I(Pascal) by:chairuddin Nilai akhir = 10% absen + 20% tugas + 30% uts + 40% uas program nilai_mahasiswa. na : real. na:=(0. absen.' mendapatkan nilai akhir '.

sedangkan statemen case digunakan untuk memilih jika terdapat lebih dari dua kondisi yang masing-masing memerlukan penanganan yang berbeda. Terdapat dua skema pemilihan. Pernyataan if (if statement) akan memeriksa suatu persyaratan dan menentukan apakah syarat tersebut benar atau salah. yaitu menggunakan statemen if dan menggunakan statemen case. STRUKTUR KENDALI “IF’ Struktur kendali aliran adalah suatu bentuk/struktur yang memiliki peranan khusus untuk mengatur aliran urutan pengerjaan operasi atau beberapa operasi tertentu. tergantung masalah yang dipecahkan dan algoritma yang dipilih. Statemen if juga dapat digunakan secara berulang. yaitu : If … then Contoh : If (kondisi) then Statement. Seleksi kondisi terbagi 4 bagian. Jika terdapat dua kondisi yang komplementer maka statemen if diikuti bagian else. Kondisi dalam statemen if dituliskan dalam ekspresi boolean. If … then … else Contoh : If (kondisi1) then Statement1 Else if (kondisi2) then 22 .Algoritma & Pemrograman I(Pascal) by:chairuddin Pemilihan Pemilihan (seleksi) digunakan jika ada masalah yang tidak dapat dipecahkan dengan perhitungan yang pasti. Variabel yang terlibat dalam statemen case harus bersifat ordinal. Statemen if dapat digunakan dengan bagian else atau tanpa bagian else. Inti dari pemecahan masalah jenis ini adalah menganalisis semua kondisi yang mungkin terjadi dan menentukan statemen yang dilakukan untuk setiap kondisi tersebut. Salah satu contoh pernyataan kendali yaitu pernyataan if . kemudian melakukan pekerjaan sesuai dengan nilai pernyataan tersebut. Statemen if digunakan untuk memilih dari dua kondisi yang berbeda berdasar ekspresi boolean.

Algoritma & Pemrograman I(Pascal) by:chairuddin Statemen2 Else Statement3. end. If dan else If (kondisi) then begin pernyataan1 . End Else Statement3. If dengan dua atau lebih pernyataan (statement) If (kondisi) then begin pernyataan1 . 2. 3. 23 . End. …. Struktur Penulisan: Berikut adalah bentuk-bentuk dari pernyataan if yang sering digunakan : 1. pernyataan2 .. Kondisi2:statement2. If … then … if Contoh : If (kondisi) then Begin If (kondisi) then Statement1 Else Statement2. If dengan satu pernyataan (statement) If (kondisi) then pernyataan . Case … of Contoh : Case nama variabel of Kondisi1:statement1.

sedangkan “perintah 2” akan dilakukan jika ”kondisi” salah. Dari bentuk bentuk pernyataan if di atas yang harus diperhatikan adalah untuk pernyataan if dan else.. Selain bentuk diatas. Percabangan dalam FlowChart Dalam pemrograman percabangan merupakan salah struktur kendali yang memungkinkan pemilihan atas perintah yang akan dijalankan. Dengan kata lain jika pernyataan setelah then hanya terdiri dari satu pernyataan saja makan pernyataan tersebut tanpa menggunakan “. …. end. dalam percabangan juga dikenal istilah percabangan bersarang (Nested IF).”. …..”. end else begin pernyataan1 . bentuk sederhana dari percabangan bersarang jika digambarkan dalam flowchart bentuknya akan seperti berikut: 24 . pernyataan2 . pernyataan-pernyataan setelah then tanpa menggunakan “.Algoritma & Pemrograman I(Pascal) by:chairuddin pernyataan2 . Secara sederhana percabangan dapat digambarkan seperti dalam flowchart berikut: Pada flowchart di atas “perintah 1” akan dilakukan jika ”kondisi” benar. namun jika pernyataan setelah then terdiri dari lebih dari satu pernyataan makan setelah end tanpa menggunakan “.”.

Selanjutnya pada “kondisi 2”. jika salah maka “perintah 2” yang akan dilakukan. sedangkan jika salah maka “perintah 3” yang akan dijalankan. sebuah percabangan dapat mempunyai percabangan lain didalamnya. selanjutnya hasil 25 . sedangkan jika nilainya salah. “perintah 1” dilakukan saat “kondisi 1” bernilai benar. maka akan dijalankan “kondisi 2”. Berikut flowchart yang menggambarkan sebuah percabangan kompleks. Sedangkan pengecekan pada “kondisi 3” akan dilakukan jika hasil pengecekan pada “kondisi 1” bernilai salah. hal ini akan sangat dibutuhkan dalam sebuah program yang kompleks. jika nilainya benar maka “perintah 2” akan dijalankan. Dalam percabangan kompleks. maka akan dilakukan pengecekan pada “kondisi 2” jika benar maka “perintah 1” akan dilakukan. Kedua bentuk percabangan di atas merupakan dasar dari bentuk percabangan selanjutnya. Pada percabangan kompleks di atas.Algoritma & Pemrograman I(Pascal) by:chairuddin Pada flowchart tersebut. yaitu percabangan kompleks. saat “kondisi 1” bernilai benar.

perintah percabangan akan sangat dibutuhkan.Algoritma & Pemrograman I(Pascal) by:chairuddin pengecekan dari “kondisi 3” akan menentukan perintah yang akan dilakukan. 26 . Program tersebut dibuat dengan menggunakan bahasa pascal. Dari gambar flowchart percabangan kompleks tersebut juga dapat dipilah bahwa “kondisi 1” dan “kondisi 3” mewakili percabangan bersarang. selain itu ada syntax alternatif lain yang dalam bahasa pascal dikenal dengan CASE…OF atau SWITCH dalam bahasa C. terutama saat membuat program-program dengan algoritma yang kompleks. serta IF… ELSE IF… untuk percabangan bersarang. Syntax yang umum digunakan dalam percabangan adalah IF dan IF… ELSE untuk percabangan sederhana. Dalam membuat program. sedangkan “kondisi 2” mewakili percabangan sederhana. apakah “perintah 3” atau “perintah 4”. untuk lebih jelas anda dapat me-download contoh program yang menggunakan percabangan di sini.

begin write('Jumlah poin:'). Statemen 1 akan diproses jika kondisi yang diseleksi benar.30 then nilai:=nilai+(jumlahpoin-30)*nilaiperpoin. write('Nilai yang diperoleh sebesar:'. Struktur IF-THEN Statemen IF-THEN digunakan untuk menyeleksi suatu kondisi. maka yang akan diproses adalah statemen berikutnya. Contoh program: 27 . var Jumlahpoin. End. sedangkan statemen 2 akan diproses jika kondisi yang diseleksi tidak terpenuhi. if Jumlahpoin&gt. read(Jumlahpoin). Tetapi. readln(nilaiperpoin). Kata else tidak boleh diawali dengan titik koma (. Contoh program: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 {*Program Hitung Nilai*} {*keterangan: Nilai per poin=10*} uses wincrt. nilai:=jumlahpoin*nilaiperpoin.) karena titik koma menunjukkan akhir dari statemen. Hasil eksekusi dari program adalah: Contoh1: Jumlah poin : 20 Nilai per poin : 10 Nilai yang diperoleh sebesar : 200 Contoh 2: Jumlah poin : 40 Nilai per poin : 10 Nilai yang diperoleh sebesar : 500 STRUKTUR IF THEN ELSE Statemen IF-THEN…ELSE digunakan untuk menyeleksi suatu kondisi.Algoritma & Pemrograman I(Pascal) by:chairuddin STRUKTUR IF THEN Statemen Penyeleksian Kondisi Statemen penyeleksian kondisi menunjukkan bahwa suatu statemen akan dikerjakan bila suatu kondisi adalah benar. Jika kondisi salah satu syarat tidak terpenuhi maka statemen yang lainnya setelah kata cadangan Else akan dikerjakan atau diproses. write('Nilai per poin:'). nilaiperpoin. apabila kondisi tidak terpenuhi.nilai). nilai:integer. jika kondisi yang diseleksi terpenuhi. maka statemen yang mengikuti THEN akan diproses.

uses wincrt. karena nilai a bernilai benar (a=1) maka dilakukan output (‘ bersama’).. Statemen IF akan bercabang sesuai dengan hasil dari operasi boolean (true & false). Bila bernilai salah maka tidak akan dieksekusi. End. if a = 1 then 28 . maka statemen akan dieksekusi. begin write(‘Masukkan nilai:’). Berikut contohnya : uses wincrt. Hasil eksekusi dari program adalah: Masukkan nilai: 70 Bagus Konsep IF . Bila ekspresi boolen bernilai benar (true). var a : integer. begin a := 0. Setelah dilakukan output (’saya’). ELSE . readln(nilai). write('saya').. If nilai>60 then writeln(‘Bagus’) Else writeln(‘Buruk’). nilai a diuji. Hasil eksekusi: saya bersama Penjelasan: Diawal diberikan nilai pada a yaitu 1. begin a := 1. if a = 1 then write(' bersama'). write('saya'). var nilai:real. end.Algoritma & Pemrograman I(Pascal) by:chairuddin uses wincrt. Pertama-tama kita akan pelajari percabangan satu arah : if EkspresiBoolean then StatemenTrue. var a : integer.

write('saya'). uses wincrt. begin a := 0. Hasil eksekusi: saya Penjelasan: Diawal diberikan nilai pada a yaitu 1.) sebelum else harus dihilangkan. if a = 1 then begin write(' bersama'). Setelah dilakukan output (’saya’). var a : integer. karena nilai a bernilai benar (a=1) maka dilakukan output (‘ bersama’) dan output (‘ sahabat’). var a : integer. maka akan dieksekusi statemen setelah else. if a = 1 then begin 29 . Setelah dilakukan output (’saya’). karena nilai a bernilai salah (a=0) maka program melewati statemen if dan selesai dieksekusi. end. uses wincrt. nilai a diuji.Algoritma & Pemrograman I(Pascal) by:chairuddin write(' bersama'). nilai a diuji. write('saya'). Harus diperhatikan bahwa tanda titik koma (. Tapi bila lebih maka harus menggunakan begin-end. end. Juga terdapat percabangan dua arah : if EkspresiBoolean then StatemenTrue else StatemenFalse. Hasil eksekusi: saya bersama sahabat Penjelasan: Diawal diberikan nilai pada a yaitu 1. Bila ekspresi boolean menghasilkan nilai salah (false). write(' sahabat'). end. Bila statemen IF hanya mempunyai satu statemen saja. begin a := 1. tidak diperlukan penanda (beginend).

if EkspresiBoolean1 then Statemen1 else if EkspresiBoolean2 then Statemen2 else then Statemen3 Penulisannya lebih mudah dipahami dengan pola seperti : if EkspresiBoolean1 then Statemen1 else if EkspresiBoolean2 then Statemen2 else then Statemen3 uses wincrt. write(' sahabat'). if a = 1 then write(' bersama'). end. begin a := 3. end. Setelah dilakukan output (’saya’). karena nilai a bernilai salah (a=0) maka dilakukan output (‘ pascal’) dan output (‘ bersama keluarga’). Hasil eksekusi: saya pemrograman 30 .Algoritma & Pemrograman I(Pascal) by:chairuddin write(' bersama'). else write(' pemrograman'). else if a = 2 then write(' pascal'). write(' bersama keluarga'). Hasil eksekusi: saya pascal bersama keluarga Diawal diberikan nilai pada a yaitu 0. end else begin write(' pascal'). write('saya'). nilai a diuji. end. var a : integer. maka kita memerlukan if bersarang (nested if). Terkadang kita memerlukan lebih dari dua percabangan.

c dimasukkan dengan jeda spasi Masukkan nilai a.x1:6:2).c.b.b. readln(a. end. write(‘Masukkan nilai a. begin clrscr.c dimasukkan dengan jeda spasi Masukkan nilai a. Contoh Hasil Eksekusi : . writeln(‘Nilai a.b.c).41 .b.x1. uses crt.c:’). if berikutnya pun bernilai salah (a tidak sama dengan 2) maka dilakukan statemen pada else yaitu output berupa (‘ pemrograman’).b. readln.jika d < 0 : Menghitung akar-akar persamaan kuadrat Nilai a.x2 :real.b.c:1 4 2 x1 = -0.c dimasukkan dengan jeda spasi’). karena nilai a bernilai salah (a tidak sama dengan 1) maka dilakukan pengujian if berikutnya.b. d:=b*b-4*a*c. end.d.b.c:1 2 6 tidak ada akar real Catatan : 1.x2:6:2). nilai a diuji.Algoritma & Pemrograman I(Pascal) by:chairuddin Diawal diberikan nilai pada a yaitu 1. x2:=(-b-sqrt(d))/(2*a).jika d = 0 Menghitung akar-akar persamaan kuadrat Nilai a. if d<0 then writeln(‘tidak ada akar real’) else begin x1:=(-b+sqrt(d))/(2*a).59 x2 = -3. writeln(‘x1 =’. Setelah dilakukan output (’saya’). Di dalam IF boleh ada IF (pernyataan IF yang berkalang) 31 . var a. writeln(‘Menghitung akar-akar persamaan kuadrat’). Program untuk mencari akar persamaan kuadrat Program PersamaanKuadrat. writeln(‘x2 =’.

Begin write(‘Masukkan sebuah bilangan:’). atau gas benda : uses wincrt. End Else Begin writeln (‘Bilangan negatif’). var bil:Integer. (titik koma) begitu pula baris pernyataan sebelum ELSE. cair. Contoh program: uses wincrt. If (bil mod 2=0) then writeln (‘Bilangan genap’) Else writeln (‘Bilangan ganjil’). End. maka ELSE tidak perlu dituliskan. if a <= 0 then 32 . ket: string. Pernyataan ELSE tidak diakhri dengan .Algoritma & Pemrograman I(Pascal) by:chairuddin 2. readln(bil). Hasil eksekusi dari program adalah: Masukkan sebuah bilangan: 4 Bilangan positif Bilangan genap Program untuk menentukan bentuk padat. If (bil>0) then Begin writeln(‘Bilangan positif’). 3. Jika diinginkan kondisi = FALSE tidak mengerjakan apa-apa. readln (a). var a: integer. STRUKTUR IF TERSARANG Struktur IF TERSARANG merupakan bentuk dari suatu statemen IF yang berada dalam lingkungan statemen if lainnya. begin write ('suhu : '). End.

masing-masing sebagai berikut : Jika angka = 1. 2:write('Dua').Algoritma & Pemrograman I(Pascal) by:chairuddin ket :='padat' else if (a > 0) and (a < 100) then ket :='cair' else if a >=100 then ket :='gas'. STRUKTUR CASE OF Script Pascal berikut akan menampilkan 3 pilihan.=’). readln(harike). maka yang karakter akan tampil “satu”. var a:integer. Contoh program: uses wincrt. 2:Writeln(‘Selasa’). end. maka yang karakter akan tampil “tiga”. case a of 1:write('Satu'). Jika angka = 3. end. uses wincrt. var harike:integer.ket). end.' '. writeln. Statemen CASE-OF digunakan untuk memilih jika terdapat lebih dari dua kondisi yang setiapnya memerlukan penanganan yang berbeda. Begin write(‘Hari ke. begin write('Angka (1-3) = '). Jika angka = 2. 33 . else write('Pilihan Salah!').. writeln('Air pada suhu tersebut berbentuk'. case harike of 1:Writeln(‘Senin’). 3:Writeln(‘Rabu’). Selain daripada itu akan menampilkan “Pilihan Salah!” Program Angka.readln(a). maka yang karakter akan tampil “dua”. 3:write('Tiga').

begin GetDate(th.bl. uses WinDos.'Senin’. end. 7:Writeln(‘Minggu’). 4:begin write(‘April’).’ ‘).. dow: word. end.tg.'Jumat’. End. var th.dow). case bl of 1:begin write(‘Januari’).6] of string [9]= (‘Minggu’.days[dow].'Rabu’. 5:begin write(‘Mei’). const days:array [0. End. Wincrt. end.'Sabtu’). end. 5:Writeln(‘Jumat’).= 4 Kamis Program Pencari Tanggal ProgramPencariHar. 3:begin write(‘Maret’)..’. 6:Writeln(‘Sabtu’). 6:begin write(‘juni’). 2:begin write(‘Februari’).tg:0. 8:begin 34 . write(‘Hari ini adalah ‘ . bl. Hasil eksekusi dari program adalah: Hari ke.'Kamis’. end.'Selasa’.Algoritma & Pemrograman I(Pascal) by:chairuddin 4:Writeln(‘Kamis’). end. ‘. end. tg. 7:begin write(‘Juli’).

T:=0. GotoXY(10. write(‘ ‘.20). maka statemen yang akan diproses dalam lingkungan CASE-OF adalah statemen yang ada di ELSE. 35 .Writeln(‘–> PILIHAN < --'). R. GotoXY(10. end.Write('Pilih Nomer(1-3)?'). GotoXY(10. Pada struktur CASE-OF bila tidak ada kondisi yang terpenuhi berarti tidak ada statemen di dalam lingkungan CASE-OF yang diproses. end.Menghitung Luas Lingkaran').Menghitung Luas Segitiga'). Contoh program: uses wincrt.Writeln('2. 11:begin write(‘November’). end.L. ClrScr. STRUKTUR CASE OF ELSE Struktur CASE-OF…ELSE merupakan pengembangan dari struktur CASE-OF dan juga merupakan pengembangan dari standar Pascal.2).th:0) end.Menghitung Luas Bujur Sangkar'). end.8). end.Luas:real.T.Writeln('1. Dengan struktur CASE-OF…ELSE.Read(pilihan). end. GotoXY(10. L:=0.6). GotoXY(10. bila tidak ada kondisi yang terpenuhi. var Pilihan:byte.Writeln('3.Algoritma & Pemrograman I(Pascal) by:chairuddin write(‘Agustus’). 10:begin write(‘Oktober’). 9:begin write(‘September’). 12:begin write(‘Desember’). ClrScr.4). Begin R:=0.

End.. Writeln('Anda tadi pilih nomer berapa?.Luas:9:2).Luas:9:2). End..Readln(L). Luas:=0.atau3').Readln(L).Readln(T).Luas:9:2). Else Begin Writeln('Pilihannya hanya 1.. Write('Tinggi Segitiga?'). 3:Begin write('Panjang bujur sangkar?'). 2:Begin Write('Panjang sisi alas?'). End. End. End. Writeln('Luas Lingkaran='. Writeln('Luas bujur sangkar='. Writeln.Readln(R).2. Hasil eksekusi program adalah: -->PILIHAN<– Menghitung Luas Lingkaran Menghitung Luas Segitiga Menghitung Luas Bujur-Sangkar Pilih Nomer (1-3)? 9 Anda tadi pilih nomer berapa?…… 36 ..Sembarangan aja milih!!!!!!!'). Write('Lebar bujur sangkar?'). End. Luas:=T*L.5*L*T. Luas:=Pi*R*R. Writeln. Writeln('Luas segitiga='.Algoritma & Pemrograman I(Pascal) by:chairuddin case Pilihan of 1:Begin Write ('Jari-jari lingkaran?').Readln(T)..

000 |’).25. writeln(‘|[3] Majalengka | Rp.’. if (jurusan=’1′) and (jenisbus=’ac’)then harga:=40000-(40000*0.20. writeln(‘Data Anda sedang kami proses…’).40.25.readln(total). writeln(‘ Pemesanan Tiket Bus Online ‘). Cianjur dan Majalengka ‘).readln(jurusan). writeln(‘Rp. total. writeln(‘+—————+———————–+———–+’). writeln(‘|[2] Cianjur | Rp. writeln(”). write(‘.Jumlah Tiket : ‘). writeln(‘|[1] Jakarta | Rp. end. 10%) | Rp.Algoritma & Pemrograman I(Pascal) by:chairuddin Contoh Program Pemesanan Tiket Bus uses crt. var jurusan. writeln(”). 37 . begin write(‘. writeln(‘+—————+———————–+———–+’). writeln(”).Jenis Bus : ‘).1). 5%) | Rp.30.bayar: integer. if (jurusan=’3′) and (jenisbus=’ekonomi’)then harga:=25000. harga:real.30.05). write(‘.000 |’).000 | Rp. writeln(‘| Kode Jurusan | AC | Ekonomi |’).000 |’). if (jurusan=’2′) and (jenisbus=’ac’)then harga:=25000. writeln(‘+—————+———————–+———–+’). if (jurusan=’3′) and (jenisbus=’ac’)then harga:=30000-(30000*0. if (jurusan=’1′) and (jenisbus=’ekonomi’)then harga:=30000.readln(jenisbus). write(‘.total*harga:0:2). writeln(‘Silahkan isi data dibawah ini :’).Kode Jurusan : ‘). readln. end. writeln(‘Terimaksih atas pemesanannya’).jenisbus: string.000 (Disc. begin clrscr.diskon.000 (Disc.Harga bayar : ‘). writeln(‘ Selamet Jaya Perkasa ‘). if (jurusan=’2′) and (jenisbus=’ekonomi’)then harga:=20000. writeln(‘ Jurusan Jakarta.

Begin For I:= 1 to 2 Do 38 .1 Struktur Perulangan For Perulangan dengan pernyataan For digunakan untuk mengulang pernyataan atau satu blok pernyataan berulang kali sejumlah yang ditentukan. dan Repeat…Until. While-Do.Algoritma & Pemrograman I(Pascal) by:chairuddin Struktur Pengulangan Perulangan Pengulangan (loop) merupakan bentuk yang sering ditemui di dalam suatu program aplikasi. 1. Perulangan positif. yaitu dengan penghitung dari nilai awal 1 sampai dengan nilai akhir 5. End. Bila program dijalankan akan menghasilkan: Pascal Pascal Pascal Pascal Pascal Penjelasan: Pernyataan Writeln(‘Pascal’) akan diulang sebanyak 5 kali. Contoh Var I:Integer. dengan bentuk umum: For variabel-kontrol:=nilai awal To nilai akhir Do pernyataan Variabel kontrol. yaitu dengan menggunakan pernyataan For. dikenal tiga macam perulangan. nilai akhir harus betipe integer Contoh Var I:Integer. Perulangan dengan pernyataan For dapat berbentuk perulangan positif. Di dalam bahasa Pascal. Perulangan positif adalah perulangan dengan penghitung dari kecil ke besar atau pertambahan positif. Apabila pernyataan diulang lebih dari satu pernyataan maka seteleh DO harus memakai Begin kemudian beberapa pernyataan yang akan diulang dan diakhiri dengan End. nilai awal.. perulangan negatif dan perulangan tersarang. Perulangan positif dapat dibentuk dengan menggunakan pernyataan For-To-Do. Begin For I:= 1 to 5 Do Writeln(‘Pascal’). 1.

J:Integer.J:3). End. End. Bila program dijalankan akan menghasilkan: PascalTurbo PascalTurbo 2. 39 . Writeln(‘Turbo’). Bila program dijalankan maka akan menghasilkan: 5 4 3 2 1 3. Begin For I:=5 downto 1 do Begin Writeln(I).Algoritma & Pemrograman I(Pascal) by:chairuddin Begin Write(‘Pascal’). End. mengerjakan perulangan yang lebh dalam lagi mulai dari nilai awalnya dan seterusnya. End. Perulangan negatif Perulangan negatif adalah perulangan dengan penghitung dari besar ke kecil atau pertambahan negatif. Perulangan tersarang Perulangan tersarang adalah perulangan yang berbeda di dalam perulangan yang lainnya. End. Contoh Var I. Perulangan negatif dapat dibentuk dengan menggunakan pernyataan For-DownTo-Do. Begin For I:=1 to 5 Do Begin For j:=1 to 3 Do Begin Write(I:8. Perulangan yang lebih dalam akan diproses terlebih dahulu sampai habis. dengan bentuk umum: For variabel-kontrol:=nilai awal DownTo nilai akhir Do penyataan Contoh Var I:integer. kemudian perulangan yang lebih luar baru akan akan bertambah.

Dalam hal ini kondisinya adalah I dan bila nilai I kurang dari 5. Pernyataan While—Do digunakan untuk melakukan proses perulangan suatu pernyataan atau blok pernyataan terus-menerus selama kondisi ungkapan logika pada While masih bernilai logika benar. Bila program dijalankan akan menghasilkan: 0 1 2 3 4 Penjelasan: Perulangan dari while akan terus menerus dikerjakan bila kondisinya masih benar. Begin I:=0. End.2 Struktur Perulangan While-Do Perulangan ini menggunakan pernyataan While—Do. I:=I+1. (Lebih lanjut akan di bahas pada materi matrik) 1. End. 40 . End. End. Bila program dijakankan akan menghasilkan: 1 2 3 4 5 1 1 1 1 1 1 2 3 4 5 2 2 2 2 2 1 2 3 4 5 3 3 3 3 3 Perulangan tersarang banyak digunakan dalam aplikasi matrik dengan menggunakan variabel tipe larik.Algoritma & Pemrograman I(Pascal) by:chairuddin Writeln. berarti kondisi di dalam While masih terpenuhi dan perulangan akan selesai setelah nilai I lebih besar atau sama dengan 5. While I<5 Do Begin Writeln(I). Bentuk Umum While kondisi ungkapan Do Pernyataan Contoh Var I:Integer.

Bentuk mumnya adalah: Repeat pernyataan Until Contoh Var I:Integer Begin I:=0.DO.TO.. LaughingWHILE. Bila program dijalankan akan menghasilkan: 1 2 3 4 5 Struktur pengulangan FOR.... Until I=5. pengulangan baru akan berakhir jika kondisi sudah terpenuhi. Repeat I:=I+1. while ( x > 0 ) do x := x – 1 statement diatas akan terus terjadi pengulangan selama nilai x masih positif WinkREPEAT UNTIL : sama seperti WHILE DO hanya saja pengecekan kondisi dilakukan pada sat terakhir. digunakan pada kondisi dimana suatu pernyataan yang akan diulang belum tentu berapa kali terjadi pengulangan.DO. End.Algoritma & Pemrograman I(Pascal) by:chairuddin 1. digunakan pada suatu kondisi dimana sebuah pernyataan akan dillakukan perulangan sebayak X kali tersantung statement yang akan ditentukan. sebagai contoh: for a:= 1 to 5 do write (‘gue gitu loh’) pada statement diatas maka akan terjadi pengulangan penulisan sebanyak 5 kali..3 Struktur Repeat…Until Struktur Repeat…Until digunakan untuk mengulang pernyataan-pernyataan atau blok pernyataan sampai kondisi yang diseleksi di Until tidak terpenuhi. 41 . Writeln(I).

end. if lapar then writeln (’silakan makan sampai puazzzz’).kolom : integer. const 42 . begin for baris := akhir downto 1 do begin for kolom := baris downto 1 do write(kolom). Uses Wincrt. Berikut ini adalah sebagian contoh perulangan dengan penerapan statemen For.Algoritma & Pemrograman I(Pascal) by:chairuddin repeat x := x – 1 until ( x = 100 ) Foot in mouthIF THEN ELSE : digunakan untuk sebuah kondisi dimana suatu pernyataan akan di uji. jika kondisi terpenuha maka akan lanjut ke statement berikutnya tetapi jika tidak terpenuhi maka program akan jalan ke pernyataan linyya. Pascal :: Contoh-Contoh Penggunaan Perulangan For. jika REPEAT UNTIL perintah dilakukan terlebih dahulu baru dilakukan pengujian.. Do. sedangkan WHILE DO pengujian dilakukan diawal beru perintah dieksekusi... var baris. perbedaan WHILE DO dengan REPET UNTIL adalah terletak pada pengujian kondisi.Do.. else write (‘yuuuuuuuuuuuuuukk’). Hasil : 4321 321 21 1 Uses Wincrt. end. perbaaan lainya yaitu REPEAT UNTIL mengulang pernyataan selama kondisi belum terpenihi sedang WHILE DO mangulang pernyataan selama kondisimasih terpenuhi. const akhir = 4. writeln.

43 . begin for baris := akhir downto 1 do begin for kolom := 1 to baris do write(kolom). writeln. Hasil : 1234 123 12 1 Uses Wincrt.kolom : integer. end. writeln.kolom : integer. writeln. begin for baris := 1 to akhir do begin for kolom := 1 to baris do write(baris).Algoritma & Pemrograman I(Pascal) by:chairuddin akhir = 4. const akhir = 4. end.kolom : integer. var baris. var baris. Hasil : 1 22 333 4444 Uses Wincrt. end. end. end. const akhir = 4. begin for baris := akhir downto 1 do begin for kolom := baris downto 1 do write(baris). end. var baris.

FOR kolom := 2 TO (2 *baris -1 ) do begin write('*').kolom). writeln.jumbaris :integer. writeln.readln(jumbaris).kolom : integer. end. begin for baris := akhir downto 1 do begin for kolom := baris downto 1 do write(baris. end. var baris. Hasil : (baris = 4) * *** ***** ******* Pascal :: Menghitung Faktorial 44 .kolom. const akhir = 3. Hasil : 3 33 23 1 2 22 1 1 1 Uses wincrt. begin write ('Jumlah Baris : '). FOR BARIS:=1 TO jumbaris do begin write ('*': jumbaris baris).' '.Algoritma & Pemrograman I(Pascal) by:chairuddin Hasil : 4444 333 22 1 Uses Wincrt. var baris. end. end. end.

Induk : '). Writeln. B_Data:=0. Writeln. Var No_Siswa:String[5].Hasil_Fak).Bil:Integer. Rata:Real. begin hasil := 1.Hasil_fak:integer.Nilai. Readln (Bil). Pascal :: Menghitung Nilai Rata-Rata Kelas Script Pascal berikut adalah aplikasi yang akan melakukan perhitungan nilai rata-rata kelas. for i := 2 to fak do hasil := Hasil * i. Untuk berhenti menginput data. silahkan dicoba sendiri. Writeln. Readln (No_Siswa). Uses Wincrt.B_Data). procedure faktorial (var fak. var i:integer. Nilai:=0. Writeln (' Jumlah Data Yang Sudah Masuk : '. Faktorial (N. Clrscr.Algoritma & Pemrograman I(Pascal) by:chairuddin Script berikut akan melakukan perhitungan faktorial dari bilangan yang diinputkan. program Faktorial. Write(' Nilai : '). isikan No. End.Hasil_fak). Var N. Selamat Mencoba! Program data_siswa. Begin Writeln. Writeln(' ----------------------------------------'). Readln (N). tanpa tanda kutip.J_Data. Write(' No. While No_Siswa <> 'xx' do Begin B_Data:=B_Data+1. uses wincrt. 45 . statemen while do akan mengakibatkan perulangan secara terus menerus. End. Writeln(' Program Penghitung Nilai Rata-Rata Kelas'). B_Data. Induk dengan karakter ‘xx’. Begin Write ('Nilai yang akan difaktorialkan = '). hasil : integer). Writeln ('Hasil Faktorial = '.

begin clrscr.8). Writeln (' Jumlah Data Yang Sudah Masuk : '. gotoxy(kol2. Write(' No.7). gotoxy(kol2.5). procedure masukkan.8). Writeln. End.writeln('Hasil Operasi : '). Induk : '). Writeln(' Program Penghitung Nilai Rata-Rata Kelas').Rata:5:2). uses wincrt. gotoxy(kol2.Nilai).4). end. 46 .writeln('----------------------'). Kalkulator Pascal Script berikut menerapkan penggunaan procedure serta statemen Repeat-Until dan Case-Of untuk membangun sebuah kalkulator sederhana menggunakan Bahasa Pascal. Writeln. gotoxy(kol2.Algoritma & Pemrograman I(Pascal) by:chairuddin Nilai:=Nilai+Bil. begin masukkan. kol2=35. Rata := Nilai/B_Data. Readln (No_Siswa). gotoxy(kol2. Writeln(' ----------------------------------------').B_Data).6). Writeln (' Nilai Total = '. Clrscr.7).writeln(' Masukan Bilangan '). Writeln(' ---------------------------------------').writeln('----------------------'). Readln (Bil).writeln('----------------------'). Var Bil1.9).Pilih : Integer. Writeln(' Hasil Perhitungan Nilai Rata-Rata Kelas').Bil3. Writeln. Writeln. bil3 := bil1 + bil2. gotoxy(kol2+20. Writeln (' Rata-rata = '. Writeln (' Jumlah Data = '.Bil2.writeln('----------------------'). Untuk lebih jelasnya silahkan dicoba sendiri listing berikut : Program Calculator.writeln('Bilangan 1 : '). gotoxy(kol2.11). Procedure Tambah. gotoxy(kol2+20. End. Writeln.B_Data).writeln('Bilangan 2 : ').readln(bil2).readln(bil1). gotoxy(kol2.10). const Kol = 10. gotoxy(kol2. Write(' Nilai : ').

readln.'='.bil2. gotoxy(kol. writeln('1. writeln('3.10).5).writeln(bil1. readln. end. begin masukkan. gotoxy(kol.'='. 3 : Kali. until pilih = 6. writeln('--------------------------').'='. readln. readln. Sisa Hasil Bagi {Mod} '). begin masukkan. gotoxy(kol. Procedure Kurang.14).4).writeln(bil1. gotoxy(kol.8). Penambahan'). gotoxy(kol.'*'. writeln('Operasi Bilangan Bulat'). 47 .10). end.12). writeln('2. end. bil3 := bil1 * bil2.readln(pilih).writeln(bil1.10).'mod'. end.'div'. gotoxy(kol. 4 : Bagi_bulat.'-'. Selesai'). Procedure bagi_bulat. Pengurangan').bil2. writeln('--------------------------').15). gotoxy(kol.'='. Procedure Kali. Perkalian'). writeln('5. gotoxy(kol. bil3 := bil1 .6] : [ ] ').bil3).bil3).10).Algoritma & Pemrograman I(Pascal) by:chairuddin gotoxy(kol2+20. 5 : Sisa_bagi.bil2. case pilih of 1 : Tambah.bil3).bil2. end. (* Program Utama *) begin repeat clrscr. writeln('6. gotoxy(kol2+20. gotoxy(kol. gotoxy(kol2+20.6).14). gotoxy(kol2+20. gotoxy(kol.10). 2 : Kurang. gotoxy(kol. readln. end. begin masukkan. gotoxy(kol.10).'='.9). gotoxy (kol+25.bil2. bil3 := bil1 div bil2. gotoxy(kol2+20.'+'. Pembagian Integer {Div} '). Procedure Sisa_bagi.bil3).writeln('4.bil2. begin masukkan.writeln(bil1.writeln(bil1.7).13). end..11).writeln('--------------------------'). bil3 := bil1 mod bil2.bil3). writeln('--------------------------'). writeln('Pilihan Anda [1.

Var i : Integer. Maka bila program diatas dicompile hasilnya : I Love Dinda I Love Dinda I Love Dinda I Love Dinda I Love Dinda Penjelasan : Berati statemen I Love Dinda akan diulang sebanyak 5 kali yaitu dengan menghitung nilai i dari i ke 1 sampai nilai i terakhir yaitu i ke 5. Perulangan dengan statemen For digunakan untuk mengulang statemen atau suatu blok statemen berulang kali. Begin For i:= 1 To 10 Do Begin Writeln ('I Love Dinda'). Begin For i := 1 To 5 Do Writeln ('I Love Dinda’). # Contoh dengan menggunakan blok statement: cara penulisannya dengan pada awal blok diawali dengan Begin dan pada akhir blok diakhiri dengan End. END. Tujuan perulangan disini adalah untuk mengulang statement atau blok statement berulang kali sesuai sejumlah yang ditentukan pemakai. • Perulangan For positif contoh : perulangan positif untuk satu statement : Uses Crt. Bentuk – bentuk Perulangan Dalam hampir setiap program yang kompleks mutlak memerlukan suatu perulangan dan percabangan. 48 . Perulangan dengan statemen For dapat berupa perunlangan positif dan perulangan negatif. { blok statement } End.Algoritma & Pemrograman I(Pascal) by:chairuddin Bab 3 Bentuk Perulangan & Penyeleksian Kondisi   Bab 3 Bentuk Perulangan & Penyeleksian Kondisi Materi 1. Uses Crt. Var i : Integer. a) Perulangan For. Dalam materi ini akan memberikan gambaran konsep dasar dari pengertian diatas.

bagi:12:3).c : Integer. tapi yang harus diingat disini untuk penggunaan blok pada perulangan For biasanya mempunyai banyak statement [lebih dari 1 statement] # Contoh 3 : Penggunaan perulangan For dalam blok statement untuk membuat tabel Uses Crt. End. Writeln ('----------------------------------------------').125 9 81 729 0.b.111 10 100 1000 0.000 2 4 8 0. Statement yang digunakan adalah For-DownTo-Do contoh : Uses Crt. maka hasilnya : ---------------------------------------------a a*a a*a*a 1/a ---------------------------------------------1 1 1 1. For a := 1 To 10 Do Begin b:= a*a.Algoritma & Pemrograman I(Pascal) by:chairuddin End. Hasil yang akan didapat akan sama dengan contoh yang pertama.500 3 9 27 0.250 5 25 125 0. bagi := 1/a. Writeln('----------------------------------------------'). Begin Writeln('----------------------------------------------').d:10.200 6 36 216 0. End. c:=a*a*a.100 ---------------------------------------------• Perulangan For negatif : Perulangan negatif adalah perulangan dengan menghitung (counter) dari besar ke kecil. 49 .167 7 49 343 0. Writeln(a:4.143 8 64 512 0. bagi : Real. Var a.c:10.333 4 16 64 0. Writeln(' a a*a a*a*a 1/a ').

End. End. Inc (i). End. Begin For i := 10 DownTo 1 Do Write (i:3).Algoritma & Pemrograman I(Pascal) by:chairuddin Var i : Integer. End. Perulangan While – Do tidak dilakukan jika kondisi tidak terpenuhi. { sama dengan i:=i+1 } End. mengerjakan perulangan yang lebih dalam lagi mulai dari nilai awalnya dan seterusnya.b : Integer. Hasil : 1112 2122 3132 • Perulangan While . Var i : Integer. Contoh : Var a. kemudian perulangan yang lebih luar baru akan bertambah. Writeln.Do Penyeleksian kondisi digunakan untuk agar program dapat menyeleksi kondisi. Begin i := 0. Contoh : Uses Crt. Hasil : 10 9 8 7 6 5 4 3 2 1 • Perulangan For tersarang Perulangan For tersarang adalah perulangan For yang berada pada perulangan yang lainnya.b:2). Perulangan yang lebih dalam akan diproses terlebih dahulu sampai habis. sehingga program dapat menentukan tindakan apa yang harus dikerjakan. Begin For a := 1 To 3 Do Begin For b := 1 To 2 Do Write (a :4. While < 5 do Begin Write (i:3). Hasilnya : 01234 50 . tergantung dari kondisi yang diseleksi tersebut.

Readln. Repeat – Until digunakan untuk mengulang statement-statemen atau blok statement sampai (Until) kondisi yang diseleksi di Until tidak terpenuhi. Sintak dari statement ini adalah : Contoh : Var i : Integer. End. While a < 4 Do{ loop selama a masih lebih kecil dari 4 } Begin a := a+1.Algoritma & Pemrograman I(Pascal) by:chairuddin • Perulangan While – Do tersarang Perulangan While – Do tersarang (nested While . b : Integer. End.Until. Contoh : Uses Crt. b:=1. End. Writeln (i). Until i=5. While b < 3 Do{ loop selama b masih lebih kecil dari 3 } Begin Write (a:3.Do) merupakan perulangan While – Do yang satu di dalam perulangan While – Do yang lainnya. hasil : 1 2 3 4 5 • Repeat – Until tersarang 51 . Repeat i:= i+1.b:2). End. a:=1. b:=b+1. Begin i:=0. Begin ClrScr. Var a. • Perulangan Repeat .

c:9:2)... . maka statement yang mengikuti Then akan diproses.. Writeln (a:6:2.. . yaitu jika pilhan tidak sama dengan 2} Begin . { berhenti jika a lebih besar dari 3 untuk perulangan luar } Writeln(' ======================================='). maka yang akan diproses statement berikutnya. Yaitu jika pilihan = 2 } . { berhenti jika b lebih besar dari 5 untuk perulangan dalam } a:=a+1. Writeln (' ======================================='). End Else{ jika kondisi tidak terpenuhi...Then Bentuk struktur If – Then adalah sebagai berikut : If Kondisi Then Statement Ungkapan adalah kondisi yang diseleksi oleh statement If..b..Algoritma & Pemrograman I(Pascal) by:chairuddin Repeat – Until tersarang adalah suatu perulangan Repeat .. sebaliknya bila kondisi tidak terpenuhi.. • Percabangan If .. Var 52 ..Until yang satu berada didalam perulangan Repeat – Until yang lainnya. Until a>3.. End.. Repeat { perulangan luar } b := 0.. Misalnya : If Pilihan = 2 Then Begin{ jika kondisi terpenuhi. b:9:2. Contoh : Var a. Begin Writeln('========================================'). Writeln(' sisi A sisi B Sisi C '). Repeat{ perulangan dalam } c:=Sqrt (a*a+b*b). a:= 1.. Until b>25. Contoh Program : Uses Crt.. b:=b+5... End... Bila kondisi yang diseleksi terpenuhi.c : Real..

Statement 4. Maka program diatas akan mencetak Tidak lulus.Algoritma & Pemrograman I(Pascal) by:chairuddin Nilai : Real.Of Struktur Case – Of mempunyai suatu ungkapan logika yang disebut dengan selector dan sejumlah statemen yang diawali dengan suatu label permasalahan (case label) yang mempunyai tipe sama dengan selector. Readln (nilai)..Of: Case Variabel Kondisi Of Case – Label 1. Case – Label 2. Bentuk statement If tersarang sebagai berikut : If kodisi1 Then atau If Kondisi1 Then If kondisi2 Then Begin statemen1 IF kondisi2 Then Else statemen1 statemen2. Statement 2. If tersarang (nested If)♣ Struktur If tersarang merupakan bentuk dari suatu statement If berada di dalam lingkungan statemen If yang lainya. Case – Label n . Hasil : Jika kita Memasukan 40 pada varibel nilai. 53 . range dari konstanta yang bukan bertipe real.. Case .. Bentuk struktur dari Case . . Case – Label 3. . Statement 1.. { Pemasukan data } If nilai > 60 Then { seleksi kondisi variabel nilai } Writeln('Lulus') { Dilaksanakan jika nilai lebih besar dari 60 } Else Writeln('Tidak lulus'). { end dari case } Daftar Case label dapat berupa konstanta.. Else statemen2 End.... Begin Write ('Jumlah Nilai :').. Case – Label 4. { Dilaksanakan jika variabel nilai lebih kecil dari 60 } End.. End . Statement yang mempunyai case label yang bernilai sama dengan case label yang bernilai sama dengan nilai selector akan diproses sedang statemen yang lainya tidak. Statement n . Statement 3.. Contoh program ....

tl : Char.. { pemasukan data dalam array } Write ('Mau Isi Berapa Data:'). n.nil2 : Array [1. Var nil : Char . Readln(nil 2[i]). GotoXY(30. GotoXY(10. 'C': Writeln('Cukup'). End. Begin Write ('Nilai Numerik yang didapat :').i.6+i).i:2). jum : Real. Var nil1. Begin ClrScr. Program input data dengan array.4+1). Write('Data Ke-:'.10] Of String [15]. Readln (nil). Readln (npm[i]). Write('Nilai 2 :'). End.Algoritma & Pemrograman I(Pascal) by:chairuddin Program nilai. GotoXY(10.10] Of String [8]. nama : Array [1. Program Pemakaian_Array_Untuk_10_data_dengan_menggunakan_For.10] Of 0. Uses Crt. GotoXY(10..5+i). Realdn(nil 1[i]). Readln (nama[i]).7+i). For i:= 1 To n Do Begin ClrScr. 'B': Writeln('Baik’). { proses data dalam array } ClrScr. Write('Nama :').. Const garis='------------------------------------------------------'. 54 . Case nil Of 'A': Writeln ('Sangat Baik’). Write('Nilai 1 :'). hasil : Nilai Numerik yang didapat : B Input Baik Contoh Listing Program untuk Dicoba 1. End.bar : Integer. GotoXY(10.8+i). 'D': Writeln('Kurang'). Readln (n).. 'E': Writeln('Sangat Kurang').100. {Array dgn Type subjangkauan} npm : Array [1. Write('NPM :').

Write ('NPM'). Writeln (jum:5:1). 55 . Begin For i:=1 To 15 Do Begin Sound (i*100).bar+1).Writeln(garis). Program Window_Bergerak_dgn_delay. Write ('Abjad’). Write ('No'). GotoYX(54. Write ('Nilai 1'). Writeln (NIL1[i]:4). GotoXY(9. Uses Crt.5). 2. Write ('Nilai 2'). GotoXY(54. Write (Garis).bar). Write ('Nama'). End.5). Write ('Rata').5). For i:= 1 To n Do Begin jum:=(nil1[i]+nil2[i])/2. GotoYX(41.6).bar). Writeln (NPM[i]).4).5). GotoYX(47.bar). Writeln (NAMA[i]). { cetak hasil yang disimpan di array dan hasil } { penyeleksian kondisi } GotoYX(5.bar). Program jendela bergerak.bar). If jum>= 90 Then tl:='A' Else If jum>80 Then tl:='B' Else If jum>60 then tl:='C' Else If jum 50 Then tl:='D' Else tl:='E'. Writeln (NIL2[i]:4). Writeln(i:2). Write(Garis). GotoXY(47. bar:=bar+1. GotoXY(34. Writeln (tl). GotoXY(5. GotoXY(41. GotoXY(5.Algoritma & Pemrograman I(Pascal) by:chairuddin GotoXY(5. GotoYX(9.bar).5). GotoYX(18. GotoXY(18.bar). End. GotoXY(5. Var i : Integer.5). { proses Cetak isi array dan seleksi kondisi } bar := 7. Readln. GotoYX(34.5).

Writeln ('c'). End. Write('U').4). TextBackGround(black).21). TextColor (black). Delay(100). End. End. GotoXY (5. TextColor(white). Writeln (' '). Writeln ('U'). For i := 6 To 20 Do Begin GotoXY(65.3). Readln.38+i*4.Algoritma & Pemrograman I(Pascal) by:chairuddin Delay (100). End. Writeln ('A'). Window (42-i*4. TextColor(yellow). For i := 6 To 20 Do Begin GotoXY(5. For i := 6 To 64 Do Begin GotoXY (i. For i := 1 To 9 Do Begin TextBackGround(white). TextColor(15). End. GotoXY (8. TextColor(black). Writeln ('B E L A J A R'). ClrScr.i).5).5). GotoXY (65.5).10-i. Writeln('3'). Writeln('3 ').3). GotoXY (44.21). GotoXY (44. Writeln ('&'). GotoXY (28. ClrScr.21). Writeln ('3'). Writeln ('3').15+i).2). TextColor (red*25). GotoXY (5.2).4). For i := 6 To 65 Do Begin GotoXY (i. TextColor (29. GotoXY (30. 56 . GotoXY(65. End. Writeln(' `). Writeln (''). Write('c').3). NoSound.i).Writeln('c'). GotoXY(28.

. Buat deret fibbonaci 1...5.=? Program akan berhenti jika pada pertanyaan "Hitung Lagi [Y/T] ?" diisi huruf T... 2.... Jumlah suku sesuai dengan input dari keyboard.................... Buatlah program untuk mencari faktorial.... 6....3.... 90.......=? Program akan berhenti jika pada pertanyaan "Hitung Lagi [Y/T] ?" diisi huruf T.. 5..=? Program akan berhenti jika pada pertanyaan "Hitung Lagi [Y/T] ?" diisi huruf T.. 3... Buat deret seperti berikut 100. 2. sesuai dengan input yang diminta.Algoritma & Pemrograman I(Pascal) by:chairuddin End....=? Program akan berhenti jika pada pertanyaan "Hitung Lagi [Y/T] ?" diisi huruf T.-8......3......... 4..=? Program akan berhenti jika pada pertanyaan "Hitung Lagi [Y/T] ?" diisi huruf T.... 1... 70 ... Buat deret hitung 3.. Buat deret seperti berikut 1............9... 57 .. 24.......11..1/2....-2.. Buat deret kuadrat 1.7..-4.-2. Textcolor dll).. 11... 4...........=? Program akan berhenti jika pada pertanyaan "Hitung Lagi [Y/T] ?" diisi huruf T. 144.... 5... 3... 7. 9.. Buat deret seperti berikut 1.. Buat deret seperti berikut 256.. Buat deret suku harmonis 1.=? Program akan berhenti jika pada pertanyaan "Hitung Lagi [Y/T] ?" diisi huruf T.... 196....4...... 12.... 6.27. 9.. 8.. 4...1/3...15..... 10. Soal Latihan Buatlah program untuk soal dibawah ini dengan tampilan sebagus mungkin (gunakan perintah Window........ Buat deret ukur 3.. Buat tabel deret bergoyang 1......1..2...=? Program akan berhenti jika pada pertanyaan "Hitung Lagi [Y/T] ?" diisi huruf T. Buatlah program huruf yang berjatuhan sehingga membentuk suatu kalimat yang telah diinput dari keyboard ...=? Program akan berhenti jika pada pertanyaan "Hitung Lagi [Y/T] ?" diisi huruf T... 1.......=? Program akan berhenti jika pada pertanyaan "Hitung Lagi [Y/T] ?" diisi huruf T. 2.. 1.

yang jumlahnya tidak akan berubah (statis) mulai saat awal disediakan (program dijalankan) hingga program selesai dijalankan.8 atau ‘A’.’J’ akan menentukan jumlah elemen array sebanyak 10 buah.. Komponen-komponen tersebut disebut sebagai komponen type. Index ini tidak harus berupa bilangan positif.1) var_array adalah nama variabel array yang dipakai untuk mengidentifikasi array.1) Atau dapat langsung dituliskan sebagai berikut: var var_array = array [range_index] of tipe_data. Misalnya range 0.. char. seperti semua varian integer. Range_index menentukan jumlah elemen array. Bentuk umum deklarasi array adalah: type tipe_array = array [range_index] of ipe_data. Pemilihan nama variabel array mengikuti aturan pemberian nama variabel secara umum.Algoritma & Pemrograman I(Pascal) by:chairuddin ARRAY PADA PASCAL Array adalah variabel yang dapat menyimpan lebih dari satu nilai sejenis. Range_index adalah batasan index yang digunakan untuk mengidentifikasi elemen array..10 atau –1..IndeksAkhir] of tipe_data. Array dideklarasikan pada bagian deklarasi.. boolean atau tipe data enumerasi yang dibuat sendiri oleh user. dimana tiap komponen di array dapat diakses dengan menunjukkan nilai indexnya atau subskript. Penggunaan index yang berada di luar range Index akan mengakibatkan kesalah. Setiap elemen array diidentifikasi oleh salah satu index yang berada dalam range yang telah ditentukan. A[1] 1 10 A[2] 2 20 A[3] 3 30 A[4] 4 40 A[5] 5 50 A[6] 6 60 A[7] 7 70 A[8] 8 80 A[9] 9 90 A[10] 10 100 Deklarasi Array. (1. Banyaknya komponen dalam larik ditunjukkan oleh suatu index. var var_array : tipe_array. Terdapat dua bagian penting yaitu elemen array yang merupakan nilai dan endeks array yang merupakan nilai urut untuk mengakses nilai pada array. larik mempunyai jumlah komponen yang jumlahnya tetap. 58 . Deklarasi umum dari array adalah NamaArray : array[IndeksAwal. Array adalah tipe data terstruktur yang terdiri dari sejumlah komponen-komponen yang mempunyai tipe sama. (1.9 atau 1. Berikut ini contoh array A dengan 10 buah elemen tiap elemen memiliki nilai antara 10 hingga 100. tetapi harus berupa bilangan bulat atau data-data yang masuk kategori tipe data ordinal (seluruh tipe data dasar selain real dan double).

Kita bisa saja mengakses nilai[5] tanpa mengakses komponen array lainnya. Pada model-model di atas.U : Array [1 . .Algoritma & Pemrograman I(Pascal) by:chairuddin Tipe_data adalah tipe data untuk elemen array. atau berapa saja sesuai keperluan. memungkinkan kita mengakses sebagian atau seluruh elemen array secara berurutan. operasi mengakses array dapat berupa memasukkan nilai atau membaca nilai array. 3. elemenelemen array diakses secara berurutan dengan selisih satu index. model deklarasi dengan membuat sebuah tipe array seperti model (1. Jadi elemen ke-6 akan diakses sebelum atau sesudah elemen ke-5 ataupun ke-7. 3 . B. • Mengakses Elemen Array Secara Acak/Random Setiap elemen array dapat diperlakukan secara individual terlepas dari elemen-elemen lainnya. 59 .1) akan lebih jelas dan lebih ringkas yang dapat dirasakan saat variabelvariabel bertipe array digunakan sebagai parameter sebuah fungsi atau prosedur. Misalkan menjadi 2.meskipun akhirnya semua elemen array akan diakses. Sedangkan operasi mengambil nilai adalah operasi untuk mendapatkan/membaca nilai dari suatu array. maka dapat dimanfaatkan sesuai fungsinya sebagai objek data. Pergeseran index dilakukan dengan menambah atau mengurangi index sebelumnya dengan 1. Jadi. 1 . Kita juga dapat membuat model yang lain dengan mengubah selisih indexnya. . namun tidak aturan yang pasti tentang urutan mengaksesnya. tetapi dapat berupa tipe data terstruktur seperti array. atau tipe data dasar yang lain. Hal dini dilakukan ketika menggunakan array sebagai operan nada suatu operasi atau sebagai parameter sebuah fungsi/prosedur. Tentang pemilihan model deklarasi. . 2] of tipe_data. • Mengakses Elemen Array Secara Sequensial (Berurutan) Struktur array yang elemen-elemennya tersusun secara berurutan. Tipe data elemen array tidak harus berupa integer. (Dimensi 2) Operasi Pada Array • Operasi Memasukkan dan Mengambil Nilai Bila array sudah dideklarasikan dan sudah diberi suatu nama. Biasanya hal ini dilakukan dengan operasi penugasan (assignment) dengan objek array terletak sebagai operan di sebelah kiri tanda ‘:=’. Operasi memasukkan nilai adalah operasi untuk memasukkan nilai data ke dalam elemen-elemen array. Operasi ini dapat dilakukan pada array secara keseluruhan ataupun pada suatu elemen tertentu. Misalnya dalam hal memasukkan data. Untuk proses mengunjungi elemen array (traversal of array) secara berurutan dapat dilakukan dengan proses looping (perulangan). nilai[7] dapat dimasukkan lebih dulu daripada elemen lainnya. asalkan selalu berada pada range index. (Dimensi 1) B.U : Array [ 1 . 20 ] of tipe_data . • Operasi Mengakses Array Operasi mengakses suatu objek data merupakan nama yang lebih umum daripada operasi memasukkan nilai ataupun membaca nilai.

3. Contoh: Jika akan mendeklarasikan viriabel A sebagai Array dengan 10 elemen bertipe integer : Var A: array [1. jangan sampai berlebihan. Misalkan A dan B adalah dua buah variabel array yang tipenya sama.20] of Integer. Penggunaan konstanta akan memudahkan bila ada keperluan untuk mengubah batas-batas range Index array.1.10] of Integer. perhatikan deklarasi berikut : Var Matrix:array[1. Mengakses elemen Array Untuk memberikan nilai pada variabel array dapat dengan menggunakan parameter berikut : NamaArray [indeks]:=nilai. ataupun kekurangan. tetapi setiap deklarasi array hanya dibatasi dengna sebuah range Index saja.. Walaupun terdapat dua buah array. Sering kali kita terpaksa harus mengubah batas-batas range Index untuk menyesuaikan jumlah data.Algoritma & Pemrograman I(Pascal) by:chairuddin • Mengakses Array Secara Keseluruhan Selain mengakses komponen array.3] of integer.. Contoh lain: A1: array[0. Setiap kali menggunakan array. • Array Multidimensi Tipe data elemen array tidak harus berupa tipe data elementer. misalnya array. • Penggunaan Konstanta untuk Batas Index Arrray Deklarasi konstanta sering digunakan untuk batas bawah dan batas atas pada range Index array. dan jumlah elemennya juga sama. A1: array[‘a’. Bentuk deklarasi mungkin saja dibuat untuk kasus demikian..’j’] of Integer. walaupun secara keseluruhan banyaknya bilangan yang dapat disimpan adalah 20 buah.. Contoh Var 60 . maka dalam Pascal dapat dilakukan operasi penugasan A := B yang berarti memasukkan nilai dari setiap elemen array B ke semua elemen A pada Index-Index yang bersesuaian. tipe nilai_ujian adalah berupa array dengan dua elemen bertipe integer untuk menyimpan nilai ujian midterm dan ujian akhir.9] of Integer. Jumlah elemen array nilai adalah 10.. yaitu cukup mengganti nilai konstanta tersebut. A1: array[10. kita pasti berharap agar ruang yang kita sediakan sesuai dengna banyaknya data yang akan disimpan. kita juga dapat mengakses array secara keseluruhan yang akan mempengaruhi semua elemennya sekaligus.. Sebagai contoh. yang digunakan untuk menyimpan nilai ujian dari 10 mahasiswa. Elemenelemen array nilai bertipe array integer. namun juga dapat berupa tipe data terstruktur. Sedangkan variabel nilai adalah array dengan sepuluh elemen bertipe nilai_ujian. Array demikian dikenal sebagai array berdimensi 1.

Algoritma & Pemrograman I(Pascal) by:chairuddin A: array[1. {Mengisikan elemen 1 dengan nilai 1} A[9]:=200. nilai2.100[ of integer.. Jika dieksekusi maka hasilnya adalah: Masukan nomor harinya : 2 Hari ke 3 adalah rabu Array saebagai parameter Array pada waktu tertentu dapat digunakan sebagai parameter dari suatu proesdur atyau fungsi. Contoh Type Bilangan = array [1.10] of integer. Banyaknya nilai konstanta harus sama dengan jumlah elemennya. Var noHari:integer.’selasa’. Array sebagai konstanta Nilai pada array dapat bernilai konstan.noHari. Const Hari : array[1.readln(noHAri).. Procedure InputArray(A:bilangan.'minggu’).Har[noHari]).………).IndeksAkhir] of Tipe_Data = (nilai1. end. begin clrscr. Begin A[1]:=1.’adalah’. N:integer).'rabu’. var i:integer. write(‘Masukan nomor harinya : ‘).. begin 61 .. Dapat kita lakukan dengan mendeklarasikannya pada bagian constanta.2] oof string = (’senin’. {Mengisi elemen 9 dengan nilai 200}.'jumat’.'kamis’. Bentuk umum pendeklrasiannya adalah: Const NamaArray : array[IndeksAwal.’sabtu’. End. Contoh penggunaanya Program ArrayKonstanm. Uses Wincrt. write(‘Hari ke’.

Array berisi record Caranya adalah mendefinisikan record terlebih dahulu yang kemudian akan digunakan sebagai tipe data pada saat pendeklarasiaan array. Yaitu: Type Tsiswa = record NIM:=string[9[. Maka kita dapat mendefinisikan mahasiswa sebagai tipe record yang memiliki 3 nilai dengan menggunakan array. Metode pencarian pada Array Ada beberapa macam teknik dalam mendapatkan nilai dari suatu elemen pada array salh satunya dengan metode pencarian beruntun. End. Uses Wincrt. Nama:string[25]. TkumpulanSiswa = array [1.50). Kode diatas menunjukan bahwa setiap mahasiswa memiliki 3 nilai. end. 62 . Var A: TkumpulanSiswa. Contoh diatas adalah prenggunaan array sebagai parameter untuk memberikan nilai pada suatu array tertentu.Algoritma & Pemrograman I(Pascal) by:chairuddin for i:=1 to N do write('Masukan elemen array ke '. begin clrscr.30. Contoh: Type Tsiswa = record NIM:=string[9[. Sementara untuk record berisi array dengan contoh perhitungan nilai siswa berikut : Nilai = (20% * kuis) + (30% * UTS) + (50% * UAS). write(‘Masukan nilai yang akan dicari : ’).5] of integer= (10. readln(A[i]).Contoh: Program CaraiBeruntun.20.3] of real.i).readln(a). Nilai = array [1. Var a.40. Variabel A diatas akan menampung 100 buah record yang bertipe Tsiswa.. Const N : array[1. Nama:string[25]..100] of Tsiswa..b.index : integer.

bolean. Sedangkan untuk mengaskes maupun memberikan nilai dengan parameter: Array2D [2.3]:=200.3. Contoh Array2D : array[1. Contoh Program : Program Contoh_Array_Input. integer... 63 . for b:=1 to 5 do begin if N[b] = a then begin index:=b. writeln(a..BanyakBaris. end.’ adalah nilai yang ditemukan pada index ke ’. end. char. Array 2 dimensi Array 2 dimensi adalah array yang memiliki 2 buah elemen bertipe array yang berbentuk kolom dan baris. 1.50] of Integer. Var Bilangan : array[1.4] of integer.komponenya mempunyai nilai dengan tipe data tersebut. Contoh: Var Untai : array[1.Algoritma & Pemrograman I(Pascal) by:chairuddin index:=0. Begin ClrScr. string dan tipe data scalar atau subrange. Pada contoh Array dengan nama untai telah dideklarasikan dengan tipe integer.. {Mengisikan nilai 200 pada baris 2 kolom 3} Array PASCAL Array dapat bertipe data sederhana seperti byte.50] of Integer. word. Uses Crt. end. Pendeklarasiannya adlah sebagai berikut: NamaArray : array[1. break. dengan jumlah elemen maksimum 50 elemen. Tipe larik mengartikan isi dari larik atau komponen. 1.. nilai dari elemen array tersebut diatas harus bertipe integer.BanyakKolom] of tipe_data.index). real..

For i:= 1 to banyak Do Begin 64 .i : integer.Readln(banyak). Bilangan[3]:=30.Algoritma & Pemrograman I(Pascal) by:chairuddin Bilangan[1]:=3.readln(Nama[i]). For i := 1 to banyak Do Begin Write('NPM ='). Write('Isi berapa data array yang diperlukan :')..20] of real. Write('Nama =').20] of string[25].. Nilai : array[1.20] of byte.Bilangan[3]). Nama : array[1... Write('Umur ='). End. Readln.readln(Umur[i]). Uses Crt. Umur : array[1.20] of string[10]. Bilangan[2]:=29. End.readln(Nilai[i]).Readln(NPM[i]). {cetak varibel array} Writeln('NPM NAMA NILAI UMUR '). Write('Nilai='). Var NPM : array[1. Begin ClrScr. Array juga dapat dideklarasikan bersama dengan tipe yang beragam seperti contoh dibawah ini : Program Contoh_Deklarasi_Array_Beragam. Bilangan[4]:=31. Writeln('nilai varibel bilangan ke 3 ='. Bilangan[5]:=23. banyak.

. Contoh: Var Nilai : Array[1. End.10.Nama[i]:25. tetapi tidak bisa real. 65 . Readln. Var Nilai : Y.. Var Nama : Array [1. Begin . Var Nilai : Array [skala] of Integer. Array tersebut dapat dideklarasikan dengan type seperti berikut ini : Type Skala = 1. atau : Type Skala = 1. End. Y = Array[skala] of Integer.10. pada contoh ini array nilai mempunyai 10 buah elemen yaitu dari 1 sampai 10..Nilai[i]:3:2.Algoritma & Pemrograman I(Pascal) by:chairuddin Writeln(Npm[i]:10.Umur[i]:3). Untuk deklarasi array dapat digunakan beberapa cara seperti berikut ini : Type Angka = String[20]. .10] of Integer.50] of Angka.. End.' '. Deklarasi tipe indeks subrange integer Indeks pada array dapat tipe skalar atau subrange.

mei)] of Integer.Algoritma & Pemrograman I(Pascal) by:chairuddin atau : Type Y = Array[1.Jum[mar]). dapat juga ditulis : type Bln = (jan. Bawah = 5.feb. : Program Deklarasi_Indeks_Array_Skalar. End..10] of Integer..mar.apr. Jum[apr]:=23. type Y = Array[Atas. Deklarasi Type Indeks Skalar Indeks dari larik dapat berupa tipe skalar. Jum[feb]:=45. Begin Jum[jan]:=25. Var Jum : Array[(jan.Bawah] of Integer. Writeln('Jumlah nilai bulan maret ='. 66 .mar. Contoh. Jum[mei]:=50. Uses Crt. Var Nilai : Y.apr. Jum[mar]:=21. atau : Const Atas =1.mei). I. Readln. Var Nilai : Y.feb.

'B'. Var i : Integer.mei] of Integer. Var Jum : Array[jan. Contoh Program : Program Contoh_Deklarasi_Array_Konstan.5] of Char=('A'.. Contoh Program : Program Contoh_Konstan_Array_Char_.i:2. Const Huruf : Array[0.Tetap[i]). Uses Crt.10.mei). konstanta array dapat juga berupa ketetapan dalam bentuk karakter seperti berikut. Var i : Integer..'C'.'F'). atau : type Bln =(jan. End.feb.21. Deklarasi Konstanta Array Array tidak hanya dapat berupa suatu varibel yang dideklarasikan di bagian deklarasi variabel. Begin For i:= 0 to 5 Do 67 .' ='.4] of Integer=(7. Uses Crt. tetapi dapat juga berupa konstanta (const).apr.'E'. Begin For i:= 1 to 4 Do Writeln('Nilai Konstan array ke '..'D'.Algoritma & Pemrograman I(Pascal) by:chairuddin Var Jum : Array[bln] of Integer. Const Tetap : Array[1. II.20). Readln.mar.

Huruf[i]). Contoh Program : Program Constanta_Array_String. Begin Nama:='Turbo Pascal'. i : Integer.Nama.elemen karakter seperti berikut : Contoh Program : Program String_Adalah_Array_Tipe_Char.'= '. Readln.'dbase').i. Readln. Uses Crt. Var Nama : string. readln.i:2. Uses Crt. Const Nama : A = ('basic'.Algoritma & Pemrograman I(Pascal) by:chairuddin Writeln('Nilai konstan array ke'. Begin For i:= 1 to 5 Do Writeln('Nilai Array ke-'.Nama[i]). Dalam pascal string merupakan array dari elemen.Nama[i]).5] of String.'= '.i:2. Var i : Integer. Type A = Array [1. End. End. For i:= 1 to Length(nama) Do Writeln('Elemen '. 68 .' = '.'cobol'.'pascal'.' dari '..'paradox'. end. Konstanta array dapat juga berupa string seperti berikut ini.

If Prima[i]<> 0 Then Write(Prima[i]. For j:= 2 to i-1 Do Begin bil := (i mod j). Begin ClrScr.. Readln. Contoh pengurutan data dengan metode buble sort. i.' '). dapat dilihat pada contoh dibawah ini : Contoh Program : Program Penggunaan_Array_Untuk_Sortir_Buble_Sort.Algoritma & Pemrograman I(Pascal) by:chairuddin contoh program bilangan prima dengan menggunakan bantuan array. 69 . For i := 2 to 100 Do Begin Prima[i]:=i. Uses Crt. {*cetak array yg prima*} End.100] of Integer. n. {* i dibagi j dicek apakah 0*} If bil = 0 then Prima[i]:=0. Var Prima : Array[1. bil : Integer. Contoh program : Program Mencari_Bilangan_Prima_Dengan_Array.berarti bkn prima*} End.dum : Integer. Begin ClrScr.j. yaitu dengan cara penukaran.j : Integer. Var nil1 : Array[1. {*jika habis dibagi. End.i.. Uses Crt.100] of Integer.

writeln. Array Dua Dimensi Di dalam pascal Array dapat berdimensi lebih dari satu yang disebut dengan array dimensi banyak (Multidimensional array). yaitu indeks pertama menunjukkan baris dan indeks ke dua menunjukkan kolom dari tabel atau matrik. {* penyapuan proses} for i:= 1 to n-1 do begin for j:= i to n do begin if nil1[j] begin dum:=nil1[j]. readln. writeln('Hasil Sortir'). for i := 1 to n do write(nil1[i]:3). nil1[j]:=nil1[i].Readln(nil1[i]). disini akan dibahas array 2 dimensi saja.Algoritma & Pemrograman I(Pascal) by:chairuddin Write('mau isi berapa data acak (integer) ='). Array 2 dimensi dapat mewakili suatu bentuk tabel atau matrik.':'). end. 12 70 . end. For i := 1 to n Do Begin Write('Data Ke '. end. nil1[i]:=dum. End.i. III. end. readln(n).

Var Tabel : Array[1. Tabel[2..1]:=1... beberapa cara tersebut dapat dilihat dibawah ini : Contoh : Var Tabel : Array[1.'.'= '. i.j]). Tabel[3. Tabel[1.1]:=3.2]:=2. Ada beberapa cara dalam mendeklarasikan array dua dimensi. Readln.Algoritma & Pemrograman I(Pascal) by:chairuddin 123 Untuk mengetahui cara mendeklarasikan dari penggunaan aray dua dimensi dapat dilihat pada listing program dibawah ini .i.'. Tabel[1..j : Integer. Tabel[3. For I := 1 to 3 Do Begin For J:= 1 to 2 Do Begin Writeln('Elemen '. Tabel[2.2] of Byte. End. Contoh Program: Program Deklarasi_Array_Dua_Dimensi.1. Uses Crt.2] of Integer.3. Alternatif Deklarasi Array Dua Dimensi. IV.1]:=5.2]:=6. atau : Type 71 .j.2]:=4.tabel[i.3] of Array[1. Begin ClrScr. End. End.

i. Uses Crt..2] of Integer. Var Matrik1. Hasil : Array[1...2.j : Integer. { input matrik ke satu } Writeln(' Elemen matrik satu'). Var Tabel : Matrik.Algoritma & Pemrograman I(Pascal) by:chairuddin Matrik = Array[1. Kolom = 1. Matrik= Array[Baris] of Array[Kolom] of Byte. Matrik = Array[Baris.2] of Byte. atau : Type Baris = 1...3. Dibawah ini akan diberikan listing program penggunaan array dua dimensi dalam aplikasi penjumlahan matrik : Contoh Prorgam: Program Penjumlahan_Matrik.3. atau : Type Baris = 1..1..3.Kolom] of Byte. Var Tabel : Matrik.1. Begin ClrScr. For i := 1 to 3 Do Begin For j := 1 to 2 Do Begin 72 .3. Var Tabel : Matrik.2.. Kolom=1.Matrik2.

End.' kolom -'.j]).j]).j]:6).j]:=Matrik1[i.' Kolom -'. End. End. Readln. End.i.j. End. {proses penjumlahan tiap elemen} For i := 1 to 3 Do Begin For j:= 1 to 2 Do Begin Hasil[i. Readln(matrik1[i.'= '). For i:= 1 to 3 Do Begin For j:= 1 to 2 Do Begin Write('Elemen baris -'. {proses cetak hasil} For i:= 1 to 3 Do Begin For j:= 1 to 2 Do Begin Write(Hasil[i. {input matrik ke dua} Writeln('input elemen matrik dua').j]+Matrik2[i. End.Algoritma & Pemrograman I(Pascal) by:chairuddin Write('Elemen baris -'. End.j.i. 73 . End.'= '). Readln(matrik2[i. Writeln.j]. End.

.. Begin Writeln(Garis). Uses Crt. Writeln('Nama Nilai Abjad Keterangan').10] of String[15]. Array Sebagai Parameter Array dapat digunakan sebagai parameter yang dikirimkan baik secara nilai (by value) atau secara acuan (by reference) ke procedure atau ke function. Abjad : Char. Procedure yang menggunakan parameter berupa array harus dideklarasikan di dalam judul procedure yang menyebutkan parameternya bertipe array.Algoritma & Pemrograman I(Pascal) by:chairuddin V. Ket :='Istimewa'.10] of Integer. Var i. Huruf = Array[1. Writeln(Garis).Banyak : Integer. 74 .Nilai:Bulat). Bulat = Array[1. For i := 1 to Banyak Do Begin If Nilai[i] > 90 Then Begin Abjad:='A'.. Var Ket : String.10] of Char. Contoh Program : Program Contoh_Pengiriman_Parameter_Array_Di_Procedure. Procedure Proses(Nama:Untai. Type Untai = Array[1. Const Garis ='---------------------------------------------------'.

Nilai : Bulat.Ket:15). End. End. Begin Write('Banyak data =').Abjad.Nilai[i]:4. End. End. Writeln(Nama[i]:15. End. Ket :='Memuaskan'. Procedure Masuk_Data. If (Nilai[i]<60) And (Nilai[i]>45) Then Begin Abjad:='D'. Ket :='Kurang'. If Nilai[i]< 45 Then Begin Abjad:='E'. Var Nama : Untai.' '.' '. Ket :='Sangat kurang'.Readln(Banyak). Ket :='Cukup'. If (Nilai[i]<90) And (Nilai[i]>70) Then Begin Abjad:='B'.Algoritma & Pemrograman I(Pascal) by:chairuddin End. Writeln(Garis). For i:= 1 to Banyak Do Begin 75 . End. If (Nilai[i]<70) And (Nilai[i]>60) Then Begin Abjad:='C'.' '.

Write('Nilai ='). Writeln('Data ke .readln(Nama[i]). 76 .readln(Nilai[i]). Proses(Nama. End. End.i).'. Readln. {modul Utama} Begin Masuk_Data.Algoritma & Pemrograman I(Pascal) by:chairuddin ClrScr. Write('Nama =').Nilai).

Procedure mendukung desain program terstruktur. bentuk deklarasi procedure ialah : ------------------------------------------------------------------------procedure name(parameter declarations). hanya baris pertamanya saja yg berbeda yaitu: function name(parameter declarations):type. Pemrograman Modular Modular programming adalah merupakan suatu teknik untuk menulis program yang berukuran besar. FUNCTION : Function. b) Procedure Kompleks menerima nilai yang diproses ketika dieksekusi. Program dibagi menjadi beberapa bagian kecil. ketika dieksekusi menghasilkan suatu nilai. yang melakukan suatu tugas tertentu. label label-declarations const constant-declarations type type-declarations var variable-declarations procedure and function declarations begin Code for procedure end. Pascal mengenal module sebagai: 1.Algoritma & Pemrograman I(Pascal) by:chairuddin SUB PROGRAM PASCAL SUB PROGRAM 1. Tiap bagian disebut module. dengan membolehkan membuat module secara terpisah. yaitu procedure dan function. 77 . ------------------------------------------------------------------------sedangkan bentuk deklarasi function adalah persis sama dengan procedure. 2. PROCEDURE (terbagi menjadi dua) a) Procedure Sederhana tidak menerima argumen (nilai atau data) ketika dieksekusi. Contoh : • Menampilkan menu pilihan • Menghitung nilai rata-rata • Mensortir data dalam pascal ada 2 macam subprogram.

dengan ciri menggunakan kata VAR pada deklarasi prosedurnya. Begin End. Memanggil Procedure. selanjutnya sub program dapat dipanggil sewaktu-waktu jika diperlukan.B. Prosedur dapat tidak berparameter (optional). Parameter Formal (Formal Parameter) : Parameter yang ada dan dituliskan pada judul prosedur. Contoh : PROCEDURE Tambah(VAR A. yang memiliki ciri kata VAR tidak ditulis. yaitu memecah bagian-bagian program yang panjang dan rumit menjadi program-program bagian yang lebih sederhana. PROCEDURE Deklarasi Procedure Program nama_program_utama. 78 . PROCEDURE Nama_Procedure. Contoh : PROCEDURE Tambah(A. Proses pengiriman data melalui parameter (parameter passing) dapat dikirimkan secara : Pengiriman secara nilai (by value) : bahwa parameter tersebut hanya mengambil nilai dari Parameter Nyata yang sesuai. Perubah Lokal dan Perubah Global Perubah lokal : Perubah yang dideklarasikan dalam sebuah Prosedur(fungsi). Pengiriman secara acuan(by reference) : bahwa perubahan-perubahan yang terjadi pada Parameter Formal akan mempengaruhi nilai Parameter Nyata-nya. Untuk proses atau bagian yang dikerjakan berulang-ulang cukup ditulis satu kali saja.C:Integer). Perubah Global : Perubah yang dideklarasikan pada program utamaParameter Parameter dalam prosedur. Parameter Nyata (Actual Parameter) : Parameter yang dikirim dari modul utama ke modul prosedur.Algoritma & Pemrograman I(Pascal) by:chairuddin Kegunaan dari sub program adalah : Menerapkan konsep modular. Begin End.B:Integer). Parameter yang digunakan disebut Parameter Nilai. Parameter ini disebut Parameter Perubah(variabel).

banyak : word. VAL Bentuk penulisan: Val(s:String. INSERT Bentuk penulisan : Insert(Source:String. Fungsi akan secara langsung memberikan hasil sesuai dengan tipe yang dideklarasikannya.Index:Integer. STR Bentuk penulisan : Str(s:String.Var Code) Untuk merubah nilai numerik (X) menjadi nilai string (S). FILLCHR Bentuk penulisan : FILLCHR(x. Prosedur Standard Prosedur dibagi menjadi dua kelompok.Var S:String.Var Code) Untuk mengkonversikan suatu nilai string (s) menjadi nilai numerik (V). FUNGSI Perbedaan fungsi dengan procedure : Pada fungsi.Index:Integer) Digunakan untuk menyisipi suatu string (Source) ke nilai string yang lainnya (S) mulai dar posisi yang ditunjukkan oleh nilai (Index).Count:Integer) Digunakan untuk menghapus/membuang sejumlah karakter (Count) mulai posisi tertentu (index) dari suatu nilai String(A). DELETE Bentuk penulisan : DELETE(Var A:string. yaitu prosedur yang didefinisikan sendiri oleh pemakai dan prosedur standard (Standard Procedure) ang telah tersedia dalam sistem Pascal dan kita tinggal memakainnya. sedangkan pada prosedur nilai yang dikirim balik terdapat pada parameter acuan/nyata. nilai yang dikirim balik terdapat pada nama fungsinya.Algoritma & Pemrograman I(Pascal) by:chairuddin Procedure dipanggil menggunakan Nama Procedure yang diikuti olah sejumlah parameter. 79 . Contoh prosedur standard EXIT Digunakan untuk keluar dari suatu blox HALT Digunakan untuk menghentikan proses di program bagian maupun di program utama MOVE Untuk menyalin suatu blok sejumlah ‘banyak’ byte memori dari blok dimulai byte pertama ‘sumber’ dan disalinkan ke byte pertama ‘tujuan’.V.ch) Digunakan untuk mengisi sejumlah byte nilai ke dalam suatu variabel.

Pos Bentuk penulisan : Pos(Substr : string. untuk menyalin sejumlah karakter (Count) mulai dari posisi yang ditunjuk (Index) dari nilai string (s). Mendeklarasikan fungsi FUNCTION Nama_Fungsi(daftar_parameter ):Tipe_fungsi.s3.s : string):Byte. untuk mencari posisi letak dari suatu nilai string (substr) yang ada di dalam nilai string yang lain (S). Pengiriman parameter secara acuan maka akan mengakibatkan perubahan nilai parameter di fungsi. Parameter dalam fungsi Parameter Nilai. Length Bentuk penulisan: Length(S : string):Integer. untuk menghitung panjang atau jumlah karakter yang ada di nilai string.s2.sn].…. juga mengubah nilai parameter di modul yang mengirimkannya.s3….b:integer):integer.. Pascal memiliki fungsi-fungsi standard. Contoh penulisannya : Function hitung(var a. Concat Bentuk penulisan: Concat(s1 [.sn. Contoh Salinlah program berikut. Begin 80 .PAS Program contoh_pnilai.B:Integer). antara lain : Copy Bentuk penulisan: Copy(s:string.string):string. Fungsi Standard Disamping jenis fungsi yang didefinisikan sendiri oleh pemakai.Algoritma & Pemrograman I(Pascal) by:chairuddin sehingga dapat langsung dicetak hasilnya. Var C : Integer. Parameter Acuan. untuk merangkai beberapa nilai string yang ditunjukkan oleh nilai string s1. Contoh Penulisannya : Function hitung(a. yaitu parameter dalam fungsi yang dikirim secara nilai.b:integer):integer.Count:Integer):String.s2. Begin End. Uses crt.Index:integer. dan simpan dengan nama CONTOH91. PROCEDURE Tambah(A.Integer. Nilai yang dihasilkan adalah Byte.

End. dan simpan dengan nama CONTOH93.B. Readln(Y). Begin C:=A+B. Begin Write(' Inputkan Nilai X : ').Z : Integer. Var X.Z). Readln(X). Salinlah program berikut. Tambah(X.Y)).' = '.Y. FUNCTION Tambah(A.Algoritma & Pemrograman I(Pascal) by:chairuddin C:=A+B. End. Begin Tambah:=A+B. End. Readln(Y).X.' + '.C:Integer). PROCEDURE Tambah(VAR A. 81 . Uses crt.Y.Y. Begin Clrscr. End. Write( ' X = '). Var X.Tambah(X. Writeln(X. Writeln( 'Hasil Kali '. Write(' Inputkan Nilai Y : ').Y).' Y = '.C).Z). dan simpan dengan nama CONTOH92. End. Var X.PAS Uses crt. Salinlah program berikut. Writeln.PAS Program contoh_pVar.'Z = '.Y : Integer. Y:=7. Write( ' Y = '). Writeln( 'X = '. Tambah (X.B:Integer):integer. Readln(X).Y: Integer. Begin X:=15.Y.

82 . Bar1. writeln(' 1: Edit file teks'). begin writeln('Pilihan Menu'). Contoh : STMIK StMiK Ket : Parameter yang digunakan adalah Kalimat. writeln(' 3: Simpan file teks). Procedure Sederhana Procedure sederhana dipakai untuk menampilkan pilihan menu. Simpan dengan nama LATIH91. Bar2 dan Warna Background. writeln(' 4: Kopi file teks’). menjadi huruf besar dan huruf kecil secara bergantian. Latihan : Buatlah program dengan prosedur untuk menghasilkan output sebagai berikut: Ket : Parameter yang digunakan adalah Kol1. procedure (module) tersebut terdiri atas beberapa pernyataan (statements). Setiap procedure mempunyai nama.Algoritma & Pemrograman I(Pascal) by:chairuddin Readln. writeln(' 2: buka file teks ').PAS a. Kol2. begin : pernyataan : end. Seperti contoh berikut: SYNTAX PROCEDURE NAMA.PAS Buatlah program dengan fungsi untuk mengubah sejumlah string yang diinputkan (panjang string maksimal 30 char). writeln(' 5: Cetak file teks’) end. yang dikelompokkan dengan kata kunci begin dan end . dsb. End. Simpan dengan nama LATIH92. Contoh a : PROCEDURE DISPLAY_MENU.

jarak.Algoritma & Pemrograman I(Pascal) by:chairuddin Contoh berikut adalah program untuk menampilkan menu: Contoh b. begin writeln('memanggil prosedur'). 83 . begin writeln('Pilihan Menu'). begin write('Masukkan kecepatan dalam km/jam: '). writeln(' 4: Kopi file teks’). kecepatan : real. writeln(' 5: Cetak file teks’) end. procedure tampilan_judul. writeln(' 2: buka file teks '). writeln('kembali dari prosedur') end. uses wincrt. Contoh c : program SIMPLE_PROCEDURE. PROCEDURE DISPLAY_MENU. var waktu. writeln(' 3: Simpan file teks). program PROC1 . uses wincrt. procedure masukkan_data. end. end. writeln(' 1: Edit file teks'). begin writeln('Menghitung jarak tempuh berdasar pada'). DISPLAY_MENU. writeln('dua variabel yaitu: kecepatan dan waktu').

tampilkan_hasil end. procedure hitung_jarak.Algoritma & Pemrograman I(Pascal) by:chairuddin readln(kecepatan). uses wincrt. write('Masukkan waktu dalam jam : ‘).dan kecepatan adalah berlaku untuk semua procedure sehingga disebut variabel GLOBAL. begin writeln('jarak yang ditempuh adalah '. Contoh d. begin {program utama} tampilan_judul. jarak. program Kalkulator_sederhana. 84 . Output program : Menghitung jarak tempuh berdasar pada dua variabel yaitu: kecepatan dan waktu Masukkan kecepatan dalam km/jam: 30 Masukkan waktu dalam jam : 2 jarak yang ditempuh adalah 60 km catatan : ketiga variabel waktu. hitung_jarak.') end. masukkan_data.' km. begin jarak:= kecepatan *waktu end. procedure tampilkan_hasil.jarak:5:2. readln(time) end.

procedure PEMBAGIAN. 85 . begin hasil := angka_1 . procedure PENJUMLAHAN. readln(operator). readln(angka_1). begin salah_tanda:= FALSE. write(' Masukkan angka pertama : ').angka_2 end. begin writeln('MASUKKAN DUA ANGKA DAN OPERATOR'). procedure MASUKAN. procedure PERKALIAN. begin hasil := angka_1 * angka_2 end. write(' Masukkan operatornya : '). hasil : real. begin hasil := angka_1 + angka_2 end. operator : char. angka_2. procedure PENGURANGAN. writeln(' angka_1 operator angka_2').Algoritma & Pemrograman I(Pascal) by:chairuddin var salah_tanda : boolean. begin hasil := angka_1 / angka_2 end. write(' Masukkan angka kedua : '). angka_1. readln(angka_2) end.

kecuali alfa dapat mengakses B dan C. b.angka_2:4:2.operator.'='.hasil:5:2). Variabel Lokal Suatu procedure dapat mendeklarasikan variabelnya sendiri. 2. '+': PENJUMLAHAN. Contoh: 86 .' '. Variabel-variabel tersebut dinamakan variabel local (local variable) Keterangan : • Semua bisa mengakses variabel global A. Jangkauan Variabel a. G. mempergunakan dan memodifikasinya. '/': PEMBAGIAN. else salah_tanda := TRUE end. • beta_1 dan beta_2 dapat mengakses betamax dan betako. end. F. Variabel Global Variabel global adalah variabel yang didefinisikan/terletak pada program utama.Algoritma & Pemrograman I(Pascal) by:chairuddin MASUKAN. '-': PENGURANGAN. • beta_1 tidak dapat mengakses variabel boboho. case operator of '*': PERKALIAN. dimana semua sub-program bisa mengakses. • Tdak ada subprogram. Variabel-variabel itu hanya bekerja pada procedure dimana mereka dideklarasikan. dan beta_2 tidak dapat mengakses bobo. • Procedure beta dapat mengakses alfa dan beta. if salah_tanda then writeln('Maaf Tanda Operatornya Salah') else writeln(angka_1:4:2. • Pada procedure alfa definisi global variabel A diganti dengan variabel lokal.' '.

nama procedure diikuti oleh sepasang (). readln(nomor1. Mendeklarasikan variabel di dalam procedure • Variabel yang diterima oleh procedure diapit dengan tanda kurung (). • Variabel ditulis dalam tingkat yang sama seperti dalam prosedur terkait. Hal ini berlaku juga untuk FUNCTION (fungsi). tambah end.Algoritma & Pemrograman I(Pascal) by:chairuddin program LOKAL_VARIABEL. 87 . bila kita memiliki dua/lebih subprogram masing. hasil) end. nomor2 : integer. untuk mengatasi masalah chicken-and-the-egg. begin {program utama} writeln(‘Masukkan dua angka bulat dengan spasi’). a. var nomor1. b. • Deklarasi dari variabel terletak diantara nama procedure dan semi-colon. Memanggil procedure and menyampaikan variabel (atau nilai) ke procedure • Ketika procedure dipanggil. c.masing bisa memanggil yang lain dengan referensi forward. var hasil:integer. Penggunaan Forward Dari hal di atas kita tahu bahwa suatu subprogram dapat diakses oleh subprogram apabila sudah didefinisikan terlebih dahulu. uses wincrt. nomor2). 3. writeln(‘hasil adalah'. Procedure Yang Menggunakan Argumen Procedure juga bisa memakai variabel (data) untuk bekerja ketika dipanggil.{hasil merupakan milik procedure tambah LOCAL VAR} begin hasil := nomor1 + nomor2. • Variabel yang dipanggil diletakkan didalam tanda kurung tersebut. {ini bisa dipanggil dari mana-mana GLOBAL VAR} procedure tambah. Ada pengecualian.

Algoritma & Pemrograman I(Pascal)

by:chairuddin

<!--[if !supportLineBreakNewLine]--> <!--[endif]--> Contoh. Perhatikan contoh program berikut, program JUMLAH; uses wincrt; var nomor1, nomor2 : integer; procedure CALC_ANSWER ( kesatu, kedua : integer ); var hasil : integer; begin hasil := kesatu + kedua; writeln('hasil adalah ', hasil ) end; begin writeln('masukkan dua angka dalam spasi'); readln( nomor1, nomor2 ); CALC_ANSWER( nomor1, nomor2) end. 4. Procedure Yang Memakai Parameter program TestNilai; uses wincrt; var x, y : integer; procedure NoEffect ( x, y : integer ); begin x := y; y := 0; writeln( x, y ) end; begin x := 1; y := 2; writeln( x, y );

88

Algoritma & Pemrograman I(Pascal)

by:chairuddin

NoEffect( x, y ); writeln( x, y ) end. Output dari Testnilai adalah: 12 20 12

a. Parameter Nilai (pass by value) Dalam program di atas, ketika variabel disampaikan ke procedure, procedure bekerja dengan copy dari variabel asli. Nilai dari variabel asli yang disampaikan ke procedure tidak diubah. Procedure hanya menggantikan variabel asli dengan variabel yang ada di procedure , tetapi tidak menggantikan nilai dari variabel asli. Ketika procedure bekerja dengan copy dari variabel, maka dikenal dengan parameter nilai (pass by value). Perhatikan contoh berikut: program Parameter_Nilai; uses wincrt; var x : byte; procedure foo(a : byte); begin writeln(a); {15} a:=10; writeln(a); {10} end; begin x:=15; writeln(x); {15} foo(x); writeln(x); {tetap 10} end. Outputnya :

89

Algoritma & Pemrograman I(Pascal)

by:chairuddin

15 15 10 15 b. Parameter Variabel (pass by reference) Procedure bisa juga dipakai untuk mengubah nilai dari variabel asli yang dipanggil oleh procedure. Untuk menggambarkannya, kita bisa lihat pada contoh program modifikasi program sebelumnya. Procedure ini menerima dua nilai integer dan menggantikan nilai aslinya. Untuk membuat procedure menggunakan parameter variabel (pass by reference) dengan menggunakan kata kunci var. program Parameter_Variabel; uses wincrt; var x : byte; procedure foo(var a : byte); begin writeln(a); {15} a:=10; writeln(a); {10} end; begin x:=15; writeln(x); {15} foo(x); writeln(x); {berubah 15} end. Outputnya: Ketika program dijalankan, akan tercetak di layar 15 15 10 10

90

ketika ADD_TWO dieksekusi. nilai2 : integer ) : integer. maka. dia menghitung nilai yang terdapat di dalamnya (dalam hal ini 30). yaitu hasil akhirnya. Function (fungsi) juga memakai data. tetapi mempunyai kemampuan untuk menghasilkan nilai pada procedure atau program yang memanggilnya. 20 ). Function – Suatu Procedure Khusus Yang Menghasilkan Nilai Procedure memakai data atau variabel ketika dieksekusi. result := ADD_TWO( 10. contoh : function ADD_TWO ( nilai1. begin ADD_TWO := nilai1 + nilai2 end. Suatu function : • Dimulai dengan kata kunci function • Strukturnya sama dengan sebuah procedure • Didalam fungsi. begin : pernyataan : end. Contoh 91 . Function digunakan untuk melakukan operasi matematika seperti perhitungan faktorial. contoh berikut menggambarkan bagaimana memanggil function. suatu nilai dihasilkan dengan nama function • Suatu function dipakai pada sisi sebelah kanan pada suatu ekspresi • Hanya menghasilkan tipe data sederhana SYNTAX function Nama (deklarasi variabel):tipe_data_hasil.Algoritma & Pemrograman I(Pascal) by:chairuddin <!--[if !supportLineBreakNewLine]--> <!--[endif]--> 5.

answer) end.' adalah '. => Perlu Pemanggilan Ke-2 Ke-2 . readln(angka). function KUBIK( x : integer ) : integer. n=1. Uses wincrt. => Perlu Pemanggilan Ke-3 Ke-3 . 92 . Lihat contoh tentang faktorial suatu bilangan di bawah ini.maka Pemanggilan Ke-1. jawaban := KUBIK ( number ). Factorial:=3*factorial(2). Contoh. Factorial:=4*factorial(3). 6. Program faktorial. begin if n<2> Penjelasan Jika x= 5. begin KUBIK := x * x * x end. Factorial:=1. n=4. Factorial:=2*factorial(1). n=2. Rekursi dan Iterasi Subprogram bisa memanggil dirinya (Recursive Call) dengan catatan bahwa memiliki syarat penghentian operasi (iterasi). n=3.Algoritma & Pemrograman I(Pascal) by:chairuddin program CONTOH_FUNGSI. => Perlu Pemanggilan Ke-4 Ke-4. jawaban : integer. Factorial:=5*factorial(4). uses wincrt. begin writeln('Masukkan angka. sehingga perlu dilakukan kehati-hatian dalam penulisannya.'). var angka. writeln('Hasil pangkat tiga dari '. Var x : integer.number. => Perlu Pemanggilan Ke-5 Ke-5. n=5. function factorial (n:integer):integer.

(=2) Ke-3 menjadi: Factorial:=3*2. (=24) Ke-1 menjadi: Factorial:=5*24. (=6) Ke-2 menjadi: Factorial:=4*6. (=120 93 .Algoritma & Pemrograman I(Pascal) by:chairuddin Ke-4 menjadi : Factorial:=2*1.

end. Misalkan kita ingin mengganti judul tipe data integer dengan bilanganBulat. Dari contoh di atas. Kita akan mendefinisikannya menjadi:var Nama: String[80]. kita kembali ke pembahasan record. Untuk mendeklarasikan record. kode dalam Pascal adalah sebagai berikut:recordMahasiswa. Mendeklarasikan Record Masih ingat kuliah mengenai tipe data? Dalam Pascal. apabila kita ingin mengakses nilai field nama dari record recordMahasiswa. diikuti dengan tanda titik (. kita definisikan ini dengan: type bilanganBulat = integer. Nah. sekarang kalau memori Anda sudah segar kembali. diikuti dengan daftar field dan diakhiri dengan end. Untuk pendefinisian variabel kita menggunakan titik dua (:). dalam Pascal. Dari kode di atas kita memberitahukan ke Pascal bahwa kita akan memakai variabel Nama yang tipe datanya string dan kita alokasikan panjang stringnya 80 karakter. kita dimungkinkan untuk memiliki judul tipe data yang kita definisikan sendiri. kita mendeklarasikan record ke dalam variabel seperti ini: var recordMahasiswa: recMhs. nama : string[80]. type recMhs = record. Perhatikan contoh program berikut 94 . kitaingin memakai variabel dengan nama Nama untuk dimasukkan nilai nama-nama mahasiswa. Sebagai contoh. kita memakai reserved word record.Algoritma & Pemrograman I(Pascal) by:chairuddin Record Record adalah sebuah tipe data yang mengumpulkan beberapa item data di mana masing-masing tipe data dari item data ini berbeda-beda. sedangkan pendefinisian type kita menggunakan sama dengan (=). semua variabel harus dideklarasikan sebelum bisa dipakai. nilai : integer. NPM : string[8]. Oke. Menggunakan Record Menggunakan/ mengakses nilai field dari record adalah menggunakan nama variabel yang sudah dideklarasikan.) dan nama field. Untuk bisa memakai record ini. Masing-masing item data ini bisa disebut dengan field. Dalam Pascal. Berikut adalah contoh dari deklarasi sebuah record. Perhatikan beda pendefinisian variabel dan pendefinisian type.nama:=’Suliso Bams Duyodhono’.

nilai). 95 .recordMahasiswa.recordMahasiswa. ReadLn(nilai). Program di atas akan memberikan output seperti berikut. begin Write(’Masukkan nama mahasiswa ‘). NPM : string[8]. ReadLn(recordMahasiswa. Write(’Nilainya berapa ‘). begin with recordMahasiswa do begin Write(’Masukkan nama mahasiswa ‘). end.nama). ReadLn(recordMahasiswa. Oleh karena itu. Sehingga kode program di atas bisa disingkat menjadi berikut: type recMhs = record nama : string[80]. WriteLn(’Nilainya adalah ‘. var recordMahasiswa: recMhs. ReadLn(NPM).NPM). WriteLn(’NPM mahasiswa ini adalah ‘.NPM).nilai). var recordMahasiswa: recMhs. Write(’Nilainya berapa ‘). Write(’Masukkan NPM ‘). WriteLn(’NPM mahasiswa ini adalah ‘. end. ReadLn(recordMahasiswa. Masukkan nama mahasiswa Suliso Bams Duyodhono Masukkan NPM 11207007 Nilainya berapa 45 Nama mahasiswa yang Anda masukkan adalah Suliso Bams Duyodhono NPM mahasiswa ini adalah 11207007 Nilainya adalah 45 Mengetik nama variabel record berulang-ulang seperti tampak dalam contoh di atas mungkin bisa melelahkan untuk programmer. WriteLn(’Nilainya adalah ‘.nama). end.recordMahasiswa. nilai : integer. dalam Pascal ada statement with yang bisa membantu memudahkan dan menyingkat penulisan kode program yang menggunakan record. WriteLn(’Nama mahasiswa yang Anda masukkan adalah ‘. WriteLn(’Nama mahasiswa yang Anda masukkan adalah ‘.NPM).nama).nilai).Algoritma & Pemrograman I(Pascal) by:chairuddin type recMhs = record nama : string[80]. nilai : integer. Write(’Masukkan NPM ‘). ReadLn(nama). NPM : string[8].

yaitu : 1.1. end. nama file). File tidak bertipe Selain kita akan mempelajari tentang bagaimana membuat sebuah file atau menambahkan isi suatu file. Mengubah nama file 5. File bertipe 3. Dengan : NmVar : Nama variabel file text 2. File Text 2. Mendeklarasikan variabel file Var NmVar:TEXT. Menggunakan parameter 2. Menghubungkan variabel file dengan nama file Assign (NmVar. Menghapus file 4. File pada Pascal dikenal dalam 3 jenis. File Text 1. Membuat file text Urutan Prosesnya : 1. yang dapat ditambah atau dikurangi jika dibutuhkan. Dengan : NmVar : Nama variabel file text 96 . Pointer file adalah bagian yang menunjuk ke komponen file yang akan diakses (dibaca atau direkam) untuk keperluan pengaksesan file (akan dibahas kemudian).2. yaitu : 1. Isi filenya dapat dilihat oleh perintah dos type atau editor text 1. Mencari file 7. Mengenai tanggal dan waktu file 6. Memberikan directory file 1. Merupakan komponen yang bertipe data sama. FILE (BERKAS) File adalah kumpulan byte-byte yang disimpan dalam media penyimpanan. Mengecek keberadaan file 8.Algoritma & Pemrograman I(Pascal) by:chairuddin end. kita dapat pula melakukan manipulasi File. Karakteristik • • • • • Berisi data karakter ASCII Tiap record boleh memiliki panjang yang bervariasi Setiap record diakhiri tanda EOL (end of Line) Hanya dapat diakses secara sequensial (berurutan). yang jumlahnya tidak tentu. Mengenai Atribut File 3.

’Contoh file teks’). End. Membuat file text aktif Rewrite(NmVar). ditulis dalam bentuk string.’Hallo… ini program pertamaku!’).’---------------------------------------’). Membaca File Text  Urutan Prosesnya : 1. 2.     1. Begin Clrscr. atau bisa juga berupa isi suatu variabel 5.3. Var var_teks:TEXT. Writeln(var_teks. Dengan: NmVar : Nama variabel file text Contoh : Program membuat_file_text_namafile_HALLO_TXT. …) Dengan : NmVar : Nama variabel file text Data item : text / string yang akan dituliskan. data item1. Writeln(var_teks. Mendeklarasikan variabel file Var NmVar:TEXT.’Hallo. Writeln(var_teks. data item 2. Close(var_teks). format 8:3 penamaan dos. Menghubungkan variabel file dengan nama file Assign (NmVar. Assign(var_teks. Dengan : NmVar : Nama variabel file text yang sudah di.Algoritma & Pemrograman I(Pascal) by:chairuddin nama file : Nama file dalam bentuk string. Uses crt. nama file) 3.txt’). Menulis ke dalam file text Write / writeln (NmVar.assign 4. Rewrite(var_teks). Menutup file Close (NmVar). 3. Membaca isi file dan menampilkannya di layar 97 .

Menutup file Close (NmVar). …) 5. … ).Algoritma & Pemrograman I(Pascal) by:chairuddin While not eof (NmVar) do Begin Read / readln ( NmVar. data item1. End.   Contoh : Program membaca_file_HALLO_TXT. Assign(var_teks. Uses crt. Write / writeln ( data item1.’Hallo. Menambah isi file Append(NmVar) 4. data item 2. … ). While not eof (var_teks) do Begin Readln ( var_teks.4. data item 2. Pesan:string. data item 2. data item 1. 98 . End. Menghubungkan variabel file dengan nama file Assign (NmVar. End. Begin Clrscr. Reset(var_teks). 2. 4. Mendeklarasikan variabel file Var NmVar:TEXT. Menambah isi File Text  Urutan Prosesnya : 1. Menampilkannya di layar Write / writeln (NmVar. 1. Var var_teks:TEXT. nama file) 3. Writeln (pesan). Menutup file Close (NmVar). pesan ). Close(var_teks).txt’).

Karakteristik 99 . Uses crt. atau mesti kita selipkan pencetakan spasi diantara dua variabel yang akan dibaca. Assign(var_teks. 1. Jika sebelum membaca data (atau dengan kata lain tidak ada datanya) pointer pascal menemukan EOL / EOF. Append(var_teks). kadangkala perlu kita deklarasikan secara jelas jumlah byte yang disediakan untuk suatu variabel. Pesan:string. ♦ Variabel berjenis Char Yang dibaca hanya satu karakter saja. Var var_teks:TEXT. EOF (End of File) atau TAB. ♦ Variabel berjenis string Karakter-karakter file aakan dibaca sampai ditemui EOL / EOF tercapai atau lebih besar dari ukuran stringnya. antara yang dituliskan dengan metode WRITE/WRITELN dan dengan yang akan kita baca. Writeln(var_teks. Metode Pembacaan file oleh Turbo Pascal Menggunakan statemen operasi READ / READLN Bergantung pada tipe data variabel yang digunakannya : ♦ Variabel berjenis numerik (byte. Writeln(var_teks.5. Jika string yang dibaca oleh variabel numerik tidak sah.’-----------------------------------------’). EOL (end of line).integer.’Hallo.txt!’). maka variabel tersebut akan diisi NOL. real) Tanda batas akhir pembacaan variabel jika ditemui blank(spasi).’Ini penambahan data file hallo. Perlu diperhatikan kesesuaian tipe data.Algoritma & Pemrograman I(Pascal) by:chairuddin   Contoh : Program menambah_isi_file_HALLO_TXT. Writeln(var_teks. End.’Contoh file teks’). 2. Agar pembacaan file sesuai dengan yang diharapkan. Close(var_teks). maka terjadi kesalahan I/O : Invalid numerik format.1.txt’). Begin Clrscr. File Bertipe 2.

=> untuk membuat Reset(NmVar). data item 2. Membuat /membuka file bertipe Rewrite(NmVar). Dengan : NmVar : Nama variabel file bertipe TypeVariabel : Char. Kode :1. format 8:3 penamaan dos. Dapat diakses secara random.. elemen-elemennya bisa dibaca secara acak yang keberapa saja. 3. nama file). Alamat :string[30]. real. DaftarKonsumen = Array [1. variabel tipe array. => untuk membuka 4. Membuat file Bertipe Urutan Prosesnya : 1. Untuk satu file satu tipe elemen.. Bisa saja memiliki berbagai tipe asalkan dikelompokkan dalam RECORD. …) => untuk menulis Read (NmVar.100] of Datakonsumen .. data item1. Menulis / membaca file Bertipe Write (NmVar. Menghubungkan variabel file dengan nama file Assign (NmVar. FileJumlah : File of integer. Dengan : NmVar : Nama variabel file bertipe nama file : Nama file dalam bentuk string. Mendeklarasikan variabel file Var NmVar:FILE OF TypeVariabel. data item 2. Contoh : Type DaftarBarang = Array [1. FileKode : File of Char. FileData : File of DataKonsumen. 2. variabel array tipe record.Algoritma & Pemrograman I(Pascal) by:chairuddin • • • Berisi data format biner. variabel tipe RECORD. ukurannya lebih kecil dari file teks. 2. ditulis dalam bentuk string. …) => untuk membaca 100 . DataKonsumen = RECORD Nama :string[15].3.100] of integer. Tiap record memiliki tipe dan panjang yang sama. data item1.2. Var FileBarang : File of Daftarbarang.

Untuk menunjuk nomor record (nomor record dimulai dari record 0) Contoh : Posisi:=Filepos(Varfile). {pointer akan menunjuk posisi record ke-4. 5. Untuk menghapus sebagian file Contoh : Seek(varfile. End. Menutup file Close (NmVar).dec(NoRec) If NoRec >=filesize(VarFile) then Writeln(‘Nomor record terlalu besar’). EOF(VarFile). dengan nomor record 3} FilePOS (VarFile). Untuk menunjuk akhir dari file. Mengukur besar file bertipe.. Begin Write(‘input nomor record yang ingin dilihat’). Filesize(VarFile). end. data item 2 dan seterusnya.NoRec). dan hasilnya diletakkan pada variabel posisi}. Variabelnya harus sama dengan deklarasi tipe file-nya. Else begin seek(VarFile. {pointer menuju record nomor 5} Truncate(VarFile). tidak bisa dituliskan secara langsung dalam bentuk konstanta. Fungsi Writeln dan Readln tidak dapat digunakan pada file bertipe. harus berupa variabel.Algoritma & Pemrograman I(Pascal) by:chairuddin Data item1. {menghapus mulai record nomor 5 sampai habis } 101 .5). Menempatkan pointer ke posisi record ke-N Contoh : Seek(namafile..N).data). Truncate(VarFile).4). {Pointer menuju nomor record yang dimaksud} Read(VarFile. 2.readln(NoRec). {mengetahui posisi pointer aktual di record mana. . yaitu mengetahui jumlah record yang berada dalam suatu file (jika file baru dibuat = 0) Contoh : . Fungsi-fungsi yang digunakan dalam file Bertipe Seek (VarFile.3.

End.’n’.readln(Nama). Alamat : string[20]. I:=I+1. If oke in [‘Y’. Assign (vfilemhs.recmhs).readln(oke). Type mhs = Record NPM : string[8]. Writeln. With recmhs do Begin Write(‘NPM :’). repeat Write(‘Save file…(Y/N)?’). I : integer.’y’. Recmhs : mhs.Algoritma & Pemrograman I(Pascal) by:chairuddin Contoh Program File Bertipe : Program menambah_dan_membuat_file_bertipe Uses crt.’N’]. Write(‘NPM:’). Write(vfilemhs.dat’). I:=filesize(vfilemhs). Begin Clrscr. Write(‘Alamat :’).readln(NPM).{$I+} if IOResult <>0 then rewrite(vfilemhs). End. 102 . While NPM <>’ ‘ do begin Write(‘Nama :’). Close(vfilemhs).readln(Alamat).’Dataku.I). {$I-}reset(vfilemhs). End. Type mhs = Record NPM : string[8]. Program_Melihat_file_bertipe Uses crt. End. Nama: string[25]. Oke : char.readln(NPM). Var vfilemhs : FILE of mhs. Until oke in [‘Y’. Nama: string[25].’y’] then Begin Seek(vfilemhs. End.

With recmhs Begin For I:=1 to filesize(vfilemhs) do Begin Seek(vfilemhs). Read(vfilemhs). 3. Membuat file Tidak Bertipe Urutan Prosesnya : 1. Menghubungkan variabel file dengan nama file Assign (NmVar.’ ‘. Writeln(‘----------------------------------------------------------------------‘). End.’dataku. Assign(vfilemhs. Mendeklarasikan variabel file Var NmVar:FILE. Recmhs:mhs. ditulis 103 .2. Begin Clrscr. nama file). 2.Nama:25.I-1). End.Alamat:20).dat’). Dengan : NmVar : Nama variabel file bertipe nama file : Nama file dalam bentuk string. Writeln(‘No. Writeln(‘----------------------------------------------------------------------‘). 3. Writeln(I:2.Algoritma & Pemrograman I(Pascal) by:chairuddin Alamat : string[20]. Close(vfilemhs). NPM Nama Alamat ‘). End. format 8:3 penamaan dos. File Tidak Bertipe 3. End. Reset(vfilemhs). I: integer.recmhs). Digunakan untuk tugas-tugas yang berhubungan dengan file biner yang dapat diproses tanpa mengenal jenis recordnya. Karakteristik • • File yang mengakses langsung ke media penyimpanan tanpa adanya pengenalan record dan sebagainya.1.NPM:8. Var vfilemhs: FILE of mhs.

nfile1.10240] of char. Buffer dapat berupa suatu variabel dengan tipe apa saja sesuai dengan ukuran data yang akan ditulis di file. Read (NmVar.nfile2 :string. Defaultnya 128 Byte. data item1.jumtulis]) => untuk menulis Dengan : Buffer : daerah penyimpanan data yang akan ditulis ke dalam file.   4. Jumtulis : suatu parameter yang tidak tetap yang boleh digunakan dan boleh juga tidak digunakan.. boleh ditulis. Membuka file bertipe Rewrite(NmVar[. dan besarnya kita tentukan sendiri. Jumlah : jumlah data yang akan ditulis ke file dalam ukuran byte. bila digunakan akan berisi jumlah byte yang dapat ditulis ke file.brec]). Hatulis :word. Contoh File tidak bertipe :: Program menyalin_file Uses crt. Buf :array [1. filetuju :file. data item 2. dapat merupakan suatu variabel dengan tipe word. opsional. 3. Jumlah : jumlah byte yang akan dibaca dari file. Jumlah harus sama dengan besar buffer yang diberikan dan tidak boleh lebih dari 64 Kilobyte.Algoritma & Pemrograman I(Pascal) by:chairuddin dalam bentuk string. Besar :real. Jumbaca : merupakan variabel yang berisi laporan jumlah byte yang dapat dibaca dari file. 104 . …) => untuk membaca Dengan : Buffer : daerah penyimpanan yang tipe variabelnya disesuaikan dengan jumlah data yang dibaca. => untuk membuat Reset(NmVar[.brec]). Var Fileasal. Menulis / membaca file tidak Bertipe Blockwrite (NmVar. jumlah[. Buffer. Hbaca. => untuk membuka Dengan : Brec : Menunjukkan besar file dalam byte. boleh tidak.

read. Close (fileasal). Halt(0).1). If IOResult <>0 then Begin Writeln(‘File asal tidak ada !’).nfile2). write (‘Input nama file tujuan :’). {$I+} Repeat Blockread(fileasal.10240. If hbaca <> htulis then  Begin Writeln(‘Tujuan tidak bisa menampung besar file’). Halt(0). Halt(0). append. seek Agar program tidak berhenti. Close (filetuju).hbaca.besar:10:0). If IOResult <>0 then Begin Writeln(‘File tujuan tidak bisa dibuat !’). End.buf.readln(nfile2). Until hbaca <>10240. End.readln(nfile1). End. Besar:=besar + hbaca. Writeln (‘Besar file yang dipindahkan :‘. 105 . Rewrite(filetuju. End.hbaca). writeln. write (‘Input nama file asal :’).Algoritma & Pemrograman I(Pascal) by:chairuddin Begin besar:=0.buf. readln. 4. Menangani Kesalahan I/O pada File Beberapa operasi pada file yang dapat mengalami kesalahan I/O : Reset. write. maka harus digunakan Compiler Directive Fungsi I/O result Untuk pengecekan I/O file tersebut.htulis). clrscr. {$I-} Assign(fileasal. Assign(filetuju. close.nfile1). Blockwrite(filetuju.1). rewrite. Reset(fileasal.

Parameter Parameter disebut juga command tail. var2. Contoh : program scan.exe Biasanya dituliskan pada prompt : C:\scan a: /clean String ‘a:’ dan string ‘/clean’ merupakan parameter. merupakan informasi tambahan bagi program utama yang dapat diketikkan sesuai keperluan. {$I+} fileada := IOResult = 0.1.Algoritma & Pemrograman I(Pascal) by:chairuddin Bentuk Umum : {$ Kode Kondisi} Dengan : • Kode : Karakter kode. … write (VarFile. end. • Kondisi : OFF (-) / ON (+) • Secara default {$I+} => ON • I/O Result => bernilai 0 jika operasi berhasil • Isi nilai selalu dihapus sendiri setiap kali dipanggil • Penulisannya mengapit operasi-operasi yang rentan kesalahan Contoh : … Assign(VarFile.dat’). ‘data. 106 . Manipulasi File 5. yang akan membuat scan program ke drive a dan kemudian menjalankan prosedur CLEAN. {$I-} Reset(VarFile). …). untuk fungsi I/O result adalah I. … { Kondisi bila file tidak ada } { Buat file baru } 5. untuk menjalankan rutin khusus dalam program tersebut. … close(VarFile). var1. if fileada then begin writeln(‘file sudah ada…’). … end else begin rewrite(VarFile).

Algoritma & Pemrograman I(Pascal) by:chairuddin Ada dua perintah untuk membuat parameter : ParamCount : untuk mengetahui jumlah parameter yang diberikan Bentuk Umumnya : Var_word := ParamCount. SetFAttr (Set File Atribut) : Mengeset atribut file. 5.2. Dengan : Nm_var : nama suatu file yang telah di-assign dengan tipe apa saja. ParamString : untuk mengambil parameter tersebut dalam bentuk string Bentuk Umumnya : Var_string := ParamString(index). Attr : Bilangan atribut yang akan diambil/diketahui dari suatu file. file tersebut harus di-assign terlebih dahulu.’ pada deklarasi unit. Bentuk umum perintahnya : 107 . sebagai berikut : Lambang ReadOnly Hidden SysFile VolumeId Directory Archive Angka  1 2 4 8 16 32 Ada 2 perintah yang berhubungan dengan atribut file. 2. Menghapus File Untuk menghapus suatu file. maka perlu menggunakan ‘Uses DOS’ atau ‘Uses Windows. Karena bit –nya merupakan kode biner. Atribut File Atribut file adalah satu byte data yang berisi keterangan dari suatu file. File yang akan dilihat atau diset atributnya mesti di-assign terlebih dahulu.attr). Bentuk umumnya : GetFAttr(nm_var.3. yaitu : GetFAttr (Get File Atribut) : Mengambil informasi atribut file. 5. Kedua perintah ini berada pada unit DOS dan WINDOWS Turbo Pascal. Catatan : 1. maka dibuat lambang untuk mewakili bit-bit tersebut. Bentuk umumnya : GetFAttr(nm_var.attr).

Begin Clrscr. {$I+} if IOResult <> 0 then writeln(‘Gagal mengubah nama’). Begin Clrscr. Turbo Pascal menyediakan variabel khusus bernama DateTime dengan tipe data record dengan field-field sebagai berikut : Type datetime = record.paramstr(1)). Uses crt. else writeln(‘Menghapus sukses …’). Var f:file. file tersebut harus di-assign terlebih dahulu. Uses crt. end.nm_baru). {$I-} erase(f). Assign(f. {$I+} if IOResult <> 0 then writeln(‘Gagal mengapus’).5.paramstr(1)). 5. Var f:file. 5.paramstr(1)). end. Tanggal dan waktu File Guna memanipulasi tanggal dan waktu file. Assign(f. Write( ‘File ‘. 108 . else writeln(‘Mengubah nama menjadi ’. Mengubah nama file Untuk mengubah nama file. Write( ‘File ‘.paramstr(1)). Bentuk umum perintahnya : Rename(nm_var. Contoh : Program hapus.ParamStr(2)). {$I-} rename(f. ParamStr(2)).4.Algoritma & Pemrograman I(Pascal) by:chairuddin Erase(nm_var). Contoh : Program Ubah_nama.

’ 5. Keterangan : 1. dapat diisi dengan wildcard seperti ‘*’ dan ‘?’. yaitu dengan perintah : PackTime(var_datetime. Mencari File Menggunakan perintah : Findfirst(path.6. Sebelum melakukan SetFTime.’. Attr : atribut file yang dicari 109 .hour.waktu).var_searchrec). SetFTime : mengeset informasi tanggal dan jam file. Harus deklarasi unit ‘Uses Dos. Pada unit DOS menggunakan tipe string. Bentuk Umum : GetFTime(nm_var. maka perlu diubah terlebih dahulu sebelum ditampilkan. End. baru kita dapat mengambil dan menset informasi date dan time dengan menggunakan perintah : GetFTime : mengambil informasi tanggal dan jam file. Waktu : dideklarasikan dalam bentuk tipe data sistem (longint). Dengan : Nm_var Waktu : variabel file yang telah di-assign.waktu). Var_datetime : variabel dari record datetime. maka perlu dikembalikan ke tipe data sistem(LongInt). variabel waktu masih merupakan variabel dari record datetime. Pada saat GetFTime.var_datetime). Setelah dideklarasikan. FindNext(var_searcRec). 3.’ atau ‘Uses WinDOS.sec:word. : waktu yang akan diambil (dalam bentuk LongInt).attr.day. Harus menggunakan deklarasi unit ‘Uses DOS. waktu). variabel waktu masih merupakan tipe data sistem(LongInt).Algoritma & Pemrograman I(Pascal) by:chairuddin Year. Bentuk Umum : SetFTime(nm_var. yaitu dengan perintah : UnpackTime(waktu. month.min. 2. Waktu Var_datetime : dideklarasikan dalam bentuk longint : variabel dari record datetime. Dengan : path : file yang akan dicari.

Size : longint. Writeln (‘File-file yang dicari adalah :’).dos. Memberikan directory File 110 . var_string2. End. Name : string.size:10). Time : longint. Mengecek Keberadaan File Menggunakan perintah : Fsearch : untuk deklarasi unit DOS Bentuk : Var_pathstr := Fsearch(path.name:15.Algoritma & Pemrograman I(Pascal) by:chairuddin Var_searchrec : variabel dengan tipe searchrec sebagai berikut ini : Type Searchrec = record Fill : array [1. 5. Var_string2 : variabel tempat menaruh file yang dicari. Var dirinfo :searchrec.9.archive.dirlist) Dengan : Path : file yang akan dicari Dirlist : letak dimana akan dicari yang didefinisikan di path tersebut. Begin Clrscr. 5. Contoh : Program cari. Writeln(dirinfo..dirinfo). ‘ ‘). Uses crt.2] of char. End. Var_string3 : variabel tempat melakukan pencarian file.8. End. var_string3) Dengan : Var_string1 : variabel tempat menaruh hasil proses. Findnext(dirinfo). While doserror=0 do Begin Write(dirinfo. Attr : byte. Findfirst(paramstr(1). FileSearch : untuk deklarasi unit Windows Bentuk : FileSearch(var_string1.

Dengan : Var_pathstr1 : hasil dari proses dengan penulisan file secara panjang Var_pathstr2 : nama file yang akan diperpanjang penulisannya Fungsi ini tidak mengecek keberadaan file yang dimanipulasinya. ---------- 111 . Dengan : Hasil : merupakan hasil proses. maka tetap akan menghasilkan path yang sedang aktif.file_asal). Bila file tidak ada. File_asal : nama file yang akan diperpanjang penulisannya.Algoritma & Pemrograman I(Pascal) by:chairuddin Menggunakan 2 perintah di bawah ini: FExpand Bentuk umum : Var_pathstr1 := FExpand(Var_pathstr2). FileExpand Bentuk umum : FileExpand(hasil.

You're Reading a Free Preview

Download
scribd
/*********** DO NOT ALTER ANYTHING BELOW THIS LINE ! ************/ var s_code=s.t();if(s_code)document.write(s_code)//-->