Pemrograman Terstruktur (Part 1)
Transcript of Pemrograman Terstruktur (Part 1)
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