2. Sub Topik
1. Konsep Pemrograman Modular
2. Prosedur
3. Nama Lokal & Global
4. Parameter
5. Parameter Masukan
6. Parameter Keluaran
7. Parameter Masukan/Keluaran
3. 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
4. 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
5. 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 judul
2. Bagian deklarasi
3. Bagian badan program
6. 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
7. 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 }
8. Contoh Soal
Kasus 1 :
Buatlah prosedur untuk menghitung luas segitiga dan program utama
untuk memanggil prosedur tersebut!
English Structure
Prosedur Luas Segitiga:
Input : -
Output : luas
Proses :
1. Menghitung luas = 0.5* (alas * tinggi)
2. Mencetak nilai luas
Program Utama:
Input : alas, tinggi
Output : -
Proses :
1. Membaca nilai alas yang dimasukkan oleh user
2. Membaca nilai tinggi yang dimasukkan oleh user
3. Memanggil prosedur untuk menghitung luas segitiga
9. Pseudocode untuk Prosedur :
PROCEDURE LuasSegitiga
{ Menghitung luas segitiga, luas = (alas x tinggi) / 2
K. Awal : sembarang
K. Akhir : luas segitiga tercetak }
DEKLARASI
luas : real
DESKRIPSI:
luas 0.5 * (alas * tinggi)
output(luas)
10. Pseudocode untuk Program Utama :
ALGORITMA Segitiga
{ Menghitung luas segitiga dengan prosedur }
DEKLARASI
alas, tinggi : real
procedure LuasSegitiga
{ Menghitung luas segitiga, luas = (alas x tinggi)/2 }
DESKRIPSI:
input(alas, tinggi)
LuasSegitiga
11. 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)
12. 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
13. 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
14. 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)
15. 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
16. 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, tinggi
Output : luas
Proses :
1. Menghitung luas = 0.5* (alas * tinggi)
2. Mencetak nilai luas
Program Utama:
Input : alas, tinggi
Output : -
Proses :
1. Membaca nilai alas yang dimasukkan oleh user
2. Membaca nilai tinggi yang dimasukkan oleh user
3. Memanggil prosedur untuk menghitung luas segitiga
17. Pseudocode untuk Prosedur :
PROCEDURE LuasSegitiga(input alas, tinggi : real)
{ Menghitung luas segitiga, luas = (alas x tinggi) / 2
K. Awal : sembarang
K. Akhir : luas segitiga tercetak }
DEKLARASI
luas : real
DESKRIPSI:
luas 0.5 * (alas * tinggi)
output(luas)
18. Pseudocode untuk Program Utama :
ALGORITMA Segitiga
{ Menghitung luas segitiga dengan prosedur berparameter}
DEKLARASI
alas, tinggi : real
procedure LuasSegitiga(input alas, tinggi : real)
{ Menghitung luas segitiga, luas = (alas x tinggi)/2 }
DESKRIPSI:
input(alas, tinggi)
LuasSegitiga(alas, tinggi)
19. 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, t
Output : luas
Proses :
1. Menghitung luas = 0.5* (a * t)
2. Mencetak nilai luas
Program Utama:
Input : alas, tinggi
Output : -
Proses :
1. Membaca nilai alas yang dimasukkan oleh user
2. Membaca nilai tinggi yang dimasukkan oleh user
3. Memanggil prosedur untuk menghitung luas segitiga
20. Pseudocode untuk Prosedur :
PROCEDURE LuasSegitiga(input a, t : real)
{ Menghitung luas segitiga, luas = (alas x tinggi) / 2
K. Awal : sembarang
K. Akhir : luas segitiga tercetak }
DEKLARASI
luas : real
DESKRIPSI:
luas 0.5 * (a * t)
output(luas)
21. Pseudocode untuk Program Utama :
ALGORITMA Segitiga
{ Menghitung luas segitiga dengan prosedur berparameter}
DEKLARASI
alas, tinggi : real
procedure LuasSegitiga(input a, t : real)
{ Menghitung luas segitiga, luas = (alas x tinggi)/2 }
DESKRIPSI:
input(alas, tinggi)
LuasSegitiga(alas, tinggi)
22. 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
23. Contoh Soal
Kasus 4 :
Buatlah prosedur untuk menghitung luas segitiga dengan parameter
masukan dan parameter keluaran!
English Structure
Prosedur Luas Segitiga:
Input : a, t
Output : l
Proses :
1. Menghitung l= 0.5* (a * t)
Program Utama:
Input : alas, tinggi
Output : luas
Proses :
1. Membaca nilai alas yang dimasukkan oleh user
2. Membaca nilai tinggi yang dimasukkan oleh user
3. Memanggil prosedur untuk menghitung luas segitiga
4. Mencetak nilai luas
24. Pseudocode untuk Prosedur :
PROCEDURE LuasSegitiga(input a, t : real, output l : real)
{ Menghitung luas segitiga, luas = (alas x tinggi) / 2
K. Awal : sembarang
K. Akhir : luas segitiga tercetak }
DEKLARASI
(tidak ada)
DESKRIPSI:
l 0.5 * (a * t)
25. Pseudocode untuk Program Utama :
ALGORITMA Segitiga
{ Menghitung luas segitiga dengan prosedur berparameter}
DEKLARASI
alas, tinggi, luas : real
procedure 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)
26. 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
27. Contoh Soal
Kasus 5 :
Buatlah program untuk mencetak angka 1 sampai 10, dengan prosedur
menaikkan angka sebanyak 1 angka!
English Structure
Prosedur Increment:
Input : x
Output : x
Proses :
1. Menjumlahkan x = x + 1
Program Utama:
Input : -
Output : x
Proses :
1. Mengisi variabel x dengan nilai awal = 1
2. Ulangi
a. Mencetak angka x
b. Memanggil prosedur increment
Sampai x > 10
28. Pseudocode untuk Prosedur :
PROCEDURE Increment(input/output x : integer)
{ Menaikkan nilai x sebesar 1
K. Awal : x sudah terdefinisi nilainya
K. Akhir : nilai x bertambah 1 }
DEKLARASI
{ tidak ada }
DESKRIPSI:
x x + 1
29. Pseudocode untuk Program Utama :
ALGORITMA CetakAngka
{ Mencetak angka dari 1 sampai 10 }
DEKLARASI
x : integer
procedure Increment(input/output x : integer)
{ Menaikkan nilai x sebesar 1 }
DESKRIPSI:
x 1
repeat
output(x)
Increment(x)
until x > 10
30. 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
31. 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
32. 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.