128
Bab 11 Prosedur
11.1 Pengantar Sub Program (Modular)
Sebuah program yang sederhana yang dibuat oleh programmer pemula biasanya hanya terdiri dari program utama saja (main program). Semakin rumitnya jenis permasalahan yang muncul, maka kompleksitas program yang dibuat juga semakin tinggi.
Pengetahuan :
1. Mahasiswa mampu memilih jenis modular yang tepat untuk menyelesaikan permasalah tertentu.
2. Mahasiswa mampu membuktikan hasil penggunaan Prosedur pada suatu proses bisnis.
3. Mahasiswa mampu menampilkan hasil penggunaan Prosedur pada permasalahan tertentu .
Ketrampilan :
1. Mahasiswa dapat menunjukkan Inisiatif dan persistensi pada materi Konsep Modular.
2. Mahasiswa dapat menunjukkan rasa Tanggung Jawab pada materi Prosedur.
3. Mahasiswa dapat menunjukkan disiplin dan rasa ingin tahu yang besar pada penerapan Prosedur.
4. Mahasiswa dapat menunjukkan rasa percaya diri dan keinginan kuat saat menyelesaikan soal dengan Prosedur.
5. Mahasiswa dapat menunjukkan Kemampuan mengatur waktu dan kecepatan belajar saat menyelesaikan soal dengan Prosedur.
6. Menunjukkan rasa senang belajar pada saat mengerjakan Latihan Soal Prosedur.
129 Hal ini menyebabkan semakin banyak baris yang ditulis pada bagian main program (Farrel, 2015).
Untuk mengatasi hal tersebut, maka dipecahlah kode program yang ditulis pada main program menjadi program-program kecil, tanpa mengubah fungsi utamanya.
Program-program kecil inilah yang selanjutnya disebut sebagai Sub Program. Sub Program merupakan bagian dari program utama yang dapat berdiri sendiri (Ariani S, 2018) (Kadir, 2013). Kode program yang ditulis pada sub program dapat dijalankan, apabila sub program tersebut dipanggil pada program utama. Namun sebaliknya, apabila telah membuat sebuah sub program, namun tidak dipanggil pada program utama, maka sub program tersebut tidak akan pernah dijalankan.
Beberapa manfaat yang dapat diambil apabila menggunakan sub program adalah sebagai berikut:
1. Simplifikasi
Untuk memudahkan programmer, jika ada bagian pada program utama yang ditulis berulang, cukup membuat sebuah sub program dan lakukan pemanggilan sub program tersebut pada baris di program utama.
2. Modularisasi
Lebih mudah dalam mengolah dan menganalisis program (dalam mengoreksi, memodifikasi dan menulis ulang program).
Beberapa pemrograman sering menyebut sub program sebagai Teknik Pemrograman Modular/Routine. Pada dasarnya sub program dibagi menjadi 2 jenis, yaitu sebagai berikut :
Seberapa penting penggunaan Sub Program pada Algoritma ??
Sangat penting, apabila terdapat proses atau perintah yang sama dan harus dilakukan berulang kali…
Agar tidak terus-menerus menulis perintah yang sama, maka buatlah Sub Program yang berisi perintah tersebut, kemudian panggil Sub Program tersebut di dalam sebuah algoritma…
130
1. Prosedur (Procedure)
Prosedur adalah bagian dari suatu program yang disusun secara terpisah untuk melakukan suatu tugas khusus/fungsi tertentu, tanpa mengembalikan nilai dari hasil proses tersebut. Pada prosedur diijinkan melakukan penginputan dan pencetakan hasil output dari sebuah proses, misalnya mencetak hasil penjumlahan dari proses aritmatika (Kadir, 2013).
2. Fungsi (Function)
Fungsi adalah bagian dari program yang dibuat terpisah untuk melaksanakan fungsi tertentu yang menghasilkan suatu nilai untuk dikembalikan ke program utama (return) (Kadir, 2013). Pada fungsi tidak diijinkan melakukan penginputan dan pencetakan hasil output dari sebuah proses, misalnya mencetak hasil penjumlahan dari proses aritmatika.
Fungsi hanya bertugas sebagai tempat penampungan nilai sementara. Jika nilai tersebut hendak dicetak, maka cetaknya pada program utama, bukan pada fungsi itu sendiri.
Gambar 11. 1 Tahapan Flowchart pada Prosedur.
Pada Gambar 11.1 bentuk flowchart untuk Sub Program, pada saat pemanggilan Sub Program, simbol flowchart yang digunakan berbeda, tidak seperti simbol flowchart untuk proses pada umunya. Simbol flowchart untuk Sub Program mempunyai bentuk persegi panjang yang mempunyai tambahan kotak pada samping kiri dan kanan. Ingat Bab 3.
Mulai
Tahap Proses 1
Tahap Proses 3
Selesai
Masuk
Tahap Proses SP1
Tahap Proses SP3
Keluar CALL SubProgram Tahap Proses SP2
131 11.2 Pengertian Prosedur
Prosedur merupakan salah bentuk sub program yang dapat dilakukan tanpa melakukan pengembalian nilai ke program utama. Namun, perlu diperhatikan bahwa Prosedur juga harus dipanggil di program utama agar dapat menghasilkan nilai akhir.
Selain dipanggil di program utama, sebuah prosedur juga dapat dipanggil oleh prosedur lainnya. Prosedur dapat dipanggil berulang kali di program utama. Perhatikan Cara Kerja Prosedur yang digambarkan pada Gambar 11.2.
Gambar 11. 2 Cara Kerja Prosedur
Prosedur dapat dianalogikan sebagai sebuah pabrik yang menangani beberapa proses. Agar dapat berjalan sebagaimana mestinya, sebuah pabrik harus memiliki ketersediaan bahan baku yang cukup. Kenyataannya, ketersediaan bahan baku bisa ada, bisa juga tidak ada sama sekali. Jika pabrik memiliki ketersediaan bahan baku yang cukup, maka semua proses dapat dijalankan dengan baik. Bahan Baku ini diibaratkan sebagai prosedur. Jika kebutuhan prosedur untuk mendukung proses utama telah disediakan semua, maka program utama dapat dijalankan dengan baik.
Gambar 11. 3 Ilustrasi Prosedur.
Pabrik Bahan Baku
Kode Program 1 Kode Program 2 Kode Program 3 Call Modul A Kode Program 5 Kode Program 6 Call Modul B Kode Program 8 Call Modul A Kode Program 10
Modul A
Modul B
Kode Program A1 Kode Program A2 Kode Program A3
Kode Program B5 Kode Program B4 Kode Program B3 Kode Program B2 Kode Program B1
Program Utama
132
11.3 Parameter Prosedur
Ketika suatu prosedur dipanggil, maka pada hakikatnya dapat melakukan proses pertukaran data antara program utama dan prosedur. Proses pertukaran ini dilakukan melalui parameter. Pada prosedur, terdapat 2 jenis parameter yaitu sebagai berikut :
a. Parameter Aktual
Parameter aktual merupakan parameter yang disertakan pada saat prosedur dipangggil untuk dijalankan pada program utama, sering disebut sebagai argumen.
b. Parameter Formal
Parameter formal merupakan parameter yang dituliskan pada definisi suatu prosedur/fungsi. Ada 3 jenis dari parameter formal yang dapat digunakan pada prosedur, yaitu :
1. Parameter Masukan (Input)
Parameter yang menerima nilai dari parameter aktual.
2. Parameter Keluaran (Output)
Parameter yang menyerahkan nilai ke parameter aktual.
3. Parameter masukan dan keluaran (Input-Output)
Parameter yang menerima nilai dari parameter aktual untuk diproses dalam prosedur kemudian diserahkan kembali ke parameter aktual setelah selesai.
11.4 Penerapan Prosedur
Penerapan Prosedur dalam kehidupan sehari-hari yang sering dilakukan diantaranya :
a. Perhitungan aritmatika, menghitung penjumalahan/perkalian/pembagian/
pengurangan 2 buah bilangan. Apabila seseorang membeli barang di toko, pasti memikirkan berapakah total belanjanya. Total belanja selalu didapatkan dari perkalian harga barang dan kuantiti barang yang dibeli. Proses perkalian itu berulang terus hingga barang yang terakhir dibeli. Tampung proses perkalian di sebuah prosedur, kemudian panggil prosedur tersebut sebanyak jenis barang yang dibeli.
b. Mencetak Judul Film pada tiket bioskop. Apabila Anda membeli tiket bioskop secara berkelompok 10 orang, proses pencetakkan judul film dapat disimpan di prosedur, kemudian panggil prosedur tersebut sebanyak orang yang memesan tiket.
133 Adapun contoh bentuk Pseudocode dan Flowchart sederhana Penerapan Prosedur dapat dilihat pada Gambar 14.4 dan Gambar 14.5.
Contoh Kasus 01 : Algoritma Menghitung Luas Persegi Panjang Menggunakan Prosedur Tanpa Parameter.
Algoritma Utama :
Input : panjang, lebar
Panggil Procedure LuasPersPanjang()
Procedure LuasPersPanjang :
Rumus Luas Persegi Panjang = panjang x lebar Output : Hasil Perhitungan Luas Persegi Panjang
Gambar 11. 4 Flowchart Prosedur Perhitungan Luas Persegi Panjang.
Mulai
Selesai
Masuk
Keluar
CALL LuasPersPanjang
panjang : integer lebar : integer luas : integer
Input (panjang, lebar) panjang = 0
lebar = 0
luas = panjang * lebar
Print luas
Algoritma Utama Procedure LuasPersPanjang()
134
Gambar 11. 5 Flowchart dan Pseudocode Menghitung Luas Persegi Panjang Menggunakan Prosedur Tanpa Parameter.
Contoh Kasus 02 : Algoritma Menghitung Luas Persegi Panjang Menggunakan Prosedur Dengan Parameter Masukan (Inputan).
Algoritma Utama :
Input : panjang, lebar
Panggil Procedure LuasPersPanjang(Input P, L)
Procedure LuasPersPanjang (Input P, L) : Rumus Luas Persegi Panjang = P x L
Output : Hasil Perhitungan Luas Persegi Panjang ALGORITMA UTAMA
{Algoritma Menghitung Luas Persegi Panjang, panjang dan lebar diinputkan terlebih dahulu}
Deklarasi :
panjang, lebar, luas : Integer Deskripsi :
Panjang = 0 Lebar = 0
Print (panjang, lebar) Procedure LuasPersPanjang()
PROCEDURE LuasPersPanjang() {Menghitung Luas Persegi Panjang}
Deklarasi :
- (tidak ada) Deskripsi :
luas = panjang * lebar Print (luas)
135 Gambar 11. 6 Flowchart Menghitung Luas Persegi Panjang Menggunakan Prosedur
Dengan Parameter Masukan.
Gambar 11. 7 Pseudocode Menghitung Luas Persegi Panjang Menggunakan Prosedur Dengan Parameter Masukan.
ALGORITMA UTAMA
{Algoritma Menghitung Luas Persegi Panjang, panjang dan lebar diinputkan terlebih dahulu}
Deklarasi :
panjang, lebar: Integer
Procedure LuasPersPanjang (Input P, L : integer)
Deskripsi :
Input (panjang, lebar) LuasPersPanjang(panjang, lebar)
PROCEDURE LuasPersPanjang (Input P, L:integer) {Menghitung Luas Persegi Panjang}
Deklarasi :
luas : integer Deskripsi :
luas = P * L Print (luas)
Mulai
Selesai
Masuk
Keluar
CALL LuasPersPanjang (panjang, lebar)
panjang : integer lebar : integer
Input panjang. lebar
luas = P * L
Print luas
Algoritma Utama Procedure LuasPersPanjang(Input P,L)
luas : integer
136
Contoh : Algoritma Menghitung Luas Persegi Panjang Menggunakan Prosedur Dengan Parameter Keluaran (Output).
Algoritma Utama :
Input : panjang, lebar
Panggil Procedure LuasPersPanjang(Input P, L : integer; Output LS:integer)
Procedure LuasPersPanjang (Input P, L :integer; Output LS :integer) : Rumus Luas Persegi Panjang = P x L
Output : Hasil Perhitungan Luas Persegi Panjang
Gambar 11. 8 Flowchart Menghitung Luas Persegi Panjang Menggunakan Prosedur Dengan Parameter Keluaran.
Mulai
Selesai
Masuk
Keluar
CALL LuasPersPanjang (panjang, lebar, luas)
panjang : integer lebar : integer
luas :integer
Input (panjang, lebar)
LS = P * L Algoritma Utama
Procedure LuasPersPanjang(Input P,L,LS)
Print luas
137 Gambar 11. 9 Pseudocode Menghitung Luas Persegi Panjang Menggunakan Prosedur
Dengan Parameter Keluaran.
Contoh : Algoritma Menentukan Nilai Terbesar dari 2 buah bilangan menggunakan Prosedur Dengan Parameter Masukan/Keluaran (Input/Output).
Algoritma Utama : Input : Bil1, Bil2
Panggil Procedure Maksimum(I/O A1, A2 : integer)
Procedure Maksimum (I/O A1, A2 : integer) : Mencari Angka Terbesar : if (A2>A1) then
tukar = A1 A1 = A2 A2 = tukar end if
ALGORITMA UTAMA
{Algoritma Menghitung Luas Persegi Panjang, panjang dan lebar diinputkan terlebih dahulu}
Deklarasi :
panjang, lebar, luas: Integer
Procedure LuasPersPanjang(Input P,L : integer, Output LS : integer)
Deskripsi :
Input (panjang, lebar)
LuasPersPanjang(panjang, lebar, luas) Print (luas)
PROCEDURE LuasPersPanjang(Input P, L:integer; Output LS : integer)
{Menghitung Luas Persegi Panjang}
Deklarasi :
- (tidak ada) Deskripsi :
LS = P * L
138
Gambar 11. 10 Flowchart Menentukan Bilangan Terbesar Menggunakan Prosedur Dengan Parameter Masukan/Keluaran.
Gambar 11. 11 Pseudocode Menentukan Bilangan Terbesar Menggunakan Prosedur Dengan Parameter Masukan/Keluaran.
ALGORITMA UTAMA
{Algoritma Menentukan Nilai Terbesar, 2 buah bilangan diinputkan terlebih dahulu}
Deklarasi :
Bil1, Bil2: Integer
Procedure Maksimum(I/O A1, A2 : Integer) Deskripsi :
Input (Bil1, Bil2) Maksimum(Bil1, Bil2) Print (A1)
PROCEDURE Maksimum(I/O A1, A2 : Integer) {Menentukan Bilangan Terbesar}
Deklarasi :
tukar : integer Deskripsi :
if (A2>A1) then tukar = A1 A1 = A2 A2 = tukar end if
Mulai
Selesai CALL Maksimum
(Bil1, Bil2) Bil1 : integer Bil2 : integer
Algoritma Utama Procedure Maksimum(I/O A1, A2)
Print A1
Input Bil1. Bil2 A2 > A1
tukar = A1 A1 = A2 A2 = tukar
Ya
Tidak Masuk
Keluar
tukar : integer
139 11.5 Rangkuman
11.6 Latihan Soal
Selesaikan soal di bawah ini menggunakan konsep Prosedur.
1. Mencetak Data Film pada tiket bioskop. Apabila Anda membeli tiket bioskop untuk film yang sama secara berkelompok 10 orang, proses pencetakkan data film dapat disimpan di prosedur, kemudian panggil prosedur tersebut sebanyak orang yang memesan tiket. Buat Flowchart dan Pseudocode menggunakan konsep Prosedur untuk mencetak data Judul Film pada tiket bioskop.
2. Apabila seseorang membeli barang di toko, pasti memikirkan berapakah total belanjanya. Total belanja selalu didapatkan dari perkalian harga barang dan kuantiti barang yang dibeli. Proses perkalian itu berulang terus hingga barang yang terakhir dibeli. Tampung proses perkalian di sebuah prosedur, kemudian panggil prosedur tersebut sebanyak jenis barang yang dibeli. Buat Flowchart dan Pseudocode
Sub Program merupakan bagian dari program yang ditulis terpisah dari program utama. Sub program dapat dijalankan apabila dipanggil melalui program utama. Program Utama yang dibuat oleh seorang programmer berfungsi untuk menggabungkan satu sub program atau lebih agar dapat dapat dijalankan dengan baik dan benar.
Sub Program dibagi menjadi 2 yaitu Prosedur dan Fungsi.
Prosedur adalah bagian dari suatu program yang disusun secara terpisah untuk melakukan suatu tugas khusus/fungsi tertentu, tanpa
mengembalikan nilai dari hasil proses tersebut.
Ada 3 jenis parameter formal yang dapat digunakan pada sub program, yaitu Parameter Masukan, Parameter Keluaran, serta Parameter
Masukan dan Keluaran (I/O).
140
menggunakan konsep Prosedur untuk mencetak data penjualan lengkap beserta Total Pembayaran.
3. Menghitung Keliling dan Luas Lingkaran dengan inputan jari-jari dan konstanta phi = 3.14. Buat Flowchart dan Pseudocode menggunakan konsep Prosedur dengan 2 macam parameter yaitu parameter masukan dan keluaran.
4. Menentukan urutan tinggi badan dari 3 orang dengan inputan tinggi badan dari masing-masing orang tersebut. Buat Flowchart dan Pseudocode menggunakan konsep Prosedur dengan parameter masukan dan keluaran (I/O).