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.

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

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

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

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

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

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

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

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

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

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

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

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

Inc.Program 5 : bintang (looping) Setelah sebelumnya kita bermain dengan if. Coba dech dijalankan. 18: readkey. 12: end. Sekarang kita coba menampilkan sekumpulan bintang yang membentuk kubus. 2: uses crt. kolom: integer. Program di bawah ini akan memunculkan output berupa sekumpulan bintang yang membentuk tangga 1: Program BintangTangga. 7: y:=0. 3: Var i. y:integer. gimana hasilnya? menarik bukan?. . 11: readln. 2: const akhir=18.vxq. j. 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 @ ∆ . 17: End. 3: var baris. 9: writeln. 1: Program BintangKubus. sekarang ke for. 4: Begin 5: clrscr. 19: End. 10: end. 16: End. x. 8: For i:=1 to x do 9: Begin 10: for j:=1 to x do 11: Begin 12: y:=y+1. 14: if y mod x=0 then 15: Writeln. 6: Write('Masukkan Dimensi Kubus: ').Readln(x). 13: write(y:4).

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

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

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

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

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

Sign up to vote on this title
UsefulNot useful