1.      Pendahuluan
  Dalam pemrograman, bila ukuran dan kompleksitas program adalah kecil, maka tidak masalah bila digunakan metode pengkodean konvensional yang bersifat monolitik. Tetapi bilamana program menjadi semakin besar dan kompleks, metode monolitik akan sangat mempersulit pemrograman serta modifikasi program, belum lagi pelacakan bila terjadi masalah. Pembuatan program dengan beragam fungsi dan kemampuan juga akan sulit, karena harus selalu memperhatikan keseluruhan program.
  Untuk itu diperlukan metode pemrograman yang bersifat modular, dimana pembuat program dapat memisahkan proses-proses tertentu ke suatu bagian dari program yang terpisah. Pemisahan ini memungkinkan pengembangan program yang kompleks menjadi lebih mudah, karena proses tertentu telah diisolasi sehingga memperkecil kompleksitas kode program secara keseluruhan. Dalam Pascal, salah satu cara untuk melakukan pemisahan adalah dengan menggunakan prosedur.
  Prosedur adalah kode pemrosesan terpisah yang diletakkan dalam blok tersendiri yang berfungsi sebagai subprogram (program yang merupakan bagian dari program keseluruhan). Dengan adanya prosedur, program dapat menjadi lebih mudah dibuat dan lebih mudah dipahami sehingga lebih mudah dikembangkan. Karena prosedur juga mengakomodasi pemberian dan pengembalian nilai, maka program keseluruhan juga akan tetap dapat melakukan manipulasi nilai seperti halnya program monolitik.
  2.      Kata cadangan yang digunakan
  Program        :  spesifikasi nama program dan parameternya, bersifat dekoratif dan tidak                             terlalu mempengaruhi keseluruhan program itu sendiri
  Uses        :  mendefinisikan nama unit yang akan direferensi oleh program
  Var          :  menghubungkan sebuah identifier dan tipenya dengan suatu lokasi di memori     dimana nilai-nilai dari tipe tersebut dapat disimpan
  Begin         :  memulai suatu blok program
  End            :  mengakhiri suatu blok program 
  Procedure : bagian dari program yang menjalankan suatu proses spesifik, seringkali berdasarkan suatu himpunan parameter
  If               :  menyebutkan kondisi untuk suatu statemen agar dapat dieksekusi
  Then          :  menyebutkan statemen aksi yang harus dijalankan saat kondisi terpenuhi
  Repeat       :  mendefinisikan statemen atau blok statemen yang akan terus diulang sampai keadaan perhentiannya dipenuhi
  Until          :  mendefinisikan keadaan perhentian untuk perulangan yang dimulai dengan Repeat
  Case           :  menyebutkan statemen ekspresi yang akan mencari kondisi yang sesuai berdasarkan pilihan statemen kondisi yang tersedia
  Of              :  kata cadangan yang digunakan bersama Case untuk menyebutkan pilihan kondisi yang sesuai serta aksi yang akan dijalankan apabila suatu kondisi terpilih
  Do             :  digunakan untuk menyebutkan aksi yang akan dilakukan
  For             :  mendefinisikan nilai awal perulangan
  To              :  mendefinisikan nilai akhir perulangan (perulangan positif)
  Record       : digunakan untuk mendeklarasikan record berisi kumpulan data dari berbagai tipe  data
  Type          :  digunakan untuk mendeklarasikan suatu identifier yang memiliki tipe data tertentu
  3.      Prosedur yang digunakan
  Write          :  menuliskan suatu variabel ke dalam sebuah komponen file, dalam file teks digunakan untuk menuliskan satu nilai atau lebih ke suatu file
  Writeln       :  mengeksekusi prosedur write, kemudian mengeluarkan sebuah penanda end-of-line (EOL) ke file program
  Read          :  membaca suatu komponen file menjadi suatu variabel, dalam file teks digunakan untuk membaca satu nilai atau lebih menjadi satu atau lebih variabel
  Readln       :  mengeksekusi prosedur read, kemudian bergerak ke baris berikutnya dalam file program
  Clrscr         :  membersihkan layar dan mengembalikan kursor ke pojok kiri atas
  4.      Contoh Program
  a.       Program pertama
Program m7c1;
uses wincrt;
var 
     pil : char;
procedure menu;
begin
     clrscr;
     writeln ('MENU');
     writeln ('1. Bakso');
     writeln ('2. Bakmi');
     writeln ('3. Siomay');
     writeln ('4. Soto');
     writeln ('0. Bayar');
end;
procedure kerja (n:char);
begin
     case n of
     '1': begin
               write ('Pesan Bakso'); readln;
          end;
     '2': begin
               write ('Pesan Bakmi'); readln;
          end;
     '3': begin
               write ('Pesan Siomay'); readln;
          end;
     '4': begin
               write ('Pesan Soto'); readln;
          end;
     '0': begin
               writeln ('Bayar dan bye'); 
          end;
     end;
end;
begin
     repeat
           menu;
           writeln;
           write ('Pilihan anda? '); readln (pil);
           kerja (pil);
     until pil = '0';
end.
a.       Program ke-dua
Program m7c2;
uses wincrt;
var
     a, b : integer;
procedure tukar(x,y: integer);
var
     bantu : integer;
begin
     writeln ('Urutan awal: ',x,' ',y);
     bantu := x;
     x := y;
     y := bantu;
     writeln ('Dibalik: ',x,' ',y);
end;
begin
     write ('Masukkan nilai pertama: ');
     readln (a);
     write ('Masukkan nilai ke-dua: ');
     readln (b);
     tukar (a,b);
     writeln ('Urutan dalam program utama: ',a,' ',b);
end.
b.      Program ke-tiga
Program m7c3;
uses wincrt;
var 
     x : integer;
procedure rcv(n,m:integer);
begin
     writeln (x:5, n:5, m:5);
     if n < m then
     begin
          x := x + 1;
          rcv (n+1,m-3);
          rcv (n+3,m-1);
     end;
end;
begin
     x:=0;
     rcv (5,15);
     writeln (x);
end.
c.       Program ke-empat
Program m7c4;
uses wincrt;
const
     maks = 25;
type
     matriks = record
             baris, kolom : byte;
             elemen : array [1..maks, 1..maks] of integer;
     end;
procedure masukan (var a: matriks);
var
     i, j: byte;
begin
     write ('Jumlah baris: ');
     readln (a.baris);
     write ('Jumlah kolom: ');
     readln (a.kolom);
     for i := 1 to a.baris do
          for j := 1 to a.kolom do
          begin
               write ('Elemen [', i, ', ', j, '] = ');
               readln (a.elemen[i,j]);
          end;
end;
procedure keluaran (a: matriks);
var
     i, j: byte;
begin
     for i := 1 to a.baris do
     begin
          for j := 1 to a.kolom do
               write (a.elemen[i,j]:3);
          writeln;
     end;
end;
procedure jumlahkan (a,b: matriks; var c: matriks);
var
     i, j: byte;
begin
     if (a.baris <> b.baris) or (a.kolom <> b.kolom) then
     begin
          writeln ('Matriks tidak cocok');
          exit;
     end;
     c.baris := a.baris;
     c.kolom := a.kolom;
     for i := 1 to a.baris do
          for j := 1 to a.kolom do
               c.elemen[i,j] := a.elemen[i,j] + b.elemen [i,j];
end;
var
     a, b, c : matriks;
begin
     writeln ('Masukkan matriks A');
     masukan (a);
     writeln;
     writeln ('Masukkan matriks B');
     masukan (b);
     writeln;
     writeln ('A =  ');
     keluaran (a);
     writeln ('B =  ');
     keluaran (b);
     writeln ('A + B = ');
     jumlahkan (a,b,c);
     keluaran (c);
end.
5.      Tampilan Semua Program
Program pertama
Program ke-dua
Program ke-tiga
Program ke-empat
6.      Latihan
a.  Perhatikan baik-baik cara membuat menu dalam contoh pertama tersebut, dan cobalah untuk berkreasi dengan membuat program pada bagian latihan dari modul 1 tetapi kali ini dipecahkan menjadi prosedur.
  b.  Coba buatlah supaya pemanggilan by value pada contoh ke-dua Anda jadikan sebagai pemanggilan by reference. Lihatlah hasilnya.
  c.  Berlatihlah untuk memahami bagaimana cara kerja program contoh ke-tiga. Pemahaman atas contoh ini akan membuat Anda mengetahui dengan lebih baik tentang logika pemanggilan prosedur dengan suatu nilai, dan kemampuan prosedur untuk memanggil dirinya sendiri.
  Alhamdulillah, Telah selesai pembahasan materi Pascal ini,,lumayan capek che, tapi seneng
tak lupa rasa terimakasih kepada semua temen-temen/Areg prodi SIM yg telah mendukung pembuatan blog nie,Khususnya Kosma kita <Iconk> gag lelah2nya memberi support dan Ilmunya terhadap kami...OH y hampir lupa rasa Trima kasih buat Masdaf yg udah membimbing kami dari yg mula_nya NOL tapi sekarang lumayan lah udah bisa buat yang kaya' beginian. ahahahahahah
Pokoknya......Terima kasih smw 
No comments:
Post a Comment