Pemrograman Terstruktur (Part 1)

Preview:

Citation preview

create by nova elins03 1

PEMROGRAMAN TERSTRUKTUR

Nova El Maidah, S.Si.

create by nova elins03 2

SILABUS:

1. FLOWCHART2. SINTAKSIS DAN SEMANTIK

PASCAL/DELPHI3. STRUKTUR KENDALI SELEKSI4. KENDALI ITERASI5. PROCEDURE DAN FUNCTION6. REKURSI

create by nova elins03 3

SUMBER:

1. Gottfried, Baron S.1986. Programming with Pacsal. Singapore: McGraw-Hill.

2. Hasbi, M. 2003. Struktur Data dan Algoritma dalam Pemrograman Turbo Pascal. Yogyakarta: Gava Media

3. Suyanto, Yohanes. 2005. Pemrograman Terstruktur dengan Delphi. Yogyakarta: UGM Press.

create by nova elins03 4

PEMROGRAMAN TERSTRUKTUR

FLOWCHART

create by nova elins03 5

FLOWCHART

Flowchart adalah presentasi visual dari aliran data dalam pemrosesan informasi, operasi dan sistem, dan urutan proses yang dikerjakan.

Flowchart adalah representasi secara diagram yang menggambarkan urutan operasi dalam penyelesaian suatu masalah.

create by nova elins03 6

FLOWCHART

Beberapa simbol standar, yang sering digunakan pada penggambaran floowchart pada program komputer

create by nova elins03 7

FLOWCHARTAwal atau akhir program

Operasi komputasi atau proses

Operasi input atau output

Kotak keputusan dan pencabangan

Konektor atau penghubung 2 bagian program

Garis aliran proses

create by nova elins03 8

FLOWCHART

Beberapa petunjuk penggambaran flowchart:1. Semua proses tertampung dalam gambar

dengan urutan yang logis.2. Flowchart harus jelas, rapi dan mudah

ditelusuri serta tidak boleh mengandung arti ganda.

3. Arah alur proses biasanya dari kiri ke kanan atau dari atas ke bawah.

create by nova elins03 9

FLOWCHART

4. Hanya boleh ada satu aliran keluar dari simbol proses.

5. Hanya boleh ada satu aliran masuk ke simbol kotak keputusan, tetapi untuk keluarnya boleh 2 atau 3 jalur.

atau

ya

tidak = 0

> 0< 0

create by nova elins03 10

FLOWCHART6. Hanya boleh ada satu jalur pada simbol terminal.

Dengan kata lain, satu jalur masuk saja atau satu jalur keluar saja.

7. Jika flowchart menjadi kompleks dan rumit, buatlah dalam subflowchart sehingga lebih mudah dipahami.

8. Pastikan setiap flowchart mempunyai terminal awal dan akhir.

create by nova elins03 11

FLOWCHARTKelebihan Flowchart:1. Komunikasi: flowchart dapat menjadi sarana

komunikasi bagi pihak-pihak yang terlibat dalam pengembangan program.

2. Analisis: flowchart dapat digunakan untuk analisis masalah.

3. Penulisan program: flowchart mambantu konsentrasi penulisan program karena alurnya sudah jelas.

create by nova elins03 12

FLOWCHART

4. Pelacakan kesalahan: flowchart membantu dalam proses pelacakan program.

5. Pemeliharan program: bagian program yang diubah dapat ditentukan dengan melihat flowchart sehingga lebih efisien waktu

create by nova elins03 13

FLOWCHARTKeterbatasan Flowchart:1. Logika rumit: kadang logika program menjadi

sedemikian kompleks sehingga penggunaan flowchart menjadi begitu rumit.

2. Modifikasi: jika flowchart perlu dimodifikasi maka harus dilakukan penggambaran ulang seutuhnya.

3. Reproduksi: karena flowchart berbentuk simbol-simbol dan tidak dapat langsung diketik, maka reproduksi dalam media lain menjadi masalah tersendiri.

create by nova elins03 14

FLOWCHART

Jumlah = 0

Jumlah =Jumlah+1

N = N + 1

mulai

N = 0

N = 50 ?tidak

yaCetak Jumlah

selesai

CONTOH: Penjumlahan 50 BilanganAsli Pertama

create by nova elins03 15

FLOWCHART

M = 1F = 1

F = F * M

M = M + 1

mulai

Baca N

N = M ?

Cetak F

selesai

tidak

ya

CONTOH:Mencari Faktorial dari Suatu Bilangan

create by nova elins03 16

PEMROGRAMAN TERSTRUKTUR

SINTAKSIS DAN SEMANTIK

create by nova elins03 17

SINTAKSIS

Bahasa pemrograman adalah himpunan aturan, simbol dan kata-kata khusus untuk membuat program. Aturannya terdiri atas sintaksis dan semantik.

Sintaksis merupakan himpunan aturan formal yang mendefinisikan bagaimana kombinasi huruf, angka dan simbol dapat digunakan dalam bahasa pemrograman.

create by nova elins03 18

SINTAKSIS

CONTOH DIAGRAM SINTAKSISunsignedinteger

unsignedintegersign

+

-

create by nova elins03 19

INDENTIFIER

INDENTIFIER (PENAMAAN ELEMEN PROGRAM)

PASCAL:

DELPHI:

huruf angka

huruf

huruf angka

huruf_

_

create by nova elins03 20

INDENTIFIERBerikut kata-kata yang tidak boleh digunakan

sebagai nama program karena sudah dikenali sebagai perintah dalam program PASCAL atau DELPHI:and case dispinterfacearray class divas const doasm constructor downtobegin destructor else

create by nova elins03 21

INDENTIFIER

end gotoexcept ifexport implementationfile infinalization inheritedfinally initializationfor inlinefuction interface

create by nova elins03 22

INDENTIFIER

is or repeatlabel out resourcestringlibrary packed setmod procedure shlnil program shrnot property stringobject raise thenof record threadvar

create by nova elins03 23

INDENTIFIER

to until withtry uses xortype varunit while

create by nova elins03 24

DATA DAN TIPE DATA

TIPE DATA ORDINAL:1. Integer(bilangan bulat)2. Boolean(logika)3. Char(karakter)

DATA DAN TIPE DATATabel Variasi Tipe Data Bilangan Integer

Tipe Data Minimum Maksimum FormatInteger -2147483648 2147483647 Signed 32-bitCardinal 0 4294967295 Unsigned 32-bitShortint -128 127 Signed 8-bitSmallint -32768 32767 Signed 16-bit

Longint -2147483648 2147483647 Signed 32-bitInt64 -263 263 – 1 Signed 64-bitByte 0 255 Unsigned 8-bitWord 0 65535 Unsigned 16-bitLongword 0 4294967295 Unsigned 32-bit

create by nova elins03 26

DATA DAN TIPE DATA

Varian tipe data logika adalah: boolean, bytebool, wordbool dan longbool.

Tipe data logika hanya mempunyai dua nilai yaitu: true(bernilai biner 1) dan false(bernilai biner 0).

create by nova elins03 27

DATA DAN TIPE DATA

Tipe data char terdiri atas ansichar dan widechar.

Tipe data char digunakan untuk mendefinisikan tipe data yang nilainya merupakan himpunan karakter yang dikenal komputer yaitu yang dinyatakan dalam kode ASCII.

DATA DAN TIPE DATATIPE DATA REAL

Tabel Variasi Tipe Data RealTipe Data Minimum Maksimum Digit Ukuran

(byte)Real48 2.9 x 10-39 1.7 x 1038 11-12 6Single 1.5 x 10-45 3.4 x 1038 7-8 4Double 5.0 x 10-324 1.7 x 10308 15-16 8Real 5.0 x 10-324 1.7 x 10308 15-16 8Extended 3.6 x 10-4951 1.1 x 104932 19-20 10Comp -263 + 1 263 – 1 19-20 8Currency -922337203685477.5808 922337203685477.5807 19-20 8

create by nova elins03 29

DATA DAN TIPE DATA

TIPE DATA REALTabel Variasi Tipe Data Real

Tipe Panjang Maksimum Kebutuhan Memori Keterangan

ShortString 255 karakter 2-256 byte Kompatibilitas dengan versi awal

AnsiString 231 karakter 4 byte – 2 GB 8 bit(ANSI) karakter, DBCS, ANSI, MBCS

LongString 231 karakter 4 byte – 2 GB Lebih disukai untuk banyak keperluan

WideString 230 karakter 4 byte – 2 GB Karakter uncode, aplikasi multiuser & multilanguage

30

EKSPRESI DAN OPERATORTabel Operator Aritmatika Biner

Operator Operasi Tipe Operan Tipe Hasil Contoh+ Penjumlahan Integer Integer X + Y

Real Real– Pengurangan Integer Integer Result – 1

Real Real* Perkalian Integer Integer P*Lebar

Real Real/ Pembagian Integer Integer X/2

Real Realdiv Pembagian

BulatInteger Integer W div 5

mod Sisa Hasil Bagi

Integer Integer B mod 7

create by nova elins03 31

EKSPRESI DAN OPERATORAturan yang digunakan dalam penentuan hasil

operator aritmatika:1. Nilai x/y bertipe Extended,tidak peduli dari x

dan y.2. Operator selain /, akan menghasilkan

Extended jika paling tidak ada satu operan bertipe real.

3. Hasil operasi bertipe Int64 jika operan bertipe bilangan bulat dan paling tidak ada satu operan bertipe Int64.

create by nova elins03 32

EKSPRESI DAN OPERATOR4. Hasil operasi bertipe Integer jika operan

bertipe bilangan bulat dan tidak ada satupun operan bertipe Int64.

5. Jika suatu operan merupakan data berupa data subrange dari tipe Integer, maka operan itu diperlakukan sebagai Integer.

6. Nilai x div y adalah sebesar x/y dibulatkan ke arah nol pada Integer terdekat.

create by nova elins03 33

EKSPRESI DAN OPERATOR7. Nilai x mod y adalah sisa hasil bagi jika x

dibagi y.8. Akan terjadi error jika nilai y bernilai nol

untuk ekspresi x/y, x div y, atau x mod y.

create by nova elins03 34

EKSPRESI DAN OPERATOROPERATOR BOOLEAN

Tabel Operator BooleanOperator Operasi Tipe

OperanTipe Hasil

Contoh

not Negasi Boolean Boolean not Cand Konjungsi Boolean Boolean D and Tor Disjungsi Boolean Boolean A or Bxor Disjungsi

ekslusifBoolean Boolean A xor B

create by nova elins03 35

EKSPRESI DAN OPERATORTabel Kebenaran Operasi Logika

A B A or B A and B A xor B not A not Bfalse false false false false true truefalse true true false true true falsetrue false true false true false truetrue true true true false false false

create by nova elins03 36

EKSPRESI DAN OPERATORBerikut urutan derajat tingkat operator:not* / div mod and+ - or< > <= >= = <>

create by nova elins03 37

EKSPRESI DAN OPERATOROPERATOR BITWISEMerupakan operator yang digunakan untuk operasi

operan integer secara bit-per-bit. not bitwise negasi and bitwise konjungsi or bitwise disjungsi xor bitwise disjungsi ekslusif shr bitwise geser kanan slr bitwise geser kiri

create by nova elins03 38

EKSPRESI DAN OPERATORAturan yang digunakan pada operasi bitwise:1. Hasil dari operasi not setipe dengan

operan.2. Jika operan untuk operasi and, or dan xor

kedua-duanya integer, hasilnya bertipe integer dengan kebutuhan memori terkecil dan memungkinkan untuk menyimpan nilai operan-operan.

create by nova elins03 39

EKSPRESI DAN OPERATOR3. Operasi x shl y dan x shr y, menggeser x ke

kiri atau ke kanan sejauh y bit, dengan y adalah bilangan cacah, nilainya sama dengan mengalikan atau membagikan x dengan 2y.

create by nova elins03 40

EKSPRESI DAN OPERATOROPERATOR RELASIONAL

Tabel Operator RelasionalOperator Operasi Tipe operan Tipe hasil Contoh

= kesamaan Simple, string boolean I = max<> ketaksamaan Simple, string Boolean X <> Y< Kurang dari Simple, string boolean A < B> Lebih dari Simple, string Boolean D > num

<= Kurang dari atau sama

Simple Boolean Count <= 10

>= Lebih dari atau sama

Simple Boolean I >= 1

create by nova elins03 41

EKSPRESI DAN OPERATORKONSTANTA adalah bilangan, teks, atau objek

lain yang nilainya tetap.Contoh deklarasi konstanta:constBintang = ‘*******’;Kosong = ‘ ’;Pi = 3.14159;Maksimum = 20;

create by nova elins03 42

EKSPRESI DAN OPERATORJika ingin menentukan tipe data pada

konstanta secara langsung pada deklarasi kostanta;

constBilanganDesimal : Double = 1.234;I : integer = 10;pesan : string = ‘contoh

deklerasi’;

create by nova elins03 43

EKSPRESI DAN OPERATORVARIABELContoh deklarasi variabel:vara,b : integer;r : real;hari : string;

create by nova elins03 44

EKSPRESI DAN OPERATORVariabel juga dapat diinisialisasikan pada

bagian deklerasi: varhari : string = ‘senin’,’selasa’;I : integer = 10;d : double = 3.141579;

create by nova elins03 45

STRUKTUR PROGRAMStruktur Program Pascal1. Header2. Block

a. DeclerationLabelsConstantsType definitionsVariableProcedure & Function

b. Statement

create by nova elins03 46

STRUKTUR PROGRAMCONTOHPROGRAM circle(input,output):VAR area,radius : real;BEGINread(radius);area :=3.14159*sqr(radius);write(radius,area)

END.

create by nova elins03 47

STRUKTUR PROGRAMCONTOH PROGRAM KOMENTAR{komentar yang akan ditulis}(* komentar yang akan ditulis*)// komentar yang akan ditulis

create by nova elins03 48

KONSTRUKSI PROGRAMSTATEMENT INPUTDigunakan untuk memasukan data yang

dibutuhkan oleh program.Perintah yang digunakan adalah: read dan readln.

Cara mendeklarasikan perintah read:read(input variables)

create by nova elins03 49

KONSTRUKSI PROGRAMCONTOHread(a,b,c);Perintah diatas akan membaca nilai yang

diinput keprogram berturut-turut sebagai a, b, c.

Cara mendeklarasikan perintah readln:readln(input variables)

create by nova elins03 50

KONSTRUKSI PROGRAMCONTOH:readln(a,b,c);Perintah diatas akan membaca input data

berturut-turut sebagai a, b, c kemudian kursor akan turun satu baris.

create by nova elins03 51

KONSTRUKSI PROGRAMSTATEMENT OUTPUTAdalah perintah yang digunakan untuk

menampilakan hasil perhitungan, operasi ataupun teks pada display.

Perintah yang digunakan adalah: write dan writeln.

Cara mendeklarasikan:write(output data items)writeln(output data items)

create by nova elins03 52

KONSTRUKSI PROGRAMCONTOH:a = 3;b = 7;write(‘nilai = ’, a+b);Penggalan program diatas akan menghasilkan

tampilam di layar:nilai = 10

create by nova elins03 53

KONSTRUKSI PROGRAMCONTOH:a = 3;b = 7;writeln(‘nilai = ’, a+b);Penggalan program diatas akan menghasilkan

tampilan dilayar:nilai = 10Kemudian kursor pindah ke baris berikutnya.

create by nova elins03 54

CONTOH PROGRAM LINGKARAN KONSOL PROGRAM LINGKARAN GUI

create by nova elins03 55

PEMROGRAMAN TERSTRUKTUR

STRUKTUR KENDALI SELEKSI

create by nova elins03 56

STRUKTUR KENDALI SELEKSI

KONDISI DAN EKSPRESI BOOLEANEkspresi boolean bisa berjadi dari: Variabel atau konstanta boolean Ekspresi diikuti operator relasional diikuti

ekspresi Ekspresi boolean diikuti operator boolean

diikuti ekspresi boolean

create by nova elins03 57

STRUKTUR KENDALI SELEKSI

Pascal mempunyai dua perintah untuk percabangan (seleksi) dan tiga perintah untuk perulangan (iterasi)

Kendali percabangan:1. Statement if2. Statement case

create by nova elins03 58

STRUKTUR KENDALI SELEKSI

Kendali perulangan meliputi:1. Statement for2. Statement while3. Statement repeat

create by nova elins03 59

STRUKTUR KENDALI SELEKSI

STATEMENT IFPerintah IF…THEN digunakan untuk

mewujudkan percabangan bersyarat.Cara mendeklarasikannya adalah:IF boolean expression THEN statemantIF boolean expression THEN statemant1 ELSE statement2

create by nova elins03 60

STRUKTUR KENDALI SELEKSI

CONTOH:IF Nilai <= 100 THEN Nilai := Nilai+1;IF (i>j) THEN writeln(i,‘lebih dari’,j)ELSE writeln (i,’kurang dari’,j);

IF (i>j) THEN writeln(i, ‘lebih dari’,j);

IF (i<j) THEN writeln(i,’kurang dari’,j);

create by nova elins03 61

STRUKTUR KENDALI SELEKSI

selesai

mulai

Proses A

Proses CProses B

kondisi

Flowchart IF THEN ELSE

ya

tidak

create by nova elins03 62

STRUKTUR KENDALI SELEKSI

CONTOH: Cek Nilai

create by nova elins03 63

STRUKTUR KENDALI SELEKSI

CONTOH PROGRAM: Buatlah program untuk menampilkan bilangan terbesar diantara 3 bilangan yang dimasukan.

create by nova elins03 64

STRUKTUR KENDALI SELEKSImulai

Baca A,B,C

A > B ?

M BM A

M C

Cetak M

M > C ?

ya

tidak

selesai

tidak

ya

create by nova elins03 65

STRUKTUR KENDALI SELEKSI

Program Mencari Bilangan Terbesar

create by nova elins03 66

STRUKTUR KENDALI SELEKSI

CONTOH PROGRAM: menampilkan tulisan ‘password benar’ jika memasukan tulisan ‘asdfg’ dan ‘password salah’ untuk masukan lainnya.

create by nova elins03 67

STRUKTUR KENDALI SELEKSImulai

selesai

Baca password

= ‘asdfg’ ?

Cetak pesan salahCetak pesan benar

create by nova elins03 68

STRUKTUR KENDALI SELEKSI

Program Kata Kunci

create by nova elins03 69

STRUKTUR KENDALI SELEKSI

STATEMENT CASEStatement case digunakan untuk mengatasi

kendali seleksi yang statementnya merupakan pilihan dari beberapa group.

create by nova elins03 70

STRUKTUR KENDALI SELEKSI

Cara mendeklarasikannya:CASE expression OFpilihan 1 : statement 1pilihan 2 : statement 2

.

.pilihan n : statement n

END

create by nova elins03 71

STRUKTUR KENDALI SELEKSI

Cara mendeklarasikannya:CASE expression OFpilihan 1 : statement 1pilihan 2 : statement 2

.

.ELSE statement nEND

create by nova elins03 72

STRUKTUR KENDALI SELEKSI

CONTOH PROGRAM1. PROGRAM CONTOH CASE2. PROGRAM KALKULATOR

create by nova elins03 73

PEMROGRAMAN TERSTRUKTUR

KENDALI ITERASI

create by nova elins03 74

KENDALI ITERASIStatemant dalam iterasi disebut badan iterasi. Badan

iterasi dijalankan melalui beberapa fase: Saat aliran kendali program masuk ke dalam badan

iterasi disebut entri iterasi. Setiap kali iterasi dijalankan, satu kali perulangan ini

dinamakan iterasi. Bagian pengecekan kondisi bertugas

mengendalikan iterasi dilakukan atau tidak. Bagian ini dapat berada di bagian awal maupun di bagian akhir kendali iterasi.

create by nova elins03 75

KENDALI ITERASI Setelah semua iterasi lengkap dilaksanakan,

program keluar dari kendali iterasi. Kondisi yang mengakibatkan program keluar dari kendali iterasi dinamakan kondisi penghentian kendali iterasi.

create by nova elins03 76

KENDALI ITERASI

Iterasi Dikendalikan Pencacahpencacah := 1;while pencacah <= 10 dobegin……pencacah := pencacah+1;

end

create by nova elins03 77

KENDALI ITERASI

Iterasi pencacah dalam bentuk flowchart

Pencacah 1

Pencacah pencacah+1

Proses lain

Pencacah <=10tidak

ya

create by nova elins03 78

KENDALI ITERASI

Iterasi Dikendalikan Pembataswhile not ((bulan=2) and (tanggal=30) do beginread(bulan,tanggal);……

end;

create by nova elins03 79

KENDALI ITERASI

Iterasi dikendalikan pembatas dalam bentuk flowchart

Baca data

Baca data

Proses lain

Data = pembatasya

tidak

create by nova elins03 80

KENDALI ITERASI

Cara Merancang IterasiPerlu diperhatikan hal-hal berikut untuk

merancang iterasi:1. Kondisi yang mengakhiri iterasi2. Kondisi inisialisasi3. Kondisi yang diperbarui4. Proses apa yang perlu diulang5. Bagaimana proses inisialisasi

create by nova elins03 81

KENDALI ITERASI

6. Bagaimana proses diperbarui7. Bagaiman status program saat keluar dari

iterasi.

create by nova elins03 82

KENDALI ITERASIStatement FORPerintah FOR..DO digunakan untuk melakukan

perulangan determinatif. Artinya, sebuah pernyataan akan dikerjakan berulang-ulang sebanyak n kali, n adalah bilang yang diketahui sebelumnya

Cara mendeklaraikannya:FOR pencacah := awal TO akhir DO statementFOR pencacah := awal DOWNTO akhir DO statement

create by nova elins03 83

KENDALI ITERASI

CONTOH PROGRAM: Program Rerata To Program Rerata Downto

create by nova elins03 84

KENDALI ITERASI

Statement WHILEStatement ini digunakan jika belum diketahui

kondisi keluar dari iterasinya.Cara mendeklarasikannya:WHILE kondisi DO statementCONTOH PROGRAM

create by nova elins03 85

KENDALI ITERASI

Statement REPEATCara mendeklarasikannya:REPEAT statement UNTIL kondisiCONTOH PROGRAM

create by nova elins03 86

KENDALI ITERASI

statement

kondisi statement

kondisi

Perbedaan WHILE dan REPEAT

create by nova elins03 87

KENDALI ITERASIPETUNJUK PEMILIHAN STATEMENT

ITERASIBerikut panduan untuk menentukan jenis iterasi

yang sesuai:1. Jika iterasi dikendalikan pencacah yang

sederhana gunakan statement for. Jika iterasi dikendalikan pencacah dan pembatas, atau iterasi harus mencacah dengan nilai kenaikan/penurunan selain 1 atau -1, gunakan while atau repeat.

create by nova elins03 88

KENDALI ITERASI

2. Jika iterasi dikendalikan pembatas atau badan iterasi selalu dijalankan paling tidak sekali, gunakan repeat.

3. Jika iterasi dikendalikan pembatas dan tidak ada informasi mengenai bagaimana badan iterasi dijalankan pertama kali, gunakan while.

create by nova elins03 89

KENDALI ITERASI

4. Jika while dan repeat dapat digunakan, pilihlah yang lebih baik merefleksikan semantik iterasi. Jika masalahnya dijalankan jika kondisi benar, gunakan while. Sebaliknya jika masalahnya akan berhenti jika kondisinya benar gunakan repeat.

5. Jika meragukan gunakanlah while.

create by nova elins03 90

KENDALI ITERASI

CONTOH: buatlah tabel sinus dan cosinus untuk 0° sampai dengan 90° dengan kenaikan sebesar 0.5°!

Kenaikannya bukan 1 atau -1, maka digunakan while.

Fungsi sin & cos dalam Pascal/Delphi menggunakan parameter radian. Jadi nilai dalam derajat diubah dulu ke radian.

create by nova elins03 91

KENDALI ITERASI

π radian = 180°1° = π/180 radianx° = xπ/180 radian

Program Daftar Sinus-Cosinus

create by nova elins03 92

KENDALI ITERASICONTOH: persamaan aljabar: x5 + 3x2 – 10 = 0

dapat diselesaikan dengan nilai pendekatan. Ubah persamaan menjadi: x = (10 – 3x2)1/5

Prosesnya: pilih suatu nilai x, kemudian disubtitusikan pada ruas kanan, maka didapat nilai x yang baru.

Jika nilai x yang lama sama atau mendekati nilai x yang baru, maka x tersebut adalah penyelesaian.

create by nova elins03 93

KENDALI ITERASI Proses akan berhenti jika nilai x sangat

mendekati atau setelah 50 kali iterasi. Buat variabel-variabel berikut: Cacah digunakan untuk mencatat cacah

iterasi. Nilainya akan bertambah satu setiap melakukan iterasi. Tebakan adalah nilai x yang akan disubtitusikan pada ruas kanan persamaan.

create by nova elins03 94

KENDALI ITERASI

Akar adalah nilai x yang baru. Cek adalah nilai x = (10 – 3x2)1/5. Kesalahan adalah selisish antara Akar dan

Tebakan. Tanda adalah variabel boolean yang digunakan untuk menentukan apakah iterasi diteruskan atau dihentikan.

create by nova elins03 95

KENDALI ITERASI Komputasi diteruskan sampai dicapai salah

satu kondisi berikut: nilai kesalahan kurang dari 0.00001 cacah iterasi maksimum 50 telah tercapai cek bilangan negatif, karena akar pangkat

5 dari bilangan negatif tidak dapat dihitung

Program Persamaan Aljabar

create by nova elins03 96

KENDALI ITERASI

CONTOH: buatlah program untuk menampilkan animasi pantulan lingkaran pada pinggir batas form dengan menggunakan komponen shape

PROGRAM ANIMASI LINGKARAN

create by nova elins03 97

PEMROGRAMAN TERSTRUKTUR

PROCEDURE DAN FUNCTION

create by nova elins03 98

SUBPROGRAM

Subprogram adalah bagian dari program yang dirancang untuk melaksanakan suatu tugas tertentu.

Program dipecah menjadi subprogram-subprogram yang lebih kecil.

Subprogram dapat berupa procedure atau function yang strukturnya sama seperti program.

create by nova elins03 99

PROCEDUREProcedure adalah bentuk subprogram yang hanya

bertugas mengerjakan suatu aktivitas.Struktur pendefinisian procedure adalah:procedure nama_procedure(parameter);[bagian deklarasi konstanta, tipe, variabel dan function/procedure];

begin[statement-statement]

end;

create by nova elins03 100

PROCEDURE

Program Contoh ProcedureContoh Program dengan Procedure lainnya

create by nova elins03 101

PARAMETER NILAI

Parameter digunakan bagian pemanggil untuk memberikan data pendukung aktifitas prosedur/fungsi atau menerima kembali data hasil proses di prosedur/fungsi.

Parameter yang digunakan untuk mendefinisikan prosedur/fungsi disebut parameter formal dan parameter yang digunakan untuk memanggil prosedur/fungsi disebut parameter aktual.

create by nova elins03 102

PARAMETER NILAIParameter formal ada 2 jenis: Parameter nilai: digunakan untuk membawa

data pendukung dari bagian pemanggil untuk diberikan ke prosedur/fungsi.

Parameter variabel: membawa data dari/ke prosedur/fungsi.

create by nova elins03 103

ATURAN CAKUPANContoh Ruang Lingkup

create by nova elins03 104

FUNCTIONFunction selain melakukan aktivitas

(=procedure), fungsi akan mengembalikan nilai hasil proses yang telah dilakukan kepada bagian pemanggil.

function nama_fungsi(parameter): tipe nilai output;[deklarasi konstanta, variable, tipe, prosedur/fungsi];Beginstatement

End;

create by nova elins03 105

FUNCTION

Contoh FungsiContoh Parameter

create by nova elins03 106

Diketahui jejari lingkaran adalah r. Luas lingkaran L = πr2 dan keliling lingkaran adalah K = 2πr. Buatlah program untuk mencari L dan K.

Dalam program tersebut buatlah procedure/function untuk menghitung L dan K.

create by nova elins03 107

PEMROGRAMAN TERSTRUKTUR

REKURSI

create by nova elins03 108

REKURSI

Adalah algoritma yang berisi ekspresi (statement) yang akan memanggil dirinya sendiri.

Merupakan algoritma yang lebih efisien untuk melakukan perulangan pada beberapa kasus iterasi.

create by nova elins03 109

REKURSI

Contoh: akan dicari nilai xn.Nilai xn adalah x*x*x*x*x*x*…*x atau perkalian

x dengan x sebanyal n kali. Atau perkalian n dengan xn-1.

Perkalian xn-1 adalah perkalian x dengan xn-2. begitu seterusnya untuk xn-3.

Prosesnya akan selesai jika n-nya bernilai 1 (x1).

create by nova elins03 110

REKURSIfunction Pangkat(X,N:integer):integer;Beginif N=1 then

Pangkat:=X;else

Pangkat:=X*Pangkat(X,N-1);End;

create by nova elins03 111

REKURSIPangkat(2,3)Pemanggilan 1: nilai X adalah 2 dan N adalah

3. Karena N tidak sama dengan 1, maka Pangkat dipanggil lagi untuk parameter X dan N-1. Proses pertama berhenti sementara untuk menunggu hasil pemanggilan kedua.

Pemanggilan 2: nilai X=2 dan N=2. Karena N tidak sama dengan 1 maka Pangkat dipanggil lagi dengan parameter X dan N-2 dan menunggu hasil pemanggilan ketiga.

create by nova elins03 112

REKURSI

Pemanggilan 3: nilai X=2 dan N=1, karena N=1 maka nilai X=2 disimpan sebagai hasil pemanggilan 3. hasil pemanggilan 3 dikirimkan ke pemanggilan 2.

Pemanggilan 2: mendapat nilai hasil pemanggilan 3 yaitu X=2. nilai hasil pemanggilan 3 akan dikalikan dengan X. Hasil perkaliannya adalah 4, dan akan dikirimkan ke pemanggilan 1.

create by nova elins03 113

REKURSI

Pemanggilan 1: akan mengalikan X dengan hasil pemanggilan 2, maka hasilnya adalah 8. hasil Pangkat(2,3) adalah 8.

create by nova elins03 114

REKUSRIFuction Faktorial(n:integer):integer;Beginif N=0 then

Result:=1else

Result:=N*Faktorial(N-1);End;

create by nova elins03 115

REKUSRI

Program Terbilang dengan Delphi

create by nova elins03 116

REKUSRIMENARA HANOITujuan permainan menara hanoi adalah memindahkan

semua piringan di tiang pertama ke piringan ketiga dengan aturan:

1. Sekali memindahkan hanya boleh memindahkan 1 piringan

2. Tidak boleh menaruh piringan yang lebih besar di atas piringan yang lebih kecil

3. Pada akhir setiap pemindahan semua piringan semua piringan harus berada di tiang

create by nova elins03 117

REKUSRI

Menara Hanoi KonsolMenara Hanoi Animasi

create by nova elins03 118

REKURSI

CONTOH: Analisis kegunaan dari prosedur berikut! Apa yang dihasilkan jika dipanggil dengan Px(‘ABC’)?

create by nova elins03 119

REKURSI

procedure Px(st:string);beginif length(st)>0 then begin

write(st[1]);Px(Copy(st,2,length(st)));Px(Copy(st,1,length(st)-1));

end;end;

create by nova elins03 120

REKURSI

⇒⇒⇒

⇒⇒⇒⇒

)'(')'(')'(')'('

)'(')'('

)'(')'(')'(')'('

)'(')'('

)'('

)'('

AwriteAPxBwriteBPx

AwriteABPx

BwriteBPxCwriteCPx

BwriteBCPx

Awrite

ABCPx

create by nova elins03 121

REKURSI

Hasilnya adalah: ABCBABA

Recommended