Top Banner
MATERI 3 MATERI 3 PROSEDUR PROSEDUR
28

Materi 3&4 prosedur

Jul 20, 2015

Download

Education

Alfa Felle
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Materi 3&4   prosedur

MATERI 3MATERI 3

PROSEDURPROSEDUR

Page 2: Materi 3&4   prosedur

Instruksi Dasar (1)Instruksi Dasar (1)

Tiga jenis instruksi di bawah ini akan Tiga jenis instruksi di bawah ini akan dipakai untuk merencanakan program dipakai untuk merencanakan program dasar:dasar:– print* print* mencetak satu * dan membuat mencetak satu * dan membuat

kursor maju satu langkah. (print* = p*)kursor maju satu langkah. (print* = p*)– prints prints mencetak satu space kosong dan mencetak satu space kosong dan

maju satu langkah. (prints = ps)maju satu langkah. (prints = ps)– NL NL return ke baris berikutnya return ke baris berikutnya

Page 3: Materi 3&4   prosedur

Instruksi Dasar (2)Instruksi Dasar (2)

ContohContohNL; p*;p*;p*NL; p*;p*;p*NL; p*;p*;p* (NL; p*;p*;p* (Program 3.1Program 3.1))NL; p*;p*;p*NL; p*;p*;p*

Disederhanakan:Disederhanakan: NL; p*;p*;p* (PNL; p*;p*;p* (Program 3.2rogram 3.2))Program 3.2; Program 3.2; Program 3.2 (Program 3.2; Program 3.2; Program 3.2 (Program 3.3Program 3.3))

Page 4: Materi 3&4   prosedur

Prosedur (1)Prosedur (1)

Kesulitan dalam mengingat urutan sekumpulan Kesulitan dalam mengingat urutan sekumpulan instruksi menghasilkan pemikiran untuk memberi instruksi menghasilkan pemikiran untuk memberi nama (label) kepada kumpulan instruksi nama (label) kepada kumpulan instruksi tersebut. tersebut.

Cara seperti ini disebut membuat Cara seperti ini disebut membuat prosedurprosedur. . Dengan prosedur tidak perlu lagi menyebutkan Dengan prosedur tidak perlu lagi menyebutkan

sekuens dari kumpulan instruksi tersebut tetapi sekuens dari kumpulan instruksi tersebut tetapi cukup dengan menyebutkan nama (label) cukup dengan menyebutkan nama (label) prosedurnya saja.prosedurnya saja.

Prosedur adalah suatu program yang digunakan Prosedur adalah suatu program yang digunakan oleh program lain sama seperti sebuah instruksi. oleh program lain sama seperti sebuah instruksi.

Page 5: Materi 3&4   prosedur

Prosedur sebagai Instruksi (2) Prosedur sebagai Instruksi (2)

DidefinisikanDidefinisikanProgram 3.4Program 3.4: NL;p*;ps;ps;ps;p*: NL;p*;ps;ps;ps;p*Program 3.5Program 3.5: NL; p*;p*;p*;p*;p* : NL; p*;p*;p*;p*;p*

Bagaimana cara membuat bentuk di bawah ini?Bagaimana cara membuat bentuk di bawah ini?********** * ** ** ** * * ** ** ** * *********** ** * * ** *********** * ** *

Page 6: Materi 3&4   prosedur

Prosedur sebagai Instruksi (3)Prosedur sebagai Instruksi (3)

Jawab: Jawab: – Program 3.6Program 3.6: :

Program 3.5; Program 3.4; Program 3.4; Program 3.5; Program 3.4; Program 3.4; Program 3.4; Program 3.5 Program 3.4; Program 3.5

– Program 3.7Program 3.7: : Program 3.4; Program 3.4; Program 3.5; Program 3.4; Program 3.4; Program 3.5; Program 3.4; Program 3.4Program 3.4; Program 3.4

Page 7: Materi 3&4   prosedur

Prosedur sebagai Instruksi Prosedur sebagai Instruksi (Latihan) (Latihan)

Buatlah program untuk mencetak huruf Buatlah program untuk mencetak huruf HELLO dalam posisi vertikal. Ukuran tiap HELLO dalam posisi vertikal. Ukuran tiap huruf 5x5.huruf 5x5.

Page 8: Materi 3&4   prosedur

Notasi Definisi dan Notasi Definisi dan Pemanggilan Prosedur (1)Pemanggilan Prosedur (1)

Suatu prosedur akan selalu dimulai dengan kata Suatu prosedur akan selalu dimulai dengan kata ““defdef” dan berakhir dengan ” dan berakhir dengan enddefenddef..

Contoh:Contoh:def threestars()def threestars() = NL;p*;p*;p* = NL;p*;p*;p* enddefenddef

Nama prosedur adalah Nama prosedur adalah threestarsthreestars . . – Arti prosedur diberikan oleh Arti prosedur diberikan oleh NL;p*;p*;p* NL;p*;p*;p* – Tanda () menunjukkan bahwa bilamana prosedur ini Tanda () menunjukkan bahwa bilamana prosedur ini

dipanggil, tak ada parameter yang dibutuhkan untuk dipanggil, tak ada parameter yang dibutuhkan untuk mengeksekusinya.mengeksekusinya.

Page 9: Materi 3&4   prosedur

Notasi Definisi dan Notasi Definisi dan Pemanggilan Prosedur (2)Pemanggilan Prosedur (2)

Contoh Contoh – untuk Program 3.3. dapat ditulisuntuk Program 3.3. dapat ditulis

threestars();threestars();threestars(); threestars();threestars();threestars(); Program 3.8Program 3.8))

– def H() = t1();t1();t2();t1() enddefdef H() = t1();t1();t2();t1() enddefdef O() = t2();t1();t1();t2() enddef;def O() = t2();t1();t1();t2() enddef;def t1() = def t1() = NL;p*;ps;ps;ps;p*NL;p*;ps;ps;ps;p* enddef enddef ((Program 3.9Program 3.9))

def t2() = def t2() = NL; p*;p*;p*;p*;p* NL; p*;p*;p*;p*;p* enddefenddefO(); NL; H() akan menghasilkan huruf O di atas HO(); NL; H() akan menghasilkan huruf O di atas H..

Page 10: Materi 3&4   prosedur

Definisi dalam DefinisiDefinisi dalam Definisi (1) (1)

Suatu prosedur dapat berisi definisi dari suatu Suatu prosedur dapat berisi definisi dari suatu prosedur lain.prosedur lain.

Contoh: untuk mencetak pola OH tiga kali Contoh: untuk mencetak pola OH tiga kali dengan blank memisahkan tiap pola dengan blank memisahkan tiap pola

Program dapat dibuat dengan:Program dapat dibuat dengan:Program 3.9;NL;Program 3.9;NL;Program 3.9Program 3.9;NL;Program 3.9;NL;Program 3.9((Program 3.10Program 3.10))

Page 11: Materi 3&4   prosedur

Definisi dalam DefinisiDefinisi dalam Definisi (2) (2) Contoh:Contoh:

Program 3.11Program 3.11::def pattern() = def pattern() =

def H() = t1();t1();t2();t1(); enddefdef H() = t1();t1();t2();t1(); enddefdef O() = t2();t1();t1();t2(); enddefdef O() = t2();t1();t1();t2(); enddefdef t1() = NL;p*;ps;ps;ps;p*; enddef def t1() = NL;p*;ps;ps;ps;p*; enddef def t2() = NL;p*;p*;p*;p*;p*; enddefdef t2() = NL;p*;p*;p*;p*;p*; enddefO(); NL; H()O(); NL; H()

enddefenddefpattern(); NL;pattern();NL;pattern()pattern(); NL;pattern();NL;pattern()

Page 12: Materi 3&4   prosedur

Definisi dalam DefinisiDefinisi dalam Definisi (2) (2)

Cara lain: Cara lain: def H() = t1();t1();t2();t1() enddefdef H() = t1();t1();t2();t1() enddefdef O() = t2();t1();t1();t2() enddefdef O() = t2();t1();t1();t2() enddefdef t1() = NL;p*;ps;ps;ps;p* enddef def t1() = NL;p*;ps;ps;ps;p* enddef def t2() = NL;p*;p*;p*;p*;p* enddef def t2() = NL;p*;p*;p*;p*;p* enddef((Program 3.12Program 3.12))def pattern()= O(); NL; H() enddefdef pattern()= O(); NL; H() enddefpattern();NL;pattern();NL;pattern()pattern();NL;pattern();NL;pattern()

Page 13: Materi 3&4   prosedur

Prosedur dengan Parameter (1)Prosedur dengan Parameter (1)

def p() = p* enddefdef p() = p* enddefp(); p(); p() p(); p(); p() ((Program 3.13Program 3.13))

Arti dari Program 3.13 adalah tercetaknya tiga *.Arti dari Program 3.13 adalah tercetaknya tiga *. Tetapi dengan nama yang sama dapat Tetapi dengan nama yang sama dapat

didefinisikan p() sbb:didefinisikan p() sbb:def p() = NL;p*;p*;p* enddefdef p() = NL;p*;p*;p* enddefp();p();p()p();p();p() ((Program 3.14Program 3.14))di mana arti dari Program 3.14 adalah mencetak di mana arti dari Program 3.14 adalah mencetak sembilan *.sembilan *.

Page 14: Materi 3&4   prosedur

MATERI 4MATERI 4

PROSEDUR DENGAN PROSEDUR DENGAN PARAMETERPARAMETER

Page 15: Materi 3&4   prosedur

Prosedur dengan Parameter (1)Prosedur dengan Parameter (1)

Perhatikan lagi prosedur berikut ini :Perhatikan lagi prosedur berikut ini :def p() = p* enddefdef p() = p* enddefp(); p(); p() p(); p(); p() ((Program 4.1Program 4.1))

def p() = NL;p*;p*;p* enddefdef p() = NL;p*;p*;p* enddefp();p();p()p();p();p() ((Program 4.2Program 4.2))

Page 16: Materi 3&4   prosedur

Prosedur dengan Parameter (2)Prosedur dengan Parameter (2) Prosedur p() dalam Program 4.1 dan 4.2 selalu Prosedur p() dalam Program 4.1 dan 4.2 selalu

mempunyai arti yang tetap. Sekali didefinisikan mempunyai arti yang tetap. Sekali didefinisikan akan selalu seperti itu. Ini disebabkan p() tidak akan selalu seperti itu. Ini disebabkan p() tidak mempunyai parameter. Pemberian parameter mempunyai parameter. Pemberian parameter memungkinkan mengubah arti p() setiap saat. memungkinkan mengubah arti p() setiap saat. def r3(p) = p();p();p() enddefdef r3(p) = p();p();p() enddefdef one() = p* enddefdef one() = p* enddefdef two() = NL enddefdef two() = NL enddefdef three() = NL; p*;p*;p* enddefdef three() = NL; p*;p*;p* enddefr3(one); r3(two); r3(three) r3(one); r3(two); r3(three) ((Program 4.3Program 4.3))

Page 17: Materi 3&4   prosedur

Prosedur dengan Parameter (3)Prosedur dengan Parameter (3) Dalam Program 4. 3:Dalam Program 4. 3:

– urutan instruksi p();p();p() adalah batang tubuh dari urutan instruksi p();p();p() adalah batang tubuh dari prosedur r3. prosedur r3.

– Setiap prosedur r3(one), r3(two); r3(three) meminta Setiap prosedur r3(one), r3(two); r3(three) meminta eksekusi dari p();p();p(). eksekusi dari p();p();p().

– Arti p() itu sendiri tergantung pada parameter yang Arti p() itu sendiri tergantung pada parameter yang disuplai. disuplai.

Sebagai contoh:Sebagai contoh:instruksi eksekusi hasilinstruksi eksekusi hasilr3(one) one(), one(), one() ***r3(one) one(), one(), one() ***r3(two) two(), two(), two() r3(two) two(), two(), two() r3(three) three(), three(), three() *** r3(three) three(), three(), three() ***

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

Page 18: Materi 3&4   prosedur

Latihan SoalLatihan Soal Definisikan prosedur x, y, dan z sehingga urutan Definisikan prosedur x, y, dan z sehingga urutan

instruksi NL; r3(x); NL; r3(y);NL; r3(z) mencetak pola instruksi NL; r3(x); NL; r3(y);NL; r3(z) mencetak pola di bawah inidi bawah ini

* * ** * * ** ** **** ** ** *** *** ****** *** *** Definisikan prosedur r4 sehingga bila diberikan definisi Definisikan prosedur r4 sehingga bila diberikan definisi

x, y, dan z dari soal 1, urutan instruksi NL; r4(x); NL; x, y, dan z dari soal 1, urutan instruksi NL; r4(x); NL; r4(y);NL; r4(z) akan mencetak polar4(y);NL; r4(z) akan mencetak pola

* * * ** * * * ** ** ** **** ** ** ** *** *** *** ****** *** *** *** Kalau r3(one) seperti yang didefinisikan di atas yaitu Kalau r3(one) seperti yang didefinisikan di atas yaitu

mencetak satu *. Bila diberikan definisimencetak satu *. Bila diberikan definisi def A() = r3(one); r3(one); r3(one); enddefdef A() = r3(one); r3(one); r3(one); enddef

Berapa * yang dicetak?Berapa * yang dicetak?

Page 19: Materi 3&4   prosedur

Tambahan Instruksi (1)Tambahan Instruksi (1) Instruksi dengan satu argumen karakter: Instruksi dengan satu argumen karakter:

– pc(‘ ‘): print karakter. Akan mencetak karakter yang pc(‘ ‘): print karakter. Akan mencetak karakter yang diberikan di dalam tanda kurung.diberikan di dalam tanda kurung.

Contoh:Contoh:pc(‘*’) pc(‘*’) →→ * *pc(‘ ‘) pc(‘ ‘) →→ satu space satu spacepc(‘+’) pc(‘+’) →→ + +def threec(c) = pc(c); pc(c); pc(c) enddefdef threec(c) = pc(c); pc(c); pc(c) enddef

Maka threec (‘9’) akan mencetak 999 sebab Maka threec (‘9’) akan mencetak 999 sebab parameter c disubstitusi menjadi 9 ke dalam parameter c disubstitusi menjadi 9 ke dalam batang tubuh dari prosedur tiga menjadi urutan batang tubuh dari prosedur tiga menjadi urutan instruksi:instruksi:

pc(‘9’); pc(‘9’); pc(‘9’)pc(‘9’); pc(‘9’); pc(‘9’)

Page 20: Materi 3&4   prosedur

Tambahan Instruksi (2)Tambahan Instruksi (2) Instruksi dengan satu argumen string: Instruksi dengan satu argumen string:

– pstring(‘ ‘): print string. Akan mencetak string pstring(‘ ‘): print string. Akan mencetak string yang diberikan di dalam tanda kurung.yang diberikan di dalam tanda kurung.

Contoh:Contoh:pstring(‘good’);ps;pstring(‘morning’);pstring(‘good’);ps;pstring(‘morning’);

Page 21: Materi 3&4   prosedur

Tambahan InstruksiTambahan Instruksi (Latihan) (Latihan)

Tulis definisi dari prosedur segiempat agar Tulis definisi dari prosedur segiempat agar supaya setiap pemanggilan :supaya setiap pemanggilan :– segiempat(‘*’) akan mencetak suatu segiempat(‘*’) akan mencetak suatu

segiempat berukuran 3x3 *, segiempat berukuran 3x3 *, – suatu segiempat(‘+’) akan menghasilkan suatu segiempat(‘+’) akan menghasilkan

segiempat 3x3 +. segiempat 3x3 +.

Page 22: Materi 3&4   prosedur

Nilai Prosedur yang Nilai Prosedur yang Mengambil ArgumenMengambil Argumen (1) (1)

def twice(x) = x(‘*’); x(‘+’) enddefdef twice(x) = x(‘*’); x(‘+’) enddef Bila diberikan definisi one() dalam Program 4.3, Bila diberikan definisi one() dalam Program 4.3,

maka twice(one) tidak akan masuk akal sebab maka twice(one) tidak akan masuk akal sebab one(‘*’) dan one(‘+’) tidak masuk akal. one(‘*’) dan one(‘+’) tidak masuk akal.

Tetapi twice(pc) masuk akal dan akan mencetak Tetapi twice(pc) masuk akal dan akan mencetak * dan +.* dan +.

Begitu juga dengan twice(segiempat) masuk Begitu juga dengan twice(segiempat) masuk akal dan akan mencetak segiempat * dan +.akal dan akan mencetak segiempat * dan +.

Page 23: Materi 3&4   prosedur

Nilai Prosedur yang Nilai Prosedur yang Mengambil ArgumenMengambil Argumen (2) (2)

Jadi dengan melihat pada definisi prosedur Jadi dengan melihat pada definisi prosedur twice, terlihat bahwa parameter prosedur ini twice, terlihat bahwa parameter prosedur ini adalah suatu prosedur. adalah suatu prosedur.

Prosedur yang disuplai haruslah prosedur yang Prosedur yang disuplai haruslah prosedur yang menerima karakter sebagai argumennya. menerima karakter sebagai argumennya.

Bila diberikan twice(r3) di mana r3 telah Bila diberikan twice(r3) di mana r3 telah didefinisikan, maka tidak masuk akal karena didefinisikan, maka tidak masuk akal karena meskipun r3 menerima suatu argumen, r3 meskipun r3 menerima suatu argumen, r3 membutuhkan suatu prosedur dan bukan suatu membutuhkan suatu prosedur dan bukan suatu nilai karakter sebagai argumennya.nilai karakter sebagai argumennya.

Page 24: Materi 3&4   prosedur

Nilai Prosedur yang Nilai Prosedur yang Mengambil ArgumenMengambil Argumen (3) (3)

Diberikan definisiDiberikan definisidef quote(c) = NL;pc(‘’’);pc(c); pc(‘’’) enddefdef quote(c) = NL;pc(‘’’);pc(c); pc(‘’’) enddefdef x() = p* enddefdef x() = p* enddef

quote(‘x’);quote(‘*’);quote(‘c’);quote(‘c’);quote(x);quote(‘x’);quote(‘*’);quote(‘c’);quote(‘c’);quote(x); Prosedur quote adalah suatu prosedur yang Prosedur quote adalah suatu prosedur yang

membutuhkan argumen karakter yang dipakai pada membutuhkan argumen karakter yang dipakai pada urutan instruksi ketiga yaitu pc(c)urutan instruksi ketiga yaitu pc(c)

c bukan nama prosedur.c bukan nama prosedur.

Page 25: Materi 3&4   prosedur

Nilai Prosedur yang Nilai Prosedur yang Mengambil ArgumenMengambil Argumen (4) (4)

Mana yang masuk akal?Mana yang masuk akal?– quote(‘x’); masuk akal karena ‘x’ adalah nilai quote(‘x’); masuk akal karena ‘x’ adalah nilai

bukan prosedur.bukan prosedur.– quote(‘*’); idemquote(‘*’); idem– quote(‘c’); idemquote(‘c’); idem– quote(c); tidak masuk akal karena c bukan quote(c); tidak masuk akal karena c bukan

nilai dan tidak didefinisikan.nilai dan tidak didefinisikan.– quote(x); tidak masuk akal karena x adalah quote(x); tidak masuk akal karena x adalah

prosedurprosedur

Page 26: Materi 3&4   prosedur

Prosedur Berparameter BanyakProsedur Berparameter Banyak def sandwich(selei,roti)=roti();selei();roti() enddefdef sandwich(selei,roti)=roti();selei();roti() enddef Prosedur membutuhkan dua nilai argumen yang Prosedur membutuhkan dua nilai argumen yang

masing-masing adalah suatu prosedur. masing-masing adalah suatu prosedur. Bila diberikan definisi sbb:Bila diberikan definisi sbb:

def pO() = pc(‘O’) enddefdef pO() = pc(‘O’) enddefdef pX() = pc(‘X’) enddefdef pX() = pc(‘X’) enddefmaka:maka:sandwich(pX,pO) mencetak OXOsandwich(pX,pO) mencetak OXO

sandwich(pO,pX) mencetak XOX sandwich(pO,pX) mencetak XOX sandwich(pO,pO) mencetak OOOsandwich(pO,pO) mencetak OOO

Page 27: Materi 3&4   prosedur

Prosedur Berparameter BanyakProsedur Berparameter Banyak (Latihan)(Latihan)

Diberikan definisi prosedur sandwich (selai,roti) dan Diberikan definisi prosedur sandwich (selai,roti) dan prosedur bigmac:prosedur bigmac:

def bigmac(f1, f2, bread) = bread(); f1(); bread(); f2(); def bigmac(f1, f2, bread) = bread(); f1(); bread(); f2(); bread() enddefbread() enddef

Cari arti dari program di bawah ini:Cari arti dari program di bawah ini:def a() = pc(‘a’) enddefdef a() = pc(‘a’) enddefdef b() = pc(‘b’) enddefdef b() = pc(‘b’) enddefdef c() = pc(‘c’) enddefdef c() = pc(‘c’) enddefdef one() = sandwich(a,b) enddefdef one() = sandwich(a,b) enddefdef two() = bigmac(c,a,b) enddefdef two() = bigmac(c,a,b) enddefsandwich(one, two) sandwich(one, two) ((Program 4.4Program 4.4))

Page 28: Materi 3&4   prosedur

LatihanLatihan Buat programnya dengan Buat programnya dengan sandwich (tengah, luar)sandwich (tengah, luar)

** ** I ** I ****** ** ** II** II ****** ** ** I** I ******