PASCAL

Daftar ISI        Pengenalan Tutor 1 (cara mencetak ke layar dan penggunaan variabel) Tutor 2 (penggunaan kondisi) Tutor 3 (looping) Tutor 4 (prosedur dan fungsi) Tutor 5 (array dan record) Tutor 6 (Database)

Contoh Program Program 1 menghitung luas/keliling bangunan Program 2 menentukan bilangan ganjil, genap dan prima Program 3 menentukan bilangan terbesar (dengan if) Program 4 penggurutan angka (looping) Program 5 bintang (looping) Program 6 penggabungan program 1, 2 dan 4 dengan membuat menu (prosedur, fungsi) Program 7 toko (record dengan array) Program 8 Operasi String Program 9 Contoh penggunaan teori di tutor 6

Ardhi Rizki Harahap @ ∆ - vxq, Inc.

readln(nama).PENGENALAN Pada bagian ini gua cuman ngejelasin secara garis besar tentang pascal dan tips penulisan program. Pada perkembangannya banyak versi-versi pascal yang beredar. Gak usah dipikirin apa isi program itu. disebut bagian pernyataan (tempat nulis program)." (kecuali pada baris ke-4 dan 8. yaitu pendeklarasian variabel dan programnya. 6: clrscr. itu yang disebut bagian pendeklarasian variabel.. 3: var nama: string. Profesor Niklaus Wirth memperkenalkan kompiler bahasa Pascal pertama kali untuk komputer CDC 6000 (Control Data Corporation) yang dipublikasikan pada tahun 1971 dengan tujuan untuk membantu mengajar program komputer secara sistematis. Tapi perhatikan strukturnya.vxq. 8: End. Inc. Kalo nulis program usahakan yang rapi. . (berfungsi untuk memanipulasi layar teks). O iya. Baris pertama itu hanya merupakan judul programnya doank. Pascal terdiri dari 2 bagian utama. nah penulisan program diantara begin dan end itu usahakan di kasih 2 spasi atau satu tab. Perhatikan baris ke5 s/d 7. Perhatikan contoh: 1: Program KaryaPertamaku. Itu akan memudahkan penelusuran program bila terjadi kesalahan Ardhi Rizki Harahap @ ∆ . Turbo Pascal. dll. Misalnya pada baris kedua digunakan uses crt. Pada baris ke 3. Perhatikan cara penulisan programnya! Setiap baris selalu diakhiri dengan titik koma ". nama. ok? Rasanya gak lengkap kalo gak tahu sejarah pascal. ahli matematik dan philosiphi terkenal abad 17 dari Prancis. Selain itu program pascal selalu dimulai dengan "begin" dan "end. Sedangkan dari baris ke-4 s/d 8. dalam pascal ada yang disebut unit-unit lain semacam librari lah. 'apakabar?'). Kita mulai. Switzerland. Gua pernah baca kalo pascal itu di buat karena bahasa C terlalu sulit untuk di pelajari untuk pemula. dirancang oleh Prof. Sekarang kita ngeliat bagaimana struktur program pascal. mudah bukan? Gua kasih satu tips yang berguna. Nama pascal diambil sebagai penghargaan terhadap Blaise Pascal. 7: write('Hi '. Apple Pascal. Bagaimana." (jangan lupa titiknya loh). Pascal adalah bahasa tingkat tinggi yang orientasinya pada segala tujuan. Niklaus Wirth dari Technical University di Zurich. jangan pake spasi loh nulisnya (gunakan garis bawah aja). Ingat bila ada "Begin" pasti ada "end". Judulnya adalah "KaryaPertamaku". MS-Pascal. 2: uses crt. itu adalah salah satu fungsi dari unit crt yaitu untuk membersihkan layar (sama dengan perintah cls di dos). Perhatikan baris 6. gak ditulis juga boleh. khususnya pemrograman terstruktur. 4: Begin 5: write('Masukkan nama anda: ').. karena itu adalah tanda dari awal dan akhir program).

').MENCETAK KE LAYAR DAN PENGGUNAAN VARIABEL Ok. variabel nama bisa menampung input dari user berupa kata dan angka.. 5: End. Pada baris ke-3 dideklarasikan variabel nama dengan tipe string.. Sedangkan writeln akan pindah kebaris yang baru. 'apa kabar?'). Apa kabar ? Jelas bukan? Jadi fungsi "ln" pada writeln adalah untuk pindah kebaris yang baru.. 2: uses crt. Pada baris ke-7 di layar akan tercetak " Hi dijas apa kabar?" (itu kalo nama yang dimasukan dijas). Maka output yang tampil adalah: Hi. Perhatikan contoh dibawah ini: 1: Program KaryaPertamaku. readln(nama). Inc. Karena berupa string. Sekarang perhatikan baris ke-5. Perhatikan Contoh 1: Begin 2: write('Hi.vxq. nama.. 3: writeln.. . Untuk menampilkan isi variabel cukup ditulis: "write(nama). Tipe Data yang Sering Digunakan di Pascal Char -> hanya menampung satu karakter Ardhi Rizki Harahap @ ∆ . 6: clrscr. Fungsinya akan sama bila ditaruh di read. 8: End. writeln('Apa kabar?'). 3: var nama: string. 4: Begin 5: write('Masukkan nama anda: '). Untuk lebih jelas tentang jenis tipe data lihat tabel di bawah. Jadi yang tercetak adalah "Masukkan nama anda: ".. write(' Apa kabar?'). Selanjutnya ada perintah readln.". Apa sih beda write dan writeln? write fungsinya mencetak di layar dan posisi kursor masih dibaris itu juga. Yup tutorial pertama kelar juga. Fungsi write adalah mencetak kalimat atau isi variabel yang ada ke layar..'). Jangan sampai salah mendeklarasikan jenis variabelnya loohh. 4: writeln('Hi. Apa kabar? Hi. Sedangkan bila berupa teks yang fixed.. 7: write('Hi '. Apa fungsinya? readln itu berfungsi untuk menampung (menyimpan hasil input user) dan disimpan pada variabel nama... sekarang kita bakal belajar cara menampilkan teks di layar dan penggunaan variabel. contohnya sama seperti baris ke-5 (mengunakan ' (kutip) ).. Jadi sekarang variabel nama bernilai sama yang kamu ketikan.

Misal pada program di atas kita pilih 2.147. 3: Begin 4: write('Pilih 1 atau 2').7 x 1038 (untuk menampung bilangan desimal) PENGGUNAAN KONDISI Tutorial yang kedua ini akan dibahas mengenai pernyataan kondisi.483.". maka baris ke-5 dan ke-6 tidak memenuhi konsisi tersebut. Pernyataan itu berfungsi untuk menutup pernyataan case yang dimulai pada baris ke-5.768 s/d 32. Bingung? gini maksudnya. 8: else write('Anda memilih yang lain').. Berhubung pilihan kita 2 bukan 1. Ardhi Rizki Harahap @ ∆ . if dan case. 5: if pilih=1 then write('Anda memilih 1') 6: elseif pilih=2 then write('Pilihan anda 2') 7: else write('Anda memilih yang lain') 8: End.483. Inc. di sana ada pernyataan "end.string -> menampung lebih dari satu karakter Boolean -> hanya mempunyai dua nilai True atau False Integer -> -32.9 x 10-39 s/d 1. 6 dan 7. Coba amati pada baris ke 9. maka akan langsung pindah kebaris selanjutnya. 3: Begin 4: write('Pilih 1 atau 2'). 7: '2': write('Pilihan anda 2'). 10: End. Bila kita memilih 3. Ternyata pada baris ke-6 kondisi itu terpenuhi.648(gak bisa bilangan desimal) read -> 2. Baris ke-7 tidak diperiksa lagi karena baris ke 6 sudah memenuhi syarat. readln(pilih). . pernyataan kondisi di atas bisa juga menggunakan case. 1: Program Tutorial2_if. maka yang lain akan diabaikan. 2: var pilih: Integer. baris ke-5 akan di eksekusi. Apabila pilihan yang kita ketik ada di satu kondisi. Perhatikan contoh: 1: Program Tutorial2_case. 9: end. Selain dengan if.147.. Perhatikan baris 5.648 s/d -2.767 (gak bisa bilangan desimal) longint -> -2. readln(pilih). Perlu diingat "end" disertai dengan titik hanya untuk diakhir program. maka yang tercetak dilayar adalah "Pilihan anda 2". 2: var pilih: char.vxq. Keterangannya gak jauh beda dengan kondisi if kok. maka yang tercetak adalah "Anda memilih yang lain". Pada saat program dijalankan. 5: case pilih of 6: '1': write('Anda memilih 1'). Di situ ada 3 pernyataan kondisi if.

Perhatikan contoh di bawah ini: 1: Program Tutorial3_for. Sekarang kita ngebahas 3 jenis looping. . 10: End. di sana ada "begin" dan "end. 3: Begin 4: i:=1.? masih ingatkan pelajaran fisika SMU. Apa output yang tercetak dilayar? ini yang ke 1 ini yang ke 2 ini yang ke 3 ini yang ke 4 ini yang ke 5 Bagaimana kalo mau pake while? Perhatikan contoh: 1: Program Tutorial3_while. while dan repeat. 2: var i: Integer. 3: Begin 4: For i:=1 to 5 do 5: writeln('ini yang ke '.vxq. Di sana ada satu persyaratan. i). Jika tidak hanya baris pertama saja yang dieksekusi. Looping adalah proses pengulangan hingga kondisi syarat yang ditentukan tercapai. Apa perbedaan mendasar while dengan for? yup. 2: var i: Integer. case. Bila ada lebih dari satu pernyataan harus di mulai dengan begin untuk kondisi if. 6: End." sebagai pasangannya (dibaris ke 9). Inc.LOOPING Looping? apa hayoo. di while dibutuhkan counter (diprogram ini adalah i). Apa outputnya? ini yang ke 1 ini yang ke 2 ini yang ke 3 ini yang ke 4 Coba baris ke 8 kamu ganti dengan "i:=i-1. yaitu baris ke-5 akan dieksekusi bila nilai i antara 1 sampai 5. 8: i:=i+1. i). baris ke-7 dan 8 akan dieksekusi (dijalankan) apabila nilai i < 5. 5: while i < 5 do 6: begin 7: writeln('ini yang ke '.. 9: end. Jadi. Perhatikan baris 4 dan 5. Coba liat baris ke 6.. looping." apa yang terjadi? Coba jalankan. for. Akan terjadi looping terus menerus karena kondisinya memenuhi syarat terus (i selalu Ardhi Rizki Harahap @ ∆ . adakan pelajaran tentang looping dirangkaian elektronik.

tapi ini adalah keistemewaan repeat. Loh kok bisa. Inc. 1: Program Tutorial4_Prosedur. 8: until i<0.kurang dari lima). kan pada baris ke 8 tidak memenuhi persyaratan i<0 ? Memang nggak memenuhi persyaratan itu. Untuk mempermudahnya gunakan Prosedur atau Fungsi. Program utamanya mulai dari baris ke 8 sampai 11. Sekarang kita coba dengan repeat.'). Apakabar yang di atas menggunakan prosedur loohh.'). Ini outputnya Hi. 7: i:=i+1. Pada baris ke 9 prosedur yang kita buat sebelumnya dipanggil dan dieksekusi. 11: End. cut dan paste)? emang bisa sih diperbanyak dengan yang gituan. Hal inilah yang disebut invinitive loop. . 6: writeln('Apakabar'). Pernyataan itu akan menghitung mundur dari 10 sampai 1. Tekan control break untuk menghentikannya... berarti kita harus betulin di tiga tempat juga. "ini yang ke 1".. 2: 3: Procedure Tampil.vxq.. PROSEDUR DAN FUNGSI Misalnya kita punya rumus menghitung luas segita. 2: var pilih: char. Ia akan mengeksekusi sekali dulu baru dicek persyaratan yang ada dibawah. Apa outputnya? cuman 1. 1: Program Tutorial3_while.. 7: end. O iya. Gunakan jenis looping yang ada seseuai kebutuhan. 5: repeat 6: writeln('ini yang ke '.. apa yang kamu lakukan bila rumus itu ingin kamu tulis ditiga tempat yang berbeda? apa kamu akan ccp (copy. Kelar juga ngebahas looping. Apa yang dilakukan program di atas? Coba lihat baris ke-3 sampai 7. tapi boros memori dan berabe kalo rumus yang kita tulis ternyata salah. Itulah yang disebut prosedur. 9: End. 4: begin 5: writeln('Hi. apa yang dilakukan bila tertulis seperti ini? "For i:=10 downto 1 do".. Ardhi Rizki Harahap @ ∆ . 10: writeln('yang di atas menggunakan prosedur loohh. 8: Begin 9: Tampil. 3: Begin 4: i:=1.i)..

3: i: integer. Jika ada 3 jenis buah-buahan (melon. 4: begin 5: itung:=a+b.5. Perhatikan contoh penggunaan fungsi di bawah ini: 1: Program Tutorial4_Fungsi. Bagaimana cara kerjanya? yaitu dengan menggunakan index (semacam penanda). Terkadang fungsi lebih berguna dan efisien dibandingkan dengan prosedur. ' : '). 9).3] of string.. ada pendeklarasian variabel a dan b. Baris 3 sampai 7 adalah fungsi. 4: Begin 5: For i:=1 to 3 do 6: begin 7: write('Masukkan buah-buahan ke '. Solusinya adalah gunakan array. Array itu adalah tipe data terstuktur yang berguna untuk menyimpan sejumlah data yang bertipe sama.. Tapi perhatikan bentuk fungsinya. Ardhi Rizki Harahap @ ∆ . Bagaimana jika ditulis "itung(3.. 8: Begin 9: hasil:=itung(7. Bila kita punya fungsi yang bernama CekSaldo. 2: var buah: array [1. b : integer) : integer. Bagaimana? mudah bukan? gunakan prosedur dan fungsi sesuai kebutuhan. Tetapi betapa sulitnya jika toko itu punya 10 atau 20 jenis yang berbeda.vxq. Di sana tertulis "itung(7. 11: End. . 10: writeln('Hasil 7 + 9 sama dengan '. maka CekSaldo bisa berfungsi seperti variabel sama seperti pada fungsi Itung di atas. 3: Function Itung(a.6)"? Jelas gak bisa karena dialokasikan hanya 2 variabel. duku dan mangga) berarti kita harus mempunyai tiga variabel untuk masing-masing jenis buah. Inc. Lalu apa perbedaan prosedur dan fungsi? Prosedur hanya bisa menjalankan perintah dan tidak mengembalikan nilai (lihat kembali contoh program prosedur sebelumnya). Coba liat baris ke 9 ketika fungsi itung dipanggil. 7: end.readln(buah[i]). 2: var hasil: integer. Hasil penjumlahan a + b ditampung di fungsi itung (lihat baris ke-5) dan hasil itu diberikan ke variabel hasil (baris 9). Sedangkan fungsi bisa mengembalikan nilai untuk di tampilkan dilayar atau diolah lagi. Perhatikan contoh: 1: Program Tutorial5_Array. secara otomatis a akan mendapat nilai 7 dan b mendapat 9. hasil).Selain itu prosedur dan fungsi bisa di taruh variabel lohh. ARRAY DAN RECORD Pernahkah kamu membayangkan bila kita mau membuat program toko buah-buahan. 9)".i .

. Nama buah disimpan dalam field nama dan harga buah disimpan di dalam field harga. duku dan mangga.8: end. Begitu juga bila kita ingin menampilkan isi field tersebut. Misalkan yang kita masukkan adalah melon. Ardhi Rizki Harahap @ ∆ . buah[2] bernilai duku dan buah[3] bernilai mangga. dan harga dengan jenis long integer) yang ini disebut field. Tipe data seperti ini sangat berguna kedepannya loohh.vxq. 13: End. Lihat pada baris ke 7. Perhatikan contoh: 1: Program Tutorial5_Record.harga). Untuk bisa menyimpan data di field. 4: harga: longint.readln(data.harga). Tidak seperti array.readln(data.nama). 9: writeln. Apa yang bisa kamu ambil kesimpulan dari program di atas? Bingung? Jadi gini. Perhatikan baris ke 6. i . 7: Begin 8: write('nama buah: '). buah[i]).harga).writeln('Isi buah-buahan yang dimasukkan tadi adalah : '). record adalah jenis tipe data terstruktur yang berisi beberapa data.field (contohnya di sini data. 12: writeln('harga'). kita bisa menyimpan 3 nilai yang berbeda. 10: For i:= 1 to 3 do 11: writeln('buah ke'. 6: var data:buah. 11: write('nama'). 12: End.nama). . 10: write('ditampilkan'). dengan menggunakan record (di sini bernama buah) kita bisa membuat tipe data yang berisi beberapa data yang berlainan tipe (nama dengan jenis string.nama atau data. gampangkan? setelah mengetahui cara menggunakan array. Setelah itu lihat baris ke 8 dan 9. sekarang kita belajar menggunakan record. Untuk mencetak isi variabel yang sudah disimpan di array tadi caranya bisa dilihat di baris ke 11. Otomatis yang dimiliki buah (nama dan harga) dimiliki juga oleh data. di situ dideklarasikan bahwa variabel data bertipe buah.' : '. maka buah[1] bernilai melon. Inc.readln(data. Bagaimana. Apalagi jika digabungkan dengan array. 9: write('harga buah: '). urutannya harus variabel.. yang masing-masing dapat berlainan tipe. 2: type buah = record 3: nama: string.readln(data. Dengan hanya menggunakan satu nama variabel yaitu buah. 5: end.

maka file itu akan terbentuk. apakah integer. varn]). Function FilePos(var f): longint. char atau bahkan record. Setiap ingin melakukan manipulasi atau yang lainya.vxq. Procedure SetTextBuf(var f:text. Berikut ini adalah daftar prosedur dan fungsi yang berhubungan dengan program database file bertipe (no 12 sampai 16 hanya untuk file teks). Inc. Function SeekEoln(var f:text):boolean. Ardhi Rizki Harahap @ ∆ . string. Semakin besar semakin cepat pemrosesannya..DATABASE Rasanya gak lengkap kalo buat program tapi gak bisa nyimpen data. Mengetahui jumlah data yang ada.. Function Eof(var f): Boolean. N: longint). var buf[. Penomoran data mulai dari 0. varn]). var2. Memindahkan posisi file. var2. tetapi tidak menghapus isinya Menutup suatu file (lakukan setelah setelah file itu di manipulasi) Mengisi file dengan data. ukuran: word]). Procedure Write(var f. Prosedur ini menjamin bahwa data yang direkam benar-benar telah disimpan ke file (normalnya. Nilainya akan true kalau diakhir baris atau Eof memberikan nilai True. Procedure Reset(var f). Data pertama bernilai 0. var1 [. tab ataupun tanda akhir baris Mengosongkan penyangga (buffer) file teks yang dibuka untuk keluaran (perekaman). Function FileSize(var f): longint. Hasilnya akan True bila posisinya diakhir dan False apabila tidak diakhir. Function Eoln(var f:text):boolean. tetapi mengabaikan spasi. defaultnya 128 byte. Menghapus data dari posisi sekarang sampai akhir file Menghasilkan status akhir baris file teks. (apabila filenya bertipe text. Procedure Flush(var f:text). Biasa digunakan untuk membaca/mengubah data.. . Procedure Truncate(var f). Yang bakal dijelasin di sini adalah file bertipe. data akan disimpan ke file kalau penyangga file sudah penuh) Menentukan ukuran penyangga yang digunakan file. long integer. Procedure Seek(var f. Membuka file yang sudah ada. artinya harus disebutkan dulu tipe file tersebut.. maka writeln bisa digunakan) Membaca isi file. Procedure Rewrite (var f). Penjelasannya di bawah ini: Pengacuan suatu file melalui variabel file. Procedure Read(var f.. Sama seperti Eoln. tetapi spasi dan tab diabaikan. . maka isi file itu akan hilang. . Tetapi bila ada. (apabila filenya bertipe text.. Dipanggil setelah assign. Mengetahui posisi file sekarang. var1 [. NamaFile: string). Procedure Close(var f). Function SeekEof(var f:text):boolean. harus melakukan ini dulu Apabila file tidak ada. Procedure Assign (var f. maka readln bisa digunakan untuk membaca perbaris) Memeriksa akhir file. Sama seperti Eof.

Ingat kan rumus menghitung sisi miring segitiga? yaitu akar dari jumlah kuadrat sisi-sisinya.. Prosedur dan fungsi di atas gua ambil dari bukunya pak Ir. banyak yach? emang gitulah.. 14: readln. Waahhh. O iya.. CONTOH PROGRAM Program 1 : menghitung luas/keliling bangunan Yup... Apa yang beda hayoo. 13: writeln('keliling segitiga : '.. 10: keliling:= alas+tinggi+sisimiring. Bahkan ada lagi yang lain loh untuk file tak bertipe. Gampangkan? iya donk. 2: var alas. setelah variabel luas dan keliling dicetak ke layar ada tambahan ":0:2". Inc..? betul. keliling:0:2). 7: write('Masukkan tinggi : '). 8: luas:= 0. 11: writeln.Untuk contoh-contoh penggunaan prosedur dan fungsi di atas bisa di lihat di Program 9.... .. :D Ardhi Rizki Harahap @ ∆ .Bila ada tulisan var f. 12: writeln('luas segitiga : '.. 5: writeln('-------------------------------------'). 3: Begin 4: writeln('MENGHITUNG LUAS DAN KELILING SEGITIGA'). 6: write('Masukkan alas : '). Bila dalam bentuk fungsi. tinggi.5*alas*tinggi. Perhatikan contoh di bawah ini: 1: Program Menghitung_Luas_dan_Keliling. ada 2 jilid tebel-tebel tapinya :D.readln(tinggi). itu artinya variabel file. N artinya data ke-N. Fungsi "sqrt" adalah untuk mengakarkan dan sqr untuk mengkuadratkan. Pemrograman Pascal. Abdul Kadir. luas:0:2). Pada baris 6 dan 7 adalah tempat memasukkan alas dan tinggi segitiga yang akan diproses di baris 8 sampai 10. 15: end.readln(alas). Bukunya bagus juga. bila longint akan mengembalikan angka). kan tinggal maen logika. var1 artinya variabel yang bersesuaian dengan tipe filenya. 9: sisimiring:=sqrt(sqr(alas)+sqr(tinggi)).. Itu artinya :banyaknya alokasi angka:jumlah desimal. menghitung luas dan keliling bangunan. di sini gua gak ngasih contohnya loh. keliling: real. maka ia akan mengembalikan nilai tergantung jenisnya (apabila boolean maka akan mengembalikan True atau False. sisimiring. abis kepanjangan kalo ditulis di sini. NamaFile artinya nama databasenya (bila perlu pathnya).vxq. sekarang kita buat program yang pertama. Sekarang kebaris 12 dan 13. Bangunan yang dijadikan contoh adalah segitiga. luas.

5: writeln('-------------------------').readln(bil). Pada baris ke-7 sampai 12 adalah tempat menentukan bilangan prima atau bukan. yaa. 3: begin 4: writeln('MENENTUKAN JENIS BILANGAN'). kalo bisa rasanya pengen nimpuk tu orang dengan hardisk SEAGATE BARACUDA 80 giga lima biji :)). Pernah kah kalian membuat program dengan susah payah tetapi setelah ditunjukkan dengan orang lain.. bil2. 6: Write('Masukkan Bilangan Ketiga : '). tapi fungsinya. Masih ingat kan karateristik bilangan prima? bilangan yang hanya bisa dibagi 1 dan dirinya sendiri dan juga hampir semuanya ganjil. bil3 :real... 2: Var bil1. 12: if bil mod 2 = 0 then 13: writeln(' dan genap') 14: else 15: writeln(' dan ganjil'). artinya sisa dari 7/3 (tujuh dibagi tiga) adalah 1. He he he. 3: Begin 4: Write('Masukkan Bilangan Pertama : ').Program 2 : menentukan bilangan ganjil. 2: var bil: longint. Inc... Berhubung bilangan prima dibawah 10 adalah persyaratan untuk bilangan diatas 10 (perhatikan baris ke 7 dan 9).vxq.. prima apa bukan. 1: Program JenisBilangan. 17: end. Ardhi Rizki Harahap @ ∆ . Gimana? Tinggal maen logika.Readln(bil2). mereka bilang "Hanya gitu doank kerjanya?". sakit hati emang :-(. 7: if ((bil=2) or (bil=3) or (bil=5) or (bil=7)) then 8: write('bilangan prima') 9: else if ((bil mod 2 <> 0) and (bil mod 3 <> 0) and (bil mod 5 <> 0) and (bil mod 7 <> 0)) then 10: write('bilangan prima') 11: else write('bukan bilangan prima'). Jika ditulis "7 mod 3" maka hasilnya adalah 1. 5: Write('Masukkan Bilangan Kedua : '). gitulah :D 1: Program BilanganTerbesar.Readln(bil3). Sekarang kita jadiin program. 6: write('Masukkan angka: '). kan? :P Program 3 : menentukan bilangan terbesar (dengan if) Ini adalah program terakhir untuk mematangkan penggunaan kondisi if. Ini salah satu program yang panjang. genap dan prima Pernah kan pas di SD kita disuruh nentuin bilangan ini ganjil apa genap. Fungsi "mod" pada baris 9 dan 13 adalah sebagai sisa dari pembagian... jadi bilangan prima dibawah 10 ditulis manual.Readln(bil1). 16: readln. .

vxq. Hue he he.bil1:0:0) 40: Else 41: Writeln('Bilangan terbesar adalah '.bil2:0:0) 47: Else 48: Writeln('Bilangan terbesar adalah '.bil3:0:0) 32: Else 33: Writeln('Bilangan Terbesar Adalah '.bil2:0:0) 24: Else 25: Writeln('Bilangan Terbesar Adalah '.bil1:0:0) 18: End 19: Else If bil1=bil3 then 20: Begin 21: Writeln('Bilangan Pertama dan Ketiga Adalah Sama'). hanya itu intinya. Prinsip utama Ardhi Rizki Harahap @ ∆ .bil3:0:0) 16: Else 17: Writeln('Bilangan Terbesar Adalah '. 30: If Bil1 < bil3 then 31: Writeln('Bilangan Terbesar Adalah '.bil1:0:0) 9: Else If (bil1=bil2) or (bil1=bil3) or (bil2=bil3) then 10: Begin 11: If bil1=bil2 then 12: Begin 13: Writeln('Bilangan Pertama dan Kedua Adalah Sama').bil1:0:0) 34: End 35: End 36: Else If bil1 > bil2 then 37: Begin 38: If bil1 > bil3 then 39: Writeln('Bilangan terbesar adalah '. 14: If Bil1 < bil3 then 15: Writeln('Bilangan Terbesar Adalah '.7: If (bil1=bil2) and (bil2=bil3) then 8: Writeln('Semua bilangan yang anda masukkan sama besar '. Inc.bil1:0:0) 26: End 27: Else If bil2=bil3 then 28: Begin 29: Writeln('Bilangan Kedua dan Ketiga Adalah Sama'). Selain itu program ini bisa mendekteksi jika ada bilangan yang sama. 51: End.. 22: If Bil1 < bil2 then 23: Writeln('Bilangan Terbesar Adalah '.bil3:0:0). . 42: End 43: Else If bil1 < bil2 then 44: Begin 45: If bil2 > bil3 then 46: Writeln('Bilangan terbesar adalah '.bil3:0:0). 49: End. Yup. keren kan? dengan bermodalkan if kita bisa menentukan bilangan mana yang terbesar dari 3 bilangan yang dimasukkan.. 50: readln.

7: writeln('--------------------------'). i. biar logikanya jalan. Inc.program ini hanya membandingkan bilangan satu dengan yang lain. Hhmmm. bisa diubah sesuai keinginan. bila ternyata angka sebelumnya lebih besar. 5: begin 6: writeln('PROGRAM MENGGURUTKAN ANGKA'). .'. maka dipindah posisinya (coba dech di trace..5] of longint. sebenarnya gak perlu dijelasin lagi yach tu program.. j: integer. Program ini berguna banget buat kalian yang hobi ngitung. kemudian membandingkannya.readln(a[i]) 11: end.. ' : '). 8: for i:=1 to 4 do 9: begin 10: write('Masukkan bilangan ke. 21: a[i+1]:=k 22: end.. 12: for j:=2 to 4 do 13: begin 14: k:=a[j]. 4: a: array[1. 26: end. 16: while (i>0) and (a[i]>k) do 17: begin 18: a[i+1]:=a[i]. Program ini dibatasi untuk 4 angka saja.. Pada prinsipnya program ini memasukkan input ke dalam array. Mudah bukan? lebih baik kalian ngerjain yang ini tanpa ngeliat tu program. lah kalo ada 100 biji kan berabe. pasti ngerti). Ini solusinya: 1: Program Pengurutan. Program 4 : penggurutan angka (looping) Pernahkah kalian dikasih nilai ulangan siswa lalu disuruh ngurutin dari yang kecil ke gede? Kalo jumlahnya dibawah 10 sih gak masalah.. 15: i:=j-1. 19: i:=i-1. modus dan median Ardhi Rizki Harahap @ ∆ . 2: var i. gua harap kalian bisa nge-trace (menelusuri) algoritma programnya.vxq. 20: end. apa lagi buat anak smu.. 25: readln. 23: for i:=1 to 4 do 24: writeln(a[i]). 3: k : longint. Untuk pengembanganya kalian bisa menghitung mean.

3: Var i. y:integer. 13: write(y:4). 10: end.vxq. 17: End. 12: end. Inc. 2: const akhir=18. 14: if y mod x=0 then 15: Writeln. 4: Begin 5: clrscr. sekarang ke for. 7: y:=0. 4: begin 5: for baris:=1 to akhir do 6: begin 7: for kolom:=1 to baris do 8: write('*'). 11: readln. 18: readkey. 19: End. 8: For i:=1 to x do 9: Begin 10: for j:=1 to x do 11: Begin 12: y:=y+1.Readln(x). kolom: integer. Program di bawah ini akan memunculkan output berupa sekumpulan bintang yang membentuk tangga 1: Program BintangTangga. 1: Program BintangKubus. 16: End. Sekarang kita coba menampilkan sekumpulan bintang yang membentuk kubus. 6: Write('Masukkan Dimensi Kubus: '). gimana hasilnya? menarik bukan?. j.Program 5 : bintang (looping) Setelah sebelumnya kita bermain dengan if. 9: writeln. 2: uses crt. Gimana? baguskan? Sekarang tugas kamu membuat sekumpulan bintang berbentuk piramida dan berbentuk tangga terbalik (seperti program pertama di atas tetapi terbalik) Ardhi Rizki Harahap @ ∆ . 3: var baris. . x. Coba dech dijalankan.

13: begin {program utama} 14: repeat 15: clrscr. 17: writeln('-------------------------------------------'). Ardhi Rizki Harahap @ ∆ . Pengurutan'). sekarang kita menggabungkan beberapa program sebelumnya dan dibuat menu. Inc. . fungsi) Setelah dari tadi belajar logika. 10: Procedure Pengurutan. 34: end. 2 dan 4 dengan membuat menu (prosedur. 4: Procedure luas. 1: Program Gabung. 19: writeln(' 2. 29: 2 : JenisBilangan.vxq. 22: writeln('-------------------------------------------'). 31: 4 : exit. 8: {copy dan paste program 2} 9: end. Ngertikan prisip kerjanya? Jadi program ini hanya akan berakhir jika user memilih no 4. 3: var pilih: integer. 30: 3 : Pengurutan. 27: case pilih of 28: 1 : luas.Program 6 : penggabungan program 1. 11: {copy dan paste program 4} 12: End. 2: uses crt. 21: writeln(' 4. Exit'). 7: Procedure JenisBilangan. 5: {copy dan paste program 1} 6: end. 18: writeln(' 1. 25: write(' Pilih Angka untuk Memilih Pilihan : '). 24: writeln. 23: writeln. Untuk contoh ini kita memanfaatkan repeat. 26: readln(pilih). 32: end. 33: until pilih = 4. 20: writeln(' 3. Jenis Bilangan'). Menghitung Luas'). 16: writeln(' PILIHAN').

14: write('alamat : ').vxq. 7: var data:array[1.nrp). data[i]. dst (baris 10 sampai 15).readln(data[i]. 6: end. 24: readln. Perhatikan program di bawah ini: 1: Program Array_dan_Record..Program 7 : toko (record dengan array) Pada tutorial 5 telah dijelaskan cara penggunaan array dan record. 4: nama:string[25]. 13: write('nama : '). 8: i:integer.readln(data[i]. Ardhi Rizki Harahap @ ∆ .readln(data[i]. Selanjutnya variabel data dideklarasikan bertipe dmhs yang berbentuk array (baris ke 7). data[i]. 16: writeln.nrp)". 21: writeln('nama : '.3] of dmhs. Di dalam program tersebut dideklarasikan bahwa dmhs (data mahasiswa) itu adalah record yang mempunyai field nrp. Untuk menampilkannya bisa dilihat dibaris ke 18 sampai 23.nrp). 2: type dmhs=record 3: nrp:string[10]. 23: end. Kemudian seperti biasa untuk memasukkan data ke field digunakan "readln(data[i]. 25: end. 17: writeln('Data ditampilkan'). 9: begin 10: for i:=1 to 3 do 11: begin 12: write('nrp : '). Sekarang kita akan menggabungkan array dan record tersebut. 5: alamat:string[50]. data[i]. Inc.alamat). . 15: end. nama dan alamat (lihat baris 2 sampai 6).nama). 22: writeln('alamat : '.nama).alamat). 18: for i:=1 to 3 do 19: begin 20: writeln('nrp : '.

6: for urutan:=1 to 11 do 7: begin 8: posisi:= 13 . habis program-program sebelumnya kan kebanyakan bermain logika matematik (tentang angka melulu).Program 8 : Operasi String Yang ini sebenarnya program tambahan. nama. 16: insert('-'. operasi tentang string kok gak ada? Tenaaannggg. 19: end.. 14: writeln('Yang ini insert'). 11: end. Outputnya seperti di bawah ini Yang ini delete Dijas Keren Dijas Kere Dijas Ker Dijas Ke Dijas K Dijas Dijas Dija Dij Di D Yang ini insert Sebelum di Insert : DijasKeren Setelah di Insert : Dijas-Keren Jadi isi penggunaan delete itu => delete(string. 10: writeln(nama). Sedangkan insert => insert(yang mau disisipkan.vxq.. nama). posisi: integer. dipikir-pikir.. 18: readln. sekarang udah ada kok :p 1: var nama : string. 5: writeln('Yang ini delete'). string. . 17: writeln('Setelah di Insert : '. 13: nama:='DijasKeren'. posisinya... 3: begin 4: nama:='Dijas Keren'. Ehh. Inc. 1). 15: writeln('Sebelum di Insert : '. 6). 9: delete(nama. Ardhi Rizki Harahap @ ∆ . posisinya). 12: writeln. Gampang kan? Dengan ini bisa dibuat kayak Program 5 loh (tentang bintang). posisi. jumlah yang di hapus). nama). 2: urutan.urutan.

Khusus posisi salah. string. string) : string Yang ini untuk menggabungkan string. 13: end. program pembalik kata 1: program pembalik_kata. posisi salah) prosedur ini untuk mengubah string ke numerik. 6: for i :=length(kata) downto 1 do 7: begin 8: tmp:=copy(kata. jumlah yang akan diambil) Fungsi ini untuk mengambil sejumlah huruf dari sting yang dimasukkan Pos(string/huruf yang akan dicari posisinya. Inc. posisinya. i:integer. jadi hasil penggabungannya ditampung di Concat Ini program terakhir tentang operasi string.i. string awal):byte Fungsi ini untuk mengetahui posisi dari string/huruf dari kata/kalimat yang dimaksud.readln(kata).tmp:string. yang dideteksi adalah posisi salah yang pertama (walaupun ada 5 biji yang salah. 11: write('Dibalik '. variabel string tempat hasilnya disimpan) prosedur ini untuk mengubah numerik ke string val(string. Bila bernilai nol berarti nilai string yang dicari tidak ada. ini fungsi loohh. Ardhi Rizki Harahap @ ∆ . length(string) : integer Fungsi ini untuk menghitung panjang atau jumlah karakter. 5: hasil:=''. 9: hasil:=hasil+tmp. variabel numerik tempat hasilnya disimpan.hasil). 3: begin 4: write('Kata : '). copy(string.1). .hasil. 10: end..vxq. 12: readln. yang ke tangkap yang pertama) Concat(string.Bagaimana jika suatu saat kamu pengen ngerubah string jadi numerik atau numerik jadi string? str(angkanya:desimal yang diambil. 2: var kata. Di program ini ada dua fungsi operasi string baru yang digunakan.

txt'). Perhatikan contoh di bawah ini: assign(fText. 7: rewrite(fText). perintahnya: Seek(fText. Perhatikan contoh berikut: 1: Program BuatFile. filesize(fText)).. berarti kalian sudah melewati level basic. 'dijas').. writeln(data). terutama mengenai database.. eof kepanjangan end of file while not eof(fText) do begin readln(fText. 'cecep'). Bagaimana caranya jika ingin mengedit data yang sudah ada? Gunakan prosedur seek. 13: end. Tapi hati-hati mengunakan Truncate. Untuk membaca databasenya gunakan reset (jangan rewrite) dan gunakan prosedur no 6. soalnya mulai dari posisi yang dimaksud sampai akhir file akan dihapus. 12: readln. Untuk pengembangannya coba cari program-program open source. Inc. writeln(data). data). Kalo kalian udah paham seluruh tutorial dan program yang ada di sini... data). Prosedur yang digunakan di atas adalah prosedur no. read(fText. 'bil.vxq. 1 sampai 5 yang ada di Tutorial 6.dat'). Selamat mencoba. . 3: begin 4: writeln('MENGISI DATA').. gunakan perintah write untuk mengedit atau prosedur Truncate untuk menghapus (perintahnya Truncate(fText)). 9: writeln(fText. Fungsi dan prosedur lainnya bisa dicoba-coba sendiri yaaa. Sekarang kita gunain fungsi nomor 7 yachh.Program 9 : Contoh penggunaan teori di tutor 6 Program database ini adalah contoh-contoh penggunaan fungsi dan prosedur dari Tutorial 6. Huuff. 5: writeln('------------'). end. 11: close(fText). 'dian'). akhirnya kelar juga ngebahas dasar-dasar pascal... 2: var fText : text. data: string. 10: writeln(fText. 'nama. reset(fText). Setelah menempatkan kursor ditempat yang diinginkan. 6: assign(fText. {gunakan reset(fText) bila file sudah ada} 8: writeln(fText. Fungsi ini biasa digunakan untuk membaca data yang ada dari awal/posisi tertentu sampai akhir.… Ardhi Rizki Harahap @ ∆ .

Sign up to vote on this title
UsefulNot useful