Prosedur

Anda mungkin juga menyukai

Anda di halaman 1dari 9

Prosedur (procedure) merupakan suatu blok kode program yang disusun untuk menyelesaikan masalah umum.

Misalkan dalam bahasa pemrograman pascal dikenal prosedur-prosedur seperti writeln, clrscr, textbackground, textcolor, readln, dsb. Pemanggilan prosedur-prosedur tersebut bervariasi antara satu prosedur dengan prosedur yang lainnya. Misalkan prosedur clrscr yang berfungsi untuk menghapus seluruh tulisan di layar monitor dan meletakkan posisi kursor di X=0 dan Y=0. Prosedur clrscr dalam pemanggilannya tidak membutuhkan parameter; prosedur writeln/write berufungsi untuk mencetak keluaran (output) ke layar monitor. Prosedur writeln/write bisa dipanggil dengan mengikutkan parameter atau tanpa mengikutkan parameter. Sebagai contoh diinstruksikan ke penterjemah (compiler) Pascal untuk memindahkan posisi kursor turun satu baris (Nilai Y Bertambah) dan X tetap di posisi 0 seperti terlihat pada kode berikut: begin writeln; end. Pada kode di atas dipanggil prosedur writeln tanpa diikuti parameter. Pascal memahami bahwa bila pemanggilan prosedur writeln tanpa parameter maka posisi kursor di monitor berubah yaitu kursor kembali ke posisi X=0 (Carriage Return) dan Posisi Y tambah Satu Turun Satu Baris (Line Feed). Contoh lainnya kita bisa menyuruh prosedur writeln untuk mencetak perkalian 10*10: begin writeln(10*10); end. Kode di atas dapat dijelaskan bahwa kita memanggil prosedur writeln dengan mengirimkan parameter perkalian 10*10. Karena prosedur writeln merupakan prosedur yang sudah siap pakai (built in procedure) atau sudah didefenisikan oleh pascal makan detail dari instruksi di dalam prosedur writeln tidak kita ketahui dengan pasti. Kita juga bisa menyuruh perintah writeln untuk mencetak untaian karakter (string) STT DUTA BANGSA: begin writeln(STT DUTA BANGSA); end. Atau gabungan dari nilai dan konstata seperti berikut: begin writeln(10*10,STT DUTA BANGSA); end. Keluwesan prosedur writeln tentu akan sangat membantu dalam pemberian perintah ke komputer.

Prosedur Buatan Pemakai Pascal memungkinkan programmer untuk membuat prosedur sendiri (user defined procedure). Tata cara (syntax) pendeklarasian prosedur buatan pemakai adalah: procedure namaprosedur([par1,par2,par3,...parn]); {deklarasi variabel} {deklarasi prosedur} {deklarasi fungsi} {deklarasi konstanta} {deklarasi label} begin <pernyataan> end; Prosedur yang telah dikelarasikan selanjutnya dapat dipanggil dari program utama atau dari prosedur itu sendiri atau prosedur lainnya. Berikut ini akan dibuat suatu prosedur untuk mencetak alamat STT DUTA BANGSA: Program CetakAlamat; uses crt; procedure Alamat(); begin writeln(STT DUTA BANGSA Bekasi); writeln(Jln.Raya Cibarusah ); end; Begin clrscr; {Memanggil Prosedur Alamat} Alamat(); End. Prosedur Berparameter Prosedur yang diberi tugas khusus dapat menerima parameter sesuai dengan kebutuhan. Misalkan terdapat diinginkan prosedur untuk mencetak bilangan 1 s.d N. Disini nilai N tidak pasti, bisa 10, 20, 100. Untuk itu pada saat pemanggilan prosedur kita kirimkan nilai N dan prosedur selanjutnya memproses pencetakan angka 1 s.d N. Program CetakAngka; Uses Crt; Procedure CetakAngka1Sd(N: Byte); Var

I: Byte; {Deklarasi Lokal} Begin For I:=1 To N Do writeln(I); End; {Program Utama} Begin {Bersihkan layar} clrscr; {Panggil Prosedur Cetak 1 s.d 20} CetakAngka1SD(20); {Panggilan Lagi Prosedur Cetak Angka 1 s.d 100} CetakAngka1SD(100); Readln; {Tunggu Penekanan Tombol Enter} End. Parameter Nilai dan Parameter Acuan Secara umum parameter yang dikirimkan ke prosedur merupakan parameter nilai artinya nilai parameter tidak akan berubah setelah pemanggilan prosedur. Bila diinginkan perubahan nilai parameter setelah pemanggilan prosedur, parameter seperti ini disebut parameter acuan. Buatlah prosedur untuk menghitung jumlah deret berikut: 1/1+1/2+1/3+1/N Diinginkan banyaknya N tidak pasti dan sekaligus hasil penjumlahan terlihat setelah pemanggilan prosedur. Dengan demikian dibutuhkan 2 (dua) buah parameter yaitu N (parameter nilai) dan Jumlah(parameter acuan). Program Jumlah_Deret; Uses Crt; Procedur Jumlah (N : Byte; Var Jumlah : Real); Var I : Byte; Begin Jumlah:=0; For I:=1 To N Do Jumlah:=Jumlah + 1/I End; Var Cacah_Data : Byte; Hasil : Real; Begin

clrscr; Cacah_Data:=10; {Panggil Prosedur} Jumlah(Cacah_Data,Hasil); writeln(Jumlah Deret,Hasil:8:2); Readln; End. Lingkup Variabel Lingkup variabel (variabel scope) menggambarkan daya akses dari variabel tersebut. Dalam Pascal terdapat 2 (dua) jenis ruang lingkup yaitu ruang lingkup global dan lokal. Ruang lingkup global menandakan bahwa variabel tersebut akan dikenali diseluruh kode program. Ruang lingkup lokal menandakan bahwa variabel tersebut hanya dikenal ditempatnya dideklarasikan. Misalkan terdapat program seperti berikut: Var IGlobal : Byte; Procedure LokalSatu; Var ILokal1 : Byte; Begin ILokal1:=10; Writeln(ILokal1,IGlobal); End; Procedure LokalDua; Var ILokal2 : Byte; Begin ILokal2:=20; Writeln(ILokal2,IGlobal); End; {Program Utama} Begin IGlobal:=10; Lokal; End. Pada kode di atas variabel IGlobal akan dikenali di seluruh kode program (baik di Program Utama, Prosedur LokalSatu, Prosedur LokalDua). Sedangkan variabel ILokal1 hanya akan dikenal di prosedur LokalSatu. Begitu juga variabel ILokal2 hanya akan dikenal di prosedur LokalDua.

Kita perhatikan lagi kode program berikut: Program Lingkup_Lingkup; Var I : Byte; Procedure Terluar; Var ITerluar : Byte; Procedure Terdalam; Var ITerdalam : Byte; Begin ITerdalam:=20; writeln(I,ITerluar,ITerdalam); End; Begin ITerluar:=10; {Panggil Prosedur Terluar} End; {Program Utama} Begin I :=5; Terluar; End. Pada kode program di atas I bersifat global artinya akan dikenali di program utama, prosedur terluar dan prosedur terdalam. Variabel ITerluar akan bersifat global di prosedur tersebut sehingga variabel tersebut akan dikenali prosedur-prosedur yang dideklarasikan dalam prosedur tersebut. Namun variabel ITerluar tidak akan dikenali oleh Program Utama. Variabel ITerdalam hanya akan dikenali oleh Prosedur Terdalam. Prosedur Rekursif Prosedur yang memanggil dirinya sendiri disebut sebagai prosedur rekursif. Misalkan terdapat kode program seperti berikut ini: Procedure Cetak; Begin writeln(Duta Bangsa); {Prosedur Memanggil Dirinya Sendiri} Cetak; End; {Program Utama} Begin {Panggil Prosedur}

Cetak; End. Kode program di atas dapat dijelaskan sebagai berikut: 1. Mulai 2. Panggil Prosedur Cetak 3. Cetak string Duta Bangsa 4. Panggil Prosedur Cetak 5. Cetak string Duta Bangsa 6. Panggil Prosedur Cetak 7. Cetak string Duta Bangsa 8. dst Pemanggilan terhadap dirinya sendiri akan tetap dilakukan Prosedur Cetak karena tidak ada pernyataan yang menghentikan pemanggilan. Pemanggilan ini akan terus berlangsung terus-menerus (continues call). Untuk mengatasi masalah ini maka perlu dibuat suatu pernyataan yang membatasi pemanggilan prosedur. Misalkan kode program di atas kita ubah seperti berikut ini: Var I : Byte; Procedure Cetak; Begin IF (I<=5) Then begin writeln(Respati); {Prosedur Memanggil Dirinya Sendiri} Cetak; I:=I+1; end; End; {Program Utama} Begin I:=1; {Panggil Prosedur} Cetak; End. Pada kode di atas prosedur Cetak hanya akan dipanggil sebanyak 5x seperti yang dinyatakan dalam kondisi IF (I<=5). Jika I>5 maka prosedur Cetak tidak akan dipanggil lagi. Umumnya ditentukan suatu kondisi yang memberhentikan pemanggilan prosedur pada dirinya sendiri.

Parameter Bertipe Array Parameter bertipe array dapat dikirimkan ke prosedur dengan sedikit perbedaan dari parameter bertipe konvesional (byte, word, integer, real). Program Jumlah_Data; Const N=100; Type Data : Array[1..N] Of Single; Var AData : Data; Procedure Jumlah(DataA : Data,Cacah:Byte) Begin For I:=1 To N Do Jlh:=Jlh+DataA[I]; writeln(Jumlah Data Adalah,Jlh:12:0); End; {Program Utama} Begin {masukkan data} AData[1]:=70; AData[1]:=65.5; AData[1]:=89; AData[1]:=77; AData[1]:=64; AData[1]:=78.5; {Panggil Prosedur Jumlah Data} Jumlah(AData,6); Readln; End. Latihan Prosedur Diketahui data berat mahasiswa Prodi Sistem Informasi seperti dibawah ini: 65,78,58,60,63,56,65,69,77 Buatlah prosedur untuk : 1.menginputkan N Buah data 2.menghitung jumlah, rata-rata dan standar deviasi berat 3.mengurutkan data secara menaik (ascending) 4.mengurutkan data secara menurun (descending) 5.melihat isi array Untuk menyelesaikan kasus tersebut akan dibuat menu dalam bentuk pilihahan sehingga memudahkan dalam penggunaan program. Menu Pilihan

1. Input Data 2. Tentukan Jumlah, Rata-Rata dan Standar Deviasi 3. Urutkan Data Secara Menaik 4. Urutkan Data Secara Menurun 5. Tampilkan Isi Array Pilihan Anda [1..5] : Program Statistik; Uses Crt; Const N = 100; {Deklarasi Prosedur Input Berat} Procedure Input_Berat(Berat_Mhs : Berat; N : Byte); Var I : Byte; Begin For I:=1 To N Do Begin write(Masukkan Berat Ke,I,:);readln(Berat_Mhs[I]); End; End; {Program Utama} Var Ulang : Boolean; Pil : ShortInt; Begin Ulang:=True; While (Ulang) Do Begin clrscr; gotoxy(25,1);write(M E N U U T A M A); gotoxy(25,2);write(-); gotoxy(25,3);write(1. Input Data); gotoxy(25,4);write(2. Tentukan Jumlah, Rata-Rata, Standar Deviasi); gotoxy(25,5);write(3. Urutkan Berat Secara Menurun); gotoxy(25,6);write(4. Urutkan Berat Secara Menaik); gotoxy(25,7);write(5. Tampilkan Array); gotoxy(25,8);write(0. Selesai); pil:=-1; while (pil<0)or (pil>5) do begin gotoxy(25,9);write(Pilihan Anda [0..5] : );readln(pil); end;

{Uji Pilihan} Case (Pil) Of 1 : Begin {Input Data Berat} End; 2 : Begin {Tentukan Jumlah, Rata-Rata dan Standard Deviasi} End; 3 : Begin {Urutkan Secara Ascending} End; 4 : Begin {Urutkan Secara Descending} End; 5 : Begin {Tampil Isi Array} End; 0 : Begin {Program Selesai} End; End; {Akhir Case} End;{Akhir While} End. {Akhir Program}

Anda mungkin juga menyukai