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.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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