Minggu, 19 September 2010

BELAJAR BAHASA PROGRAM PASCAL

Kelebihan program Pascal

Kelebihan dari bahasa pemrograman Pascal adalah:
  • Tipe Data Standar, tipe-tipe data standar yang telah tersedia pada kebanyakan bahasa pemrograman. Pascal memiliki tipe data standar: boolean, integer, real, char, string,
  • User defined Data Types, programmer dapat membuat tipe data lain yang diturunkan dari tipe data standar.
  • Strongly-typed, programmer harus menentukan tipe data dari suatu variabel, dan variabel tersebut tidak dapat dipergunakan untuk menyimpan tipe data selain dari format yang ditentukan.
  • Terstruktur, memiliki sintaks yang memungkinkan penulisan program dipecah menjadi fungsi-fungsi kecil (procedure dan function) yang dapat dipergunakan berulang-ulang.
  • Sederhana dan Ekspresif, memiliki struktur yang sederhana dan sangat mendekati bahasa manusia (bahasa Inggris) sehingga mudah dipelajari dan dipahami.
Bahasa PASCAL juga merupakan bahasa yang digunakan sebagai standar bahasa pemrograman bagi Tim Nasional Olimpiade Komputer Indonesia (TOKI). Selain itu, Bahasa PASCAL masih digunakan dalam IOI (International Olympiad in Informatics).

Tipe Data Dalam Pascal

Dalam bahasa Pascal terdapat beberapa jenis tipe data yang bisa digunakan untuk sebuah variabel atau konstanta pada program. Tipe Data tersebut antara lain adalah :

Tipe Data Deskripsi (range variabel)
Byte angka dari 0 sampai 255
Integer angka dari -32768 to 32767
Real semua nilai pecahan dari 1E-38 to 1E+38
Boolean nilai TRUE atau FALSE
Char semua karakter dari tabel ASCII

semua huruf, spasi, frase

Kondisi  Pemilihan

  1. Instruksi Pemilihan
    • Pada umumnya, penyelesaian suatu masalah memiliki beberapa alternatif pelaksanaan perintah atau aksi. Suatu perintah hanya dapat dijalankan apabila persayaratan atau kondisi tertentu dipenuhi.
    • Instruksi pemilihan adalah instruksi yang dipakai untuk memakai satu dari beberapa kemungkinan aksi berdasarkan suatu persyaratan .
  2. Ada dua bentuk instruksi pemilihan yang sering digunakan, yaitu:
    • I. IF…THEN
    • II. CASE…OF
  3. 1. Kondisi 1 kasus dgn IF….THEN
    • If kondisi then
    • aksi
    • endif
    If kondisi then aksi Formula kondisi 1 kasus di Algo Formula kondisi 1 kasus di Pascal
  4. Contoh: Pseudocode
    • Program Genap
    • {mencetak pesan “bilangan genap” jika sebuah bilangan bulat yang diinput merupakan bilangan genap}
    • Deklarasi
    • X : integer
    • Algoritma:
    • Read (x)
    • If x mod 2 = 0 then
    • write (‘genap’)
    • endif
  5. Contoh: Pascal
    • PROGRAM GENAP;
    • USES WINCRT;
    • VAR
    • X : INTEGER;
    • BEGIN
    • WRITE ('NILAI X :'); READLN (X);
    • IF X MOD 2 = 0 THEN
    • WRITELN ('BILANGAN TERSEBUT ADALAH BILANGAN GENAP');
    • END.
  6. IF…THEN..ELSE
    • If kondisi then
    • aksi1
    • ELSE
    • AKSI2
    • endif
    If kondisi then aksi1 ELSE AKSI2 Formula kondisi 2 kasus di Algo Formula kondisi 2 kasus di Pascal
  7. Contoh: Pseudocode
    • Program Genap
    • {mencetak pesan “bilangan genap” jika sebuah bilangan bulat yang diinput merupakan bilangan genap}
    • Deklarasi
    • X : integer
    • Algoritma:
    • Read (x)
    • If x mod 2 = 0 then
    • write (‘genap’)
    • ELSE
    • WRITE (‘GAJIL’);
    • endif
  8. Contoh: Pascal
    • PROGRAM GENAP;
    • USES WINCRT;
    • VAR
    • X : INTEGER;
    • BEGIN
    • WRITE ('NILAI X :'); READLN (X);
    • IF X MOD 2 = 0 THEN
    • WRITELN ('BILANGAN TERSEBUT ADALAH BILANGAN GENAP')
    • ELSE
    • WRITELN ('BILANGAN TERSEBUT ADALAH BILANGAN GANJIL');
    • END.
  9. KONDISI 3 KASU/LEBIH
    • If kondisi1 then
    • aksi1
    • ELSE
    • IF KONDISI2 THEN
    • AKSI2
    • ELSE
    • IF KONDISI3 THEN
    • AKSI3
    • ELSE
    • endif
    • ENDIF
    • ENDIF

    10. Formula kondisi 3 kasus atau lebih di Algo
    • If kondisi1 then
    • aksi1
    • ELSE
    • IF KONDISI2 THEN
    • AKSI2
    • ELSE
    • IF KONDISI3 THEN
    • AKSI3
    • ELSE
    aksi4
    Formula kondisi 3 kasus atau lebih di Pascal
  10. Contoh soal:
    • Misalkan karyawan PT “ABC” dikelompokkan berdasarkan golongannya. Upah perjam tiap karyawan bergantung pada golongannya. Jumlah jam kerja yang normal selama seminggu adalah 48 jam. Kelebihan jam kerja dianggap lembur dgn upah lembur adalah Rp.3000/jam untuk semua golongan karyawan. Buatlah algoritma yg membaca nama karyawan dan jumlah jam kerjanya selama seminggu, lalu menghitung gaji mingguannya.
    • Gol Upah per jam
    • A Rp. 4000
    • B Rp. 5000
    • C Rp. 6000
    • D Rp. 7500
  11. START NAMA$, GOL, JJK,JAMLEMBUR, UPJ,UPAHTOTAL NAMA, GOL, JJK GOL =’A’ UPJ = 4000 Y T GOL =’B’ UPJ = 5000 Y T GOL =’C’ UPJ = 6000 Y GOL =’D’ UPJ = 7500 Y T T JJK <= 48 Upahtotal=JJK*UPJ Y T Jamlembur=JJK-48 Upahtotal=48*UPJ+jamlahlembur*3000 NAMA, UPAHTOTAL START
    • PSEUDOCODE:
    • PROGRAM upahkaryawan
    • { menghitung upah mingguan karyawan, input nama, gol, jumlah jam kerja}
    • Deklarasi
    • nama :string
    • gol :char
    • JJK,jamlembur : integer
    • upJ,upahtotal :real
    • ALGORITMA:
    • READ (NAMA,GOL,JJK)
    • IF GOL =‘A’ THEN UPJ =4000
    • ELSE
    • IF GOL =‘B’ THEN UPJ =5000
    • ELSE
    • IF GOL =‘C’ THEN UPJ =6000
    • ELSE
    • IF GOL =‘D’ THEN UPJ =7500
    • ENDIF
    • ENDIF
    • ENDIF
    • ENDIF

    • IF JJK <= Jamkerjanormal then
    • upahtotal = jjk * upahperjam
    • Else
    • jamlembur = jjk – jamkerjanormal
    • upahtotal = jamkerjanormal * upahperjam +jamlembur * upahlembur
    • Endif
    • Write (nama, upahtotal)

    • PROGRAM upahkaryawan;
    • {menghitung upah mingguan karyawan, input nama, gol, jumlah jam kerja}
    • USES WINCRT;
    • var
    • nama :string ;
    • gol :char ;
    • JJK,jamlembur : integer ;
    • upJ,upahtotal :real;
    • CONST
    • JAMKERJANORMAL = 48;
    • UPAHLEMBUR =3000;
    • begin
    • write ('nama karyawan :');readln (nama);
    • write ('golongan :');readln (gol);
    • write ('julah jam kerja :');readln (jjk);
    • IF GOL ='A' THEN UPJ :=4000
    • ELSE
    • IF GOL ='B' THEN UPJ :=5000
    • ELSE
    • IF GOL ='C' THEN UPJ :=6000
    • ELSE
    • IF GOL ='D' THEN UPJ :=7500;

    • IF JJK <= JAMKERJANORMAL THEN
    • UPAHTOTAL:=JJK *UPJ
    • ELSE
    • JAMLEMBUR:=JJK - JAMKERJANORMAL;
    • UPAHTOTAL:= JAMKERJANORMAL * UPJ + JAMLEMBUR *UPAHLEMBUR;
    • WRITELN ('NAMA KARYAWAN =',NAMA);
    • WRITELN ('JUMLAH LEMBUR =',JAMLEMBUR , 'JAM');
    • WRITELN ('UPAH TOTAL =',UPAHTOTAL:7:0);
    • READLN;
    • END.
  12. II. CASE..OF
    • - Instruksi CASE digunakan sebagai instruksi pemilihan yg akan dilakukan hanya bergantung pada nilai dari satu macam var.
    • Var tersebut harus bertipe CHAR atau Integer
    • Bentuk umum, CASE dlm algoritma adalah:
    CASE var nilai1 :aksi1 nilai2 :aksi2 nilai3 :aksi3 . nilain :aksi_n default : aksi_x ENDCASE
  13. CONTOH
    • PROGRAM upahkaryawan;
    • {menghitung upah mingguan karyawan, input nama, gol, jumlah jam kerja}
    • USES WINCRT;
    • var
    • nama :string ;
    • gol :char ;
    • JJK,jamlembur : integer ;
    • upJ,upahtotal :real;
    • CONST
    • JAMKERJANORMAL = 48;
    • UPAHLEMBUR =3000;
    • begin
    • write ('nama karyawan :');readln (nama);
    • write ('golongan :');readln (gol);
    • write ('julah jam kerja :');readln (jjk);
    • CASE GOL OF
    • 'A' : UPJ :=4000;
    • 'B' : UPJ :=5000;
    • 'C' : UPJ :=6000;
    • 'D' : UPJ :=7500;
    • END;
    • IF JJK <= JAMKERJANORMAL THEN
    • UPAHTOTAL:=JJK *UPJ
    • ELSE
    • JAMLEMBUR:=JJK - JAMKERJANORMAL;
    • UPAHTOTAL:= JAMKERJANORMAL * UPJ + JAMLEMBUR *UPAHLEMBUR;
    • WRITELN ('NAMA KARYAWAN =',NAMA);
    • WRITELN ('JUMLAH LEMBUR =',JAMLEMBUR , 'JAM');
    • WRITELN ('UPAH TOTAL =',UPAHTOTAL:7:0);
    • READLN;
    • END.
  14. CASE dlm pascal:
    • CASE VAR OF
    • NILAI1 : AKSI1
    • NILAI2 : AKSI2
    • NILAI3 : AKSI3
    • NILAIN : AKSIN
    • END;

    • Indeks nilai mahasiswa ditentukan berdasarkan nilai ujiann yg diraihnya. Ketentuan pemberian nilai indeks adalah sebagai berikut:
    • jika nilai ujian >= 80, indeks nilai =A
    • jika 70 <= nilai ujian <80, indeks nilai = B
    • jika 55 <=nilai ujian <70, indeks nilai = C
    • jika 40 <=nilai ujian <55, indeks nilai = D
    • jika nilai ujian < 40, indeks nilai = E
    • buatlah algoritma yg membaca nilai ujian, lalu menentukan indeksnya, kemudian mencetak nilai dan indeksnya . 
A. PERULANGAN FOR-DO
Looping for-do digunakan untuk mengulang statement berulang kali sejumlah yang
ditentukan. Bila terdapat lebih dari satu statement yang ada di dalam looping maka
menggunakan begin...end;, jika hanya satu blok saja tidak perlu menggunakan begin...end;.

Ada 3 bentuk looping for-do yaitu for-to-do, for-downto-do dan for-do tersarang.
1. For-to-do
Adalah looping dari perhitungan kecil ke perhitungan besar.
Bentuk Umumnya yaitu:
For (nilai awal) to (nilai akhir)

Contoh:
var x:integer;
begin
For x:= 1 to 5 do writeln(‘Sixiz gitu lho..!!’);
end.

Output :
Sixiz gitu lho..!!
Sixiz gitu lho..!!
Sixiz gitu lho..!!
Sixiz gitu lho..!!
Sixiz gitu lho..!!


2. For-downto-do
Adalah Looping dari nilai besar ke nilai kecil kecil. Bentuknya sebagai berikut :

Bentuk Umum :
For (Nilai_akhir) downto (nilai_awal) do

Contoh :
var x:integer;
begin
For x:= 5 downto 1 do
Begin
write(x);
writeln(‘ Sixiz gitu lho..!!’);
end;
end.

Output :
5 Sixiz gitu lho..!!
4 Sixiz gitu lho..!!
3 Sixiz gitu lho..!!
2 Sixiz gitu lho..!!
1 Sixiz gitu lho..!!

Jangan lupa tinggalkan pesan berupa saran dan kritik yang bermanfaat untuk blog  ini. Untuk teman-teman yang hendak mencopy artikel ini untuk dipasang pada blog atau web-nya, dengan sangat diharapkan untuk mencantumkan Link keblog ini sebagai sumber artikel sekaligus sebagai backlink untuk blog ini. Terima kasih untuk pengertian dan kerjasamanya, mari berkembang bersama.

    Tidak ada komentar: