1 / 25

MATERI 8

MATERI 8. PROGRAM SEBAGAI LOGIKA INSTRUKSI. Instruksi Dasar (1). Tiga jenis instruksi di bawah ini akan dipakai untuk merencanakan program kita: c*  mencetak satu * dan membuat kursor maju satu langkah. cb  mencetak satu space kosong dan maju satu langkah.

hiero
Download Presentation

MATERI 8

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. MATERI 8 PROGRAM SEBAGAI LOGIKA INSTRUKSI

  2. Instruksi Dasar (1) • Tiga jenis instruksi di bawah ini akan dipakai untuk merencanakan program kita: • c*  mencetak satu * dan membuat kursor maju satu langkah. • cb  mencetak satu space kosong dan maju satu langkah. • BB  return ke baris berikutnya

  3. Instruksi Dasar (2) • Contoh BB; c*;c*;c* BB; c*;c*;c* (Program 4.1) BB; c*;c*;c* • Disederhanakan: BB; c*;c*;c* (Program 4.2) Program 4.2; Program 4.2; Program 4.2 (Program 4.3)

  4. Prosedur sebagai Instruksi yang Ditemukan (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 suatu instruksi.

  5. Prosedur sebagai Instruksi yang Ditemukan (2) • Didefinisikan Program 4.4: BB;c*;cb;cb;cb;c* Program 4.5: BB; c*;c*;c*;c*;c* • Bagaimana cara membuat bentuk di bawah ini? ***** * * * * * * * * ***** * * * * ***** * *

  6. Prosedur sebagai Instruksi yang Ditemukan (3) • Jawab: • Program 4.6: Program 4.5; Program 4.4; Program 4.4; Program 4.4; Program 4.5 • Program 4.7: Program 4.4; Program 4.4; Program 4.5; Program 4.4; Program 4.4

  7. Prosedur sebagai Instruksi yang Ditemukan (Latihan) • Buatlah program untuk mencetak huruf HELLO dalam posisi vertikal. Ukuran tiap huruf 5x5.

  8. Notasi Definisi dan Pemanggilan Prosedur (1) • Suatu prosedur akan selalu dimulai dengan kata “def” dan berakhir dengan akhdef. • Contoh: def tiga*() = BB;c*;c*;c* akhdef • Di sini nama prosedur adalah tiga*. • Arti prosedur diberikan oleh BB;c*;c*;c* • Tanda () menunjukkan bahwa bilamana prosedur ini dipanggil, tak ada parameter yang dibutuhkan untuk mengeksekusinya.

  9. Notasi Definisi dan Pemanggilan Prosedur (2) • Contoh • untuk Program 4.3. dapat ditulis tiga*();tiga*();tiga*() (Program 4.8) • def H() = t1();t1();t2();t1() akhdef def O() = t2();t1();t1();t2() akhdef; def t1() = BB;c*;cb;cb;cb;c* akhdef (Program 4.9) def t2() = BB; c*;c*;c*;c*;c* akhdef O(); BB; H() akan menghasilkan huruf O di atas H.

  10. 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 4.9;BB;Program 4.9;BB;Program 4.9 (Program 4.10)

  11. Definisi dalam Definisi (2) • Program 4.10 belum merupakan suatu program yang lengkap karena Program 4.9 belum didefinisikan. Program 4.11: def polan() = def H() = t1();t1();t2();t1() akhdef def O() = t2();t1();t1();t2() akhdef; def t1() = BB;c*;cb;cb;cb; c* akhdef def t2() = BB;c*;c*;c*;c*;c* akhdef O(); BB; H() akhdef polan(); BB;polan();BB;polan()

  12. Definisi dalam Definisi (2) • Cara lain: def H() = t1();t1();t2();t1() akhdef def O() = t2();t1();t1();t2() akhdef def t1() = BB;c*;cb;cb;cb;c* akhdef def t2() = BB;c*;c*;c*;c*;c* akhdef (Program 4.12) def polan()= O(); BB; H() akhdef polan();BB;polan();BB;polan()

  13. Prosedur dengan Parameter (1) • def p() = c* akhdef p(); p(); p() (Program 4.13) • Arti dari Program 4.13 adalah tercetaknya tiga *. • Tetapi dengan nama yang sama dapat didefinisikan p() sbb: def p() = BB;c*;c*;c* akhdef p();p();p() (Program 4.14) di mana arti dari Program 4.14 adalah mencetak sembilan *.

  14. Prosedur dengan Parameter (1) • Namun p() dalam Program 4.13 dan 4.14 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() akhdef def satu() = c* akhdef def dua() = BB akhdef def tiga() = BB; c*;c*;c* akhdef r3(satu); r3(dua); r3(tiga) (Program 4.15)

  15. Prosedur dengan Parameter (2) • Dalam Program 4.13: • urutan instruksi p();p();p() adalah batang tubuh dari prosedur r3. • Setiap prosedur r3(satu), r3(dua); r3(tiga) meminta eksekusi dari p();p();p(). • Arti p() itu sendiri tergantung pada parameter yang disuplai. • Sebagai contoh: instruksi eksekusi hasil r3(satu) satu(), satu(), satu() *** r3(dua) dua(), dua(), dua() r3(tiga) tiga(),tiga(),tiga() *** *** ***

  16. Latihan Soal • Definisikan prosedur x, y, dan z sehingga urutan instruksi BB; r3(x); BB; r3(y);BB; r3(z) mencetak pola di bawah ini * * * ** ** ** *** *** *** • Definisikan prosedur r4 sehingga bila diberikan definisi x, y, dan z dari soal 1, urutan instruksi BB; r4(x); BB; r4(y);BB; r4(z) akan mencetak pola * * * * ** ** ** ** *** *** *** *** • Kalau r3(satu) seperti yang didefinisikan di atas yaitu mencetak satu *. Bila diberikan definisi def A() = r3(satu); r3(satu); r3(satu); r3(satu) akhdef Berapa * yang dicetak?

  17. Tambahan Instruksi • Instruksi dengan satu argumen karakter: • cc(‘ ‘): print karakter. Akan mencetak karakter yang diberikan di dalam tanda kurung. • Contoh: cc(‘*’)  * cc(‘ ‘)  satu space cc(‘+’)  + def tiga(c) = cc(c); cc(c); cc(c) akhdef • Maka tiga (‘9’) akan mencetak 999 sebab parameter c disubstitusi menjadi 9 ke dalam batang tubuh dari prosedur tiga menjadi urutan instruksi: cc(‘9’); cc(‘9’); cc(‘9’)

  18. 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 +.

  19. Nilai Prosedur yang Mengambil Argumen (1) • def kedua(x) = x(‘*’); x(‘+’) enddef • Bila diberikan definisi satu() dalam Program 4.3, maka kedua(satu) tidak akan masuk akal sebab satu(‘*’) dan satu(‘+’) tidak masuk akal. • Tetapi kedua(cc) masuk akal dan akan mencetak * dan +. • Begitu juga dengan kedua(segiempat) masuk akal dan akan mencetak segiempat * dan +.

  20. Nilai Prosedur yang Mengambil Argumen (2) • Jadi dengan melihat pada definisi prosedur kedua, terlihat bahwa parameter prosedur ini adalah suatu prosedur. • Prosedur yang disuplai haruslah prosedur yang menerima karakter sebagai argumennya. • Bila diberikan kedua(r3) di mana r3 telah didefinisikan, maka tidak masuk akal karena meskipun r3 menerima suatu argumen, r3 membutuhkan suatu prosedur dan bukan suatu nilai karakter sebagai argumennya.

  21. Nilai Prosedur yang Mengambil Argumen (3) • Diberikan definisi def quote(c) = BB; cc(‘’’) cc(c); cc(‘’’) akhdef def x() = c* akhdef • Prosedur quote adalah suatu prosedur yang membutuhkan argumen karakter yang dipakai pada urutan instruksi ketiga yaitu cc(c) • c bukan nama prosedur.

  22. Nilai Prosedur yang Mengambil Argumen (4) • Mana yang masuk akal? • quote(‘x’); masuk akal karena ‘x’ adalah nilai bukan prosedur. • quote(‘*’); idem • quote(‘c’); idem • quote(c); tidak masuk akal karena c bukan nilai dan tidak didefinisikan. • quote(x); tidak masuk akal karena x adalah prosedur

  23. Prosedur Berparameter Banyak • def sandwich(selei,roti)=roti();selei();roti() akhdef • Prosedur membutuhkan dua nilai argumen yang masing-masing adalah suatu prosedur. • Bila diberikan definisi sbb: def pO() = cc(‘O’) akhdef def pX() = cc(‘X’) akhdef maka: sandwich(pX,pO) mencetak OXO sandwich(pO,pX) mencetak XOX sandwich(pO,pO) mencetak OOO

  24. Prosedur Berparameter Banyak (Latihan) • Diberikan definisi prosedur sandwich (idem) dan prosedur bigmac: def bigmac(f1, f2, bread) = bread(); f1(); bread(); f2(); bread() akhdef • Cari arti dari program di bawah ini: def a() = cc(‘a’) akhdef def b() = cc(‘b’) akhdef def c() = cc(‘c’) akhdef def satu() = sandwich(a,b) akhdef def dua() = bigmac(c,a,b) akhdef sandwich(satu, dua) (Program 4.16)

  25. Latihan • Buat programnya dengan sandwich (tengah, luar) * ** I *** * ** II *** * ** I ***

More Related