• Tidak ada hasil yang ditemukan

program sebagai logika instruksi1

N/A
N/A
Protected

Academic year: 2018

Membagikan "program sebagai logika instruksi1"

Copied!
30
0
0

Teks penuh

(1)

TOPIK 4

TOPIK 4

PROGRAM SEBAGAI

PROGRAM SEBAGAI

(2)

Instruksi Dasar (1)

Instruksi Dasar (1)

Tiga jenis instruksi di bawah ini akan

Tiga jenis instruksi di bawah ini akan

dipakai untuk merencanakan

dipakai untuk merencanakan

program kita:

program kita:

p*

p*

mencetak satu * dan membuat

mencetak satu * dan membuat

kursor maju satu langkah.

kursor maju satu langkah.

pb

pb

mencetak satu space kosong dan

mencetak satu space kosong dan

maju satu langkah.

maju satu langkah.

(3)

Instruksi Dasar (2)

Program 2; Program 2; Program 2 (

(4)

Prosedur sebagai Instruksi

Prosedur sebagai Instruksi

yang Ditemukan (1)

yang Ditemukan (1)

Kesulitan dalam mengingat urutan sekumpulan

Kesulitan dalam mengingat urutan sekumpulan

instruksi menghasilkan pemikiran untuk

instruksi menghasilkan pemikiran untuk

memberi nama (label) kepada kumpulan

memberi nama (label) kepada kumpulan

instruksi tersebut. Cara seperti ini disebut

instruksi tersebut. Cara seperti ini disebut

membuat

membuat

prosedur

prosedur

. Dengan prosedur tidak

. Dengan prosedur tidak

perlu lagi menyebutkan sekuens dari kumpulan

perlu lagi menyebutkan sekuens dari kumpulan

instruksi tersebut tetapi cukup dengan

instruksi tersebut tetapi cukup dengan

menyebutkan nama (label) prosedurnya saja.

menyebutkan nama (label) prosedurnya saja.

Prosedur adalah suatu program yang digunakan

Prosedur adalah suatu program yang digunakan

oleh program lain sama seperti suatu instruksi.

(5)

Prosedur sebagai Instruksi

Prosedur sebagai Instruksi

yang Ditemukan (2)

yang Ditemukan (2)

Didefinisikan

Didefinisikan

Program 4

Program 4

: NL;p*;pb;pb;pb;p*

: NL;p*;pb;pb;pb;p*

Program 5

Program 5

: NL; p*;p*;p*;p*;p*

: NL; p*;p*;p*;p*;p*

Bagaimana cara membuat bentuk di bawah

Bagaimana cara membuat bentuk di bawah

ini?

ini?

*****

*****

* *

* *

* *

* *

* *

* *

* *

* *

*****

*****

* *

* *

* *

* *

*****

(6)

Prosedur sebagai Instruksi

Prosedur sebagai Instruksi

yang Ditemukan (3)

yang Ditemukan (3)

Jawab:

Jawab:

Program 6

Program 6

:

:

Program 5; Program 4; Program 4;

Program 5; Program 4; Program 4;

Program 4; Program 5

Program 4; Program 5

Program 7

Program 7

:

:

Program 4; Program 4; Program 5;

Program 4; Program 4; Program 5;

(7)

Prosedur sebagai Instruksi

Prosedur sebagai Instruksi

yang Ditemukan (Latihan 1)

yang Ditemukan (Latihan 1)

Buatlah program untuk mencetak

Buatlah program untuk mencetak

huruf HELLO dalam posisi vertikal.

huruf HELLO dalam posisi vertikal.

(8)

Notasi Definisi dan

Notasi Definisi dan

Pemanggilan Prosedur (1)

Pemanggilan Prosedur (1)

Suatu prosedur akan selalu dimulai dengan

Suatu prosedur akan selalu dimulai dengan

kata “def” dan berakhir dengan enddef.

kata “def” dan berakhir dengan enddef.

Contoh:

Contoh:

def tiga*() = NL;p*;p*;p* enddef

def tiga*() = NL;p*;p*;p* enddef

Di sini nama prosedur adalah tiga*.

Di sini nama prosedur adalah tiga*.

Arti

Arti

prosedur diberikan oleh NL;p*;p*;p*. Tanda

prosedur diberikan oleh NL;p*;p*;p*. Tanda

() menunjukkan bahwa bilamana prosedur

() menunjukkan bahwa bilamana prosedur

ini dipanggil, tak ada parameter yang

ini dipanggil, tak ada parameter yang

dibutuhkan untuk mengeksekusinya.

(9)

Notasi Definisi dan

Notasi Definisi dan

Pemanggilan Prosedur (2)

Pemanggilan Prosedur (2)

Contoh

Contoh

untuk Program 3. dapat ditulis

untuk Program 3. dapat ditulis

tiga*();tiga*();tiga*() (

tiga*();tiga*();tiga*() (

Program 8

Program 8

)

)

def H() = t1();t1();t2();t1();t1() enddef

def H() = t1();t1();t2();t1();t1() enddef

def O() = t2();t1();t1();t1();t2() enddef;

def O() = t2();t1();t1();t1();t2() enddef;

def t1() = NL;p*;pb;pb;pb;p* enddef

def t1() = NL;p*;pb;pb;pb;p* enddef

(

(

Program

Program

9

9

)

)

def t2() = NL;p*;p*;p*;p*;p* enddef

def t2() = NL;p*;p*;p*;p*;p* enddef

O(); NL; H() akan menghasilkan huruf O di atas

O(); NL; H() akan menghasilkan huruf O di atas

H.

(10)

Definisi dalam Definisi

Definisi dalam Definisi

(1)

(1)

Suatu prosedur dapat berisi definisi

Suatu prosedur dapat berisi definisi

dari suatu prosedur lain.

dari suatu prosedur lain.

Contoh: untuk mencetak pola OH tiga

Contoh: untuk mencetak pola OH tiga

kali dengan blank memisahkan tiap

kali dengan blank memisahkan tiap

pola

pola

Program dapat dibuat dengan:

Program dapat dibuat dengan:

Program 9;NL;Program 9;NL;Program 9

Program 9;NL;Program 9;NL;Program 9

(

(11)

Definisi dalam Definisi

Definisi dalam Definisi

(2)

(2)

 Tapi Program 10 belum merupakan suatu program Tapi Program 10 belum merupakan suatu program yang lengkap karena Program 9 belum

yang lengkap karena Program 9 belum didefinisikan.

def H() = t1();t1();t2();t1() enddef def H() = t1();t1();t2();t1() enddef def O() = t2();t1();t1();t2() enddef; def O() = t2();t1();t1();t2() enddef;

def t1() = NL;p*;pb;pb;pb; p* enddef def t1() = NL;p*;pb;pb;pb; p* enddef

def t2() = NL;p*;p*;p*;p*;p* enddef def t2() = NL;p*;p*;p*;p*;p* enddef

(12)

Definisi dalam Definisi

Definisi dalam Definisi

(2)

(2)

Cara lain:

Cara lain:

def H() = t1();t1();t2();t1() enddef

def H() = t1();t1();t2();t1() enddef

def O() = t2();t1();t1();t2() enddef

def O() = t2();t1();t1();t2() enddef

def t1() = NL;p*;pb;pb;pb;p* enddef

def t1() = NL;p*;pb;pb;pb;p* enddef

def t2() = NL;p*;p*;p*;p*;p*

def t2() = NL;p*;p*;p*;p*;p*

enddef

enddef

(

(

Program 12

Program 12

)

)

def polan()= O(); NL; H() enddef

def polan()= O(); NL; H() enddef

(13)

Prosedur dengan Parameter

Prosedur dengan Parameter

(1)

(1)

def p() = p* enddef

def p() = p* enddef

p(); p(); p()

p(); p(); p()

(

(

Program 13

Program 13

)

)

Arti dari Program 13 adalah tercetaknya tiga *.

Arti dari Program 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* enddef

def p() = NL;p*;p*;p* enddef

p();p();p()

p();p();p()

(

(

Program 14

Program 14

)

)

di mana arti dari Program 14 adalah mencetak

di mana arti dari Program 14 adalah mencetak

(14)

Prosedur dengan Parameter

Prosedur dengan Parameter

(1)

(1)

Namun p() dalam Program 13 dan 14 selalu

Namun p() dalam Program 13 dan 14 selalu

mempunyai arti yang tetap. Sekali

mempunyai arti yang tetap. Sekali

didefinisikan akan selalu seperti itu. Ini

didefinisikan akan selalu seperti itu. Ini

disebabkan p() tidak mempunyai parameter.

disebabkan p() tidak mempunyai parameter.

Pemberian parameter memungkinkan

Pemberian parameter memungkinkan

mengubah arti p() setiap saat.

mengubah arti p() setiap saat.

def r3(p) = p();p();p() enddef

def r3(p) = p();p();p() enddef

def satu() = p* enddef

def satu() = p* enddef

def dua() = NL enddef

def dua() = NL enddef

def tiga() = NL; p*;p*;p* enddef

def tiga() = NL; p*;p*;p* enddef

(15)

Prosedur dengan Parameter

Prosedur dengan Parameter

(2)

(2)

 Dalam Program 3, urutan instruksi p();p();p() adalah Dalam Program 3, urutan instruksi p();p();p() adalah

batang tubuh dari prosedur r3. Setiap prosedur batang tubuh dari prosedur r3. Setiap prosedur

r3(satu), r3(dua); r3(tiga) meminta eksekusi dari r3(satu), r3(dua); r3(tiga) meminta eksekusi dari

p();p();p(). Arti p() itu sendiri tergantung pada p();p();p(). Arti p() itu sendiri tergantung pada

parameter yang disuplai. parameter yang disuplai.

 Sebagai contoh:Sebagai contoh:

(16)

Latihan Soal (2)

Latihan Soal (2)

 Definisikan prosedur x, y, dan z sehingga urutan instruksi 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, Definisikan prosedur r4 sehingga bila diberikan definisi x, y,

dan z, urutan instruksi BB; r4(x); BB; r4(y); BB; r4(z) akan dan z, urutan instruksi BB; r4(x); BB; r4(y); BB; r4(z) akan

mencetak pola

 Kalau r3(satu) seperti yang didefinisikan di atas yaitu Kalau r3(satu) seperti yang didefinisikan di atas yaitu

mencetak tiga *. Bila diberikan definisi mencetak tiga *. Bila diberikan definisi

def A() = r3(satu); r3(satu); r3(satu) enddefdef A() = r3(satu); r3(satu); r3(satu) enddef Berapa * yang dicetak?

(17)

Tambahan Instruksi

Tambahan Instruksi

Instruksi dengan satu argumen karakter: pc(‘ ‘):

Instruksi dengan satu argumen karakter: pc(‘ ‘):

print karakter. Akan mencetak karakter yang

print karakter. Akan mencetak karakter yang

diberikan di dalam tanda kurung.

diberikan di dalam tanda kurung.

Contoh:

Contoh:

def tiga(c) = pc(c); pc(c); pc(c) enddef

def tiga(c) = pc(c); pc(c); pc(c) enddef

Maka tiga (‘9’) akan mencetak 999 sebab

Maka tiga (‘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’)

(18)

Tambahan Instruksi

Tambahan Instruksi

(Latihan

(Latihan

3)

3)

Tulis definisi dari prosedur segiempat

Tulis definisi dari prosedur segiempat

agar supaya setiap pemanggilan

agar supaya setiap pemanggilan

segiempat(‘*’) akan mencetak suatu

segiempat(‘*’) akan mencetak suatu

segiempat berukuran 3x3 *, suatu

segiempat berukuran 3x3 *, suatu

segiempat(‘+’) akan menghasilkan

segiempat(‘+’) akan menghasilkan

(19)

Nilai Prosedur yang

Nilai Prosedur yang

Mengambil Argumen

Mengambil Argumen

(1)

(1)

def kedua(x) = x(‘*’); x(‘+’) enddef

def kedua(x) = x(‘*’); x(‘+’) enddef

Bila diberikan definisi satu() dalam Program

Bila diberikan definisi satu() dalam Program

3, maka kedua(satu) tidak akan masuk akal

3, maka kedua(satu) tidak akan masuk akal

sebab satu(‘*’) dan satu(‘+’) tidak masuk

sebab satu(‘*’) dan satu(‘+’) tidak masuk

akal.

akal.

Tetapi kedua(pc) masuk akal dan akan

Tetapi kedua(pc) masuk akal dan akan

mencetak * dan +.

mencetak * dan +.

Begitu juga dengan kedua(segiempat)

Begitu juga dengan kedua(segiempat)

masuk akal dan akan mencetak segiempat *

masuk akal dan akan mencetak segiempat *

dan +.

(20)

Nilai Prosedur yang

Nilai Prosedur yang

Mengambil Argumen

Mengambil Argumen

(2)

(2)

Jadi dengan melihat pada definisi prosedur

Jadi dengan melihat pada definisi prosedur

kedua, terlihat bahwa parameter prosedur

kedua, terlihat bahwa parameter prosedur

ini adalah suatu prosedur. Prosedur yang

ini adalah suatu prosedur. Prosedur yang

disuplai haruslah prosedur yang menerima

disuplai haruslah prosedur yang menerima

karakter sebagai argumennya. Bila

karakter sebagai argumennya. Bila

diberikan kedua(r3) di mana r3 telah

diberikan kedua(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

membutuhkan suatu prosedur dan bukan

suatu nilai karakter sebagai argumennya.

(21)

Nilai Prosedur yang

Nilai Prosedur yang

Mengambil Argumen

Mengambil Argumen

(3)

(3)

Diberikan definisi

Diberikan definisi

def quote(c) = NL; pc(‘’’) pc(c); pc(‘’’)

def quote(c) = NL; pc(‘’’) pc(c); pc(‘’’)

enddef

enddef

def x() = p* enddef

def x() = p* enddef

Prosedur quote adalah suatu

Prosedur quote adalah suatu

prosedur yang membutuhkan

prosedur yang membutuhkan

argumen karakter yang dipakai pada

argumen karakter yang dipakai pada

(22)

Nilai Prosedur yang

Nilai Prosedur yang

Mengambil Argumen

Mengambil Argumen

(4)

(4)

Mana yang masuk akal?

Mana yang masuk akal?

quote(‘x’); masuk akal karena ‘x’ adalah

quote(‘x’); masuk akal karena ‘x’ adalah

nilai bukan prosedur.

nilai bukan prosedur.

quote(‘*’); idem

quote(‘*’); idem

quote(‘c’); idem

quote(‘c’); idem

quote(c); tidak masuk akal karena c

quote(c); tidak masuk akal karena c

bukan nilai dan tidak didefinisikan.

bukan nilai dan tidak didefinisikan.

quote(x); tidak masuk akal karena x

quote(x); tidak masuk akal karena x

(23)

Prosedur Berparameter

Prosedur Berparameter

Banyak

Banyak

def sandwich(selei,roti)=roti();selei();roti()

def sandwich(selei,roti)=roti();selei();roti()

enddef

enddef

Prosedur membutuhkan dua nilai argumen

Prosedur membutuhkan dua nilai argumen

yang masing-masing adalah suatu prosedur.

yang masing-masing adalah suatu prosedur.

Bila diberikan definisi sbb:

Bila diberikan definisi sbb:

def pO()=pc(‘O’) enddef

def pO()=pc(‘O’) enddef

def pX() = pc(‘X’) enddef

def pX() = pc(‘X’) enddef

maka:

maka:

(24)

Prosedur Berparameter Banyak

Prosedur Berparameter Banyak

(Latihan 4)

(Latihan 4)

 Diberikan definisi Diberikan definisi

prosedur sandwich:

 Cari arti dari program di bawah ini:Cari arti dari program di bawah ini:

def a() = pc(‘a’) enddef

(25)

Latihan (5)

Latihan (5)

Buat programnya dengan

Buat programnya dengan

sandwich (tengah, luar)

sandwich (tengah, luar)

*

*

** I

** I

***

***

*

*

** II

** II

***

***

*

*

** I

** I

(26)

procedure call(x:integer);

procedure call(x:integer);

begin

begin

if x<>0 then begin

if x<>0 then begin

write(‘*’);

write(‘*’);

x := x – 1;

x := x – 1;

call(x);

call(x);

x := x + 1;

x := x + 1;

end;

end;

end;

end;

(27)

procedure lagi(a: integer; b: integer); procedure lagi(a: integer; b: integer); var t: integer;

var t: integer; begin

begin

t := (a+b) div 2; t := (a+b) div 2;

if (a <= b) then begin if (a <= b) then begin write(X[t]);

write(X[t]); lagi (a,t-1); lagi (a,t-1); lagi (t+1,b); lagi (t+1,b); end

end end; end;

Dengan pemanggilan: lagi(1,10);, maka hasilnya Dengan pemanggilan: lagi(1,10);, maka hasilnya

(28)

function f(a,b,c)

function f(a,b,c)

if (a = TRUE) AND (b = TRUE)

if (a = TRUE) AND (b = TRUE)

then print '1'

then print '1'

else if (b = FALSE)

else if (b = FALSE)

then print '2'

then print '2'

else if (c = TRUE)

else if (c = TRUE)

then print '3'

then print '3'

else if (a = TRUE) and (b = FALSE)

else if (a = TRUE) and (b = FALSE)

then print '4'

then print '4'

else print '5'

(29)

if (a and not (not c and not b)) or not ((c and b) or not

if (a and not (not c and not b)) or not ((c and b) or not

a)

a)

then writeln('merah')

then writeln('merah')

else writeln('putih');

else writeln('putih');

Agar algoritma itu selalu menuliskan 'merah' maka

Agar algoritma itu selalu menuliskan 'merah' maka

kondisi yang tepat adalah:

kondisi yang tepat adalah:

 a dan c keduanya harus true sementara b tidak a dan c keduanya harus true sementara b tidak

penting

penting

 b berharga true yang lain tidak penting b berharga true yang lain tidak penting

 a berharga true yang lain tidak penting a berharga true yang lain tidak penting

 c berharga true yang lain tidak penting c berharga true yang lain tidak penting

(30)

x = 0

x = 0

function f()

function f()

x = x + 1

x = x + 1

function g()

function g()

f(); f()

f(); f()

function h()

function h()

f(); g(); f()

f(); g(); f()

begin

begin

f(); write(x)

f(); write(x)

g(); write(x)

g(); write(x)

h(); write(x)

Referensi

Dokumen terkait

Hubungan yang tidak bermakna antara status pekerjaan ibu dengan pemberian ASI eksklusif kategori dua dan kategori tiga dalam penelitian ini dikarenakan walaupun

Penanganan run off dengan secepat cepatnya cenderung hanya menyelesaikan masalah pada sub DAS tersebut dalam jangka pendek dan akan memberikan resiko banjir

(1) Warga Negara Asing sebagaimana dimaksud dalam Pasal 11 ayat (1) yang berkunjung ke Indonesia untuk jangka waktu paling lama 3 (tiga) bulan dan tidak bermaksud untuk

Buang ir Ke&gt;il.. Buang air ke&gt;il harus se&gt;epatnya dilakukan sendiri&#34; $ormalnya #&#34;3)) &gt;&gt; dalam &amp;4 jam atau 3 ? 2 &lt; buang air ke&gt;il

Setelah mengikuti serangkaian kegiatan pembelajaran dengan menggunakan model discovery learning dan metode ceramah, diskusi, serta tanya jawab peserta didik mampu memahami

Unit PT PLN (PERSERO) yang akan membangun SCADA harus mengacu pada SPLN S3.001: 2008 Peralatan SCADA Sistem Tenaga Listrik. Jumlah yang dijelaskan pada tabel 6 dan tabel 7

Memahami konsep yang berkaitan dengan aturan pangkat, akar dan logaritma, fungsi aljabar sederhana, persamaan dan pertidaksamaan kuadrat, sistem persamaan linier, program

Dengan demikian flutikason furoat intranasal sebagai kortikosteroid topikal baik terapi tunggal maupun kombinasi dengan antihistamin dapat menekan jumlah eosinofil