8/19/2016T8/19/2016

Materi Kuliah Semester 1 Teknik Informatika Dasar Pemrograman Sub Program (Prosedur)

/* kode iklan */
/* kode iklan */
Materi Kuliah Semester 1 Teknik Informatika
SUB PROGRAM(PROSEDUR)

9.1. Konsep Dasar Sub Program

Salah satu metode perancangan program yang baik adalah menggunakan konsep modular atau sering disebut dengan pemrograman modular. Dengan metode ini suatu masalah dipecah menjadi beberapa masalah yang lebih kecil (ke dalam modul-modul). Dengan membagi masalah menjadi beberapa modul, maka masalah tersebut akan menjadi lebih sederhana, sehingga program dapat lebih mudah disusun dan dipahami. Dalam bahasa Pascal sub program terbagi dua jenis yaitu prosedur dan fungsi.
Manfaat lain dari pemrograman modular adalah software reusabilty. Subprogram yang dibuat satu kali diharapkan dapat digunakan oleh program lain, sehingga penulisan program (proses pengkodean) lebih efektif.

Keuntungan menggunakan modul:

1. Rancangan top-down dengan pendekatan divide-and-conquer, program besar dapat dibagi menjadi modul-modul yang lebih kecil;
2. Dapat dikerjakan oleh beberapa orang dengan koordinasi yang lebih mudah;
3. Mencari kesalahan relatif lebih mudah karena alur logika lebih jelas, dan kesalahan dapat dilokalisasi dalam satu modul;
4. Modifikasi dapat dilakukan tanpa mengganggu program secara keseluruhan;
5. Mempermudah dokumentasi.

Sifat-sifat modul yang baik adalah:
Fan-in yang tinggi: makin sering suatu modul dipanggil oleh pengguna makin tinggi nilai fan-in.
Fan-out yang rendah: makin sedikit (spesifik) tugas yang dilakukan oleh suatu modul, makin rendah nilai fen-out.
Self-contained: kemampuan memenuhi kebutuhannya sendiri.


9.2. Prosedur

Prosedur adalah suatu program terpisah dalam blok sendiri yang berfungsi sebagai sub program. Prosedur diawali dengan kata Procedure didalam bagian deklarasi prosedur. Prosedur dipanggil dan digunakan didalam blok program yang lainnya dengan menyebutkan judul prosedurnya.

Bentuk umum penulisan prosedur dalam sebuah program:


Prosedur memiliki struktur yang sama dengan program, yaitu :

   procedure Name;
   const
      (* Constants *)
   var
      (* Variables *)
   begin
      (* Statements *)
   end;

Perhatikan pada bagian akhir prosedur, terlihat setelah END tidak menggunakan titik, tapi tanda titik koma. Ini menandakan bahwa bagian tersebut bukan akhir suatu program. 
Untuk memanggil program, dapat dilakukan dengan cara menuliskan nama porsedur :
Nama_procedure;


9.3. Parameter dalam Prosedur
Nilai didalam suatu program Pascal sifatnya lokal, artinya hanya dapat digunakan pada modul atau unit program yang bersangkutan saja, tidak dapat digunakan pada modul atau unit program yag lainnya. Perhatikan contoh dibawah ini :



Program 9.1 adalah salah, karena modul utama menggunakan variabel lokal suatu prosedur. Bandingkan dengan program 9.2. Jika program 9.2 dijalankan maka hasil program adalah sebagai berikut: 



Supaya nilai-nilai variabel dapat digunakan di modul lainnya yang membutuhkannya, maka dapat dilakukan dengan beberapa cara, yaitu :

1. Dibuat bersifat global
Supaya suatu nilai dapat bersifat global, maka harus dideklarasikan diatas modul yang menggunakannya
Contoh :



Pada contoh diatas, variabel A dan B bersifat global untuk semua modul yaitu untuk prosedur SATU dan DUA, sehingga dapat digunakan untuk semua modul itu.

Baca juga:

2. Dikirimkan sebagai parameter ke modul yang membutuhkannya.
Parameter yang dikirimkan dari modul utama ke modul prosedur disebut dengan parameter nyata (actual prameter) dan parameter yang ada dan dituliskan pada judul prosedur disebut dengan parameter formal (formal parameter). Proses pengiriman data lewat parameter nyata ke parameter formal disebut dengan passing parameter. Parameter nyata dan parameter formal harus dengan tipe yang sama.
Pada bahasa Pascal pengiriman parameter dapat dikirimkan secara nilai (by Value) atau secara acuan (by Reference).

Sintak penulisan prosedur dengan parameternya adalah :
procedure Name (formal_parameter_list);

Parameter list terdiri dari sekumpulan parameter yang dipisahkan dengan tanda titik dua.
     param_group_1; param_group_2; ... ; param_group_n

Setiap parameter mempunyai bentuk
     identifier_1, identifier_2, ... , identifier_n : data_type
Perhatikan contoh dibawah ini :

procedure Name (a, b : integer; c, d : real);
begin
   a := 10;
   b := 2;
   writeln (a, b, c, d)
end;

Asumsikan prosedur diatas dipanggil di program utama

   alpha := 30;
   Name (alpha, 3, 4, 5);

Pada saat kembali ke program utama, berapakah nilai variabel alpha? Apakah bernilai 30 atau 10?
Untuk menjawab pertanyaan diatas, maka perlu diketahui cara pengiriman parameternya apakah secara nilai (by value) atau secara acuan (by reference).


9.4. Pengiriman Parameter secara Nilai (by value)

Bila parameter dikirim secara nilai , parameter formal di prosedur akan berisi nilai yang akan dikirimkan yang kemudian bersifat lokal di prosedur. Bila nilai parameter formal di prosedur tersebut berubah, tidak akan mempengaruhi nilai parameter nyata (nilai parameter nyata tetap, tidak berubah). Pengiriman secara nilai ini merupakan pengiriman searah, yaitu dari parameter nyata ke parameter formal, yang tidak dikirim balik dari parameter formal ke parameter nyata. Pengiriman parameter secara nilai ini juga dapat dikatakan dengan menyalin (copy) nilai variabel dan nilai itu diberikan ke variabel parameter. Prosedur bekerja pada salinan variabel, sehingga tidak mengubah parameter aktualnya.

Contoh:



Hasil program:



Berdasarkan program di atas nilai dari x diberikan kepada A dan nilai dari y diberikan kepada B. Nilai yang dipertukarkan adalah nilai A dan B yang terjadi di dalam prosedur tukar, sedangkan nilai x dan y yang berada di program utama tetap.


9.5. Pengiriman Parameter secara Acuan (byreference)

Bila pengiriman parameter secara acuan, maka perubahan-perubahan yang terjadi pada nilai parameter formal di prosedur akan memperngaruhi nilai parameter nyata. Parameter-parameter ini disebut dengan variabel parameter serta dideklarasikan di deklarasi prosedur dengan menggunakan kata cadangan Var, Berikut format penulisannya:
Procedure nama_procedure (VAR  identifier1, identifier2,  …., identifier3: tipe data)
 
Identifier konstanta dan literal tidak dapat digunakan dalam parameter, karena kedua identifier tersebut tidak dapat berubah nilainya.
Contoh:



Hasil program:



Berdasarkan program di atas terlihat bahwa pengiriman parameter secara acuan merupakan pengiriman dua arah, bolak-balik, sehingga perubahan nilai di parameter formal akan mempengaruhi nilai pada parameter nyata juga. Pada contoh di atas nilai dari variabel A dan B yang telah dipertukarkan mempengaruhi nilai x dan y, sehingga nilai x dan y menjadi tertukar pula.


9.6. Tipe Parameter Formal

Tipe parameter formal yang dapat digunakan adalah berupa variabel atau konstanta. Tipe data sederhana , seperti integer, byte, real, char dan Boolean dapat langsung dipergunakan. Sedangkan tipe data kompleks seperti string, array dan record tidak dapat langsung dipergunakan tetapi harus dideklarasikan terlebih dahulu menggunakan Type.

Contoh untuk tipe data array:

Type 
   Nilai= array[1..100] of integer;
Procedure Arrayku(a: Nilai);


Contoh untuk tipe data string:

Type 
Kata=string[25];
Procedure Panjang_Kata(Nama: Kata);


Untuk pengiriman parameter string secara nilai, panjang parameter formal dan parameter nyata boleh tidak sama. Akan tetapi untuk untuk pengiriman parameter  secara acuan panjang panjang string harus sama.



/* kode iklan */

jangan lupa iklannya diklik ya, to "Materi Kuliah Semester 1 Teknik Informatika Dasar Pemrograman Sub Program (Prosedur)"

Post a Comment