Sabtu, Agustus 22, 2009

Dasar Pemrograman Pascal "Aplikasi -->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.
Apa perbedaan mendasar while dengan for? yup, di 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<0;
9: End.
Apa outputnya? cuman 1, “ini yang ke 1″. Loh kok bisa, kan pada baris ke 8 tidak memenuhi persyaratan i<0 ? Memang nggak memenuhi persyaratan itu, tapi ini adalah keistemewaan repeat. Ia akan mengeksekusi sekali dulu baru dicek persyaratan yang ada dibawah.
Kelar juga ngebahas looping. Gunakan jenis looping yang ada seseuai kebutuhan. O iya, apa yang dilakukan bila tertulis seperti ini? “For i:=10 downto 1 do”. Pernyataan itu akan menghitung mundur dari 10 sampai 1.



sumber : www.sttdb.wordpress.com

Aplikasi lain di Dasar Pemrograman Pascal (...next)

Pernahkah kamu membayangkan bila kita mau membuat program toko buah-buahan. Jika ada 3 jenis buah-buahan (melon, duku dan mangga) berarti kita harus mempunyai tiga variabel untuk masing-masing jenis buah. Tetapi betapa sulitnya jika toko itu punya 10 atau 20 jenis yang berbeda. Solusinya adalah gunakan array. Array itu adalah tipe data terstuktur yang berguna untuk menyimpan sejumlah data yang bertipe sama. Bagaimana cara kerjanya? yaitu dengan menggunakan index (semacam penanda). Perhatikan contoh:
1: Program Tutorial5_Array;
2: var buah: array [1..3] of string;
3: i: integer;
4: Begin
5: For i:=1 to 3 do
6: begin
7: write(’Masukkan buah-buahan ke ‘,i , ‘ : ‘);readln(buah[i]);
8: end;
9: writeln;writeln(’Isi buah-buahan yang dimasukkan tadi adalah : ‘);
10: For i:= 1 to 3 do
11: writeln(’buah ke’, i ,’ : ‘, buah[i]);
12: End.
Lihat pada baris ke 7. Dengan hanya menggunakan satu nama variabel yaitu buah, kita bisa menyimpan 3 nilai yang berbeda. Misalkan yang kita masukkan adalah melon, duku dan mangga. maka buah[1] bernilai melon, buah[2] bernilai duku dan buah[3] bernilai mangga. Untuk mencetak isi variabel yang sudah disimpan di array tadi caranya bisa dilihat di baris ke 11.
Bagaimana, gampangkan? setelah mengetahui cara menggunakan array, sekarang kita belajar menggunakan record. Tidak seperti array, record adalah jenis tipe data terstruktur yang berisi beberapa data, yang masing-masing dapat berlainan tipe. Perhatikan contoh:
1: Program Tutorial5_Record;
2: type buah = record
3: nama: string;
4: harga: longint;
5: end;
6: var data:buah;
7: Begin
8: write(’nama buah: ‘);readln(data.nama);
9: write(’harga buah: ‘);readln(data.harga);
10: write(’ditampilkan’);
11: write(’nama’);readln(data.nama);
12: writeln(’harga’);readln(data.harga);
13: End.
Apa yang bisa kamu ambil kesimpulan dari program di atas? Bingung? Jadi gini, dengan menggunakan record (di sini bernama buah) kita bisa membuat tipe data yang berisi beberapa data yang berlainan tipe (nama dengan jenis string, dan harga dengan jenis long integer) yang ini disebut field.
Perhatikan baris ke 6, di situ dideklarasikan bahwa variabel data bertipe buah. Otomatis yang dimiliki buah (nama dan harga) dimiliki juga oleh data. Setelah itu lihat baris ke 8 dan 9. Nama buah disimpan dalam field nama dan harga buah disimpan di dalam field harga. Untuk bisa menyimpan data di field, urutannya harus variabel.field (contohnya di sini data.nama atau data.harga). Begitu juga bila kita ingin menampilkan isi field tersebut.
Tipe data seperti ini sangat berguna kedepannya loohh… Apalagi jika digabungkan dengan array.


sumber : www.sttdb.wordpress.com

Aplikasi lain di dasar Pemrograman Pascal

Rasanya gak lengkap kalo buat program tapi gak bisa nyimpen data. Yang bakal dijelasin di sini adalah file bertipe, artinya harus disebutkan dulu tipe file tersebut, apakah integer, long integer, string, char atau bahkan record. Berikut ini adalah daftar prosedur dan fungsi yang berhubungan dengan program database file bertipe (no 12 sampai 16 hanya untuk file teks).
Procedure Assign (var f, NamaFile: string);
Procedure Rewrite (var f);
Procedure Reset(var f);
Procedure Close(var f);
Procedure Write(var f, var1 [, var2, ..., varn]);
Procedure Read(var f, var1 [, var2, ..., varn]);
Function Eof(var f): Boolean;
Function FilePos(var f): longint;
Function FileSize(var f): longint;
Procedure Seek(var f, N: longint);
Procedure Truncate(var f);
Function Eoln(var f:text):boolean;
Function SeekEoln(var f:text):boolean;
Function SeekEof(var f:text):boolean;
Procedure Flush(var f:text);
Procedure SetTextBuf(var f:text, var buf[, ukuran: word]);
Penjelasannya di bawah ini:
Pengacuan suatu file melalui variabel file. Setiap ingin melakukan manipulasi atau yang lainya, harus melakukan ini dulu
Apabila file tidak ada, maka file itu akan terbentuk. Tetapi bila ada, maka isi file itu akan hilang.
Membuka file yang sudah ada, tetapi tidak menghapus isinya
Menutup suatu file (lakukan setelah setelah file itu di manipulasi)
Mengisi file dengan data. (apabila filenya bertipe text, maka writeln bisa digunakan)
Membaca isi file. (apabila filenya bertipe text, maka readln bisa digunakan untuk membaca perbaris)
Memeriksa akhir file. Hasilnya akan True bila posisinya diakhir dan False apabila tidak diakhir. Biasa digunakan untuk membaca/mengubah data.
Mengetahui posisi file sekarang. Penomoran data mulai dari 0.
Mengetahui jumlah data yang ada.
Memindahkan posisi file. Data pertama bernilai 0.
Menghapus data dari posisi sekarang sampai akhir file
Menghasilkan status akhir baris file teks. Nilainya akan true kalau diakhir baris atau Eof memberikan nilai True.
Sama seperti Eoln, tetapi spasi dan tab diabaikan.
Sama seperti Eof, tetapi mengabaikan spasi, tab ataupun tanda akhir baris
Mengosongkan penyangga (buffer) file teks yang dibuka untuk keluaran (perekaman). Prosedur ini menjamin bahwa data yang direkam benar-benar telah disimpan ke file (normalnya, data akan disimpan ke file kalau penyangga file sudah penuh)
Menentukan ukuran penyangga yang digunakan file. Dipanggil setelah assign. Semakin besar semakin cepat pemrosesannya, defaultnya 128 byte.
Bila ada tulisan var f, itu artinya variabel file. NamaFile artinya nama databasenya (bila perlu pathnya). var1 artinya variabel yang bersesuaian dengan tipe filenya. N artinya data ke-N. Bila dalam bentuk fungsi, maka ia akan mengembalikan nilai tergantung jenisnya (apabila boolean maka akan mengembalikan True atau False, bila longint akan mengembalikan angka).
Waahhh… banyak yach? emang gitulah… Bahkan ada lagi yang lain loh untuk file tak bertipe. Prosedur dan fungsi di atas gua ambil dari bukunya pak Ir. Abdul Kadir, Pemrograman Pascal. Bukunya bagus juga, ada 2 jilid tebel-tebel tapinya . O iya, di sini gua gak ngasih contohnya loh… abis kepanjangan kalo ditulis di sini.Untuk contoh-contoh penggunaan prosedur dan fungsi di atas bisa di lihat di Program 9



sumber : www.sttdb.wordpress.com

Pascal "Menghitung Luas/Keliling suatu Bangun Ruang"

Nah... Coba lagi yang ini.!



Program 1 : menghitung luas/keliling bangunan
Yup… sekarang kita buat program yang pertama, menghitung luas dan keliling bangunan. Bangunan yang dijadikan contoh adalah segitiga. Perhatikan contoh di bawah ini:
1: Program Menghitung_Luas_dan_Keliling;
2: var alas, tinggi, sisimiring, luas, keliling: real;
3: Begin
4: writeln(’MENGHITUNG LUAS DAN KELILING SEGITIGA’);
5: writeln(’————————————-’);
6: write(’Masukkan alas : ‘);readln(alas);
7: write(’Masukkan tinggi : ‘);readln(tinggi);
8: luas:= 0.5*alas*tinggi;
9: sisimiring:=sqrt(sqr(alas)+sqr(tinggi));
10: keliling:= alas+tinggi+sisimiring;
11: writeln;
12: writeln(’luas segitiga : ‘, luas:0:2);
13: writeln(’keliling segitiga : ‘, keliling:0:2);
14: readln;
15: end.



sumber :www.sttdb.wordpress.com

pascal "Perhitungan Gaji Karyawan"

berikut salah satu contoh "perhitungan gaji karyawan" menggunakan dasar pemrograman pascal.



program pembuatan_record;
uses crt;
procedure garis;
begin
writeln(’==============================================’);
end;
type
reckaryawan=record
jab,nip,nama:string;
gol:integer;
gapok,tunj:real;
end;
var pegawai:reckaryawan;
total:real;
begin
clrscr;
writeln(’ LAPORAN PERHITUNGAN GAJI KARYAWAN PT MAJU TAK GENTAR’);
garis;
writeln;
write(’Masukan NIP Karyawan : ‘);readln(pegawai.nip);
write(’Masukan Nama Karyawan : ‘);readln(pegawai.nama);
write(’Golongan[1/2/3] : ‘);readln(pegawai.gol);
garis;
case pegawai.gol of
1:
begin
pegawai.jab:=’Staf dan Tetap’;
pegawai.gapok:=900000;
end;
2:
begin
pegawai.jab:=’Staf dan Kontrak’;
pegawai.gapok:=700000;
end;
3:
begin
pegawai.jab:=’Kontrak’;
pegawai.gapok:=500000;
end;
end;
if pegawai.jab=’Staf dan Tetap’ then
pegawai.tunj:=25/100*pegawai.gapok
else
if pegawai.jab=’Staf dan Kontrak’ then
pegawai.tunj:=10/100*pegawai.gapok
else
pegawai.tunj:=0;
total:=(pegawai.gapok)+(pegawai.tunj);
writeln(’Jabatan Karyawan : ‘,pegawai.jab);
writeln(’Gaji Pokok : ‘,pegawai.gapok:8:0);
writeln(’Tunjangan : ‘,pegawai.tunj:8:0);
garis;
writeln(’Total Gaji Karyawan : ‘,total:8:0);
readln;
end.



sumber : www.sttdb.wordpress.com