Instruksi Dasar (1)
Tiga jenis instruksi di bawah ini akan dipakai untuk merencanakan program dasar: print* mencetak satu * dan membuat
kursor maju satu langkah. (print* = p*) prints mencetak satu space kosong dan
maju satu langkah. (prints = ps) NL return ke baris berikutnya
Instruksi Dasar (2)
ContohNL; p*;p*;p*NL; p*;p*;p* (Program 3.1)NL; p*;p*;p*
Disederhanakan: NL; p*;p*;p* (Program 3.2)Program 3.2; Program 3.2; Program 3.2 (Program 3.3)
Prosedur (1)
Kesulitan dalam mengingat urutan sekumpulan instruksi menghasilkan pemikiran untuk memberi nama (label) kepada kumpulan instruksi tersebut.
Cara seperti ini disebut membuat prosedur. Dengan prosedur tidak perlu lagi
menyebutkan sekuens dari kumpulan instruksi tersebut tetapi cukup dengan menyebutkan nama (label) prosedurnya saja.
Prosedur adalah suatu program yang digunakan oleh program lain sama seperti sebuah instruksi.
Prosedur sebagai Instruksi (2)
DidefinisikanProgram 3.4: NL;p*;ps;ps;ps;p*Program 3.5: NL; p*;p*;p*;p*;p*
Bagaimana cara membuat bentuk di bawah ini?
***** * ** * * ** * ****** * * ****** * *
Prosedur sebagai Instruksi (3)
Jawab: Program 3.6:
Program 3.5; Program 3.4; Program 3.4; Program 3.4; Program 3.5
Program 3.7: Program 3.4; Program 3.4; Program 3.5; Program 3.4; Program 3.4
Prosedur sebagai Instruksi (Latihan)
Buatlah program untuk mencetak huruf HELLO dalam posisi vertikal. Ukuran tiap huruf 5x5.
Notasi Definisi dan Pemanggilan Prosedur (1)
Suatu prosedur akan selalu dimulai dengan kata “def” dan berakhir dengan enddef.
Contoh:def threestars() = NL;p*;p*;p* enddef
Nama prosedur adalah threestars . Arti prosedur diberikan oleh NL;p*;p*;p* Tanda () menunjukkan bahwa bilamana
prosedur ini dipanggil, tak ada parameter yang dibutuhkan untuk mengeksekusinya.
Notasi Definisi dan Pemanggilan Prosedur (2)
Contoh untuk Program 3.3. dapat ditulis
threestars();threestars();threestars(); (Program 3.8)
def H() = t1();t1();t2();t1() enddefdef O() = t2();t1();t1();t2() enddef;def t1() = NL;p*;ps;ps;ps;p* enddef (Program 3.9)
def t2() = NL; p*;p*;p*;p*;p* enddefO(); NL; H() akan menghasilkan huruf O di atas H.
Definisi dalam Definisi (1)
Suatu prosedur dapat berisi definisi dari suatu prosedur lain.
Contoh: untuk mencetak pola OH tiga kali dengan blank memisahkan tiap pola
Program dapat dibuat dengan:Program 3.9;NL;Program 3.9;NL;Program 3.9(Program 3.10)
Definisi dalam Definisi (2) Contoh:
Program 3.11:def pattern() =
def H() = t1();t1();t2();t1() enddefdef O() = t2();t1();t1();t2() enddef;def t1() = NL;p*;ps;ps;ps; p* enddef def t2() = NL;p*;p*;p*;p*;p* enddefO(); NL; H()
enddefpattern(); NL;pattern();NL;pattern()
Definisi dalam Definisi (2)
Cara lain: def H() = t1();t1();t2();t1();t1() enddefdef O() = t2();t1();t1();t1();t2() enddefdef t1() = NL;p*;ps;ps;ps;p* enddef
def t2() = NL;p*;p*;p*;p*;p* enddef(Program 3.12)def pattern()= O(); NL; H() enddefpattern();NL;pattern();NL;pattern()
Prosedur dengan Parameter (1) def p() = p* enddef
p(); p(); p() (Program 3.13) Arti dari Program 3.13 adalah tercetaknya
tiga *. Tetapi dengan nama yang sama dapat
didefinisikan p() sbb:def p() = NL;p*;p*;p* enddefp();p();p() (Program 3.14)di mana arti dari Program 3.14 adalah mencetak sembilan *.
Prosedur dengan Parameter (1)
Perhatikan lagi prosedur berikut ini :def p() = p* enddefp(); p(); p() (Program 4.1)
def p() = NL;p*;p*;p* enddefp();p();p() (Program 4.2)
Prosedur dengan Parameter (2)
Prosedur p() dalam Program 4.1 dan 4.2 selalu mempunyai arti yang tetap. Sekali didefinisikan akan selalu seperti itu. Ini disebabkan p() tidak mempunyai parameter. Pemberian parameter memungkinkan mengubah arti p() setiap saat. def r3(p) = p();p();p() enddefdef one() = p* enddefdef two() = NL enddefdef three() = NL; p*;p*;p* enddefr3(one); r3(two); r3(three) (Program 4.3)
Prosedur dengan Parameter (3)
Dalam Program 4. 3: urutan instruksi p();p();p() adalah batang tubuh
dari prosedur r3. Setiap prosedur r3(one), r3(two); r3(three)
meminta eksekusi dari p();p();p(). Arti p() itu sendiri tergantung pada parameter
yang disuplai. Sebagai contoh:
instruksi eksekusi hasilr3(one) one(), one(), one() ***r3(two) two(), two(), two() r3(three) three(), three(), three() ***
*** ***
Latihan Soal Definisikan prosedur x, y, dan z sehingga urutan
instruksi NL; r3(x); NL; r3(y);NL; r3(z) mencetak pola di bawah ini
* * * ** ** ** *** *** *** Definisikan prosedur r4 sehingga bila diberikan
definisi x, y, dan z dari soal 1, urutan instruksi NL; r4(x); NL; r4(y);NL; r4(z) akan mencetak pola
* * * * ** ** ** ** *** *** *** *** Kalau r3(one) seperti yang didefinisikan di atas
yaitu mencetak satu *. Bila diberikan definisi def A() = r3(one); r3(one); r3(one); enddef
Berapa * yang dicetak?
Tambahan Instruksi (1) Instruksi dengan satu argumen karakter:
pc(‘ ‘): print karakter. Akan mencetak karakter yang diberikan di dalam tanda kurung.
Contoh:pc(‘*’) *pc(‘ ‘) satu spacepc(‘+’) +def threec(c) = pc(c); pc(c); pc(c) enddef
Maka threec (‘9’) akan mencetak 999 sebab parameter c disubstitusi menjadi 9 ke dalam batang tubuh dari prosedur tiga menjadi urutan instruksi:
pc(‘9’); pc(‘9’); pc(‘9’)
Tambahan Instruksi (2) Instruksi dengan satu argumen string:
pstring(‘ ‘): print string. Akan mencetak string yang diberikan di dalam tanda kurung.
Contoh:pstring(‘good’);ps;pstring(‘morning’);
Tambahan Instruksi (Latihan) Tulis definisi dari prosedur segiempat
agar supaya setiap pemanggilan : segiempat(‘*’) akan mencetak
suatu segiempat berukuran 3x3 *, suatu segiempat(‘+’) akan
menghasilkan segiempat 3x3 +.
Prosedur Berparameter Banyak
def sandwich(selei,roti)=roti();selei();roti() enddef
Prosedur membutuhkan dua nilai argumen yang masing-masing adalah suatu prosedur.
Bila diberikan definisi sbb:def pO() = pc(‘O’) enddefdef pX() = pc(‘X’) enddefmaka:sandwich(pX,pO) mencetak OXO
sandwich(pO,pX) mencetak XOX sandwich(pO,pO) mencetak OOO
Prosedur Berparameter Banyak (Latihan)
Diberikan definisi prosedur sandwich (selai,roti) dan prosedur bigmac:
def bigmac(f1, f2, bread) = bread(); f1(); bread(); f2();
bread() enddef Cari arti dari program di bawah ini:
def a() = pc(‘a’) enddefdef b() = pc(‘b’) enddefdef c() = pc(‘c’) enddefdef one() = sandwich(a,b) enddefdef two() = bigmac(c,a,b) enddefsandwich(one, two) (Program 4.4)
Tugas Take Home
Diketahui 4 digit nim dibelakang anda 672006208 (diambil yg warna merah)
Buatlah PROSEDUR dan PROSEDUR BERPARAMETER
Ketentuan tiap karakter berukuran 5x6. CONTOH: angka 6
************** *******
Tugas Take Home
Dikumpulkan Dalam File *.DOC di email [email protected].
Paling Lambat Kamis 22 September 2011, jam 6 Sore Waktu GOOGLE