Algoritma & Pemrograman I(Pascal

)

by:chairuddin

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

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

1

Algoritma & Pemrograman I(Pascal)

by:chairuddin

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

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

2

Algoritma & Pemrograman I(Pascal)

by:chairuddin

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

3

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

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

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

Writeln(Terbesar). START Begin Readln (A). End. 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. Input : Nilai A Nilai B A>B Ya Terbesar = A Tidak Terbesar = B Output : Nilai Terbesar END 7 . Readln (B).

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Dalam materi ini akan memberikan gambaran konsep dasar dari pengertian diatas. 48 . a) Perulangan For. { blok statement } End. Begin For i:= 1 To 10 Do Begin Writeln ('I Love Dinda').Algoritma & Pemrograman I(Pascal) by:chairuddin Bab 3 Bentuk Perulangan & Penyeleksian Kondisi   Bab 3 Bentuk Perulangan & Penyeleksian Kondisi Materi 1. Tujuan perulangan disini adalah untuk mengulang statement atau blok statement berulang kali sesuai sejumlah yang ditentukan pemakai. 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. Uses Crt. • Perulangan For positif contoh : perulangan positif untuk satu statement : Uses Crt. Var i : Integer. # 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. Var i : Integer. Begin For i := 1 To 5 Do 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.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

begin : pernyataan : end. writeln(' 5: Cetak file teks’) end. writeln(' 1: Edit file teks'). End. menjadi huruf besar dan huruf kecil secara bergantian.Algoritma & Pemrograman I(Pascal) by:chairuddin Readln. Contoh a : PROCEDURE DISPLAY_MENU. Bar1. writeln(' 4: Kopi file teks’). Simpan dengan nama LATIH91. begin writeln('Pilihan Menu'). 82 . Procedure Sederhana Procedure sederhana dipakai untuk menampilkan pilihan menu. Kol2. writeln(' 3: Simpan file teks). procedure (module) tersebut terdiri atas beberapa pernyataan (statements).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. Contoh : STMIK StMiK Ket : Parameter yang digunakan adalah Kalimat. yang dikelompokkan dengan kata kunci begin dan end . writeln(' 2: buka file teks '). Simpan dengan nama LATIH92. dsb. Seperti contoh berikut: SYNTAX PROCEDURE NAMA. Bar2 dan Warna Background.PAS a. Setiap procedure mempunyai nama.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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