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.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Sign up to vote on this title
UsefulNot useful