Welcome to My Blog.masih bersama MAZ BROW Bang-iconk"TM. Get paid To Promote at any Location

Tuesday, May 10, 2011

BAB VII PROSEDUR


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

Selamat berlatih


No comments:

Post a Comment