Pemanggilan Prosedur PROSEDUR DAN SUBROUTIN

226 Direktorat Pembinaan SMK | 2008 tersebut. Jika nama yang dipakai di dalam prosedur tidak terdefinisi dalam list parameter formal atau dalam kamus lokal, maka nama tersebut harus sudah terdefinisi pada prosedur yang memakainya. Penulisan kamus lokal sama dengan kamus global, yang berbeda adalah lingkup berlakunya nama yang didefinisikan:  pada kamus global, nama berlaku untuk program dan semua prosedurfungsi yang didefinisikan.  pada kamus lokal, nama berlaku untuk prosedurfungsi yang bersangkutan dan prosedur fungsi yang didefinisikan di dalamnya.  nilai yang disimpan dalam nama yang didefinisikan pada kamus lokal, hanya akan terdefinisi selama eksekusi prosedur, dan tidak dikenal lagi oleh pemanggilnya. Program yang moduler adalah program yang dibagi-bagi menjadi modul-modul yang terdefinisi dengan baik dalam bentuk prosedur- prosedur. Setiap prosedur harus jelas definisi dan ruang lingkupnya, supaya dapat dipanggil secara independent. Pembagian program besar dalam prosedur-prosedur akan mempermudah pembagian kerja di antara beberapa pemrogram. Penulisan prosedur juga akan memudahkan program untuk dibaca oleh manusia karena kita tidak perlu terpaku pada detil kode prosedur untuk mengerti efek neto yang dihasilkannya. Bahkan dalam beberapa hal, pemrogram tidak perlu tahu sama sekali isi atau kode dari prosedur dengan mengetahui spesifikasinya, beberapa bahasa pemrograman bahkan menyediakan prosedur terdefinisi yang sering dipakai dalam memrogram sehingga pemrogram tidak perlu lagi menuliskan kodenya. Prosedur berlaku untuk ruang lingkup universe tertentu, terutama untuk prosedur yang tidak mempunyai parameter. Dalam dua bab berikut, yaitu Mesin Gambar dan Mesin Karakter, akan diberikan gambaran lebih jelas dan lengkap tentang pendefinisian dan pemakaian prosedur karena keduanya adalah mesin abstrak yang tertentu. Contoh 1-Prosedur: VOLTAGE Tuliskanlah program yang membaca tahanan Ohm dan arus Ampere, kemudian menghitung tegangan yang dihasilkan dan menuliskan hasilnya. Perhitungan tegangan harus dituliskan menjadi suatu prosedur bernama PROSES, supaya struktur program jelas: Input - Proses – Output. Input : R : integer, tahanan Ohm dan A : integer, arus Ampere Proses : menghitung V= R A Output : V : integer, tegangan Volt Pelajarilah dua buah solusi yang diberikan berikut ini, dan berikan komentar anda. Solusi 1 : Prosedur tanpa parameter 2008 | Direktorat Pembinaan SMK 227 Program VOLTAGE1 {Program yang membaca tahanan dan arus, menghitung Voltage dan mencetak hasil perhitungan} Kamus : R : integer { tahanan dalam ohm} A : integer { arus dalam ohm} V : integer { tegangan dalam ohm} procedure PROSES1 { Prosedur untuk memproses tahanan dan arus menjadi tegangan } Algoritma : input R,Α PROSES1 output V Procedure PROSES1 { I.S : diberikan harga R dan A yang telah terdefinisi} { FS : memproses R dan A sehingga dihasilkan V yaitu tegangan dengan rumus : V = R A} Kamus lokal : Algoritma : V ← R A Solusi 2 : Prosedur dengan parameter Program VOLTAGE2 {Program yang membaca tahanan dan arus, menghitung Voltage dan mencetak hasil perhitungan} Kamus : R : integer { tahanan dalam ohm} A : integer { arus dalam ohm} V : integer { tegangan dalam ohm} Procedure PROSES2 Input : R,A : integer; Output V:integer { Prosedur untuk memproses tahanan R dan arus A menjadi tegangan V} Algoritma : input R,Α 228 Direktorat Pembinaan SMK | 2008 PROSES2 R,A,V output V

6.4. Sub Routin

Suatu program komputer biasanya merupakan suatu sistem besar yang terdiri dari sub sistem - sub sistem yang mempunyai tugas sendiri-sendiri, saling bekerja sama dan berinteraksi untuk menyelesaikan suatu permasalahan. Dengan adanya pembagian tugas oleh sub sistem – sub sistem ini maka suatu permasalahan dapat diselesaikan dengan lebih cepat dan kesalahan-kesalahan yang mungkin terjadi selama proses penyelesaian masalah dapat dideteksi dan diketahui sedini mungkin, termasuk di sub sistem mana kesalahannya terjadi. Program komputer terutama yang komplek juga sebaiknya “dipecah-pecah” menjadi program- program kecil. Program-program kecil tersebut disebut dengan sub rutin. Sub rutin dibagi menjadi dua macam, yaitu sub rutin yang mengembalikan nilai dan sub rutin yang tidak mengembalikan nilai. Dalam Pascal kedua sub rutin yang mengembalikan nilai disebut dengan function, sedangkan yang tidak mengembalikan nilai disebut dengan procedure. Tetapi untuk C++ dan Java, kedua sub rutin tersebut dijadikan satu tetapi dapat diatur untuk dapat mengembalikan nilai maupun tidak mengembalikan nilai. Untuk C++, sub rutin tersebut ada dalam suatu function, sedangkan pada Java, sub rutin berbentuk suatu method yang disebut dengan function method. Gambar 6.1.SubRutin int main { ……. fungsi_1; ……. fungsi_2; ……. return 0; } int fungsi_1 { ……. return 0; } int fungsi_2 { ……. return 0; } 2008 | Direktorat Pembinaan SMK 229 Baik C++ maupun Java terdapat dua macam fungsi, yaitu user-defined function dan built-in function. User- defined function merupakan fungsi yang didefinisikan sendiri atau dibuat sendiri oleh pemrogram. Sedangkan built-in function adalah fungsi yang sudah ada atau sudah disediakan oleh kompiler dan siap digunakan oleh pemrogram.

6.5. Sub Rutin dalam Bahasa Pemrograman

Bentuk umum sub rutin function pada C++ dan Java sangat mirip. Untuk function yang mengembalikan nilai, setiap function harus didahului oleh tipe data yang sesuai dengan jenis data yang akan dikembalikan, kecuali tipe data array. Setiap function juga mempunyai daftar parameter dimana setiap parameter dipisahkan dengan tanda koma ,. Parameter-parameter ini digunakan untuk menerima data nilai dari program yang memanggilnya. Kita dapat mendeklarasikan banyak parameter atau tidak sama sekali. Untuk fungsi yang tidak mempunyai parameter merupakan fungsi yang nilainya tetap tidak berubah. Sedangkan fungsi yang mempunyai parameter nilai fungsinya dinamis dapat berubah-ubah. Parameter-parameter ini merupakan variabel-variabel yang harus dideklarasikan sendiri-sendiri meskipun tipe datanya sama. Bentuk umum dari function yang mengembalikan nilai adalah sebagai berikut tipe_data nama_fungsidaftar_parameter { isi dari fungsi returnekspresi } Perhatikan contoh progam function yang benar int contohint a, int b { …….. returnc; } Sedangkan program yang menggunakan function salah adalah sebagai berikut: int contohint a, b { …….. returnc; } Setiap function mempunyai kode-kode program sendiri-sendiri karena tugas yang harus diselesaikan oleh setiap function juga