PEMROGRAMAN TERSTRUKTUR

Nova El Maidah, S.Si.

create by nova elins03

1

SILABUS:
1. 2.

3. 4. 5. 6.

FLOWCHART SINTAKSIS DAN SEMANTIK PASCAL/DELPHI STRUKTUR KENDALI SELEKSI KENDALI ITERASI PROCEDURE DAN FUNCTION REKURSI
2

create by nova elins03

SUMBER:
1.

2.

3.

Gottfried, Baron S.1986. Programming with Pacsal. Singapore: McGraw-Hill. Hasbi, M. 2003. Struktur Data dan Algoritma dalam Pemrograman Turbo Pascal. Yogyakarta: Gava Media Suyanto, Yohanes. 2005. Pemrograman Terstruktur dengan Delphi. Yogyakarta: UGM Press.
3

create by nova elins03

PEMROGRAMAN TERSTRUKTUR
FLOWCHART

create by nova elins03

4

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

5

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

create by nova elins03

6

FLOWCHART
Awal 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 7

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 8

FLOWCHART
4.

Hanya boleh ada satu aliran keluar dari simbol proses.
atau

5.

Hanya boleh ada satu aliran masuk ke simbol kotak keputusan, tetapi untuk keluarnya boleh 2 atau 3 jalur.
ya tidak <0 =0 9 >0

create by nova elins03

FLOWCHART
6.

Hanya boleh ada satu jalur pada simbol terminal. Dengan kata lain, satu jalur masuk saja atau satu jalur keluar saja.

7.

8.

Jika flowchart menjadi kompleks dan rumit, buatlah dalam subflowchart sehingga lebih mudah dipahami. Pastikan setiap flowchart mempunyai terminal awal dan akhir.
10

create by nova elins03

FLOWCHART
Kelebihan 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 11

FLOWCHART
4.

5.

Pelacakan kesalahan: flowchart membantu dalam proses pelacakan program. Pemeliharan program: bagian program yang diubah dapat ditentukan dengan melihat flowchart sehingga lebih efisien waktu

create by nova elins03

12

FLOWCHART
Keterbatasan 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 simbolsimbol dan tidak dapat langsung diketik, maka reproduksi dalam media lain menjadi masalah tersendiri.
create by nova elins03 13

FLOWCHART
CONTOH: Penjumlahan 50 Bilangan Asli Pertama mulai Jumlah = 0 N=0 N=N+1 Jumlah =Jumlah+1 tidak N = 50 ? ya Cetak Jumlah create by nova elins03 selesai 14

FLOWCHART
CONTOH: Mencari Faktorial dari Suatu Bilangan mulai Baca N M=1 F=1

F=F*M tidak M=M+1

N=M? ya Cetak F

create by nova elins03

selesai

15

PEMROGRAMAN TERSTRUKTUR
SINTAKSIS DAN SEMANTIK

create by nova elins03

16

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 17

SINTAKSIS
CONTOH DIAGRAM SINTAKSIS
unsignedinteger sign unsignedinteger

+

-

create by nova elins03

18

INDENTIFIER
INDENTIFIER (PENAMAAN ELEMEN PROGRAM) PASCAL:
huruf angka huruf

DELPHI:

huruf _

angka huruf _ 19

create by nova elins03

INDENTIFIER
Berikut kata-kata yang tidak boleh digunakan sebagai nama program karena sudah dikenali sebagai perintah dalam program PASCAL atau DELPHI: and case dispinterface array class div as const do asm constructor downto begin destructor else
create by nova elins03 20

INDENTIFIER
end except export file finalization finally for fuction
create by nova elins03

goto if implementation in inherited initialization inline interface
21

INDENTIFIER
is label library mod nil not object of or out packed procedure program property raise record repeat resourcestring set shl shr string then threadvar
22

create by nova elins03

INDENTIFIER
to try type unit until uses var while with xor

create by nova elins03

23

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

create by nova elins03

24

DATA DAN TIPE DATA
Tabel Variasi Tipe Data Bilangan Integer
Tipe Data Integer Cardinal Shortint Smallint Longint Int64 Byte Word Longword Minimum 0 -128 -32768 -263 0 0 0 Maksimum Format -2147483648 2147483647 Signed 32-bit 4294967295 Unsigned 32-bit 127 32767 263 – 1 255 65535 Signed 8-bit Signed 16-bit Signed 64-bit Unsigned 8-bit Unsigned 16-bit

-2147483648 2147483647 Signed 32-bit

4294967295 Unsigned 32-bit

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

26

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.

create by nova elins03

27

TIPE DATA REAL Tabel Variasi Tipe Data Real
Tipe Data Real48 Single Double Real Extended Comp Currency Minimum
2.9 x 10-39 1.5 x 10-45 5.0 x 10-324 5.0 x 10-324 3.6 x 10-4951 -263 + 1
-922337203685477.5808

DATA DAN TIPE DATA
Maksimum
1.7 x 1038 3.4 x 1038 1.7 x 10308 1.7 x 10308 1.1 x 104932 263 – 1
922337203685477.5807

Digit 11-12 7-8 15-16 15-16 19-20 19-20 19-20

Ukuran (byte) 6 4 8 8 10 8 8

DATA DAN TIPE DATA
TIPE DATA REAL Tabel Variasi Tipe Data Real
Tipe ShortString AnsiString Panjang Maksimum 255 karakter 231 karakter Kebutuhan Memori 2-256 byte 4 byte – 2 GB Keterangan Kompatibilitas dengan versi awal 8 bit(ANSI) karakter, DBCS, ANSI, MBCS Lebih disukai untuk banyak keperluan Karakter uncode, aplikasi multiuser & multilanguage

LongString WideString

231 karakter 230 karakter

4 byte – 2 GB 4 byte – 2 GB

create by nova elins03

29

EKSPRESI DAN OPERATOR
Tabel Operator Aritmatika Biner
Operator Operasi Tipe Operan Tipe Hasil Contoh

+ – * / div mod

Penjumlahan Integer Real Pengurangan Integer Real Perkalian Pembagian Pembagian Bulat Sisa Hasil Bagi Integer Real Integer Real Integer Integer

Integer Real Integer Real Integer Real Integer Real Integer Integer
30

X+Y Result – 1 P*Lebar X/2 W div 5 B mod 7

EKSPRESI DAN OPERATOR
Aturan 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 31

EKSPRESI DAN OPERATOR
4.

5.

6.

Hasil operasi bertipe Integer jika operan bertipe bilangan bulat dan tidak ada satupun operan bertipe Int64. Jika suatu operan merupakan data berupa data subrange dari tipe Integer, maka operan itu diperlakukan sebagai Integer. Nilai x div y adalah sebesar x/y dibulatkan ke arah nol pada Integer terdekat.
32

create by nova elins03

EKSPRESI DAN OPERATOR
7.

8.

Nilai x mod y adalah sisa hasil bagi jika x dibagi y. Akan terjadi error jika nilai y bernilai nol untuk ekspresi x/y, x div y, atau x mod y.

create by nova elins03

33

EKSPRESI DAN OPERATOR
OPERATOR BOOLEAN Tabel Operator Boolean
Operator Operasi not and or xor Tipe Operan Tipe Hasil Boolean Boolean Boolean Boolean
34

Contoh not C D and T A or B A xor B

Negasi Boolean Konjungsi Boolean Disjungsi Boolean Disjungsi Boolean ekslusif

create by nova elins03

EKSPRESI DAN OPERATOR
Tabel Kebenaran Operasi Logika
A false false true true B false true false true A or B false true true true A and B false false false true A xor B false true true false not A true true false false not B true false true false

create by nova elins03

35

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

create by nova elins03

36

EKSPRESI DAN OPERATOR
OPERATOR BITWISE Merupakan 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 37

EKSPRESI DAN OPERATOR
Aturan 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 38

EKSPRESI DAN OPERATOR
3.

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

39

EKSPRESI DAN OPERATOR
OPERATOR RELASIONAL Tabel Operator Relasional
Operator = <> < > <= >= Operasi kesamaan ketaksamaan Kurang dari Lebih dari Kurang dari atau sama Lebih dari atau sama Tipe operan Simple, string Simple, string Simple, string Simple, string Simple Simple Tipe hasil boolean Boolean boolean Boolean Boolean Boolean
40

Contoh I = max X <> Y A<B D > num Count <= 10 I >= 1

create by nova elins03

EKSPRESI DAN OPERATOR
KONSTANTA adalah bilangan, teks, atau objek lain yang nilainya tetap. Contoh deklarasi konstanta: const Bintang = ‘*******’; Kosong = ‘ ’; Pi = 3.14159; Maksimum = 20;
create by nova elins03 41

EKSPRESI DAN OPERATOR
Jika ingin menentukan tipe data pada konstanta secara langsung pada deklarasi kostanta; const BilanganDesimal : Double = 1.234; I : integer = 10; pesan : string = ‘contoh deklerasi’;
create by nova elins03 42

EKSPRESI DAN OPERATOR
VARIABEL Contoh deklarasi variabel: var a,b : integer; r : real; hari : string;

create by nova elins03

43

EKSPRESI DAN OPERATOR
Variabel juga dapat diinisialisasikan pada bagian deklerasi: var hari : string = ‘senin’,’selasa’; I : integer = 10; d : double = 3.141579;

create by nova elins03

44

STRUKTUR PROGRAM
Struktur Program Pascal 1. Header 2. Block a. Decleration Labels Constants Type definitions Variable Procedure & Function b. Statement
create by nova elins03 45

STRUKTUR PROGRAM
CONTOH PROGRAM circle(input,output): VAR area,radius : real; BEGIN read(radius); area :=3.14159*sqr(radius); write(radius,area) END.
create by nova elins03 46

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

create by nova elins03

47

KONSTRUKSI PROGRAM
STATEMENT INPUT Digunakan 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 48

KONSTRUKSI PROGRAM
CONTOH read(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 49

KONSTRUKSI PROGRAM
CONTOH: 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

50

KONSTRUKSI PROGRAM
STATEMENT OUTPUT Adalah 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 51

KONSTRUKSI PROGRAM
CONTOH: a = 3; b = 7; write(‘nilai = ’, a+b); Penggalan program diatas akan menghasilkan tampilam di layar: nilai = 10
create by nova elins03 52

KONSTRUKSI PROGRAM
CONTOH: a = 3; b = 7; writeln(‘nilai = ’, a+b); Penggalan program diatas akan menghasilkan tampilan dilayar: nilai = 10 Kemudian kursor pindah ke baris berikutnya.
create by nova elins03 53

CONTOH
 

PROGRAM LINGKARAN KONSOL PROGRAM LINGKARAN GUI

create by nova elins03

54

PEMROGRAMAN TERSTRUKTUR
STRUKTUR KENDALI SELEKSI

create by nova elins03

55

STRUKTUR KENDALI SELEKSI
KONDISI DAN EKSPRESI BOOLEAN Ekspresi 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

56

STRUKTUR KENDALI SELEKSI
Pascal mempunyai dua perintah untuk percabangan (seleksi) dan tiga perintah untuk perulangan (iterasi) Kendali percabangan: 1. Statement if 2. Statement case

create by nova elins03

57

STRUKTUR KENDALI SELEKSI
Kendali perulangan meliputi: 1. Statement for 2. Statement while 3. Statement repeat

create by nova elins03

58

STRUKTUR KENDALI SELEKSI
STATEMENT IF Perintah IF…THEN digunakan untuk mewujudkan percabangan bersyarat. Cara mendeklarasikannya adalah: IF boolean expression THEN statemant IF boolean expression THEN statemant1 ELSE statement2

create by nova elins03

59

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

60

STRUKTUR KENDALI SELEKSI
mulai Proses A ya

kondisi tidak Proses B

Proses C

selesai create by nova elins03

Flowchart IF THEN ELSE 61

STRUKTUR KENDALI SELEKSI
CONTOH:  Cek Nilai

create by nova elins03

62

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

create by nova elins03

63

STRUKTUR KENDALI SELEKSI
mulai Baca A,B,C A>B? ya MA M>C? tidak MC Cetak M create by nova elins03 selesai 64 ya tidak

MB

STRUKTUR KENDALI SELEKSI
Program Mencari Bilangan Terbesar

create by nova elins03

65

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

create by nova elins03

66

STRUKTUR KENDALI SELEKSI
mulai

Baca password

= ‘asdfg’ ?

Cetak pesan benar

Cetak pesan salah

selesai create by nova elins03 67

STRUKTUR KENDALI SELEKSI
Program Kata Kunci

create by nova elins03

68

STRUKTUR KENDALI SELEKSI
STATEMENT CASE Statement case digunakan untuk mengatasi kendali seleksi yang statementnya merupakan pilihan dari beberapa group.

create by nova elins03

69

STRUKTUR KENDALI SELEKSI
Cara mendeklarasikannya: CASE expression OF pilihan 1 : statement 1 pilihan 2 : statement 2 . . pilihan n : statement n END
create by nova elins03 70

STRUKTUR KENDALI SELEKSI
Cara mendeklarasikannya: CASE expression OF pilihan 1 : statement 1 pilihan 2 : statement 2 . . ELSE statement n END
create by nova elins03 71

STRUKTUR KENDALI SELEKSI
CONTOH PROGRAM 1. PROGRAM CONTOH CASE 2. PROGRAM KALKULATOR

create by nova elins03

72

PEMROGRAMAN TERSTRUKTUR
KENDALI ITERASI

create by nova elins03

73

KENDALI ITERASI
Statemant 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 74

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

75

KENDALI ITERASI
Iterasi Dikendalikan Pencacah pencacah := 1; while pencacah <= 10 do begin … … pencacah := pencacah+1; end
create by nova elins03 76

KENDALI ITERASI
Iterasi pencacah dalam bentuk flowchart
Pencacah  1 tidak

Pencacah <=10 ya Proses lain

Pencacah  pencacah+1 create by nova elins03 77

KENDALI ITERASI
Iterasi Dikendalikan Pembatas while not ((bulan=2) and (tanggal=30) do begin read(bulan,tanggal); … … end;
create by nova elins03 78

KENDALI ITERASI
Iterasi dikendalikan pembatas dalam bentuk flowchart
Baca data ya

Data = pembatas tidak Proses lain Baca data create by nova elins03

79

KENDALI ITERASI
Cara Merancang Iterasi Perlu diperhatikan hal-hal berikut untuk merancang iterasi: 1. Kondisi yang mengakhiri iterasi 2. Kondisi inisialisasi 3. Kondisi yang diperbarui 4. Proses apa yang perlu diulang 5. Bagaimana proses inisialisasi
create by nova elins03 80

KENDALI ITERASI
6. 7.

Bagaimana proses diperbarui Bagaiman status program saat keluar dari iterasi.

create by nova elins03

81

KENDALI ITERASI
Statement FOR Perintah 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 statement
FOR pencacah := awal DOWNTO akhir DO statement
create by nova elins03 82

KENDALI ITERASI
CONTOH PROGRAM:  Program Rerata To  Program Rerata Downto

create by nova elins03

83

KENDALI ITERASI
Statement WHILE Statement ini digunakan jika belum diketahui kondisi keluar dari iterasinya. Cara mendeklarasikannya: WHILE kondisi DO statement CONTOH PROGRAM

create by nova elins03

84

KENDALI ITERASI
Statement REPEAT Cara mendeklarasikannya: REPEAT statement UNTIL kondisi CONTOH PROGRAM

create by nova elins03

85

KENDALI ITERASI

kondisi

statement

kondisi statement

Perbedaan WHILE dan REPEAT create by nova elins03 86

KENDALI ITERASI
PETUNJUK PEMILIHAN STATEMENT ITERASI Berikut 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 87

KENDALI ITERASI
2.

3.

Jika iterasi dikendalikan pembatas atau badan iterasi selalu dijalankan paling tidak sekali, gunakan repeat. Jika iterasi dikendalikan pembatas dan tidak ada informasi mengenai bagaimana badan iterasi dijalankan pertama kali, gunakan while.

create by nova elins03

88

KENDALI ITERASI
4.

5.

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. Jika meragukan gunakanlah while.
89

create by nova elins03

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 90

KENDALI ITERASI
π radian 1° x° = 180° = π/180 radian = xπ/180 radian

Program Daftar Sinus-Cosinus

create by nova elins03

91

KENDALI ITERASI
CONTOH: 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 92

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.
93

create by nova elins03

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

94

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 95

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

96

PEMROGRAMAN TERSTRUKTUR
PROCEDURE DAN FUNCTION

create by nova elins03

97

SUBPROGRAM
Subprogram adalah bagian dari program yang dirancang untuk melaksanakan suatu tugas tertentu. Program dipecah menjadi subprogramsubprogram yang lebih kecil. Subprogram dapat berupa procedure atau function yang strukturnya sama seperti program.
create by nova elins03 98

PROCEDURE
Procedure 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 99

PROCEDURE
Program Contoh Procedure Contoh Program dengan Procedure lainnya

create by nova elins03

100

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 101

PARAMETER NILAI
Parameter 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

102

ATURAN CAKUPAN
Contoh Ruang Lingkup

create by nova elins03

103

FUNCTION
Function 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]; Begin statement End;
create by nova elins03 104

FUNCTION
Contoh Fungsi Contoh Parameter

create by nova elins03

105

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

106

PEMROGRAMAN TERSTRUKTUR
REKURSI

create by nova elins03

107

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

108

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 109

REKURSI
function Pangkat(X,N:integer):integer; Begin if N=1 then Pangkat:=X; else Pangkat:=X*Pangkat(X,N-1); End;

create by nova elins03

110

REKURSI
Pangkat(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 111

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 112

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

create by nova elins03

113

REKUSRI
Fuction Faktorial(n:integer):integer; Begin if N=0 then Result:=1 else Result:=N*Faktorial(N-1); End;

create by nova elins03

114

REKUSRI
Program Terbilang dengan Delphi

create by nova elins03

115

REKUSRI
MENARA HANOI Tujuan 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 116

REKUSRI
Menara Hanoi Konsol Menara Hanoi Animasi

create by nova elins03

117

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

create by nova elins03

118

REKURSI
procedure Px(st:string); begin if 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 119

REKURSI
       Px(' ABC ' ) ⇒  Px(' BC ' ) ⇒     Px(' AB' ) ⇒   
create by nova elins03

write(' A' ) write(' B ' )    Px(' C ' ) ⇒ write(' C ' )  Px(' B' ) ⇒ write(' B' )  write(' A' )    Px(' B ' ) ⇒ write(' B ' )  Px(' A' ) ⇒ write(' A' ) 
120

REKURSI
Hasilnya adalah: ABCBABA

create by nova elins03

121

Sign up to vote on this title
UsefulNot useful