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

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. Luas Segitiga 2. 4. 3. lebar dan luas persegi panjang. Flowchart: START Luas. Masukkan (inputkan) data Panjang dan Lebar pada variabel yang sudah ditentukan.Algoritma & Pemrograman I(Pascal) by:chairuddin Secara garis besar. Luas Lingkaran 4 . Lebar Inputkan: Panjang dan lebar Hitung: Luas Persegi Outputkan: Luas Persegi Panjang END Latihan: Buat algoritma dan Flowchart untuk Menghitung: 1. Hitung Luas persegi panjang. Tampilkan (outputkan) Luas persegi panjang. Panjang. 2. Tentukan nama variabel yang akan menampung data Panjang.

{ Program utama begin . . Stuktur Penulisan Pascal: Program Nama_Program. { pengumuman tipe-tipe data }. label . . begin . . . . {pengumuman tetapan-tetapan} . 5 . procedure Nama_Prosedur. end. Bentuk perintah: Read dan Readln Struktur penulisan: Read(nama variabel). . . } Perintah Input : Perintah Pascal yang digunakan untuk memasukkan/menginputkan data. const . . {Unit-unit yang dipakai} . uses . end. type . Function Nama_Fungsi. . end. . . . Instruksi-instruksi yang digunakan disesuaikan dengan jenis bahasa pemrograman yang digunakan (reserved word yang disediakan). . { pengumuman peubah-peubah }. {label-label yang dipakai } .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. . . begin . var . . Readln(nama Variabel) Perintah Output: Perintah Pascal yang digunakan untuk menampilkan/mengoutputkan data.

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

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

div (Hasil bagi) Input/Output Idendifier : Pengenalan .Const (Konstanta atau bilangan tetap) . Salah satu bahasa program komputer yang terkenal adalah bahasa Pascal. menciptakan bahasa Pascal ini dengan tujuan untuk mengajarkan pemrograman secara terstruktur kepada para mahasiswanya. Prof. ‘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) .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. 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. 8 . maka instruksi tersebut harus dalam bentuk bahasa yang komputer mengerti. Pencipta bahasa Pascal.Algoritma & Pemrograman I(Pascal) by:chairuddin Dasar-Dasar Pemrograman Pada halaman ini. akan dipelajari mengenai konsep-konsep dasar yang berkaitan dengan pembuatan program. Agar instruksi tersebut dimengerti oleh komputer. Niklaus Wirth. contohnya ‘saya’ Char : Satu huruf atau angka. contohnya ‘s’ .

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

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

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

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

Begin Clrscr.Algoritma & Pemrograman I(Pascal) by:chairuddin 4.20). Begin a:=1. {penjumlahan} c:=a+b. GotoXY : memindahkan kursor ke posisi X. Textcolor(14). Perhatikan program berikut: … Var a.b.c : integer. Writeln(’Tulisan kunig di atas biru!’) {penggunaan Sound dan NoSound} Sound(440). {pengurangan} c:=b-a. delay(1000). 13 . 5. End. nosound. NoSound : membunyikan speaker dan menghentikannya. 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. Textbackground(1). Delay : menunda pemrosesan program beberapa waktu. Contoh program : Uses crt. Textmode : mengubah besar karakter. writeln(c). Sound.Y. 7. b:=5. 6. Gotoxy(10.

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

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

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

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

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

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

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

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

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

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

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

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

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

if Jumlahpoin&gt. read(Jumlahpoin). write('Nilai per poin:'). Statemen 1 akan diproses jika kondisi yang diseleksi benar. jika kondisi yang diseleksi terpenuhi.) karena titik koma menunjukkan akhir dari statemen. End. Jika kondisi salah satu syarat tidak terpenuhi maka statemen yang lainnya setelah kata cadangan Else akan dikerjakan atau diproses.nilai). Contoh program: 27 .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. 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. nilai:=jumlahpoin*nilaiperpoin. maka yang akan diproses adalah statemen berikutnya. maka statemen yang mengikuti THEN akan diproses. write('Nilai yang diperoleh sebesar:'. Struktur IF-THEN Statemen IF-THEN digunakan untuk menyeleksi suatu kondisi. sedangkan statemen 2 akan diproses jika kondisi yang diseleksi tidak terpenuhi. readln(nilaiperpoin). nilai:integer. nilaiperpoin. apabila kondisi tidak terpenuhi. Kata else tidak boleh diawali dengan titik koma (. begin write('Jumlah poin:'). var Jumlahpoin. Tetapi.30 then nilai:=nilai+(jumlahpoin-30)*nilaiperpoin. 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.

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

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

if a = 1 then write(' bersama'). end. else write(' pemrograman'). Setelah dilakukan output (’saya’). write(' sahabat'). end else begin write(' pascal'). write(' bersama keluarga'). Hasil eksekusi: saya pemrograman 30 . Terkadang kita memerlukan lebih dari dua percabangan. Hasil eksekusi: saya pascal bersama keluarga Diawal diberikan nilai pada a yaitu 0. karena nilai a bernilai salah (a=0) maka dilakukan output (‘ pascal’) dan output (‘ bersama keluarga’). end. 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. begin a := 3.Algoritma & Pemrograman I(Pascal) by:chairuddin write(' bersama'). maka kita memerlukan if bersarang (nested if). write('saya'). nilai a diuji. else if a = 2 then write(' pascal'). end. var a : integer.

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

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

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

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

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

Luas:=Pi*R*R. End.Readln(T). End.Readln(T).2.. Writeln. Write('Lebar bujur sangkar?'). 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 . Else Begin Writeln('Pilihannya hanya 1. Luas:=T*L. Writeln('Luas bujur sangkar='.Luas:9:2). Writeln('Luas segitiga='..Readln(L). End.Algoritma & Pemrograman I(Pascal) by:chairuddin case Pilihan of 1:Begin Write ('Jari-jari lingkaran?').5*L*T. 2:Begin Write('Panjang sisi alas?')... Writeln..Luas:9:2). End.Luas:9:2). End. Writeln('Anda tadi pilih nomer berapa?. Luas:=0.atau3'). 3:Begin write('Panjang bujur sangkar?'). End.Readln(R). Write('Tinggi Segitiga?').Sembarangan aja milih!!!!!!!').Readln(L). Writeln('Luas Lingkaran='.

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

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

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

Bentuk Umum While kondisi ungkapan Do Pernyataan Contoh Var I:Integer. 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. 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. End.2 Struktur Perulangan While-Do Perulangan ini menggunakan pernyataan While—Do. End. Dalam hal ini kondisinya adalah I dan bila nilai I kurang dari 5. Bila program dijalankan akan menghasilkan: 0 1 2 3 4 Penjelasan: Perulangan dari while akan terus menerus dikerjakan bila kondisinya masih benar. (Lebih lanjut akan di bahas pada materi matrik) 1. End. I:=I+1. While I<5 Do Begin Writeln(I).Algoritma & Pemrograman I(Pascal) by:chairuddin Writeln. End. Begin I:=0. 40 . berarti kondisi di dalam While masih terpenuhi dan perulangan akan selesai setelah nilai I lebih besar atau sama dengan 5.

41 ..Algoritma & Pemrograman I(Pascal) by:chairuddin 1.. LaughingWHILE..3 Struktur Repeat…Until Struktur Repeat…Until digunakan untuk mengulang pernyataan-pernyataan atau blok pernyataan sampai kondisi yang diseleksi di Until tidak terpenuhi. digunakan pada kondisi dimana suatu pernyataan yang akan diulang belum tentu berapa kali terjadi pengulangan. 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. Bentuk mumnya adalah: Repeat pernyataan Until Contoh Var I:Integer Begin I:=0... Bila program dijalankan akan menghasilkan: 1 2 3 4 5 Struktur pengulangan FOR. Until I=5.TO. pengulangan baru akan berakhir jika kondisi sudah terpenuhi. Writeln(I). sebagai contoh: for a:= 1 to 5 do write (‘gue gitu loh’) pada statement diatas maka akan terjadi pengulangan penulisan sebanyak 5 kali. digunakan pada suatu kondisi dimana sebuah pernyataan akan dillakukan perulangan sebayak X kali tersantung statement yang akan ditentukan. End.DO. Repeat I:=I+1.DO.

end. if lapar then writeln (’silakan makan sampai puazzzz’). Berikut ini adalah sebagian contoh perulangan dengan penerapan statemen For. Pascal :: Contoh-Contoh Penggunaan Perulangan For.. writeln. const 42 . perbedaan WHILE DO dengan REPET UNTIL adalah terletak pada pengujian kondisi.. perbaaan lainya yaitu REPEAT UNTIL mengulang pernyataan selama kondisi belum terpenihi sedang WHILE DO mangulang pernyataan selama kondisimasih terpenuhi. jika REPEAT UNTIL perintah dilakukan terlebih dahulu baru dilakukan pengujian. jika kondisi terpenuha maka akan lanjut ke statement berikutnya tetapi jika tidak terpenuhi maka program akan jalan ke pernyataan linyya. sedangkan WHILE DO pengujian dilakukan diawal beru perintah dieksekusi. else write (‘yuuuuuuuuuuuuuukk’). Hasil : 4321 321 21 1 Uses Wincrt..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. begin for baris := akhir downto 1 do begin for kolom := baris downto 1 do write(kolom). Do.Do. const akhir = 4. end. var baris. Uses Wincrt.kolom : integer..

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

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

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

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

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

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

bagi := 1/a. Var a.d:10. 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.125 9 81 729 0. maka hasilnya : ---------------------------------------------a a*a a*a*a 1/a ---------------------------------------------1 1 1 1. Writeln('----------------------------------------------').111 10 100 1000 0. Writeln ('----------------------------------------------').b. c:=a*a*a. Begin Writeln('----------------------------------------------'). End.000 2 4 8 0.333 4 16 64 0.bagi:12:3). Hasil yang akan didapat akan sama dengan contoh yang pertama. Writeln(a:4.Algoritma & Pemrograman I(Pascal) by:chairuddin End.c : Integer. Statement yang digunakan adalah For-DownTo-Do contoh : Uses Crt. 49 .100 ---------------------------------------------• Perulangan For negatif : Perulangan negatif adalah perulangan dengan menghitung (counter) dari besar ke kecil.c:10.143 8 64 512 0. bagi : Real. Writeln(' a a*a a*a*a 1/a ').200 6 36 216 0. For a := 1 To 10 Do Begin b:= a*a.250 5 25 125 0.167 7 49 343 0.500 3 9 27 0.

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

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

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

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

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

GotoXY(54. Begin For i:=1 To 15 Do Begin Sound (i*100). Write ('Nilai 1'). { proses Cetak isi array dan seleksi kondisi } bar := 7.5).5). Program Window_Bergerak_dgn_delay. Writeln (tl).4). Write(Garis).bar). GotoXY(5. Write ('NPM'). Writeln (NIL1[i]:4). GotoYX(9. GotoXY(9. Write ('No'). { cetak hasil yang disimpan di array dan hasil } { penyeleksian kondisi } GotoYX(5. Writeln (NPM[i]).5). Readln. Writeln(i:2). GotoYX(47. GotoYX(18. bar:=bar+1.5). Write ('Nama'). GotoXY(5. GotoYX(41. 2. For i:= 1 To n Do Begin jum:=(nil1[i]+nil2[i])/2. 55 . GotoYX(34.bar+1). GotoYX(54. GotoXY(5.Writeln(garis). Var i : Integer.5).bar).bar). Write ('Nilai 2').6). Writeln (NAMA[i]). End. Write (Garis). Writeln (NIL2[i]:4).bar). GotoXY(41. Write ('Rata'). GotoXY(18.bar).bar).5). Uses Crt. Write ('Abjad’). End. GotoXY(34. 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'.Algoritma & Pemrograman I(Pascal) by:chairuddin GotoXY(5.bar).5). Writeln (jum:5:1). GotoXY(47. Program jendela bergerak.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Writeln('Nama Nilai Abjad Keterangan'). Huruf = Array[1. Type Untai = Array[1. Contoh Program : Program Contoh_Pengiriman_Parameter_Array_Di_Procedure. Procedure Proses(Nama:Untai. Procedure yang menggunakan parameter berupa array harus dideklarasikan di dalam judul procedure yang menyebutkan parameternya bertipe array.10] of Char. For i := 1 to Banyak Do Begin If Nilai[i] > 90 Then Begin Abjad:='A'. Writeln(Garis). Begin Writeln(Garis).. Abjad : Char. Uses Crt.Algoritma & Pemrograman I(Pascal) by:chairuddin V. Var Ket : String. 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. Const Garis ='---------------------------------------------------'. Bulat = Array[1. Ket :='Istimewa'. Var i..Nilai:Bulat).10] of String[15].Banyak : Integer.. 74 .10] of Integer.

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

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

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

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

Count:Integer) Digunakan untuk menghapus/membuang sejumlah karakter (Count) mulai posisi tertentu (index) dari suatu nilai String(A). STR Bentuk penulisan : Str(s:String. Fungsi akan secara langsung memberikan hasil sesuai dengan tipe yang dideklarasikannya. FUNGSI Perbedaan fungsi dengan procedure : Pada fungsi. VAL Bentuk penulisan: Val(s:String.Index:Integer) Digunakan untuk menyisipi suatu string (Source) ke nilai string yang lainnya (S) mulai dar posisi yang ditunjukkan oleh nilai (Index). 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’. Prosedur Standard Prosedur dibagi menjadi dua kelompok. 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. FILLCHR Bentuk penulisan : FILLCHR(x.Algoritma & Pemrograman I(Pascal) by:chairuddin Procedure dipanggil menggunakan Nama Procedure yang diikuti olah sejumlah parameter.Var Code) Untuk merubah nilai numerik (X) menjadi nilai string (S).ch) Digunakan untuk mengisi sejumlah byte nilai ke dalam suatu variabel. nilai yang dikirim balik terdapat pada nama fungsinya.Index:Integer.Var S:String.banyak : word. INSERT Bentuk penulisan : Insert(Source:String. 79 .Var Code) Untuk mengkonversikan suatu nilai string (s) menjadi nilai numerik (V). DELETE Bentuk penulisan : DELETE(Var A:string.V.

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

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

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

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

dan kecepatan adalah berlaku untuk semua procedure sehingga disebut variabel GLOBAL. begin {program utama} tampilan_judul. begin jarak:= kecepatan *waktu end. program Kalkulator_sederhana. tampilkan_hasil end. 84 . begin writeln('jarak yang ditempuh adalah '.Algoritma & Pemrograman I(Pascal) by:chairuddin readln(kecepatan). jarak. procedure tampilkan_hasil. uses wincrt.') end. readln(time) end. masukkan_data.jarak:5:2.' km. Contoh d. procedure hitung_jarak. write('Masukkan waktu dalam jam : ‘). 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.

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

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

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

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

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

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

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

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

nama). begin with recordMahasiswa do begin Write(’Masukkan nama mahasiswa ‘). end.nama). ReadLn(recordMahasiswa. WriteLn(’Nama mahasiswa yang Anda masukkan adalah ‘. end. nilai : integer.NPM).NPM).nama). NPM : string[8].nilai).recordMahasiswa. ReadLn(NPM).recordMahasiswa. NPM : string[8]. ReadLn(nilai). Write(’Nilainya berapa ‘). begin Write(’Masukkan nama mahasiswa ‘). ReadLn(recordMahasiswa. Write(’Masukkan NPM ‘). var recordMahasiswa: recMhs.Algoritma & Pemrograman I(Pascal) by:chairuddin type recMhs = record nama : string[80]. dalam Pascal ada statement with yang bisa membantu memudahkan dan menyingkat penulisan kode program yang menggunakan record. Sehingga kode program di atas bisa disingkat menjadi berikut: type recMhs = record nama : string[80]. Program di atas akan memberikan output seperti berikut.nilai). Write(’Nilainya berapa ‘). WriteLn(’NPM mahasiswa ini adalah ‘. WriteLn(’Nilainya adalah ‘. ReadLn(recordMahasiswa. WriteLn(’Nama mahasiswa yang Anda masukkan adalah ‘. nilai : integer. WriteLn(’Nilainya adalah ‘. var recordMahasiswa: recMhs.recordMahasiswa.nilai). Oleh karena itu.NPM). Write(’Masukkan NPM ‘). ReadLn(nama). WriteLn(’NPM mahasiswa ini adalah ‘. 95 . end. 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.

yaitu : 1. Dengan : NmVar : Nama variabel file text 2. kita dapat pula melakukan manipulasi File. Mengenai tanggal dan waktu file 6.2. FILE (BERKAS) File adalah kumpulan byte-byte yang disimpan dalam media penyimpanan. 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). Menggunakan parameter 2. yaitu : 1. Isi filenya dapat dilihat oleh perintah dos type atau editor text 1. Pointer file adalah bagian yang menunjuk ke komponen file yang akan diakses (dibaca atau direkam) untuk keperluan pengaksesan file (akan dibahas kemudian). Merupakan komponen yang bertipe data sama. Menghapus file 4. File bertipe 3. yang jumlahnya tidak tentu. Membuat file text Urutan Prosesnya : 1. File tidak bertipe Selain kita akan mempelajari tentang bagaimana membuat sebuah file atau menambahkan isi suatu file. Mencari file 7.Algoritma & Pemrograman I(Pascal) by:chairuddin end. end. Menghubungkan variabel file dengan nama file Assign (NmVar.1. Mengenai Atribut File 3. Dengan : NmVar : Nama variabel file text 96 . File pada Pascal dikenal dalam 3 jenis. Mengecek keberadaan file 8. Mengubah nama file 5. File Text 2. nama file). Memberikan directory file 1. yang dapat ditambah atau dikurangi jika dibutuhkan. Mendeklarasikan variabel file Var NmVar:TEXT. File Text 1.

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

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

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

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

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

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

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

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

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

end. Parameter Parameter disebut juga command tail. Contoh : program scan. Manipulasi File 5. ‘data. … close(VarFile). yang akan membuat scan program ke drive a dan kemudian menjalankan prosedur CLEAN. untuk fungsi I/O result adalah I. merupakan informasi tambahan bagi program utama yang dapat diketikkan sesuai keperluan.exe Biasanya dituliskan pada prompt : C:\scan a: /clean String ‘a:’ dan string ‘/clean’ merupakan parameter. … end else begin rewrite(VarFile).dat’).Algoritma & Pemrograman I(Pascal) by:chairuddin Bentuk Umum : {$ Kode Kondisi} Dengan : • Kode : Karakter kode. {$I-} Reset(VarFile). var1.1. • 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. {$I+} fileada := IOResult = 0. …). 106 . var2. if fileada then begin writeln(‘file sudah ada…’). … { Kondisi bila file tidak ada } { Buat file baru } 5. untuk menjalankan rutin khusus dalam program tersebut. … write (VarFile.

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

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

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

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

file_asal). File_asal : nama file yang akan diperpanjang penulisannya. FileExpand Bentuk umum : FileExpand(hasil. ---------- 111 . maka tetap akan menghasilkan path yang sedang aktif. Dengan : Hasil : merupakan hasil proses.Algoritma & Pemrograman I(Pascal) by:chairuddin Menggunakan 2 perintah di bawah ini: FExpand Bentuk umum : Var_pathstr1 := FExpand(Var_pathstr2). Bila file tidak ada. 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.

Sign up to vote on this title
UsefulNot useful