Sabtu, 11 Mei 2013

PEMROGRAMAN MODULAR (MODULARISASI)




 PEMROGRAMAN MODULAR (MODULARISASI)

KONSEP
Ø  Program yang besar (kompleks) sebaiknya dipecah menjadi beberapa subprogram yang lebih kecil.
Ø  Setiap subprogram melakukan tugas (komputasi) yang spesifik.
Ø  Subprogram yang baik adalah yang bersifat independen dari program utamanya.
Ø  Teknik pemecahan program menjadi beberapa subprogram dinamakan teknik pemrograman modular (modularisasi).

SUBPROGRAM
Ø  Memiliki struktur yang sama dengan program utama yaitu bagian header, deklarasi dan definisi.
Ø  Subprogram dieksekusi dengan memanggil namanya dari program utama.
Ø  Ketika sebuah subprogram dipanggil, maka pelaksanaan program berpindah ke subprogram. Selanjutnya, seluruh instruksi di dalam subprogram akan dijalankan. Setelah seluruh instruksi dijalankan, pelaksanaan program kembali ke program utama untuk menjalankan instruksi berikutnya.

KELEBIHAN PEMROGRAMAN MODULAR (MODULARISASI)
Ø  Memberikan kemudahan dalam penulisan bagian (instruksi) program yang sama. Dengan kata lain, modularisasi menghindari penulisan bagian program yang berulang.
Ø  Memberikan kemudahan untuk menulis dan menemukan kesalahan (debug) program.

JENIS SUBPROGRAM
Ø  Prosedur (Procedure)
Ø  Fungsi (Function)

PROSEDUR (PROCEDURE)
Ø  Merupakan subprogram yang mengerjakan tugas (aktifitas) yang spesifik dan menghasilkan suatu efek netto.
Ø  Efek netto diketahui dengan membandingkan keadaan awal dan akhir pada pelaksanaan sebuah prosedur.

PENDEFINISIAN PROSEDUR
Ø  Menuliskan nama prosedur (beserta parameter jika ada), mendeklarasikan nama peubah (variabel, konstanta, tipe, dll), dan menjabarkan rangkaian aksi yang dilakukan.
Ø  Setiap prosedur memiliki nama yang unik dan sebaiknya menggunakan kata kerja. Sebagai contoh, Hitung_Luas_segitiga, Cari_Nilai_Maks.
Ø  Parameter digunakan untuk pertukaran data/informasi  antara prosedur dengan titik (lokasi) pemanggilannya.
Ø  Terdapat dua jenis parameter yakni, aktual dan formal. Parameter aktual (argumen) disertakan pada saat pemanggilan prosedur. Sedangkan parameter formal dideklarasikan dalam bagian header prosedur.
Bentuk pendefinisian prosedur :
Procedure NamaProsedur(deklarasi parameter jika ada)
{Spesifikasi prosedur, keadaan awal dan akhir prosedur}
DEKLARASI :
     {semua nama peubah}
DEFINISI :
     {urutan instruksi/aksi}

Contoh 1 (Prosedur dengan parameter):
procedure Hitung_Nilai_Maks (input a,b : integer)
{Menghitung nilai maksimal antara dua bilangan}
DEKLARASI :
     maks : integer
DEFINISI :
     if a > b then
          maks ¬ a
     else
          maks ¬ b
     write(maks)
end procedure



Contoh 2 (Prosedur tanpa parameter):
procedure Tulis_Deret_Bilangan_Genap
{Menampilkan deret bilangan genap yang kurang dari 10}
DEKLARASI :
     bilangan : integer
DEFINISI :
     bilangan ¬ 2
     while (bilangan < 10)do
          write(bilangan)
     bilangan ¬ bilangan + 2
endwhile
end procedure

PEMANGGILAN PROSEDUR
Ø  Prosedur diakses dengan cara memanggil namanya dari program pemanggil seperti program utama atau subprogram lainnya.
Ø  Prosedur harus dideklarasikan dahulu dalam program pemanggil sehingga dapat dikenali pada saat pengaksesannya. Pendeklarasian prosedur berisi bagian header prosedur.

Contoh 3 (Pengaksesan Prosedur Dari Program Pemanggil):
Algoritma Hitung_Nilai_Maks
{Menghitung nilai maksimal antara dua bilangan dengan menggunakan prosedur}
DEKLARASI :
     a,b : integer
     procedure Hitung_Nilai_Maks(input a, b : integer)
DEFINISI :
     read(a, b)
     Hitung_Nilai_Maks(a, b)
End Algoritma


NAMA GLOBAL, NAMA LOKAL, DAN LINGKUP
Ø  Nama global dideklarasikan dalam algoritma/program utama untuk dapat digunakan dalam seluruh bagian algoritma/program tersebut termasuk prosedur yang ada di dalamnya.
Ø  Nama lokal dideklarasikan dalam prosedur sehingga hanya akan dikenal dan digunakan dalam prosedur tersebut.

PARAMETER
Ø  Digunakan untuk menukar data/informasi antara algoritma/program utama dan prosedur.
Ø  Ketika prosedur dipanggil, parameter aktual berkorespondensi dengan parameter formal. Setiap parameter aktual berpasangan dengan parameter formal yang bersesuaian.
Ø  Jumlah parameter aktual harus sama dengan parameter formal.
Ø  Setiap parameter aktual harus bertipe sama dengan parameter formal yang bersesuaian.
Ø  Setiap parameter aktual harus diekspresikan dalam cara yang sesuai dengan jenis parameter formal.
Terdapat tiga jenis parameter formal, yakni :
Ø  Parameter masukan (input)/parameter nilai, yakni parameter yang nilainya berlaku sebagai masukan untuk prosedur
Ø  Parameter keluaran (outpout), yakni parameter yang menampung keluaran (output) yang dihasilkan prosedur
Ø  Parameter masukan/keluaran, yakni parameter yang berfungsi sebagai masukan dan keluaran bagi prosedur.
Contoh 3 (Prosedur dengan parameter masukan) :
procedure Hitung_rata1(input n : integer)
{Menghitung rata-rata dari n buah bilangan}
DEKLARASI :
     i,bil,jum : integer
     rata      : real
DEFINISI :
     jum¬0
     for i¬1 to n do
          write(‘Masukkan Bilangan ke-’,i)
          read(bil)
          jum¬jum+bil
     endfor
     rata¬jum/n
     write(‘Rata-rata =’,rata)
end_procedure

Algoritma Hitung_rata1
{Menghitung rata-rata dari n buah bilangan dengan menggunakan prosedur}
DEKLARASI :
     n    : integer
DEFINSI :
     write(‘Masukkan jumlah bilangan’)
     read(n)
     Hitung_rata1(n)
End Algoritma

Contoh 4 (Prosedur dengan parameter keluaran) :
procedure Hitung_rata2(output rata :real)
{Menghitung rata-rata dari n buah bilangan}
DEKLARASI :
     i,bil,jum,n   : integer
     rata           : real
DEFINISI :
     write(‘Masukkan jumlah bilangan’)
     read(n)
     jum¬0
     for i¬1 to n do
          write(‘Masukkan Bilangan ke-’,i)
          read(bil)
          jum¬jum+bil
     endfor
     rata¬jum/n
end_procedure

Algoritma Hitung_rata2
{Menghitung rata-rata dari n buah bilangan dengan menggunakan prosedur}
DEKLARASI :
nilai_rata    : real
DEFINSI :
     Hitung_rata(nilai_rata)
     write(‘Rata-rata =’,nilai_rata)
End Algoritma

Contoh 5 (Prosedur dengan parameter masukan/keluaran) :
Procedure Pangkat_empat
(input/output bil:integer)
{Menghitung hasil pangkat empat dari bilangan}
DEKLARASI:
     {tidak ada}
DEFINISI:
     bil¬bil*bil*bil*bil
end_procedure

Algoritma Pangkat_empat
{Menghitung hasil pangkat empat dari bilangan dengan menggunakan prosedur}
DEKLARASI:
     bilangan :integer
DEFINISI:
     Write(‘Masukkan nilai bilangan’)
     Read(bilangan)
     Pangkat_empat(bilangan)
     Write(‘Hasil pangkat empat =’,bilangan)
End Algoritma



2 komentar: