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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

sedangkan “perintah 2” akan dilakukan jika ”kondisi” salah. pernyataan-pernyataan setelah then tanpa menggunakan “. namun jika pernyataan setelah then terdiri dari lebih dari satu pernyataan makan setelah end tanpa menggunakan “. bentuk sederhana dari percabangan bersarang jika digambarkan dalam flowchart bentuknya akan seperti berikut: 24 . Selain bentuk diatas. ….”.. Secara sederhana percabangan dapat digambarkan seperti dalam flowchart berikut: Pada flowchart di atas “perintah 1” akan dilakukan jika ”kondisi” benar. end.. Dari bentuk bentuk pernyataan if di atas yang harus diperhatikan adalah untuk pernyataan if dan else. end else begin pernyataan1 . pernyataan2 .”. dalam percabangan juga dikenal istilah percabangan bersarang (Nested IF). ….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 “. Percabangan dalam FlowChart Dalam pemrograman percabangan merupakan salah struktur kendali yang memungkinkan pemilihan atas perintah yang akan dijalankan.

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

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

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

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

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

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

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

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

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

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

maka statemen yang akan diproses dalam lingkungan CASE-OF adalah statemen yang ada di ELSE.Writeln(‘–> PILIHAN < --'). GotoXY(10. end.Write('Pilih Nomer(1-3)?'). 9:begin write(‘September’). GotoXY(10. end. T:=0. end. end.2). 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’). 10:begin write(‘Oktober’). Pada struktur CASE-OF bila tidak ada kondisi yang terpenuhi berarti tidak ada statemen di dalam lingkungan CASE-OF yang diproses.6).4). bila tidak ada kondisi yang terpenuhi. Dengan struktur CASE-OF…ELSE. GotoXY(10.Luas:real. L:=0.20).Read(pilihan). var Pilihan:byte. 11:begin write(‘November’). end.Writeln('3. end. 12:begin write(‘Desember’).Writeln('1.Menghitung Luas Lingkaran'). GotoXY(10.8).th:0) end. ClrScr. Begin R:=0. ClrScr.Writeln('2. write(‘ ‘. Contoh program: uses wincrt. 35 . GotoXY(10.L.Menghitung Luas Segitiga').Menghitung Luas Bujur Sangkar').T. R.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Bila file tidak ada. maka tetap akan menghasilkan path yang sedang aktif. FileExpand Bentuk umum : FileExpand(hasil. ---------- 111 .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.file_asal). 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. Dengan : Hasil : merupakan hasil proses.

Sign up to vote on this title
UsefulNot useful