• Tidak ada hasil yang ditemukan

4.1 Struktur Rancangan Puncak-Turun dengan Procedure

N/A
N/A
Protected

Academic year: 2021

Membagikan "4.1 Struktur Rancangan Puncak-Turun dengan Procedure"

Copied!
10
0
0

Teks penuh

(1)

Bab 4

Procedure

Anda sudah menggunakan procedure dan function dalam topik-topik yang lalu mungkin tanpa Anda sadari. Write, Writeln, Read, dan Readln adalah contoh procedure yang digunakan untuk menulis atau membaca data. Sedang abs, sqrt, sqr, sin, dan cos adalah contoh fucntion yang memang sudah disediakan oleh sistem Pascal.

Ternyata kita juga dapat membuat procedure atau function buatan kita sendiri dan diperlakukan seperti procedure atau function yang disediakan oleh sistem. Procedure dan function ini termasuk dalam subprogram. Kegunaan sub-program adalah untuk mempermudah pengelolaan dan penyederhanaan sub-program.

4.1

Struktur Rancangan Puncak-Turun dengan

Procedure

Program tersusun atas beberapa modul. Modul kemudian dapat diimplemen-tasikan dengan subprogram (procedure atau function).

Kapan procedure digunakan? Pada umumnya setiap modul dapat diimplem-tasikan dalam bentuk procedure atau function. Namun untuk modul yang sangat sederhana bentuk procedure atau function tidak diperlukan. Keputusan peng-gunaan modul atau tidak dapat didasarkan pada bagaimana secara keseluruhan program menjadi lebih mudah dipahami.

Jika modul hanya terdiri atas 1 baris saja, lebih baik tidak usah dijadikan procedure. Jika modul terdiri atas banyak baris, lebih baik dijadikan procedure saja. Inin untuk mempermudah pemahaman program secara keseluruhan.

Perlu dicatat di sini bahwa keputusan untuk menjadikan modul menjadi pro-cedure atau tidak, hanya menyebabkan pada perbedaan keterbacaan program, bukan pada hasil program.

(2)

4.2

Perancangan Procedure

4.2.1

Pengertian Subprogram

Subprogram adalah bagian dari program yang dirancang untuk melaksanakan su-atu tugas tertentu. Idenya adalah konsep tentang modularitas : program dipecah atas subprogram-subprogram yang lebih kecil. Dengan cara ini, program akan lebih mudah dimengerti, dan jika ada kesalahan di dalam proses pengolahan data akan lebih mudah untuk melokalisirnya.

Di dalam Pascal subprogram bisa berwujud prosedur atau fungsi. Secara garis besar, konstruksi keduanya mirip dengan program. Prosedur dan fungsi bisa dikatakan sebagai ’program kecil’. Keduanya bisa memiliki deklarasi-deklarasi, bagian badan, bahkan prosedur atau fungsi yang lain.

Aturan umum yang dapat digunakan untuk menentukan perlunya dibuat su-atu prosedur atau fungsi : bagilah susu-atu penyelesaian persoalan (solusi) menjadi subsolusi-subsolusi yang lebih kecil. Masing-masing subsolusi diwujudkan dalam bentuk prosedur atau fungsi. Contoh : masalah pengelolaan data karyawan da-pat dibagi menjadi bagian pemasukan data, pengubahan data, penampilan data, dan penghapusan data. Wujudkan masing-masing bagian tersebut dalam sebuah procedure atau function.

4.2.2

Procedure

Prosedur adalah bentuk subprogram yang semata-mata bertugas mengerjakan suatu aktivitas. Struktur pendefinisian prosedur adalah sebagai berikut.

p r o c e d u r e nama−p ro s e d u r [ ( deretan −parameter ) ] ;

[ b a g i a n d e k l a r a s i k o n s t a n t a , t i p e , v a r i a b e l , dan p r o s e d u r / f u n g s i ]

b e g i n

[ s t a t e m e n−statemen dalam badan p ro s e d u r ]

end ;

Gambar ?? menggambarkan diagram sintaksis procedure dalam Pascal.

Terlihat bahwa struktur prosedur mirip dengan struktur program Pascal. Perbedaannya adalah pada kata procedure dan adanya deretan parameter yang menyertainya. Tentang parameter akan dibicarakan kemudian.

Prosedur digunakan dengan cara memanggil namanya. Sebagai contoh,

pada program pengelolaan data karyawan, jika diinginkan untuk mengubah data karyawan, maka prosedur ubah data dipanggil untuk melaksanakan hal tersebut. Begitu nama sebuah prosedur dipanggil di suatu bagian program, maka eksekusi program akan berpindah ke prosedur tersebut. Program akan mengerjakan apa yang diminta di dalam prosedur tersebut. Setelah selesai, eksekusi akan kembali kepada bagian pemanggil.

(3)

procedure procedure    identifier  parameter   ;        deklarasikonstanta deklarasitipe deklarasivariabel deklarasiprosedur deklarasifungsi           begin    statemen   end    ;    

Gambar 4.1: Sintaksis Procedure

1 program C o n t o h p r o s e d u r ; 2 v a r a , b : i n t e g e r ; 3 4 p r o c e d u r e P r i n t B i l a n g a n ; // d e k l a r a s i p r o s e d u r 5 b e g i n // u n t u k m e n a m p i l k a n dua b i l a n g a n 6 w r i t e l n ( ’ H a s i l p e r t a m a = ’ , a ) ; 7 w r i t e l n ( ’ H a s i l k e d u a = ’ , b ) ; 8 end ; 9 10 b e g i n 11 w r i t e ( ’ Masukkan b i l a n g a n p e r t a m a : ’ ) ; r e a d l n ( a ) ; 12 w r i t e ( ’ Masukkan b i l a n g a n k e d u a : ’ ) ; r e a d l n ( b ) ; 13 P r i n t B i l a n g a n ; // p a n g g i l p r o s e d u r − p e r h a t i k a n h a s i l n y a 14 a := a + 1 0 ; 15 b := b + 5 ; 16 P r i n t B i l a n g a n ; // p a n g g i l s e k a l i l a g i , p e r h a t i k a n h a s i l n y a 17 end . Contoh 4.1:

(4)

parameter (      var      identifier   ,      :    tipedata   ;      )    

Gambar 4.2: Sintaksis parameter dalam Procedure

Buatlah procedure untuk menampilkan pola kotak dari huruf ’*’ den-gan tinggi m dan lebar n. Nilai m dan n merupakan parameter ma-sukan procedure. Contoh untuk m = 4 dan n = 5, hasilnya berbentuk : ***** ***** ***** ***** Jawab:

Terlihat bahwa untuk persoalan tersebut lebih mudah diselesaikan dengan iterasi. Setiap baris diulang sebanyak n dan jumlah baris adalah m. Dengan demikian bentuk programnya menjadi:

1 p r o c e d u r e Kotak (m, n : i n t e g e r ) ; 2 v a r i , j : i n t e g e r ; 3 b e g i n 4 f o r i :=1 to m do b e g i n 5 f o r j :=1 to n do 6 w r i t e ( ’∗ ’ ) ; 7 w r i t e l n ; 8 end ; 9 end ; Contoh 4.2:

Buatlah procedure untuk menampilkan pola segitiga dari huruf ’*’ dengan tinggi dan lebar n. Nilai n merupakan parameter masukan procedure. Contoh untuk n = 5, hasilnya berbentuk:

* ** *** **** *****

(5)

Jawab:

Terlihat bahwa untuk persoalan tersebut juga lebih cocok diselesaikan dengan iterasi. Setiap baris diulang sebanyak nilai i, i bergerak dari 1 sampai dengan n, dan jumlah baris adalah n. Dengan demikian bentuk programnya menjadi:

1 p r o c e d u r e S e g i T i g a ( n : i n t e g e r ) ; 2 v a r i , j : i n t e g e r ; 3 b e g i n 4 f o r i :=1 to n do b e g i n 5 f o r j :=1 to i do 6 w r i t e ( ’∗ ’ ) ; 7 w r i t e l n ; 8 end ; 9 end ; Contoh 4.3:

Buatlah procedure untuk menampilkan pola kotak dari karakter ’*’ seperti Contoh 4.??, tetapi bagian tengah berisi spasi. Contoh untuk

m = 4 dan n = 5, hasilnya berbentuk :

*****

* *

* *

***** Jawab:

Untuk menyelesaikan persoalan ini perlu dicari pola, kapan harus dic-etak spasi dan kapan ahrus dicdic-etak ’*’. Untuk ini, kipa perhatikan kapan harus mencetak ’*’, yaitu baris pertama, baris terkahir, kolom pertama, dan kolom terakhir. Baris pertama tercetak saatnilai i = 1, sedang baris terakhir tercetak saat nilai i = m. Kolom pertama be-rarti nilai j = 1 dan kolom terakhir bebe-rarti j = n. Dengan demikian bentuk programnya menjadi:

1 p r o c e d u r e Kotak2 (m, n : i n t e g e r ) ; 2 v a r i , j : i n t e g e r ; 3 b e g i n 4 f o r i :=1 to m do b e g i n 5 f o r j :=1 to n do 6 i f ( i =1) o r ( i =m) o r ( j =1) o r ( j=m) 7 then w r i t e ( ’∗ ’ ) 8 e l s e w r i t e ( ’ ’ ) ; 9 w r i t e l n ; 10 end ; 11 end ;

(6)

Contoh 4.4:

Buatlah procedure untuk menampilkan pola segi tiga dari huruf ’*’ seperti Contoh 4.??, tetapi bagian tengah berisi spasi. Contoh untuk

n = 5, hasilnya berbentuk : * ** * * * * ***** Jawab:

Untuk menyelesaikan persoalan ini juga perlu dicari pola, kapan harus dicetak spasi dan kapan harus dicetak ’*’. Perhatikan kapan harus mencetak ’*’, yaitu kolom pertama, baris terkahir, dan diagonal. Kolom pertama tercetak saatnilai j = 1, sedang kolom terakhir be-rarti j = n. Kolom diagonal terjadi saat nilai i = j. Dengan demikian bentuk programnya menjadi:

1 p r o c e d u r e S e g i T i g a 2 ( n : i n t e g e r ) ; 2 v a r i , j : i n t e g e r ; 3 b e g i n 4 f o r i :=1 to n do b e g i n 5 f o r j :=1 to i do 6 i f ( j =1) o r ( i =n ) o r ( i=j ) 7 then w r i t e ( ’∗ ’ ) 8 e l s e w r i t e ( ’ ’ ) ; 9 w r i t e l n ; 10 end ; 11 end ; Contoh 4.5:

Bagaimana bentuk aplikasi lengkap dalam GUI untuk menampilkan pola kotak dan segitiga seperti contoh sebelumnya?

Jawab:

Desain from untuk persoalan ini terlihat seperti Gambar ??.

Program 4.1: Program menampilkan Kotak dan Segitiga dalam GUI

1 u n i t p r o g 6 2 ; 2 3 i n t e r f a c e 4 5 u s e s 6 Windows , M e s s a g e s , S y s U t i l s , V a r i a n t s , C l a s s e s , G r a p h i c s , C o n t r o l s , Forms ,

(7)

Gambar 4.3: Desain Form Program Pola Kotak dan Segitiga 7 D i a l o g s , S t d C t r l s , E x t C t r l s ; 8 9 type 10 TForm1 = c l a s s ( TForm ) 11 Memo1 : TMemo; 12 R a d i o G r o u p 1 : TRadioGroup ; 13 L a b e l 1 : T L a b e l ; 14 L a b e l 2 : T L a b e l ; 15 E d i t 1 : T E d i t ; 16 E d i t 2 : T E d i t ; 17 B u t t o n 1 : TButton ; 18 p r o c e d u r e B u t t o n 1 C l i c k ( S e n d e r : T O b j e c t ) ; 19 p r i v a t e 20 { P r i v a t e d e c l a r a t i o n s } 21 p r o c e d u r e Kotak (m , n : I n t e g e r ) ; 22 p r o c e d u r e Kotak2 (m , n : I n t e g e r ) ; 23 p r o c e d u r e S e g i t i g a ( n : I n t e g e r ) ; 24 p r o c e d u r e S e g i t i g a 2 ( n : I n t e g e r ) ; 25 p u b l i c 26 { P u b l i c d e c l a r a t i o n s } 27 end ; 28 29 v a r 30 Form1 : TForm1 ; 31 32 i m p l e m e n t a t i o n 33 34 {$R ∗ . dfm}

(8)

35 p r o c e d u r e TForm1 . Kotak (m, n : i n t e g e r ) ; 36 v a r i , j : i n t e g e r ; 37 s t : S t r i n g ; 38 b e g i n 39 Memo1 . C l e a r ; 40 f o r i :=1 to m do b e g i n 41 s t := ’ ’ ; 42 f o r j :=1 to n do 43 s t := s t+ ’∗ ’ ; 44 Memo1 . L i n e s . Add ( s t ) ; 45 end ; 46 end ; 47 48 p r o c e d u r e TForm1 . S e g i T i g a ( n : i n t e g e r ) ; 49 v a r i , j : i n t e g e r ; 50 s t : S t r i n g ; 51 b e g i n 52 Memo1 . C l e a r ; 53 f o r i :=1 to n do b e g i n 54 s t := ’ ’ ; 55 f o r j :=1 to i do 56 s t := s t+ ’∗ ’ ; 57 Memo1 . L i n e s . Add ( s t ) ; 58 end ; 59 end ; 60 61 p r o c e d u r e TForm1 . Kotak2 (m, n : i n t e g e r ) ; 62 v a r i , j : i n t e g e r ; 63 s t : S t r i n g ; 64 b e g i n 65 Memo1 . C l e a r ; 66 f o r i :=1 to m do b e g i n 67 s t := ’ ’ ; 68 f o r j :=1 to n do 69 i f ( i =1) o r ( i =m) o r ( j =1) o r ( j=m) 70 then s t := s t+ ’∗ ’ 71 e l s e s t := s t+ ’ ’ ; 72 Memo1 . L i n e s . Add ( s t ) ; 73 end ; 74 end ; 75 76 p r o c e d u r e TForm1 . S e g i T i g a 2 ( n : i n t e g e r ) ; 77 v a r i , j : i n t e g e r ; 78 s t : S t r i n g ; 79 b e g i n 80 Memo1 . C l e a r ; 81 f o r i :=1 to n do b e g i n 82 s t := ’ ’ ; 83 f o r j :=1 to i do 84 i f ( j =1) o r ( i =n ) o r ( i=j ) 85 then s t := s t+ ’∗ ’ 86 e l s e s t := s t+ ’ ’ ; 87 Memo1 . L i n e s . Add ( s t ) ; 88 end ; 89 end ; 90

(9)

91 p r o c e d u r e TForm1 . B u t t o n 1 C l i c k ( S e n d e r : T O b j e c t ) ; 92 v a r 93 T i n g g i , L e b a r : i n t e g e r ; 94 b e g i n 95 T i n g g i := S t r T o I n t ( E d i t 1 . Text ) ; 96 L e b a r := S t r T o I n t ( E d i t 1 . Text ) ; 97 c a s e R a d i o G r o u p 1 . I t e m I n d e x o f 98 0 : Kotak ( T i n g g i , L e b a r ) ; 99 1 : Kotak2 ( T i n g g i , L e b a r ) ; 100 2 : S e g i t i g a ( T i n g g i ) ; 101 3 : S e g i t i g a 2 ( T i n g g i ) ; 102 end ; 103 end ; 104 105 end .

4.3

Soal Latihan

1. Buatlah procedure untuk menampilkan pola segi tiga dari karakter ’*’ seperti Contoh 4.??, tetapi sisi tegak ada di bagian kanan. Contoh un-tuk n = 5, hasilnya berbenun-tuk :

* ** * *

* *

*****

2. Ingin dibuat procedure untuk menampilkan pola bilangan dalam segi tiga seperti contoh berikut (untuk n = 5). Bagaimana isi procedurenya?

1 121 12321 1234321 123454321

3. Ingin dibuat procedure untuk menampilkan pola bilangan dalam segi tiga seperti contoh berikut (untuk n = 5). Bagaimana isi procedurenya?

1 121 12321 1234321 123454321

(10)

12344444321 1233333333321 122222222222221 11111111111111111

4. Ingin dibuat procedure untuk menampilkan pola bilangan dalam kotak seperti contoh berikut (untuk n = 4). Bagaimana isi procedurenya?

1111111 1222221 1233321 1234321 1233321 1222221 1111111

Gambar

Gambar 4.1: Sintaksis Procedure
Gambar 4.2: Sintaksis parameter dalam Procedure
Gambar 4.3: Desain Form Program Pola Kotak dan Segitiga 7 D i a l o g s , S t d C t r l s , E x t C t r l s ; 8 9 type 10 TForm1 = c l a s s ( TForm ) 11 Memo1 : TMemo; 12 R a d i o G r o u p 1 : TRadioGroup ; 13 L a b e l 1 : T L a b e l ; 14 L a b e l 2

Referensi

Dokumen terkait

• Entitas menyajikan aset lancar dan tidak lancar serta liabilitas jangka pendek dan jangka panjang sebagai klasifikasi yang terpisah dalam laporan posisi keuangan.. • Jika

Berdasarkan tahapa seleksi paket Pekerjaan Penyusunan Inventarisasi dan Pemetaan Perumahan Tidak Layak Huni Di Kabupaten Indragiri HiliR , Pada Unit Layanan Pengadaan (ULP)

Skipsi 4e*gn judut "Kemeinptran Kommikasi Matematis PEds A4odel Pembelajaran Kooperatif Tip Cooperative Integrated Reading And Composition (CIRC) Materi Komposisi Fungsi

Berdasarkan deskripsi pelaksanaan penelitian Tindakan Kelas (PTK) selama tiga siklus dengan dua kali pertemuan setiap siklusnya, dapat disimpulkan bahwa penerapan

Atau dapat juga pada kartu-kartu tertentu seperti Beer, Jika ditambahkan suatu pengetahuan atau suatu kecerdasan, maka AI Bot akan berlaku seperti pada algoritma

Dengan asumsi bahwa tujuan keberhasilan reforestasi adalah indeks unsur hara mikro linier terhadap umur tanaman sampai mencapai kondisi hutan alam, dan terdapat hubungan yang

Kasus kegagalan dalam penggunaan alat kontrasepsi IUD seperti yang dialami oleh Luluah, secara otomatis bidan sebagai pelaksana pemberian pelayanan terkait

Secara umum bayi yang dilahirkan dengan berat badan rendah, mayoritas terjadi pada ibu berusia 20-38 tahun, status pekerjaan tidak bekerja, pendidikan terakhir