Ini Dia Kalau mau Belajar Pascal Lengkap Mudaah Contoh - TopicsExpress



          

Ini Dia Kalau mau Belajar Pascal Lengkap Mudaah 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 pendeklarasian variabel dan programnya. Perhatikan contoh: 1: Program KaryaPertamaku; 2: uses crt; 3: var nama: string; 4: Begin 5: write(Masukkan nama anda: ); readln(nama); 6: clrscr; 7: write(Hi , nama, apakabar?); 8: End. perhatikan strukturnya. Pada baris ke 3, itu yang disebut bagian pendeklarasian variabel. Sedangkan dari baris ke-4 s/d 8, disebut bagian pernyataan (tempat nulis program). Baris pertama itu hanya merupakan judul programnya doank, gak ditulis juga boleh. Judulnya adalah KaryaPertamaku, jangan pake spasi (gunakan garis bawah aja). O iya, dalam pascal ada yang disebut unit-unit lain semacam librari lah... Misalnya pada baris kedua digunakan uses crt; (berfungsi untuk memanipulasi layar teks). Perhatikan baris 6, itu adalah salah satu fungsi dari unit crt yaitu untuk membersihkan layar (sama dengan perintah cls di dos). Perhatikan cara penulisan programnya! Setiap baris selalu diakhiri dengan titik koma ; (kecuali pada baris ke-4 dan 8, karena itu adalah tanda dari awal dan akhir program). Selain itu program pascal selalu dimulai dengan begin dan end. (jangan lupa titiknya loh). Bagaimana, mudah bukan? Gua kasih satu tips yang berguna. Kalo nulis program usahakan yang rapi. Ingat bila ada Begin pasti ada end, nah penulisan program diantara begin dan end itu usahakan di kasih 2 spasi atau satu tab. Perhatikan baris ke-5 s/d 7. Itu akan memudahkan penelusuran program bila terjadi kesalahan MENCETAK KE LAYAR DAN PENGGUNAAN VARIABEL sekarang belajar cara menampilkan teks di layar dan penggunaan variabel. Perhatikan contoh dibawah ini: 1: Program KaryaPertamaku; 2: uses crt; 3: var nama: string; 4: Begin 5: write(Masukkan nama anda: ); readln(nama); 6: clrscr; 7: write(Hi , nama, apa kabar?); 8: End. Pada baris ke-3 dideklarasikan variabel nama dengan tipe string. Karena berupa string, variabel nama bisa menampung input dari user berupa kata dan angka. Untuk lebih jelas tentang jenis tipe data lihat tabel di bawah. Jangan sampai salah mendeklarasikan jenis variabelnya loohh... Sekarang perhatikan baris ke-5. Fungsi write adalah mencetak kalimat atau isi variabel yang ada ke layar. Jadi yang tercetak adalah Masukkan nama anda: . Selanjutnya ada perintah readln. Apa fungsinya? readln itu berfungsi untuk menampung (menyimpan hasil input user) dan disimpan pada variabel nama. Jadi sekarang variabel nama bernilai sama yang kamu ketikan. Pada baris ke-7 di layar akan tercetak Hi dijas apa kabar? (itu kalo nama yang dimasukan dijas). Untuk menampilkan isi variabel cukup ditulis: write(nama);. Sedangkan bila berupa teks yang fixed, 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. Sedangkan writeln akan pindah kebaris yang baru. Perhatikan Contoh 1: Begin 2: write(Hi...); write( Apa kabar?); 3: writeln; 4: writeln(Hi.. ); writeln(Apa kabar?); 5: End. Maka output yang tampil adalah: Hi... Apa kabar? Hi... Apa kabar ? Jelas bukan? Jadi fungsi ln pada writeln adalah untuk pindah kebaris yang baru. Fungsinya akan sama bila ditaruh di read. Yup tutorial pertama kelar juga... Tipe Data yang Sering Digunakan di Pascal Char -> hanya menampung satu karakter string -> menampung lebih dari satu karakter Boolean -> hanya mempunyai dua nilai True atau False Integer -> -32.768 s/d 32.767 (gak bisa bilangan desimal) longint -> -2.147.483.648 s/d -2.147.483.648(gak bisa bilangan desimal) read -> 2,9 x 10-39 s/d 1,7 x 1038 (untuk menampung bilangan desimal) PENGGUNAAN KONDISI Tutorial yang kedua ini akan dibahas mengenai pernyataan kondisi, if dan case. 1: Program Tutorial2_if; 2: var pilih: Integer; 3: Begin 4: write(Pilih 1 atau 2); readln(pilih); 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. Perhatikan baris 5, 6 dan 7. Di situ ada 3 pernyataan kondisi if. Apabila pilihan yang kita ketik ada di satu kondisi, maka yang lain akan diabaikan. Bingung? gini maksudnya... Misal pada program di atas kita pilih 2. Pada saat program dijalankan, baris ke-5 akan di eksekusi. Berhubung pilihan kita 2 bukan 1, maka akan langsung pindah kebaris selanjutnya. Ternyata pada baris ke-6 kondisi itu terpenuhi, maka yang tercetak dilayar adalah Pilihan anda 2. Baris ke-7 tidak diperiksa lagi karena baris ke 6 sudah memenuhi syarat. Bila kita memilih 3, maka baris ke-5 dan ke-6 tidak memenuhi konsisi tersebut, maka yang tercetak adalah Anda memilih yang lain. Selain dengan if, pernyataan kondisi di atas bisa juga menggunakan case. Perhatikan contoh: 1: Program Tutorial2_case; 2: var pilih: char; 3: Begin 4: write(Pilih 1 atau 2); readln(pilih); 5: case pilih of 6: 1: write(Anda memilih 1); 7: 2: write(Pilihan anda 2); 8: else write(Anda memilih yang lain); 9: end; 10: End. Keterangannya gak jauh beda dengan kondisi if kok. Coba amati pada baris ke 9, di sana ada pernyataan end;. Pernyataan itu berfungsi untuk menutup pernyataan case yang dimulai pada baris ke-5. Perlu diingat end disertai dengan titik hanya untuk diakhir program. LOOPING Looping? apa hayoo...? masih ingatkan pelajaran fisika SMU, adakan pelajaran tentang looping dirangkaian elektronik. Looping adalah proses pengulangan hingga kondisi syarat yang ditentukan tercapai. Sekarang kita ngebahas 3 jenis looping, for, while dan repeat. Perhatikan contoh di bawah ini: 1: Program Tutorial3_for; 2: var i: Integer; 3: Begin 4: For i:=1 to 5 do 5: writeln(ini yang ke , i); 6: End. Perhatikan baris 4 dan 5. Di sana ada satu persyaratan, yaitu baris ke-5 akan dieksekusi bila nilai i antara 1 sampai 5. 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; 2: var i: Integer; 3: Begin 4: i:=1; 5: while i < 5 do 6: begin 7: writeln(ini yang ke , i); 8: i:=i+1; 9: end; 10: End. perbedaan mendasar while dengan for adalah : while dibutuhkan counter (diprogram ini adalah i). Jadi, baris ke-7 dan 8 akan dieksekusi (dijalankan) apabila nilai i < 5. Coba liat baris ke 6, di sana ada begin dan end; sebagai pasangannya (dibaris ke 9). Bila ada lebih dari satu pernyataan harus di mulai dengan begin untuk kondisi if, case, looping. Jika tidak hanya baris pertama saja yang dieksekusi. 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 yang terjadi? Coba jalankan. Akan terjadi looping terus menerus karena kondisinya memenuhi syarat terus (i selalu kurang dari lima). Tekan control break untuk menghentikannya. Hal inilah yang disebut invinitive loop. Sekarang kita coba dengan repeat. 1: Program Tutorial3_while; 2: var pilih: char; 3: Begin 4: i:=1; 5: repeat 6: writeln(ini yang ke ,i); 7: i:=i+1; 8: until i bil3 then 39: Writeln(Bilangan terbesar adalah ,bil1:0:0) 40: Else 41: Writeln(Bilangan terbesar adalah ,bil3:0:0); 42: End 43: Else If bil1 < bil2 then 44: Begin 45: If bil2 > bil3 then 46: Writeln(Bilangan terbesar adalah ,bil2:0:0) 47: Else 48: Writeln(Bilangan terbesar adalah ,bil3:0:0); 49: End; 50: readln; 51: End. dengan bermodalkan if kita bisa menentukan bilangan mana yang terbesar dari 3 bilangan yang dimasukkan. Selain itu program ini bisa mendekteksi jika ada bilangan yang sama. hanya itu intinya. Prinsip utama program ini hanya membandingkan bilangan satu dengan yang lain. Mudah bukan? lebih baik kalian ngerjain yang ini tanpa ngeliat tu program, biar logikanya jalan... 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, lah kalo ada 100 biji kan berabe... Ini solusinya: 1: Program Pengurutan; 2: var i, j: integer; 3: k : longint; 4: a: array[1..5] of longint; 5: begin 6: writeln(PROGRAM MENGGURUTKAN ANGKA); 7: writeln(--------------------------); 8: for i:=1 to 4 do 9: begin 10: write(Masukkan bilangan ke- , i, : );readln(a[i]) 11: end; 12: for j:=2 to 4 do 13: begin 14: k:=a[j]; 15: i:=j-1; 16: while (i>0) and (a[i]>k) do 17: begin 18: a[i+1]:=a[i]; 19: i:=i-1; 20: end; 21: a[i+1]:=k 22: end; 23: for i:=1 to 4 do 24: writeln(a[i]); 25: readln; 26: end. sebenarnya gak perlu dijelasin lagi yach tu program, gua harap kalian bisa nge-trace (menelusuri) algoritma programnya. Program ini dibatasi untuk 4 angka saja, bisa diubah sesuai keinginan. Pada prinsipnya program ini memasukkan input ke dalam array, kemudian membandingkannya, bila ternyata angka sebelumnya lebih besar, maka dipindah posisinya (coba dech di trace, pasti ngerti). Program ini berguna banget buat kalian yang hobi ngitung, apa lagi buat anak smu. Untuk pengembanganya kalian bisa menghitung mean, modus dan median Program 5 : bintang (looping) Setelah sebelumnya kita bermain dengan if, sekarang ke for. Program di bawah ini akan memunculkan output berupa sekumpulan bintang yang membentuk tangga 1: Program BintangTangga; 2: const akhir=18; 3: var baris, kolom: integer; 4: begin 5: for baris:=1 to akhir do 6: begin 7: for kolom:=1 to baris do 8: write(*); 9: writeln; 10: end; 11: readln; 12: end. Coba dech dijalankan, gimana hasilnya? menarik bukan?. Sekarang kita coba menampilkan sekumpulan bintang yang membentuk kubus. 1: Program BintangKubus; 2: uses crt; 3: Var i, j, x, y:integer; 4: Begin 5: clrscr; 6: Write(Masukkan Dimensi Kubus: );Readln(x); 7: y:=0; 8: For i:=1 to x do 9: Begin 10: for j:=1 to x do 11: Begin 12: y:=y+1; 13: write(y:4); 14: if y mod x=0 then 15: Writeln; 16: End; 17: End; 18: readkey; 19: End. Gimana? baguskan? Sekarang tugas kamu membuat sekumpulan bintang berbentuk piramida dan berbentuk tangga terbalik (seperti program pertama di atas tetapi terbalik) Program 6 : penggabungan program 1, 2 dan 4 dengan membuat menu (prosedur, fungsi) Setelah dari tadi belajar logika, sekarang kita menggabungkan beberapa program sebelumnya dan dibuat menu. Untuk contoh ini kita memanfaatkan repeat. 1: Program Gabung; 2: uses crt; 3: var pilih: integer; 4: Procedure luas; 5: {copy dan paste program 1} 6: end; 7: Procedure JenisBilangan; 8: {copy dan paste program 2} 9: end; 10: Procedure Pengurutan; 11: {copy dan paste program 4} 12: End; 13: begin {program utama} 14: repeat 15: clrscr; 16: writeln( PILIHAN); 17: writeln(-------------------------------------------); 18: writeln( 1. Menghitung Luas); 19: writeln( 2. Jenis Bilangan); 20: writeln( 3. Pengurutan); 21: writeln( 4. Exit); 22: writeln(-------------------------------------------); 23: writeln; 24: writeln; 25: write( Pilih Angka untuk Memilih Pilihan : ); 26: readln(pilih); 27: case pilih of 28: 1 : luas; 29: 2 : JenisBilangan; 30: 3 : Pengurutan; 31: 4 : exit; 32: end; 33: until pilih = 4; 34: end. Ngertikan prisip kerjanya? Jadi program ini hanya akan berakhir jika user memilih no 4. Program 7 : toko (record dengan array) Pada tutorial 5 telah dijelaskan cara penggunaan array dan record. Sekarang kita akan menggabungkan array dan record tersebut. Perhatikan program di bawah ini: 1: Program Array_dan_Record; 2: type dmhs=record 3: nrp:string[10]; 4: nama:string[25]; 5: alamat:string[50]; 6: end; 7: var data:array[1..3] of dmhs; 8: i:integer; 9: begin 10: for i:=1 to 3 do 11: begin 12: write(nrp : );readln(data[i].nrp); 13: write(nama : );readln(data[i].nama); 14: write(alamat : );readln(data[i].alamat); 15: end; 16: writeln; 17: writeln(Data ditampilkan); 18: for i:=1 to 3 do 19: begin 20: writeln(nrp : , data[i].nrp); 21: writeln(nama : , data[i].nama); 22: writeln(alamat : , data[i].alamat); 23: end; 24: readln; 25: end. Di dalam program tersebut dideklarasikan bahwa dmhs (data mahasiswa) itu adalah record yang mempunyai field nrp, nama dan alamat (lihat baris 2 sampai 6). Selanjutnya variabel data dideklarasikan bertipe dmhs yang berbentuk array (baris ke 7). Kemudian seperti biasa untuk memasukkan data ke field digunakan readln(data[i].nrp), dst (baris 10 sampai 15). Untuk menampilkannya bisa dilihat dibaris ke 18 sampai 23. Program 8 : Operasi String Yang ini sebenarnya program tambahan, habis program-program sebelumnya kan kebanyakan bermain logika matematik (tentang angka melulu). Ehh... dipikir-pikir, operasi tentang string kok gak ada? Tenaaannggg.... sekarang udah ada kok :p 1: var nama : string; 2: urutan, posisi: integer; 3: begin 4: nama:=Dijas Keren; 5: writeln(Yang ini delete); 6: for urutan:=1 to 11 do 7: begin 8: posisi:= 13 - urutan; 9: delete(nama, posisi, 1); 10: writeln(nama); 11: end; 12: writeln; 13: nama:=DijasKeren; 14: writeln(Yang ini insert); 15: writeln(Sebelum di Insert : , nama); 16: insert(-, nama, 6); 17: writeln(Setelah di Insert : , nama); 18: readln; 19: end. Outputnya seperti di bawah ini Yang ini delete Dijas Keren Dijas Kere Dijas Ker Dijas Ke Dijas K Dijas Dijas Dija Dij Di D Yang ini insert Sebelum di Insert : DijasKeren Setelah di Insert : Dijas-Keren Jadi isi penggunaan delete itu => delete(string, posisinya, jumlah yang di hapus). Sedangkan insert => insert(yang mau disisipkan, string, posisinya). Gampang kan? Dengan ini bisa dibuat kayak Program 5 loh (tentang bintang). 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, variabel numerik tempat hasilnya disimpan, posisi salah) prosedur ini untuk mengubah string ke numerik. Khusus posisi salah, yang dideteksi adalah posisi salah yang pertama (walaupun ada 5 biji yang salah, yang ke tangkap yang pertama) Concat(string, string, string) : string Yang ini untuk menggabungkan string, ini fungsi loohh.. jadi hasil penggabungannya ditampung di Concat Ini program terakhir tentang operasi string, program pembalik kata 1: program pembalik_kata; 2: var kata,hasil,tmp:string; i:integer; 3: begin 4: write(Kata : );readln(kata); 5: hasil:=; 6: for i :=length(kata) downto 1 do 7: begin 8: tmp:=copy(kata,i,1); 9: hasil:=hasil+tmp; 10: end; 11: write(Dibalik ,hasil); 12: readln; 13: end. Di program ini ada dua fungsi operasi string baru yang digunakan. length(string) : integer Fungsi ini untuk menghitung panjang atau jumlah karakter. copy(string, posisinya, jumlah yang akan diambil) Fungsi ini untuk mengambil sejumlah huruf dari sting yang dimasukkan Pos(string/huruf yang akan dicari posisinya, string awal):byte Fungsi ini untuk mengetahui posisi dari string/huruf dari kata/kalimat yang dimaksud. Bila bernilai nol berarti nilai string yang dicari tidak ada. Program 9 : Contoh penggunaan teori di tutor 6 Program database ini adalah contoh-contoh penggunaan fungsi dan prosedur dari Tutorial 6. Perhatikan contoh berikut: 1: Program BuatFile; 2: var fText : text; data: string; 3: begin 4: writeln(MENGISI DATA); 5: writeln(------------); 6: assign(fText, nama.txt); 7: rewrite(fText); {gunakan reset(fText) bila file sudah ada} 8: writeln(fText, dijas); 9: writeln(fText, dian); 10: writeln(fText, cecep); 11: close(fText); 12: readln; 13: end. Prosedur yang digunakan di atas adalah prosedur no. 1 sampai 5 yang ada di Tutorial 6. Untuk membaca databasenya gunakan reset (jangan rewrite) dan gunakan prosedur no 6. Perhatikan contoh di bawah ini: assign(fText, bil.dat); reset(fText); read(fText, data); writeln(data); Sekarang kita gunain fungsi nomor 7 yachh... Fungsi ini biasa digunakan untuk membaca data yang ada dari awal/posisi tertentu sampai akhir. eof kepanjangan end of file while not eof(fText) do begin readln(fText, data); writeln(data); end; Bagaimana caranya jika ingin mengedit data yang sudah ada? Gunakan prosedur seek, perintahnya: Seek(fText, filesize(fText));. Setelah menempatkan kursor ditempat yang diinginkan, gunakan perintah write untuk mengedit atau prosedur Truncate untuk menghapus (perintahnya Truncate(fText)). Tapi hati-hati mengunakan Truncate, soalnya mulai dari posisi yang dimaksud sampai akhir file akan dihapus. Fungsi dan prosedur lainnya bisa dicoba-coba sendiri yaaa.... Mudah Kannn....? kalo masih kesulitan hub saja saya...
Posted on: Fri, 08 Nov 2013 08:02:44 +0000

Trending Topics



Recently Viewed Topics




© 2015