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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Sign up to vote on this title
UsefulNot useful