Senin, 08 Oktober 2012

Kumpulan Program Pascal

Kumpulan program pascal ini merupakan kumpulan latihan saat penulis belajar bahasa pemrograman pascal. Penulis menggunakan Turbo Pascal for Windows (TPW) Versi 1.5 sebagai kompilernya. Mungkin ada kekurangan disana sini, tapi mudah-mudahan kumpulan program ini bermanfaat bagi pembaca yang berminat dan baru mempelajari bahasa pemrograman pascal.

Pascal merupan salah satu program yang terkemuka karena struktur penulisannya yang mengalir seperti algoritma, saat ini kita akan mempelajari pascal 1.5 (TPW 1.5). 
Sebelum itu perhatikan keterangan berikut ini struktur dasarnya.

1. Program namaprogram; ==> Judul Program
2. Var jenis : variable; ==> Jenis Variabel
3. Begin ; ==> Memulai Program
4. Clrscr ==> Membersihkan Layar (boleh digunakan dan tidak)
5. Isi ==> Isi Program
6. End. ==>Akhir Program

Sintak dari pascal :
  • Write => Menulis/menampilkan keluaran ke layar monitor sedangkan kursor tetap di baris yang sama.
  • Writeln => Menulis/menampilan keluaran ke layar monitor sedangkan kursor pindah ke baris berikutnya.
  • Read => Menginput data/membaca masukan dari keyboard sedangkan kursor tetap di baris yang sama .
  • Readln => Menginput data/membaca masukan dari keyboard sedangkan kursor pindah ke baris berikutnya.
  •  Var  => variable
Contoh-contoh Program :
> Program Menampilkan Tulisan
program menampilkan;
uses wincrt;
begin
        write ('Selamat datang di dunia pascal');
end.

> Program Membuat Komentar
program komentar;
uses wincrt;
begin
        clrscr; {ini adalah komentar dan tidak akan di eksekusi oleh program}
        writeln ('mencoba menuliskan komentar program');
        {ini (*juga*) komentar sehingga tidak akan ditampilkan di dalam hasil keluaran}
        readln;
end.

 > Program Menginput Data
program input_data;
uses wincrt;
var
   nama : string;
begin
write ('Masukan Nama : ');
Read (nama);
clrscr;
Write ('Selamat Datang ',nama);
end.


> Program Penjumlahan
program penjumlahan_langsung;
uses wincrt;
var
a,b,c:integer;
begin
a:=20;
b:=25;
c:=a+b;
writeln('c=',c)
end.

> Program Runtunan
program runtunan;
uses wincrt;
var
   a,b : integer ;
begin
a:=5;
b:=12;
a:=a+2;
b:=a+2;
a:=a+b;
Writeln ('A : ',a);
end.
============
program runtunan;
uses wincrt;
var
   a,b:integer;
begin
a:=10;
a:=a*2;
b:=a;
b:=b+a;
writeln (b);
end.

> Program Menentukan Nilai Terbesar
program X_lebih_besar_daripada_Y;
uses wincrt;
var
   x,y: integer;
begin
     clrscr;
     write ('Masukan Nilai X = ');
     readln (x);
     write ('Masukan Nilai Y = ');
     readln (y);
     if ( x > y ) then   
     writeln ('Nilai ',x, ' lebih besar daripada ',y);                 
     readln;
end.

> Program Akar
program akar;
uses wincrt;
var
a,b,c:integer;(*variable x dengan tipe integer*)
nama:string[25];{variable nama dengan tipe string}
d:real;
begin
     a:=9;
     b:=4;
     c:=a div b;
writeln (c);
d:=sqrt(a);
write(d:0:0);
end.

>Program If
program latihan_if;
uses wincrt;
var
   bilangan : integer;
begin
     clrscr;
     write ('Masukan Bilangan = ');
     readln (bilangan);
     if ( bilangan > 0) then
     writeln ('Bilangan Positif');
end.
====================
program if_dua_kasus;
uses wincrt;
var
   nama : string;
   nilai : integer;
begin
     write ('Nama Siswa : ');
     readln (nama);
     write ('Nilai Angka : ');
     readln (nilai);
if ( nilai > 55 ) then begin
   writeln ('Hasil : Anda Lulus Selamat Ya');   
end else
   if (nilai <55 br="br" then="then" writeln="writeln">   writeln ('Hasil : Maaf anda tidak lulus');
end.
==================
program if_tiga_kasus;
uses wincrt;
var
   nama : string;
   nilai : integer;
begin
     write ('Masukan Nama       : ');
     readln (nama);
     write ('Masukan Nilai      : ');
     readln (nilai);
if (nilai >=85) then begin
   writeln ('A');
   end
   else
if (nilai >=75 ) then begin
   writeln ('B');
   end
   else
if (nilai >=50) then begin
   writeln ('C');
   end;
end.                       

>  Program dengan menggunakan AND
program and_inputgaji_karyawan;
uses wincrt;
var
nama, jenis_kelamin, status : string;
jumlah_anak: integer;
begin

write ('Nama    : ');
readln (nama);
write ('Jenis Kelamin ( P/L) : ');
readln (jenis_kelamin);
write ('Status (M/S)   : ');
readln (status);
write ('Jumlah Anak : ');
readln (jumlah_anak);

if (jenis_kelamin= 'L') and (status = 'M') and ( jumlah_anak <=3) then
writeln ( 'Mendapatkan Tunjangan',jumlah_anak*35000)
else
writeln ( 'Tidak Mendapatkan Tunjangan')
end.

> Program OR
Program latihan_or;
uses wincrt;
var
   nama : string;
   toefl1, toefl2, toefl3 : integer;
begin
Write ('Nama    : ');
readln (nama);
write ('Toefl1  : ');
readln (toefl1);
write ('Toefl2  : ');
readln (toefl2);
write ('Toefl3  : ');
readln (toefl3);

Writeln ('------------------------');

if (toefl1>=400) or (toefl2>=400) or (toefl3>=400) then
writeln ( ' ANDA LULUS ')
else
write ('ANDA TIDAK LULUS ')
end.

> Program Gaji Karyawan
Program gaji_karyawan;
uses wincrt;
var
        upah_lembur,upah_kerja,hari_kerja,jam_lembur,a,b:real;
        nama,jabatan,golongan:string;
        gj_kotor,pjk,gj_bersih:real;
begin
upah_lembur:=7500;
upah_kerja:=50000;
writeln('                              Program Gaji Karyawan');
writeln;
write('Nama             = ');
readln(nama);                
write('Jabatan          = ');
readln(jabatan);
write('Golongan         = ');
readln(golongan);
write('Hari kerja       = ');
readln(hari_kerja);
write('Jam Lembur       = ');
readln(jam_lembur);
clrscr;
a:=upah_kerja*hari_kerja;
b:=upah_lembur*jam_lembur;
gj_kotor:=a+b;
pjk:=0.1*gj_kotor;
gj_bersih:=gj_kotor-pjk;

writeln ('Nama Anda           = ',nama);
writeln ('Jabatan             = ',jabatan);
writeln ('Golongan            = ',golongan);
writeln ('Gaji Bersih Anda    = ',gj_bersih :0:0);
end.
=====================================
program Hitung_Gaji;
uses wincrt;
var
   Nama, Jabatan: string;
   Gaji_Direktur,Gaji_Manager,Gaji_Karyawan,Gaji_OB:longint;
   Tunjangan_Direktur, Tunjangan_Manager,Tunjangan_Karyawan,Tunjangan_OB,PPN_DIrektur,PPN_Manager,PPN_Karyawan,PPN_OB:real;
begin
     writeln ('Program Gaji Karyawan');
     writeln ('---------------------');
     write ('Nama        : ');
     Readln (Nama);
     write ('Jabatan     : ');
     Readln (Jabatan);                                      

     Gaji_Direktur:=3000000;
     Gaji_Manager:=2000000;
     Gaji_Karyawan:=1000000;               
     Gaji_OB:=800000;

     Tunjangan_Direktur:=0.10*Gaji_Direktur;
     Tunjangan_Manager:=0.05*Gaji_Manager;
     Tunjangan_Karyawan:=0.02*Gaji_Karyawan;
     Tunjangan_OB:=0.01*Gaji_OB;

     PPN_Direktur:=0.10*Gaji_Direktur;              
     PPN_Manager:=0.10*Gaji_Manager;
     PPN_Karyawan:=0.10*Gaji_Karyawan;
     PPN_OB:=0.10*Gaji_OB;

     if (Jabatan= 'Direktur') or (Jabatan= 'direktur') or (Jabatan= 'DIREKTUR') then begin
        writeln ('Gaji        = Rp. ',Gaji_Direktur);
        writeln ('Tunjangan   = Rp. ',Tunjangan_Direktur:0:0);
        writeln ('PPN 10%     = Rp. ', PPN_Direktur:0:0);
        writeln ('Gaji Bersih = Rp. ',Gaji_Direktur+Tunjangan_Direktur-PPN_Direktur:0:0);
     end
     else
     if (Jabatan= 'Manager') or (Jabatan= 'manager') or (Jabatan= 'MANAGER') then begin
        writeln ('Gaji        = Rp. ',Gaji_Manager);
        writeln ('Tunjangan   = Rp. ',Tunjangan_Manager:0:0);
        writeln ('PPN 10%     = Rp. ', PPN_Manager:0:0);
        writeln ('Gaji Bersih = Rp. ',Gaji_Manager+Tunjangan_Manager-PPN_Manager:0:0);
     end
     else
     if (Jabatan= 'Karyawan') or (Jabatan= 'karyawan') or (Jabatan= 'KARYAWAN') then begin
        writeln ('Gaji        = Rp. ',Gaji_Karyawan);
        writeln ('Tunjangan   = Rp. ',Tunjangan_Karyawan:0:0);
        writeln ('PPN 10%     = Rp. ', PPN_Karyawan:0:0);
        writeln ('Gaji Bersih = Rp. ',Gaji_Karyawan+Tunjangan_Karyawan-PPN_Karyawan:0:0);
     end
     else
     if (Jabatan= 'Ob') or (Jabatan= 'ob') or (Jabatan= 'OB') then begin
        writeln ('Gaji        = Rp. ',Gaji_OB);
        writeln ('Tunjangan   = Rp. ',Tunjangan_OB:0:0);
        writeln ('PPN 10%     = Rp. ', PPN_OB:0:0);
        writeln ('Gaji Bersih = Rp. ',Gaji_OB+Tunjangan_OB-PPN_OB:0:0);
     end;
     writeln ('-------------------------')
end.

> Program Case Of
program nilai_case;
uses wincrt;
var
   nilai:char;
begin

write ('Masukan nilai : ');
readln(nilai);

case (nilai) of
'A'..'a': write ('Sangat Baik');
'B'..'b' : write ('Baik');
'C'..'c' : write ('Cukup');
end;
end.
=====================
program case_bioskop;
uses wincrt;
var
   studio : integer;
begin
writeln ('JADWAL FILM STUDIO');
writeln (' 1 : XX1');
writeln (' 2 : 21 ');
writeln (' 3 : Layar Tancap ');
write ('Masukan pilihan studio : ');
readln(studio);

case ( studio ) of
1 : begin
writeln ( 'Terminator');
writeln('Pocong 1');
writeln ('Kungfu panda'); end;
2 : begin
writeln ('Kucing bunting');
writeln ('Derita anak kos');
writeln ('Kungfu panda'); end;
3 : begin
writeln ('Kuntilanak');
writeln ('Jelangkung');
writeln ('Pulau hantu');
end;
end;
end.
==========================
program haricase;
uses wincrt;
var
   hari : integer;
begin

write ('Masukan hari ke : ');
readln(hari);

case (hari) of
1:write('Senin');
2:write('Selasa');
3:write('Rabu');
4:write('Kamis');
5:write('Jumat');
6:write('Sabtu');
7:write('Minggu');
end;
end.
===========================
program nilai_case;
uses wincrt;
var
   nilai:char;
begin

write ('Masukan nilai : ');
readln(nilai);

case (nilai) of
'a'..'z': write ('Sangat Baik');

end;
end.
=======================


> Program Case If
program case_if;
uses wincrt;
var
   kode    : char;
   ukuran  : integer;
begin
writeln ('========[PILIHAN PRODUK]========');
writeln ('A. Susu Dancow');
writeln ('   1. ukuran kecil');
writeln ('   2. ukuran sedang');
writeln ('   3. ukuran besar');
writeln ('B. Susu Bendera');
writeln ('   1. ukuran kecil');
writeln ('   2. ukuran sedang');
writeln ('   3. ukuran besar');
writeln ('A. Susu SGM');
writeln ('   1. ukuran kecil');
writeln ('   2. ukuran sedang');
writeln ('   3. ukuran besar');
Writeln ('==================================');
write   ('Masukan kode jenis : ');
readln  (kode);

case (kode) of
'A':
begin
    writeln('Susu Dancow');
    write ('Pilih Jenis ukuran : ');
    readln(ukuran);
if (ukuran =1) then
begin   writeln ('ukuran kecil');
        writeln ('15000');
end
else
if (ukuran =2) then
begin
writeln ('ukuran sedang');
writeln ('18500');
end
else
if (ukuran = 3) then
begin
writeln ('ukuran besar');
writeln ('35000');
end

end;

end;
end.





> Program Go To Ulang
program gotoulang;
uses wincrt;
label ulang ;
var
   bil1,bil2 : integer;
   opr : char;
begin
ulang:
clrscr;
write ('Masukan Bilangan 1 : ');
readln ( bil1);
write  ( 'Masukan Bilangan 2 : ');
readln (bil2);
writeln  ('----------------');
write  ('Pilih Operasi : ');
readln (opr);
writeln  ('----------------');
case (opr) of
'+' : write ('Hasil Penjumlahannya adalah ', bil1+bil2);
'-' : write ('Hasil Pengurangannya adalah ',bil1-bil2);
'*' : write ('Hasil Pengaliannya : ',bil1*bil2);
'/' : write ('Hasil Pembagiannya adalah ',bil1/bil2);
end;
readln;
goto ulang;
end.

> Program Ganjil Genap
program ganjil_genap;
uses wincrt;
var
   bil, sisa : integer;
begin
     write ('Masukan sebuah bilangan : ');
     readln (bil);
sisa := bil mod 2;
if sisa = 0 then
   begin                                                     
   writeln ('Bilangan Genap');
   end
   else
    writeln ('Bilangan Ganjil');
end.




Tidak ada komentar:

Posting Komentar