• Tidak ada hasil yang ditemukan

Pengantar Pemograman Modular

Dalam dokumen Modul Logika_ Algoritma (Halaman 37-43)

Struktur case

X. Pengantar Pemograman Modular

Dalam suatu pengembangan perangkat lunak, pemrograman adalah salah satu tahap untuk mengimplementasikan penyelesaian masalah tertentu dengan suatu bahasa pemrograman. Penyusunan program yang terstruktur merupakan salah satu syarat program yang baik. Terstruktur berarti memiliki rancangan yang sistematis, mudah dibaca, dan mudah dibetulkan jika ada kesalahan serta mempunyai alur yang jelas. Salah satu metode penyusunan program terstruktur adalah pemrograman modular

Jadi, Pemrograman Modular adalah suatu teknik pemrograman di mana program yang biasanya cukup besar dibagi-bagi menjadi beberapa bagian program yang lebih kecil. dan sederhana. Keuntungannya yaitu, program lebih pendek, mudah dibaca dan dimengerti, mudah, didokumentasi, mengurangi kesalahan dan mudah mencari kesalahan, kesalahan yang terjadi bersifat “lokal”. Terdapat dua bentuk teknik pemograman modular (sub-program / upa-program) yaitu prosedur dan fungsi.

1. PROSEDUR

Prosedur adalah modul program yang mengerjakan tugas atau aktivitas yang spesifik dan menghasilkan efek netto dengan membandingkan keadaan awal dan keadaan akhir pada pelaksanaan sebuah prosedur.

Mendefinisikan Prosedur

Pada dasarnya, struktur prosedur sama dengan struktur algoritma. Setiap prosedur mempunyai nama unik dan sebaiknya nama prosedur diawali dengan keta kerja. Notasi algoritmik yang digunakan untuk mendefinisikan struktur prosedur (tanpa parameter) adalah:

Procedure Nama_Prosedur

{Spesifikasi prosedur, berisi penjelasan tentang yang dilakukan prosedur} {K.awal : keadaan sebelum prosedur dilaksanakan}

{K.akhir : keadaan setelah prosedur dilaksanakan }

DEKLARASI

{semua nama yang dipakai dalam prosedur dan hanya berlaku lokal di dalam prosedur didefinisikan}

DESKRIPSI

Contoh: Buat prosedur untuk mencetak string “GANESHA” ke piranti keluaran :

Procedure Cetak_ GANESHA

{mencetak string “GANESHA” ke piranti keluaran} {K.awal : sembarang}

{K.akhir : string “GANESHA” tercetak}

DEKLARASI

{tidak ada}

DESKRIPSI

Write(‘GANESHA’)

Pemanggilan Prosedur

Prosedur bukan program yang berdiri sendiri, ia tidak dapat dieksekusi secara langsung tetapi harus diakses dengan cara memanggil namanya dari program pemanggil (program utama atau modul program lain). Didalam program pemanggil, kita harus mendeklarasikan purwarupa (prototype) prosedur di dalam bagian DEKLARASI. Purwarupa prosedur hanya berisi bagian header prosedur. Tujuan pendeklarasian purwarupa prosedur adalah supaya program pemanggil mengenal nama prosedur tersebut serta cara mengaksesnya.

Contoh : Program utama untuk memanggil prosedur Cetak_ GANESHA

Algoritma Hallo

{Program utama untuk mencetak string “GANESHA”}

DEKLARASI

Procedure Cetak_ GANESHA

{mencetak string “GANESHA” ke piranti keluaran}

DESKRIPSI

Cetak_ GANESHA {panggil prosedur Cetak_ GANESHA }

Nama Global dan Nama Lokal

Nama-nama (tetapan, peubah, tipe, dll) yang dideklarasikan di dalam bagian DEKLARASI prosedur hanya dikenal di dalam nama prosedur yang bersangkutan yang disebut bersifat lokal. Sedangkan nama-nama yang dideklarasikan di dalam program utama dikatakan bersifat global. Nama yang dideklarasikan di dalam prosedur dan di dalam program utama mungkin

saja sama, namun sifat lokal dan globalnya tetap tidak berubah. Nama peubah yang dideklarasikan di dalam program utama dan juga dideklarasikan di dalam prosedur, maka di dalam prosedur nama tersebut adalah peubah lokal, dan di luar prosedur ia berlaku sebagai peubah global.

Parameter

Penggunaan parameter menawarkan mekanisme pertukaran informasi, tiap item data ditransfer antara parameter aktual dan parameter formal yang bersesuaian. Parameter aktual adalah parameter yang disertakan pada waktu pemanggilan, sedangkan parameter formal adalah parameter yang dideklarasikan di dalam bagian header prosedur itu sendiri. Notasi algoritmik yang digunakan untuk mendefinisikan struktur prosedur dengan parameter adalah:

Procedure Nama_Prosedur(daftar parameter format)

{spesifikasi prosedur, berisi penjelasan tentang yang dilakukan oleh prosedur ini}

{K.awal : keadaan sebelum prosedur dilaksanakan} {K.akhir : keadaan setelah prosedur dilaksanakan }

DEKLARASI

{semua nama yang dipakai dalam prosedur dan hanya berlaku lokal di dalam prosedur didefinisikan}

DESKRIPSI

{badan prosedur berisi kumpulan instruksi}

Aturan penting yang harus diamati adalah :

• Jumlah parameter aktual pada pemanggilan prosedur harus sama dengan jumlah parameter formal pada deklarasi prosedurnya.

• Tiap parameter aktual harus bertipe sama dengan tipe parameter formal yang bersesuaian.

• Tiap parameter aktual harus diekspresikan dalam cara yang taat asas dengan parameter formal yang bersesuaian, bergantung pada jenis parameter formal. Berdasarkan maksud penggunaannya, terdapat tiga jenis parameter formal yang disertakan dalam prosedur yaitu :

 Parameter Masukan

Pada parameter masukan, nilai (value) parameter aktual akan diisikan (assign) ke dalam parameter formal yang bersesuaian. Nilai ini digunakan di dalam badan prosedur yang bersangkutan yang dinyatakan oleh parameter masukan tidak dapat dikirim dalam arah sebaliknya. Perubahan nilai parameter di dalam badan prosedur tidak mengubah nilai parameter aktual, Karena yang dipentingkan adalah nilainya, maka nama parameter aktual boleh berbeda dengan nama parameter formal yang bersesuaian.

 Parameter Keluaran

Bila prosedur menghasilkan satu atau lebih nilai yang digunakan oleh program pemanggil, maka nilai keluaran ditampung di dalam parameter keluaran. Bila prosedur yang mengandung parameter keluaran dipanggil, maka nama parameter aktual didalam program pemanggil menggantikan nama parameter formal yang bersesuaian di dalam prosedur. Parameter keluaran dideklarasikan di dalam header prosedur, sebagaimana paramater masukan, tetapi parameter keluaran harus dideklarasikan dengan kata kunci output seperti contoh berikut :

Procedure Satu(input x : integer, output y : real)

{contoh prosedur dengan parameter formal berjenis parameter masukan} {K.awal : nilai x sudah terdefinisi}

{K.akhir : di dalam prosedur, nilai x ditambah satu, lalu hasilnya dikalikan 10, disimpan ke dalam y} DEKLARASI {tidak ada} DESKRIPSI x ← x + 1 y ←x * 10  Parameter Masukan/Keluaran

Pada kebanyakan aplikasi, informasi harus dikirim dalam dua arah, sehingga prosedur juga harus dapat mengakomodasi baik masukan dari dan keluaran ke blok program pemanggil. Untuk menghadapi hal itulah kita bisa menggunakan parameter masukan/keluaran. Dengan menggunakan parameter masukan/keluaran, bila parameter aktual diubah nilainya di dalam badan prosedur, maka sesudah pemanggilan prosedur nilai parameter aktual di titik pemanggilannya juga berubah.

Deklarasi parameter masukan/keluaran di dalam header prosedur, tetapi harus dideklarasikan dengan kata kunci input/output. Perhatikan contoh dibawah ini:

Procedure Dua(input/output x,y : integer)

{menambahkan nilai x dengan 2 dan mengurangi nilai y dengan 2} {K.awal : x dan y sudah berisi nilai}

{K.akhir : nilai x bertambah2, nilai y berkurang 2, lalu dicetak ke piranti keluaran}

DEKLARASI

{tidak ada}

DESKRIPSI

x ← x + 3 y ← y – 2

write(‘nilai x dan y diakhir prosedur dua : ‘) write(‘ x = ‘, x)

write(‘ y = ‘, y)

Algoritma ABC

{program yang memperlihatkan efek penggunaan parameter masukan}

DEKLARASI

a, b : integer

Procedure Dua(input/output x,y : integer)

{menambahkan nilai x dengan 2 dan mengurangi nilai y dg 2}

DESKRIPSI

a ← 15 b ←10

write(‘nilai a dan b sebelum pemanggilan : ‘) write(‘ a = ‘, a)

write(‘ b = ‘, b) Dua

write(‘nilai a dan b sesudah pemanggilan : ‘) write(‘ a = ‘, a)

write(‘ b = ‘, b)

Hasil dari algoritma tersebut adalah : nilai a dan b sebelum pemanggilan : a = 15

b = 10

nilai x dan y diakhir prosedur tiga: a = 17

b = 8

nilai a dan b sesudah pemanggilan : a = 17

b = 8

2. FUNGSI

Fungsi adalah modul program yang memberikan/mengambalikan sebuah nilai yang bertipe sederhana (integer, real, boolean, dan string). Sebagaimana halnya dengan prosedur, fungsi diakses dengan memanggil namanya. Selain itu, fungsi juga dapat mengandung daftar parameter formal. Jenis parameter pada fungsi adalah paramater masukan. Jenis parameter masukan pada fungsi disebabkan oleh kenyataan bahwa parameter pada fungsi merupakan masukan yang digunakan oleh fungsi tersebut untuk menghasilkan nilai.

Mendefinisikan Fungsi

Struktur fungsi sama saja dengan struktur algoritma biasanya berikut ini :

Function Nama_Fungsi(input daftar parameter format) ← tipe hasil

{spesifikasi fungsi, menjelaskan apa yang dilakukan dan yang dikembalikan oleh fungsi ini}

DEKLARASI

{semua nama yang dipakai dalam algoritma fungsi dideklarasikan disini. Nama yang dideklarasikan di dalam DEKLARASI lokal hanya dikenal dan dipakai di dalam fungsi ini saja}

DESKRIPSI

{badan fungsi berisi kumpulan instruksi-instruksi untuk menghasilkan nilai yang akan dikembalikan oleh fungsi}, Return hasil {pengembalian nilai yang dihasilkan fungsi}

Pemanggilan Fungsi

Fungsi diakses dengan cara memanggil namanya dari program pemanggil diikuti dengan daftar parameter aktual, karena fungsi menghasilkan nilai maka nilai tersebut dapat ditampung dalam sebuah peubah yang bertipe sama dengan tipe fungsi, atau nilai yang diberikan oleh fungsi langsung dimanipulasi. Parameter aktual dapat berupa tetapan, nama tetapan, atau nama peubah asalkan sudah terdefinisi tipe dan harganya.

Contoh : Buatkan fungsi untuk menentukan apakah sebuah bilangan bulat merupakan bilangan genap atau ganjil ?

Function Genap(input n : integer) ← boolean

{mengembalikan niai true jika n adalah bilangan genap dan false jika sebaliknya} DEKLARASI

Dalam dokumen Modul Logika_ Algoritma (Halaman 37-43)

Dokumen terkait