PEMROGRAMAN TERSTRUKTUR Prosedur By Nia Saurina SST.,M.Kom
Prosedur Sebuah blok program tersendiri yang merupakan bagian dari program lain yang lebih besar. Prosedur dapat dipanggil oleh program utamanya ataupun oleh prosedur lain yang juga merupakan bagian dari program utamanya (masih dalam satu kode program) Sebuah program yang memiliki prosedur biasanya terdiri dari satu atau lebih prosedur dan satu program utama.
Ilustrasi Prosedur pada Kode Program
Keuntungan Prosedur Memecah-mecah program menjadi lebih sederhana, misalnya jika diperlukan proses pencarian berkali- kali jika hanya terdiri dari satu program utama tanpa prosedur, maka kode program pencarian akan beberapa kali ditulis ulang dan haslnya dapat memperbesar ukuran file. Blok program yang digunakan jelas jika akan digunakan pada program lain, cukup dengan mengkopi satu prosedur dan meletakkannya pada program lain yang membutuhkannya dan program lain tersebut tinggal memanggil prosedur tersebut.
Perbedaan Penggunaan Prosedur
Deklarasi Prosedur Pada bahasa pemrograman JAVA tidak mengenal prosedur, karena merupakan bahasa pemrograman berorientasi obyek. JAVA memiliki konsep yang hampir mirip dengan prosedur yang disebut sebagai metode
Cara Memanggil Prosedur Bahasa Algoritmik JAVA nama_prosedur(variable_masukan) nama_prosedur(variable_masukan); cariNama(nama) cariNama(nama);
Contoh Mendeklarasikan Prosedur Bahasa Algoritmik JAVA procedure nama_prosedur (input : tipe_data variable_input1, ….…, tipe_data variable_inputn) {proses} ……………………………………… {end procedure} public void nama_metode(tipe_data variable_input1,…., tipe_data variable_inputn) { //proses ………………………………………………… } cariNama(input: string nama) ………………………………………………….. cariNama(String nama) { //proses
Cara Mendeklarasikan Prosedur Bahasa Algoritmik Komentar procedure nama_procedure (input : tipe_data nama_variabel) Merupakan prosedur yang hanya memiliki variable sebagai masukan sehingga setelah prosedur dijalankan tidak ada nilai variable masukan manapun yang berubah, misalnya: procedure tampil (input : integer a) write(“nilai a adalah : “, a”) {end procedure} Selesai prosedur dijalankan, nilai a tidak mengalami perubahan procedure nama_procedure (output : tipe_data nama_variabel) Merupakan prosedur yang memiliki variable masukan, tapi nilai dari variabelmasukan mengalami perubahan karena proses dalam prosedur setelah prosedur dijalankan tanpa menggunakan nilai dari bariabel masukan, misalnya: procedure hasil (output : integer a) a <- 2 + 3 Selesai prosedur dijalankan, nilai a mengalami perubahan menjadi 5 hasl dari 2 + 3
Cara Mendeklarasikan Prosedur procedure nama_procedure (input : tipe_data nama_variabel, output: tipe_data nama_variabel) Merupakan prosedur yang memiliki variable masukan yang tidak berubah nilainya dan yang berubah nilainya setelah prosedur dijalankan, misalnya: procedure hasil (input : integer a, output: integer b) b <- a + 3 {end procedure} Selesai prosedur dijalankan, nilai a tidak mengalami perubahan sedangkan nilai b mengalami perubahan procedure nama_procedure (input / output : tipoe_data nama_variabel Merupakan prosedur yang memiliki variable masukan, tapi nilai dari variable masukan mengalami perubahan karena proses dalam prosedur setelah prosedur dijalankan dengan menggunakan nilai dari variable masukan, misalnya: procedure hasil (input / output : integer a) a <- a + 3 Selesai prosedur dijalankan, nilai a mengalami perubahan
Membuat Program Implementasi Membuat langkah-langkah dengan bahasa manusia dan mengubahnya menjadi bahasa algoritmik Bahasa Manusia Bahasa Algoritmik Mendekklarasikan prosedur tulis procedure tulis (input: string kata) Menuliskan kata masukan ke layar pada prosedur write kata Mendeklarasikan program utama, mendeklarasikan variable kata, dan memanggil prosedur procedure main (input) String kata <- “program utama prosedur tulis” tulis (kata)
Membuat Program Implementasi Mengubah bahasa algoritmik menjadi bahasa pemrograman JAVA Lakukan kompilasi dan eksekusi program Bahasa Algoritmik JAVA procedure tulis (input: string kata) write kata {end procedure} procedure main (input) String kata <- “program utama prosedur tulis” tulis (kata) class Prosedur { public static void tulis (string kata) { system.out.printin (kata); } public static void main (string[] args) { string kata = “program utama prosedur tulis”; tulis(kata);
Parameter dalam Prosedur Variabel masukan (input) dari sebuah prosedur hasil, operan1 dan operan2 adalah parameter dalam prosedur hitungJumlah Jumlah parameter tidak terbatas Masukan prosedur procedure hitungJumlah (input : integer hasil, integer operan1, integer operan2) hasil <- operan1 + operan2 {end procedure} hitungJumlah ( 1, 2, , , 3); // prosedur berupa nilai hitungJumlah ( a, b, , , c); // prosedur berupa variabel
Parameter pass by value Pemrosesan di dalam prosedur, bahwa parameter hanya dipakai nilainya saja pada proses yang ada di dalam prosedur sehingga tidak ada nilai dari parameter yang berubah setelah prosedur dijalankan
Parameter masukan a dan b hanya dipakai nilainya saja, nilai parameter ini tidak berubah setelah prosedur hitung dijalankan, Variabel operan1 dan operan2 sebagai parameter masukan prosedur hitung, di dalam prosedur hitung nilai a diisi dengan nilai operan1 dan niloai b diisi dengan nilai operan2 sehingga nilai operan1 dan nilai operabn2 tidak berubah seteklah prosedur hitung dijalankan
Parameter pass by reference Pemrosesan parameter di dalam sebuah prosedur bahwa yang dimasukkan di dalam prosedur adalah tempat dari variabel yang menjadi parameter sehingga dapat terjadi perubahan nilai variabel yang menjadi parameter
Parameter masukan a dan b hanya dipakai nilainya saja, nilai parameter ini tidak berubah setelah prosedur hitung dijalankan, sedangkan parameter c akan berubah nilainya setelah prosedur hitung dijalankan. Saat pemrosesan di dalam prosedur hitung operan1 dan operan2 hanya diambil nilainya saja sedangkan c merupakan variabel yang mengacu pada variabel hasil, di dalam prosedur hitung, variabel c adalah variabel hasil sehingga saat c berubah nilai maka hasil juga berbah nilainya, dalam hal ini variabel c adalah sebuah pointer Pointer berarti yang dipesan pada memori bukanlah sebuah tempat, tapi hanya sebuah penunjuk yang mengacu ke tempat variabel yang akan diubah nilainya.
Contoh program Membuat langkah-langkah dengan bahasa manusia dan mengubahnya menjadi bahasa algoritmik Bahasa Manusia Bahasa Algoritmik Mendeklarasikan prosedur hitung yang menghitung hasil penjumlahan masukan dan menuliskan hasilnya ke layar procedure hitung (input: integer a, integer b, output : integer c) { c <- a + b write(“dalam prosedur : hasil penjumlahan : “, c”); {end procedure} Mendekklarasikan variable-variabel algoritma utama sekaligus mengisi nilainya Integer operan1 <-2 Integer operan2 <-3 Integer hasil <-0 Memanggil prosedur hitung hitung( operan1, operan2, hasil) Menuliskan variable hasil ke layar write (“setelah prosedur : nilai hasil : “, hasil”)
Contoh program Mengubah bahasa algoritmik menjadi bahasa pemrograman JAVA Bahasa Algoritmik JAVA procedure hitung (input: integer a, integer b, output : integer c) { c <- a + b write(“dalam prosedur : hasil penjumlahan : “, c”); {end procedure} {algoritma utama} Integer operan1 <-2 Integer operan2 <-3 Integer hasil <-0 hitung( operan1, operan2, hasil) write (“setelah prosedur : nilai hasil : “, hasil”) class Parameter { public static void hitung (int a, int b, int c){ c = a + b; system.out.printin(“dalam prosedur : hasil penjumlahan : “ + c); } public static void main (string[] args){ int operan1 = 2; int operan2 = 3; int hasil = 0; htung (operan1, operan2, hasil); sustem.out.printin (“setelah prosedur : nilai hasil: “ + hasil”);
Lakukan kompilasi dan ekskusi program maka akan menghasilkan keluaran Dalam prosedur : hasil Penjumlahan : 5 Setelah prosedur : nilai hasil : 0
Prosedur Standar Prosedur yang dapat langsung dipakai tanpa mendeklarasikannya karena telah ada pada pustaka (library), yang perlu dilakukan adalah menyertakan pustaka yang berisi prosedur standar yang dibutuhkan pada kode program dengan kata kunci import. Untuk mengetahui prosedur apa saja yang dapat dipakai, perlu dilakukan eksplorasi terhadap pustaka yang disediakan.