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.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Sign up to vote on this title
UsefulNot useful