Upload
i-komang-agustino
View
485
Download
5
Embed Size (px)
Citation preview
Topik 9Prosedur
Algoritma & Struktur Data
PS. Manajemen Informatika
Sub Topik
1. Konsep Pemrograman Modular
2. Prosedur
3. Nama Lokal & Global
4. Parameter
5. Parameter Masukan
6. Parameter Keluaran
7. Parameter Masukan/Keluaran
Tujuan
Tujuan Instruksional Umum :
Mahasiswa diharapkan mampu membuat algoritma dengan prosedur
Tujuan Instruksional Khusus :
Mahasiswa mampu memahami konsep pemrograman modular
Mahasiswa mampu memahami penggunaan nama lokal & global
Mahasiswa mampu memahami penggunaan parameter
Mahasiswa mampu membuat algoritma dengan prosedur
Konsep Pemrograman Modular
Program yang besar lebih sulit dimengerti dan lebih sulit lagi dalam melakukan pelacakan kesalahan
Program sebaiknya dipecah menjadi beberapa subprogram yang lebih kecil
Subprogram yang baik adalah subprogram yang independen dari program utama sehingga programnya dapat dirancang tanpa mempertimbangkan konteks dimana ia digunakan
Teknik pemecahan program menjadi sejumlah subprogram disebut teknik pemrograman modular
Subprogram disebut juga dengan subrutin, modul, prosedur atau fungsi
Keuntungan pemrograman modular• Menghindari penulisan teks program yang sama
secara berulangkali, sehingga dapat mengurangi panjang program
• Kemudahan menulis dan menemukan kesalahan program
Terdapat dua bentuk subprogram, yaitu prosedur (procedure) dan fungsi (function)
Struktur subprogram adalah:1. Bagian judul2. Bagian deklarasi3. Bagian badan program
Prosedur
Prosedur adalah modul program yang mengerjakan tugas yang spesifik dan menghasilkan suatu efek netto, dengan membandingkan keadaan awal dan keadaan akhir pada pelaksanaan sebuah prosedur
Struktur prosedur sama dengan struktur algoritma biasa
Setiap prosedur mempunyai nama yang unik
Nama prosedur sebaiknya diawali dengan kata kerja karena prosedur berisi suatu aktivitas
Prosedur diakses dengan cara memanggil namanya dari program pemanggil, misalnya program utama atau dari modul program lainnya
Jika prosedur tanpa parameter, maka pemanggilannya cukup dengan namanya saja :
NamaProsedur
Notasi algoritmik prosedur :
PROCEDURE NamaProsedur(deklarasi parameter jika ada)
{ Spesifikasi prosedur, berisi penjelasan tentang apa yang dilakukan oleh prosedur ini.
K. Awal : keadaan sebelum prosedur dilaksanakan
K. Akhir : keadaan setelah prosedur dilaksanakan }
DEKLARASI{ Semua nama yang dipakai didalam prosedur
dan hanya berlaku lokal didalam prosedur didefinisikan disini }
DESKRIPSI:{ badan prosedur, berisi urutan instruksi }
Contoh Soal Kasus 1 :
Buatlah prosedur untuk menghitung luas segitiga dan program utama untuk memanggil prosedur tersebut!
English Structure
Prosedur Luas Segitiga:Input : -Output : luasProses :
1. Menghitung luas = 0.5* (alas * tinggi)2. Mencetak nilai luas
Program Utama:Input : alas, tinggiOutput : -Proses :
3. Membaca nilai alas yang dimasukkan oleh user4. Membaca nilai tinggi yang dimasukkan oleh user5. Memanggil prosedur untuk menghitung luas segitiga
Pseudocode untuk Prosedur :
PROCEDURE LuasSegitiga{ Menghitung luas segitiga, luas = (alas x tinggi)
/ 2K. Awal : sembarangK. Akhir : luas segitiga tercetak }
DEKLARASIluas : real
DESKRIPSI:luas 0.5 * (alas * tinggi)output(luas)
Pseudocode untuk Program Utama :
ALGORITMA Segitiga{ Menghitung luas segitiga dengan prosedur }
DEKLARASIalas, tinggi : realprocedure LuasSegitiga{ Menghitung luas segitiga, luas = (alas
x tinggi)/2 }
DESKRIPSI:input(alas, tinggi)LuasSegitiga
Nama Lokal & Global
Nama lokal adalah nama-nama yang dideklarasikan didalam prosedur dan hanya berlaku didalam prosedur itu sendiri
Nama global adalah nama-nama yang dideklarasikan didalam program utama dan berlaku baik didalam program utama maupun didalam prosedur yang dipanggil
Pada contoh 1 diatas :• Nama lokal : luas• Nama global : alas, tinggi
Pendeklarasian nama global dilakukan jika suatu peubah digunakan di seluruh bagian program (termasuk didalam prosedur)
Pendeklarasian nama lokal dilakukan jika suatu peubah hanya digunakan didalam prosedur saja
Nama yang dideklarasikan di dalam prosedur dan di dalam program utama mungkin sama, namun sifatnya tidak berubah
Usahakan menggunakan nama global sedikit mungkin
Penggunaan nama lokal menguntungkan karena dapat meminimumkan usaha pencarian kesalahan yang diakibatkan oleh program tersebut
Parameter
Parameter adalah nama-nama peubah yang dideklarasikan pada bagian header prosedur
Program memerlukan pertukaran informasi/data antara prosedur dengan bagian yang memanggilnya
Parameter aktual (argumen) adalah parameter yang disertakan pada waktu pemanggilan prosedur
Parameter formal adalah parameter yang dideklarasikan didalam bagian header prosedur itu sendiri
Ketika prosedur dipanggil, parameter aktual menggantikan parameter formal
Tiap-tiap parameter aktual berpasangan dengan parameter formal yang bersesuaian
Cara memanggil prosedur dengan parameter :NamaProsedur (parameter aktual)
Aturan yang harus diperhatikan dalam hubungan satu-satu antara parameter aktual dan parameter formal 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
Terdapat tiga jenis parameter formal yaitu :1. Parameter masukan (input parameter)2. Parameter keluaran (output parameter)3. Parameter masukan/keluaran (input/output
parameter)
Parameter Masukan
Parameter masukan adalah parameter yang nilainya berlaku sebagai masukan untuk prosedur
Parameter masukan disebut juga parameter nilai
Nilai yang dinyatakan oleh parameter masukan tidak dapat dikirim balik ke bagian yang memanggil
Perubahan nilai parameter didalam badan prosedur tidak mengubah nilai parameter aktual
Parameter masukan dideklarasikan di dalam header prosedur
Parameter masukan dinyatakan dengan kata kunci input
Nama parameter aktual boleh tidak sama dengan nama parameter formal yang bersesuaian
Contoh Soal Kasus 2 :
Buatlah prosedur untuk menghitung luas segitiga dengan parameter masukan dan program utama untuk memanggil prosedur tersebut!
English Structure
Prosedur Luas Segitiga:Input : alas, tinggiOutput : luasProses :
1. Menghitung luas = 0.5* (alas * tinggi)2. Mencetak nilai luas
Program Utama:Input : alas, tinggiOutput : -Proses :
3. Membaca nilai alas yang dimasukkan oleh user4. Membaca nilai tinggi yang dimasukkan oleh user5. Memanggil prosedur untuk menghitung luas segitiga
Pseudocode untuk Prosedur :
PROCEDURE LuasSegitiga(input alas, tinggi : real)
{ Menghitung luas segitiga, luas = (alas x tinggi) / 2
K. Awal : sembarangK. Akhir : luas segitiga tercetak }
DEKLARASIluas : real
DESKRIPSI:luas 0.5 * (alas * tinggi)output(luas)
Pseudocode untuk Program Utama :
ALGORITMA Segitiga{ Menghitung luas segitiga dengan prosedur
berparameter}
DEKLARASIalas, tinggi : realprocedure LuasSegitiga(input alas, tinggi
: real){ Menghitung luas segitiga, luas = (alas
x tinggi)/2 }
DESKRIPSI:input(alas, tinggi)LuasSegitiga(alas, tinggi)
Contoh Soal Kasus 3 :
Buatlah prosedur untuk menghitung luas segitiga dengan parameter aktual dan parameter formal tidak sama!
English Structure
Prosedur Luas Segitiga:Input : a, tOutput : luasProses :
1. Menghitung luas = 0.5* (a * t)2. Mencetak nilai luas
Program Utama:Input : alas, tinggiOutput : -Proses :
3. Membaca nilai alas yang dimasukkan oleh user4. Membaca nilai tinggi yang dimasukkan oleh user5. Memanggil prosedur untuk menghitung luas segitiga
Pseudocode untuk Prosedur :
PROCEDURE LuasSegitiga(input a, t : real){ Menghitung luas segitiga, luas = (alas x tinggi)
/ 2K. Awal : sembarangK. Akhir : luas segitiga tercetak }
DEKLARASIluas : real
DESKRIPSI:luas 0.5 * (a * t)output(luas)
Pseudocode untuk Program Utama :
ALGORITMA Segitiga{ Menghitung luas segitiga dengan prosedur
berparameter}
DEKLARASIalas, tinggi : realprocedure LuasSegitiga(input a, t : real){ Menghitung luas segitiga, luas = (alas
x tinggi)/2 }
DESKRIPSI:input(alas, tinggi)LuasSegitiga(alas, tinggi)
Parameter Keluaran
Parameter keluaran adalah paramater yang menampung keluaran yang dihasilkan oleh prosedur
Parameter keluaran disebut juga parameter acuan
Nilai dari parameter aktual akan tetap berada di parameter aktual meskipun prosedur telah selesai dilaksanakan
Parameter keluaran dideklarasikan di dalam header prosedur
Parameter keluaran dinyatakan dengan kata kunci output
Contoh Soal Kasus 4 :
Buatlah prosedur untuk menghitung luas segitiga dengan parameter masukan dan parameter keluaran!
English Structure
Prosedur Luas Segitiga:Input : a, tOutput : lProses :
1. Menghitung l= 0.5* (a * t)
Program Utama:Input : alas, tinggiOutput : luasProses :
2. Membaca nilai alas yang dimasukkan oleh user3. Membaca nilai tinggi yang dimasukkan oleh user4. Memanggil prosedur untuk menghitung luas segitiga5. Mencetak nilai luas
Pseudocode untuk Prosedur :
PROCEDURE LuasSegitiga(input a, t : real, output l : real)
{ Menghitung luas segitiga, luas = (alas x tinggi) / 2
K. Awal : sembarangK. Akhir : luas segitiga tercetak }
DEKLARASI(tidak ada)
DESKRIPSI:l 0.5 * (a * t)
Pseudocode untuk Program Utama :
ALGORITMA Segitiga{ Menghitung luas segitiga dengan prosedur
berparameter}
DEKLARASIalas, tinggi, luas : realprocedure LuasSegitiga(input a, t : real,
output l : real){ Menghitung luas segitiga, luas = (alas x
tinggi)/2 }
DESKRIPSI:input(alas, tinggi)LuasSegitiga(alas, tinggi, luas)output(luas)
Parameter Masukan/Keluaran
Parameter masukan/keluaran adalah paramater yang berfungsi sebagai masukan sekaligus keluaran bagi prosedur tersebut
Parameter masukan/keluaran disebut juga parameter acuan
Jika parameter aktual nilainya diubah dalam badan prosedur, maka sesudah pemanggilan prosedur nilai parameter aktual di titik pemanggilan juga berubah
Parameter aktual harus berupa peubah, tidak boleh berupa konstanta atau ekspresi
Parameter masukan/keluaran dideklarasikan di dalam header prosedur
Parameter keluaran dinyatakan dengan kata kunci input/output
Contoh Soal Kasus 5 :
Buatlah program untuk mencetak angka 1 sampai 10, dengan prosedur menaikkan angka sebanyak 1 angka!
English Structure
Prosedur Increment:Input : xOutput : xProses :
1. Menjumlahkan x = x + 1
Program Utama:Input : -Output : xProses :
2. Mengisi variabel x dengan nilai awal = 13. Ulangi
a. Mencetak angka xb. Memanggil prosedur increment
Sampai x > 10
Pseudocode untuk Prosedur :
PROCEDURE Increment(input/output x : integer){ Menaikkan nilai x sebesar 1K. Awal : x sudah terdefinisi nilainyaK. Akhir : nilai x bertambah 1 }
DEKLARASI{ tidak ada }
DESKRIPSI:x x + 1
Pseudocode untuk Program Utama :
ALGORITMA CetakAngka{ Mencetak angka dari 1 sampai 10 }
DEKLARASIx : integerprocedure Increment(input/output x : integer){ Menaikkan nilai x sebesar 1 }
DESKRIPSI:x 1repeat
output(x)Increment(x)
until x > 10
Rangkuman
Teknik pemrograman yang baik : memecah program menjadi beberapa prosedur
Prosedur sebaiknya ditulis dengan parameter untuk mengurangi kebutuhan penggunaan nama global
Bila prosedur menghasilkan keluaran yang digunakan oleh program pemanggil, gunakan parameter keluaran
Bila prosedur tidak menghasilkan keluaran atau keluaran hanya digunakan oleh prosedur itu sendiri, gunakan parameter masukan
Bila prosedur menerima masukan sekaligus keluaran pada parameter yang sama , gunakan parameter masukan/keluaran
Latihan Soal
Kasus 1:Buatlah algoritma program utama dengan prosedur untuk menghitung luas persegipanjang!
Kasus 2:Buatlah algoritma program utama dengan prosedur untuk menghitung rata-rata sehingga dapat menampilkan hasil perhitungan berikut!
Misalkan, user memasukkan angka = 5, maka proses yang dilakukan adalah :
rata-rata = (1 + 2 + 3 + 4 + 5)/5 = 15/5 = 3
REFERENSI
1. Budi Sutedjo, Michael A.N. 2000. “Algoritma dan Teknik Pemrograman”. Yogyakarta: ANDI OFFSET.
2. Fathul Wahid. 2004. “Dasar-Dasar Algoritma dan Pemrograman”. Yogyakarta: ANDI OFFSET.
3. Rinaldi Munir, Leoni Lidya. 2002. “Algoritma & Pemrograman Dalam Bahasa Pascal dan C Buku 1”. Bandung: Informatika.
4. Rinaldi Munir, Leoni Lidya. 2002. “Algoritma & Pemrograman Dalam Bahasa Pascal dan C Buku 2”. Bandung: Informatika.