Anda di halaman 1dari 121

PEMROGRAMAN

TERSTRUKTUR
Nova El Maidah, S.Si.

create by nova elins03 1


SILABUS:
1. FLOWCHART
2. SINTAKSIS DAN SEMANTIK
PASCAL/DELPHI
3. STRUKTUR KENDALI SELEKSI
4. KENDALI ITERASI
5. PROCEDURE DAN FUNCTION
6. REKURSI

create by nova elins03 2


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 3


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 <0 >0

tidak =0

create by nova elins03 9


FLOWCHART
6. 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 10
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. 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 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 simbol-
simbol dan tidak dapat langsung diketik, maka
reproduksi dalam media lain menjadi masalah
tersendiri.
create by nova elins03 13
FLOWCHART
CONTOH: mulai
Penjumlahan 50 Bilangan
Asli Pertama Jumlah = 0

N=0

N=N+1

Jumlah =Jumlah+1

tidak
N = 50 ?

ya
Cetak Jumlah

create by nova elins03 selesai 14


FLOWCHART
CONTOH: mulai
Mencari Faktorial dari
Suatu Bilangan 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

_
create by nova elins03 19
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 goto
except if
export implementation
file in
finalization inherited
finally initialization
for inline
fuction interface
create by nova elins03 21
INDENTIFIER
is or repeat
label out resourcestring
library packed set
mod procedure shl
nil program shr
not property string
object raise then
of record threadvar
create by nova elins03 22
INDENTIFIER
to until with
try uses xor
type var
unit while

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 Minimum Maksimum Format
Integer -2147483648 2147483647 Signed 32-bit
Cardinal 0 4294967295 Unsigned 32-bit
Shortint -128 127 Signed 8-bit
Smallint -32768 32767 Signed 16-bit
Longint -2147483648 2147483647 Signed 32-bit
Int64 -263 263 – 1 Signed 64-bit
Byte 0 255 Unsigned 8-bit
Word 0 65535 Unsigned 16-bit
Longword 0 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


DATA DAN TIPE DATA
TIPE DATA REAL
Tabel Variasi Tipe Data Real
Tipe Data Minimum Maksimum Digit Ukuran
(byte)
Real48 2.9 x 10-39 1.7 x 1038 11-12 6
Single 1.5 x 10-45 3.4 x 1038 7-8 4
Double 5.0 x 10-324 1.7 x 10308 15-16 8
Real 5.0 x 10-324 1.7 x 10308 15-16 8
Extended 3.6 x 10-4951 1.1 x 104932 19-20 10
Comp -263 + 1 263 – 1 19-20 8
Currency 19-20 8
-922337203685477.5808 922337203685477.5807
DATA DAN TIPE DATA
TIPE DATA REAL
Tabel 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

create by nova elins03 29


EKSPRESI DAN OPERATOR
Tabel 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 Real
div Pembagian Integer Integer W div 5
Bulat
mod Sisa Hasil Integer Integer B mod 7
Bagi 30
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. 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 32


EKSPRESI DAN OPERATOR
7. 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 33


EKSPRESI DAN OPERATOR
OPERATOR BOOLEAN
Tabel Operator Boolean
Operator Operasi Tipe Tipe Contoh
Operan Hasil
not Negasi Boolean Boolean not C
and Konjungsi Boolean Boolean D and T
or Disjungsi Boolean Boolean A or B
xor Disjungsi Boolean Boolean A xor B
ekslusif

create by nova elins03 34


EKSPRESI DAN OPERATOR
Tabel Kebenaran Operasi Logika
A B A or B A and B A xor B not A not B
false false false false false true true
false true true false true true false
true false true false true false true
true true true true false false 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 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 Simple Boolean Count <= 10
atau sama
>= Lebih dari Simple Boolean I >= 1
atau sama

create by nova elins03 40


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 Flowchart IF THEN ELSE

create by nova elins03 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

tidak
A>B?
ya
MA MB

ya
M>C?
tidak
MC

Cetak M

create by nova elins03 selesai 64


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. Bagaimana proses diperbarui
7. 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

statement
kondisi

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


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 89


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 = 180°
1° = π/180 radian
x° = 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.

create by nova elins03 93


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 subprogram-
subprogram 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



 write(' A' )

  write(' B ' )

Px(' ABC ' ) ⇒  Px(' BC ' ) ⇒  Px(' C ' ) ⇒ write(' C ' )
  Px(' B' ) ⇒ write(' B' )
 
  write(' A' )
 Px(' AB' ) ⇒ 
  Px(' B ' ) ⇒ write(' B ' )
  Px(' A' ) ⇒ write(' A' )

create by nova elins03 120
REKURSI
Hasilnya adalah: ABCBABA

create by nova elins03 121

Anda mungkin juga menyukai