PROGRAM SEBAGAI LOGIKA INSTRUKSI

Slides:



Advertisements
Presentasi serupa
7. PENJUMLAHAN DUA BUAH MATRIKS
Advertisements

All sections to appear here
MATERI 8 CHOICE / PILIHAN.
Struktur Dasar Algoritma
MATERI 9 FUNGSI REKURSIF.
RECORD.
LOGIKA DAN ALGORITMA - PERTEMUAN 8 - REKURSI.
Algoritma Dasar Dalam membuat suatu program komputer, menyusun algoritma adalah langkah pertama yang harus dilakukan Dalam membuat algoritma dapat digunakan.
Materi 2 Sequence & Flowchart
PENCARIAN (SEARCHING)
Selamat datang Di Prosedur dan Fungsi. Sub Program “Adl Program kecil yg dpt di panggil berulang-ulang sesuai dg kebutuhan”  Manfaatnya: 1.Memudahkan.
Procedure & Function Sub Program.
*Operator - ARITMATIKA
P R O C E D U R EP R O C E D U R EP R O C E D U R EP R O C E D U R E P R O C E D U R EP R O C E D U R EP R O C E D U R EP R O C E D U R E.
Prak.Dasar-Dasar Pemrograman
Materi 5 Nama dan Environment Dasar-Dasar Pemrograman.
MATERI 3 PROSEDUR.
Algoritma (Struktur, Tipe Data, Input/Output)
Notasi Algoritma.
REPETITION / PERULANGAN LOOP/Iteration
PENGULANGAN INSTRUKSI
PENGULANGAN INSTRUKSI
SUBRUTIN By Adnan Purwanto, S.Kom.
PERCABANGAN By Adnan Purwanto, S.Kom.
Prosedur dan Fungsi Triana Elizabeth, S.Kom.
Parameter & Choice Dasar-Dasar Pemrograman Marsel Willem Aipassa, S. Kom.
Procedure , Function dan Parameter
SEKUENSIAL Christine Dewi S.Kom, M.Cs,. bestfriends406.blogspot.com
ALGORITMA PEMROGRAMAN 2A
Notasi Algoritma & Tipe Data
PROGRAM SEBAGAI LOGIKA INSTRUKSI
IF … THEN …, IF … THEN … ELSE … CASE … OF …
Struktur Program Pascal
Dasar-Dasar Pemrograman
SUBALGORITMA.
Algoritma dan Pemrograman 2A
PROGRAM SEBAGAI LOGIKA INSTRUKSI
Struktur Program Minimal
Pengantar Pemrograman
SUBRUTIN.
Pemrograman Repetisi Ramos Somya, S.Kom., M.Cs..
IT-132 Dasar-Dasar Pemrograman
Array 1.
Algoritma dan Pemrograman
Menuliskan Algoritma Dengan Pseudocode
Dasar-Dasar Pemrograman
Sequence, Procedure & Function
Pemrograman (IN124) Ramos Somya, S.Kom., M.Cs.
MATERI 3 Sub Program PRAKTIKUM DDP.
Metode Pengujian Perangkat Lunak (White Box)
Tipe data & Variabel 1. Aturan Leksikal. 2. Operator. 3. Statement
Dasar-Dasar Pemrograman
TEL 2112 Dasar Komputer & Pemograman Prosedur
Algoritma dan Pemrograman (Pertemuan 04)
Tipe data & Variabel 1. Aturan Leksikal. 2. Operator. 3. Statement
*Operator - ARITMATIKA
Algoritma Pemrograman
Percabangan dalam VB6: GoTo, GoSub, Sub, Function
Rekursif By Serdiwansyah N. A..
IT-132 Dasar-Dasar Pemrograman
Pemrogram 1 Agus Darmawan, S.kom.
Dasar-Dasar Pemrograman
Fungsi.
Pemrograman (IN124) Ramos Somya, S.Kom., M.Cs.
PENGULANGAN INSTRUKSI
Pemrograman Repetisi pada Pascal Ramos Somya, S.Kom., M.Cs.
Kuliah 1-2 (Algoritma) Pseudocode Prosedure dan Fungsi
PROSEDUR & FUNGSI.
Pemrograman (IN124) Ramos Somya, S.Kom., M.Cs.
Notasi Algoritmik, Tipe Dasar, Nilai, Ekspresi dan Input/Output
Transcript presentasi:

PROGRAM SEBAGAI LOGIKA INSTRUKSI TOPIK 4 PROGRAM SEBAGAI LOGIKA INSTRUKSI

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

Instruksi Dasar (2) Contoh NL; p*;p*;p* NL; p*;p*;p* (Program 1) Disederhanakan: NL; p*;p*;p* (Program 2) Program 2; Program 2; Program 2 (Program 3)

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.

Prosedur sebagai Instruksi yang Ditemukan (2) Didefinisikan Program 4: NL;p*;pb;pb;pb;p* Program 5: NL; p*;p*;p*;p*;p* Bagaimana cara membuat bentuk di bawah ini? ***** * * * * * * * * *****

Prosedur sebagai Instruksi yang Ditemukan (3) Jawab: Program 6: Program 5; Program 4; Program 4; Program 4; Program 5 Program 7: Program 4; Program 4; Program 5; Program 4; Program 4

Prosedur sebagai Instruksi yang Ditemukan (Latihan 1) 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 tiga*() = NL;p*;p*;p* enddef Di sini nama prosedur adalah tiga*. 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. dapat ditulis tiga*();tiga*();tiga*() (Program 8) def H() = t1();t1();t2();t1();t1() enddef def O() = t2();t1();t1();t1();t2() enddef; def t1() = NL;p*;pb;pb;pb;p* enddef (Program 9) def t2() = NL;p*;p*;p*;p*;p* enddef O(); 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 9;NL;Program 9;NL;Program 9 (Program 10)

Definisi dalam Definisi (2) Tapi Program 10 belum merupakan suatu program yang lengkap karena Program 9 belum didefinisikan. Program 11: def polan() = def H() = t1();t1();t2();t1() enddef def O() = t2();t1();t1();t2() enddef; def t1() = NL;p*;pb;pb;pb; p* enddef def t2() = NL;p*;p*;p*;p*;p* enddef O(); NL; H() enddef polan();NL;polan();NL;polan()

Definisi dalam Definisi (2) Cara lain: def H() = t1();t1();t2();t1() enddef def O() = t2();t1();t1();t2() enddef def t1() = NL;p*;pb;pb;pb;p* enddef def t2() = NL;p*;p*;p*;p*;p* enddef (Program 12) def polan()= O(); NL; H() enddef polan();NL;polan();NL;polan()

Prosedur dengan Parameter (1) def p() = p* enddef p(); p(); p() (Program 13) Arti dari Program 13 adalah tercetaknya tiga *. Tetapi dengan nama yang sama dapat didefinisikan p() sbb: def p() = NL;p*;p*;p* enddef p();p();p() (Program 14) di mana arti dari Program 14 adalah mencetak sembilan *.

Prosedur dengan Parameter (1) Namun p() dalam Program 13 dan 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() enddef def satu() = p* enddef def dua() = NL enddef def tiga() = NL; p*;p*;p* enddef r3(satu); r3(dua); r3(tiga) (Program 15)

Prosedur dengan Parameter (2) Dalam Program 3, 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() *** *** ***

Latihan Soal (2) 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, urutan instruksi BB; r4(x); BB; r4(y); BB; r4(z) akan mencetak pola * * * * ** ** ** ** *** *** *** *** Kalau r3(satu) seperti yang didefinisikan di atas yaitu mencetak tiga *. Bila diberikan definisi def A() = r3(satu); r3(satu); r3(satu) enddef Berapa * yang dicetak?

Tambahan Instruksi Instruksi dengan satu argumen karakter: pc(‘ ‘): print karakter. Akan mencetak karakter yang diberikan di dalam tanda kurung. Contoh: pc(‘*’)  * pc(‘ ‘)  satu space pc(‘+’)  + def tiga(c) = pc(c); pc(c); pc(c) enddef Maka tiga (‘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 (Latihan 3) Tulis definisi dari prosedur segiempat agar supaya setiap pemanggilan segiempat(‘*’) akan mencetak suatu segiempat berukuran 3x3 *, suatu segiempat(‘+’) akan menghasilkan segiempat 3x3 +.

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

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.

Nilai Prosedur yang Mengambil Argumen (3) Diberikan definisi def quote(c) = NL; pc(‘’’) pc(c); pc(‘’’) enddef def x() = p* enddef Prosedur quote adalah suatu prosedur yang membutuhkan argumen karakter yang dipakai pada urutan instruksi ketiga yaitu pc(c) c bukan nama prosedur.

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

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’) enddef def pX() = pc(‘X’) enddef maka: sandwich(pX,pO) mencetak OXO sandwich(pO,pX) mencetak XOX sandwich(pO,pO) mencetak OOO

Prosedur Berparameter Banyak (Latihan 4) Diberikan definisi prosedur sandwich: def sandwich(selei,roti)=roti();selei();roti() enddef 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’) enddef def b() = pc(‘b’) enddef def c() = pc(‘c’) enddef def satu() = sandwich(a,b) enddef def dua() = bigmac(c,a,b) enddef sandwich(satu, dua) (Program 16)

Latihan (5) Buat programnya dengan sandwich (tengah, luar) * ** I *** ** II

procedure call(x:integer); begin if x<>0 then begin write(‘*’); x := x – 1; call(x); x := x + 1; end; Apakah output dari pemanggilan call(3) ?

procedure lagi(a: integer; b: integer); var t: integer; begin t := (a+b) div 2; if (a <= b) then begin write(X[t]); lagi (a,t-1); lagi (t+1,b); end end; Dengan pemanggilan: lagi(1,10);, maka hasilnya adalah?

function f(a,b,c) if (a = TRUE) AND (b = TRUE) then print '1' else if (b = FALSE) then print '2' else if (c = TRUE) then print '3' else if (a = TRUE) and (b = FALSE) then print '4' else print '5' What will be printed by f(FALSE,TRUE,TRUE)?

if (a and not (not c and not b)) or not ((c and b) or not a) then writeln('merah') else writeln('putih'); Agar algoritma itu selalu menuliskan 'merah' maka kondisi yang tepat adalah: a dan c keduanya harus true sementara b tidak penting b berharga true yang lain tidak penting a berharga true yang lain tidak penting c berharga true yang lain tidak penting b berharga false yang lain tidak penting

x = 0 function f() x = x + 1 function g() f(); f() function h() f(); g(); f() begin f(); write(x) g(); write(x) h(); write(x) What will be printed by the pseudocode above?