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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Sign up to vote on this title
UsefulNot useful