Anda di halaman 1dari 168

Algoritma dan pemrograman

E. Rizal, S.Kom.,M.Kom
Semester Gasal 2016/2017
Telp : 021 8656789
HP : 08128513048
E-mail : rrizal65@yahoo.com
erizal@uhamka.ac.id
Blog : rizal65.blog.uhamka.ac.id
Website : www.uhamka.ac.id
KOMPONEN PENILAIAN
KEAKTIFAN : 10 %
TUGAS : 20%
UTS : 30 %
UAS : 40%
Rencana Pertemuan
Rencana Pertemuan (tatap muka) : 16 x
Termasuk UTS dan UAS

Syarat minimal Mata Kuliah bisa


Diujikan : 75% X rencana pertemuan.

Syarat minimal Mahasiswa bisa mengikuti


UJIAN AKHIR SEMESTER : 75 % dari Tatap
Muka yg dilakukan dg Dosen.
Aturan Perkuliahan

Toleransi keterlambatan maks. 15


menit
Berbusana sopan, rapi, dan tidak
memakai sandal.
Jujur, dilarang keras titip Absen
( bagi yg berhalangan hadir : Ada
surat keterangan sakit, dll. Dan izin
via sms maks. 2 x)
Referensi :
Rinaldi Munir, Algoritma dan Pemrograman
dalam bahasa Pascal dan C, Penerbit
Informatika Bandung
P. Insap Santosa, Ir ., M.Sc., Dasar dasar
Pascal, Teori dan Program Terapan
Budi Raharjo, Teknik Pemrograman Pascal,
Penerbit Informatika Bandung.
Donald Knuth, The art Computer
Programming, Vol.1 / fundamental
Algorithms. 2nd edition, Addison Wesleyl
Referensi dari internet
beberapa langkah umum dalam pembuatan suatu
program yaitu
Mendefinisikan masalah
mendefinisikan permasalahan. langkah ini harus
dilakukan untuk menentukan masalah yang ada serta
ditentukan pula input dan output program
Mencari solusinya
Bila untuk mendapatkan solusi harus melalui langkah
yang terlalu rumit dapat dilakukan pembagian masalah
dalam beberapa modul-modul kecil agar mudah untuk
dikerjakan. Lalu modul-modul kecil tersebut
digabungkan menjadi satu untuk dapat menentukan
solusi.
Menentukan algoritma
Menulis program
Menguji program
Mendokumentasikan program
Merawat program
Apa itu Algoritma
Algoritma adalah urutan langkah-langkah
logis penyelesaian masalah yang disusun
secara sistematis dan logis.
- Kata logis merupakan kata kunci dalam
algoritma.
- Urutan logis/langkah-langkah dalam
algoritma harus dapat ditentukan dengan
nilai Benar(TRUE) atau Salah(FALSE).
Algoritma adalah jantungnya Ilmu
komputer/ Informatika
Apakah Itu Algoritma
para ahli sejarah matematika menemukan
asal kata tersebut yang berasal dari nama
penulis buku arab yang terkenal yaitu Abu
Jafar Muhammad Ibnu Musa Al-Khuwarizmi
Al-Khuwarizmi dibaca orang barat menjadi
Algorithm
Al-Khuwarizmi menulis buku yang berjudul
Kitab Al Jabar Wal- Muqabala yang artinya
Buku pemugaran dan pengurangan
Algoritma Dalam
Kehidupan.
Tanpa disadari kita sering menerapkan
algoritma dalam kehidupan sehari-
hari, seperti :
Memasak resep makanan
Mencuci Baju
Mandi
dll
Contoh Algoritma :

Misalkan ada 2 Ember yang berisi air(larutan) yang


berwarna, (anggap saja Ember A dan Ember B).
Ember A berisi air yang berwarna Merah,
sedangkan Ember B berisi air yang berwarna Biru.
Volume kedua ember tersebut sama.

Pertanyaannya? : Bagaimanakah cara


pertukaran isi kedua ember itu sehingga nanti
akan menjadi Ember A berisi air warna Biru, dan
Ember B berisi air warna Merah?
Algoritmanya :

Kondisi Awal : Ember A (Berisi air


warna Merah) dan Ember B (Berisi air
warna Biru).
Kondisi Ahir :Ember A (Berisi air
warna Biru) dan Ember B (Berisi air
warna Merah).

Algoritma menghasilkan Efek Netto


Penyelesainyan :
Algoritma - deskriptif

Tambahkan satu Ember kosong,


(Anggap saja Ember C).
Tuang ember A ke ember C
Tuang ember B ke ember A
Tuang ember C ke ember B
Selesai.
BAHASA PEMROGRAMAN.
Untuk melaksanakan suatu algoritma,
diperlukan suatu bahasa pemrograman,
contoh : Pascal, C++, Visual Basic, dll.
Notasi algoritma dapat diterjemahkan kedalam
bahasa pemrograman apapaun, dengan kata
lain notasi algoritma bersifat independen.
Notasi Algoritmik :
- Deskripsi
- Flow Chart
- Kode Pesudo
Program : instruksi (coding)
Pemrogram : yang membuat
program
Pemrograman : kegiatan yang
dilakukan untuk merancang dan
menulis program
Bahasa Pemrograman : bahasa yang
digunakan dalam membuat program
yang dimengerti oleh komputer.
Beda Algoritma dan Program
Program adalah kumpulan pernyataan komputer
Algoritma adalah metode dan tahapan
sistematis dalam program
Program ditulis dengan menggunakan bahasa
pemrograman.
Jadi program adalah suatu implementasi dari
bahasa pemrograman.
Program = Algoritma + Bahasa (Struktur Data)
bagaimanapun juga struktur data dan algoritma
berhubungan sangat erat pada sebuah program.
Algoritma yang baik tanpa pemilihan struktur data
yang tepat akan membuat program menjadi kurang
baik, demikian juga sebaliknya.
Algoritmna merupakan kerangka
dasar dari konsep suatu program
untuk menyelesaikan masalah .
Algoritma tidak terikat dari suatu
bahasa pemrograman manapun atau
dengan kata lain bahasa yang
digunakan adalah bebas dengan
bahasa apapun, baik memakai
bahasa Indonesia, bahasa Inggris
atau bahasa lainnya.
Setiap orang punya pola pikir yang
berbeda, karena itu akan menghasilkan
algoritma yang berbeda
Algoritma dikatakan benar apabila dapat
memecahkan masalah
Perlu dipertimbangkan masalah efisiensi
dalam penyusunan algoritma
Pemilihan rute jalan, misalnya :
Beberapa rute mungkin akan menghasilkan
tujuan yang sama
Ada rute yang lebih efisien dibanding rute
lainnya
Sebaiknya yang diambil adalah rute terpendek
case
Algoritma - deskriptif :
{ sisi A : (P, S, K, Y) sisi B : ()}
1. Pemuda menyeberangkan kambing dari sisi A ke sisi B
{ sisi A : (-, S, -, Y) sisi B : (P,-,K,-)}
2. Pemuda menyeberang sendiri dari sisi B ke sisi A
3. Pemuda menyeberangkan srigala dari sisi A ke sisi B
4. Pemuda menyeberangkan kambing dari sisi B ke sisi A
5. Pemuda menyeberangkan sayur dari sisi A ke sisi B
6. Pemuda menyeberangkan sendiri dari B ke A
7. Pemuda menyeberangkan kambing dari sisi A ke sisi B
{ sisi A : () sisi B : (P, S, K, Y) }
Kriteria/ Aspek Penting dari
Algoritma
1. Finiteness
Algoritma harus berhenti after a finite
number of steps
2. Definiteness
Setiap langkah harus didefinisikan
secara tepat, tidak boleh membingungkan
(ambiguous)
3. Input
Sebuah algoritma memiliki nol atau lebih
input yang diberikan kepada algoritma
sebelum dijalankan
4. Output
Sebuah algoritma memiliki satu atau
lebih output, yang biasanya bergantung
kepada input
5. Effectiveness
Setiap orang punya pola pikir yang
berbeda, karena itu akan menghasilkan
algoritma yang berbeda
Algoritma dikatakan benar apabila dapat
memecahkan masalah
Perlu dipertimbangkan masalah efisiensi
dalam penyusunan algoritma
Pemilihan rute jalan, misalnya :
Beberapa rute mungkin akan menghasilkan
tujuan yang sama
Ada rute yang lebih efisien dibanding rute
lainnya
Sebaiknya yang diambil adalah rute terpendek
Pertimbangan dalam pemilihan
algoritma
pertama, algoritma haruslah benar. Artinya algoritma akan memberikan
keluaran yang dikehendaki dari sejumlah masukan yang diberikan. Tidak
peduli sebagus apapun algoritma, kalau memberikan keluaran yang salah,
pastilah algoritma tersebut bukanlah algoritma yang baik
kedua yang harus diperhatikan adalah kita harus mengetahui seberapa
baik hasil yang dicapai oleh algoritma tersebut. Hal ini penting terutama
pada algoritma untuk menyelesaikan masalah yang memerlukan
aproksimasi hasil (hasil yang hanya berupa pendekatan). Algoritma yang
baik harus mampu memberikan hasil yang sedekat mungkin dengan nilai
yang sebenarnya.
Ketiga adalah efisiensi algoritma. Efisiensi algoritma dapat ditinjau dari 2
hal yaitu efisiensi waktu dan memori. meskipun algoritma memberikan
keluaran yang benar (paling mendekati), tetapi jika kita harus menunggu
berjam-jam untuk mendapatkan keluarannya, algoritma tersebut biasanya
tidak akan dipakai, setiap orang menginginkan keluaran yang cepat.
Begitu juga dengan memori, semakin besar memori yang terpakai maka
semakin buruklah algoritma tersebut.
FLOWCHART
Flowchart lebih baik dibandingkan pseudocode
Merupakan gambaran dalam bentuk diagram alir
dari algoritma-algoritma dalam suatu program
yang menyatakan arah alur program tersebut
Disajikan dalam bentuk grafik/gambar
Dapat membantu programmer maupun orang lain
dalam memahami alur program (apa saja input,
proses dan output dari program)
Representasi visual, karena itu lebih mudah
dipahami
Jumlah simbol yang digunakan sedikit, karena itu
lebih sederhana dan lebih mudah dipelajari
Flow Chart
flow chart (diagram alir)
(menggambarkan urutan langkah-
langkah kegiatan /program mulai dari
awal sampai akhir dengan
menggunakan simbol atau gambar
tertentu.)
Kegunaan : mendesain dan
mempresentasikan program
Kaidah-Kaidah Umum
Pembuatan Flowchart Program
Dalam pembuatan flowchart Program
tidak ada rumus atau patokan yang
bersifat mutlak. Karena flowchart
merupakan gambaran hasil
pemikiran dalam menganalisis suatu
masalah dengan komputer. Sehingga
flowchart yang dihasilkan dapat
bervariasi antara satu pemrogram
dengan yang lainnya.
Namun secara garis besar setiap
pengolahan selalu terdiri atas 3
bagian utama, yaitu:
Input,
Proses pengolahan dan
Output
Untuk pengolahan data dengan komputer, urutan
dasar pemecahan suatu masalah:

START, berisi pernyataan untuk persiapan peralatan


yang
diperlukan sebelum menangani pemecahan persoalan.
READ, berisi pernyataan kegiatan untuk membaca data
dari suatu peralatan input.
PROSES, berisi kegiatan yang berkaitan dengan
pemecahan
persoalan sesuai dengan data yang dibaca.
WRITE, berisi pernyataan untuk merekam hasil kegiatan
ke
peralatan output.
END, mengakhiri kegiatan pengolahan.
Walaupun tidak ada kaidah-kaidah yang baku dalam
penyusunan flowchart, namun ada beberapa
anjuran:

Hindari pengulangan proses yang tidak


perlu dan logika yang berbelit sehingga
jalannya proses menjadi singkat.
Jalannya proses digambarkan dari atas
ke bawah dan diberikan tanda panah
untuk memperjelas.
Setiap aliran proses harus ada akhirnya
Sebuah flowchart diawali dari satu titik
START dan diakhiri dengan END.
Lambang Flowchart
Terminator (mulai/selesai)

Input/output

Proses

Decision (percabangan)

Data Flow (Aliran data)

Preparation (pemberian nilai awal suatu


variabel)
Call (memanggil prosedur/fungsi)
Connector (di halaman yg sama

Connector ( di halaman lain)


Kasus:
Buatlah sebuah Algoritma dengan
menggunakan flowchart, mencari luas
persegi panjang.
Solusi:
Perumusan untuk mencari luas persegi
panjang adalah: L = p. l
di mana, L adalah Luas persegi
panjang, p adalah panjang
persegi, dan l adalah lebar persegi.
Keterangan 1:
1. Simbol pertama menunjukkan dimulainya sebuah program.
2. Simbol kedua menunjukkan bahwa input data dari p dan l.
3. Data dari p dan l akan diproses pada simbol ketiga dengan
menggunakan perumusan L = p. l
4. Simbol keempat menunjukkan hasil output dari proses dari simbol
ketiga.
5. Simbol kelima atau terakhir menunjukkan berakhirnya program
dengan tanda End.
kuis
Buatlah sebuah Algoritma dengan
menggunakan flowchart untuk
menghitung luas lingkaran!
Case (penggunaan Decision dalam
proses)
Membuat algoritma dengan flowchart
untuk menentukan apakah seorang
mahasiswa tersebut LULUS atau
GAGAL berdasar Nilai Akhir (NA)
yang didapat.
dengan ketentuan : Jika NA >= 60,
maka LULUS, kalau tidak, maka
GAGAL.
Buatlah algoritma dg flowchart untuk
menyelesaikan permasalahan di
INPUT :
TUGAS, UTS, dan UAS
Proses :
NA = (10%xABSEN)+(15%xTUGAS)+(25%XUTS)
+(50%XUAS)
Output :
NA ( Nilai akhir)
Pseudo Code
berupa pengkodean atau penandaan yang menyerupai
suatu program
Pseudo Code sering digunakan dalam penulisan algoritma.

Contoh : Mencari bilangan terkecil dari dua bilangan yang


dimasukkan.
Algoritma :
1. Masukkan bil pertama
2. Masukkan bil kedua
3. Jika bil pertama < bil kedua maka kerjakan langkah 4, bila
tidak maka dikerjakan langkah 5.
4. Tampilkan bil pertama
5. Tampilkan bil kedua
Menghitung rata-rata tiga buah data
Algoritma dengan struktur
Algoritma dengan
bahasa Natural (Deskriptif) pseudocode

- Baca bilangan a, b,
dan c input (a, b, c)
- Jumlahkan ketiga Jml = a+b+c
bilangan tersebut
Rerata = Jml/3
- Bagi jumlah tersebut
Output (Rerata)
dengan 3
- Tulis hasilnya
Latihan
Buatlah sebuah Algoritma program
dengan menggunakan notasi Pseudo
Code untuk menghitung luas
segitiga!
Nilai Terbesar Dari 2 Buah
Bilangan
deskriptif Pseudo code
Baca bilangan
pertama, dan bilangan
kedua
Input bil1, bil2
Bandingkan nilai
if bil1 > bil2, then
pertama dengan nilai
besar bil1
kedua.
Besar bil2
sehingga di dapat
nilai terbesar di antara Output(Besar)
kedua bilangan
tersebut.
Nilai Terbesar Dari 3 Buah
Bilangan
deskriptif Pseudo code
Baca bilangan pertama ,
bilangan kedua dan
bilangan ketiga Input bil1, bil2, bil3
Bandingkan nilai pertama Besar bil1
dengan nilai kedua.
If bil2 > Besar, then
Kemudian yang lebih besar
di antara nilai tersebut di
besar bil2
bandingkan dengan nilai If bil3 > besar, then
berikutnya (nilai ke tiga) besar bil3
sehingga di dapat nilai Output (besar)
terbesar di antara ketiga
variabel tersebut.
TIGA BAGIAN UTAMA PENULISAN
ALGORITMA :

Judul (Header)
Kamus
Algoritma
Contoh :
JUDUL ( Header)
Program Jumlah_Bilangan { judul algoritma }
KAMUS
Kamus :
c,d ,e: integer

ALGORITMA
Algoritma :
Input (c,d)
If c < d then
ec+d
Else
e c-d
Output( e )
TIPE DATA, OPERATOR DAN EKSPRESI

Program Komputer memanipulasi data (variabel


dan konstanta) di dalam memori.
TIPE DATA :
Untuk menyatakan tipe data dari sebuah
variabel (peubah) pada Deklarasi.
OPERATOR :
Menspesifikasikan operasi apa yang dapat
dilakukan terhadap peubah (variabel) dan
konstanta.
EKSPRESI :
Mengkombinasikan peubah-peubah dan dan
konstanta untuk menghasilkan hasil baru.
TIPE DATA
1. TIPE DATA DASAR :
Tipe yang dapat langsung dipakai.
2. TIPE DATA BENTUKAN :
Tipe dasar atau dari tipe bentukan lain
yang sudah didefinisikan sebelumnya.
1. TIPE DATA DASAR
Dalam pemrograman, yang termasuk
ke dalam tipe dasar adalah :
Bilangan lojik, bilangan bulat,
karakter, bilangan riil, dan string
Bilangan lojik, bilangan bulat, dan
karakter disebut juga dengan TIPE
ORDINAL (nilainya ada dalam
urutan).
BILANGAN LOJIK
NAMA TIPE :
Boolean
RANAH NILAI :
Dua buah nilai : Benar (true) dan Salah (false)
bilangan logik :benar 1, salah 0
KONSTANTA :
True dan False
OPERASI :
Operasi Logika atau operasi boolean
Operasi logika menghasilkan nilai : true atau
false
Operator logika : AND, OR dan XOR
BILANGAN LOJIK - next
a b not a a and b a or b a xor b

True True False True True False

True False False False True True

False True True False True True

False false True false False False


BILANGAN LOJIK - next
Contoh operasi logika :
Misalkan X, Y, dan Z adalah peubah
(variabel) bertipe boolean.
Dimana :
X bernilai true, Y bernilai false, dan Z bernilai
true
Maka :
operasi logika hasil
------------------------------------------
( x and y) or z true
A and ( y or z) true
Not (x and z) false
(y xor z) and y false
BILANGAN BULAT
Bilangan yang tidak mengandung pecahan desimal,
misal : 34, 8, 0, -17, 45678901, dsb
NAMA TIPE :
Integer
RANAH NILAI :

tipe Rentang nilai Format
Byte 0 .. 255 8 bit
Shortint -128 .. 127 8 bit
Word 0 .. 65535 16 bit
Integer -32768 .. 32767 16 bit
Longint -2147483648 .. 2147483647 32 bit
BILANGAN BULAT - next

Contoh ;
deklarasi :
X : byte
Y : integer
Maka :
Peubah X tidak dapat dioperasikan
untuk nilai-nilai di atas 255
Peubah Y tidak dapat dioperasikan untuk
nilai-nilai di atas 32767
Contoh program
Program salahtipe;
Uses
wincrt;
Var
a,b,x : shortInt;
Begin
a:=10;
b:=20;
X:=a*b; {x akan bernilai -56, bukan 200}
Writeln(Nilai x=, x);
End.
BILANGAN BULAT - next
KONSTANTA :
Harus ditulis tanpa mengandung titik desimal :
Contoh : 78, -14, 7654, 0, 5, 9999, dsb
OPERASI :
1. Operasi aritmetika :
+ (tambah)
- (kurang)
* (kali)
Div (hasil bagi bilangan bulat)
Mod (sisa hasil bagi)

Contoh :
3 + 10 hasil : 13
10 DIV 3 hasil : 3
10 MOD 3 hasil : 1
BILANGAN BULAT - next

2. Operasi Perbandingan :
Menghasilkan nilai boolean (true dan false)

< Lebih kecil


Lebih kecil atau sama dengan
> Lebih besar
Lebih besar atau sama dengan
= Sama dengan
Tidak sama dengan
Contoh : operasi perbandingan

3<8 True

74 > 101 False

17 = 17 True

(24 div 3) 8 false


BILANGAN RIIL
Bilangan yang mengandung pecahan
desimal : 3.65, 0.003, 29.0, .24, dll
NAMA TIPE :
Real
RANAH NILAI :

tipe Rentang nilai Format


Real 2.9 x 10 -39 .. 1.7 x 1038 6 byte
Single 1.5 x 10-45 .. 3.4 x 1038 4 byte
Double 5.0 x 10-324 .. 1.7 x 10308 8 byte
extended 3.4 x 10-4932 .. 1.1 x 104932 10 byte
BILANGAN RIIL - next
KONSTANTA :
harus ditulis dengan tanda titik desimal
contoh : 0.78, -14.2376, 0.0, .5, 99.0
OPERASI :
1. operasi Aritmetika
+ (tambah, -(kurang), *(kali), / (bagi)

Contoh:
6.4 + 5.7 hasil : 12.1
8.0 2.8 hasil: 5.2
10/2.5 hasil: 4.0 (operasi bilangan
campuran)
7.2 * 0.5 hasil : 3.6
BILANGAN RIIL - next
2. Operasi Perbandingan :
menghasilkan nilai boolean (true dan false)
< Lebih kecil
Lebih kecil atau sama dengan
> Lebih besar
Lebih besar atau sama dengan
Tidak sama dengan
Tipe bilangan riil tidak mengenal operator
kesamaan (=), karena bilangan riil tidak bisa
disajikan secara tepat oleh komputer,
Misal : 1/3 tidak sama dengan 0.33333, sebab 1/3
= 0.33333(dg angka 3 yg tidak pernah
berhenti).
KARAKTER
Semua huruf-huruf abjad, semua tanda
baca, karakter khusus, karakter kosong
(null) .
NAMA TIPE :
Char
RANAH NILAI :
Adalah semua huruf di dalam alfabet (a..z,
A..Z, angka desimal (0..9), tanda
baca(.,:,!,dll), operator
aritmetika(+,-,dll), karakter
khusus($,#,@,dll)
KONSTANTA :
Karakter harus diapit oleh tanda petik tunggal.
Contoh : h, y, ., , 9, $
KARAKTER - next
OPERASI :
Hanya Operasi Perbandingan :

< Lebih kecil


Lebih kecil atau sama dengan
> Lebih besar
Lebih besar atau sama dengan
= Sama dengan
Tidak sama dengan

Contoh :
a = a hasil: true
T = t hasil: false
BUATLAH program komputer dengan
bahasa pascal dengan ketentuan
sbb:
Lakukan perbandingan :
a > b
4#4
Simpanlah hasil masing perbandingan di
atas ke dalam variabel.
Tampilkanlah hasil perbadingan dari
proses perbandingan di atas!
STRING
Adalah untaian karakter dengan panjang
tertentu.
NAMA TIPE :
String
RANAH NILAI :
Deretan karakter yg telah didefinisikan pada
ranah karakter.
KONSTANTA :
Semua konstanta string harus diapit oleh tanda
petik tunggal.
Contoh: BANDUNG, ganesha, Jl. Pahlawan no.
76, , k768532, dll.
STRING - next
OPERASI :
1. Operasi Penyambungan
(Concatenation):
Operator : + (penyambungan, bukan
tambah)
Contoh :
Teknik + Informatika hasil : Teknik
Informatika
aaa + bbb hasil: aaa bbb
1 + 2 hasil: 12

2. Operasi Perbandingan :
STRING - next
2. Operasi Perbandingan
menghasilkan nilai boolean (true dan
false)
< Lebih kecil
Lebih kecil atau sama dengan
> Lebih besar
Lebih besar atau sama dengan
= Sama dengan
Tidak sama dengan

Contoh:
abcd = abc hasil: false
aku < AKU hasil: true
Latihan
Buatlah notasi Algoritma lengkap dengan
menggunakan pseudocode untuk :
Menyambungkan nilai string SAYA dengan nilai
string RAJIN
Ketentuan : antara SAYA dan RAJIN dipisahkan dengan
2 spasi
Menjumlahkan nilai 34.5 + 20
Buatlah variable untuk menampung nilai di atas,
dan tentuknn tipe data untuk masing variable
tsb!
Tampilkanlah hasil masing-masing proses di atas!
Latihan - next
Buatlah notasi Algoritma lengkap dengan
menggunakan pseudocode untuk
menghitung luas segitiga dengan ketentuan
sbb:
Berikanlah nilai bilangan bulat kepada alas dan
tinggi sebagai inputan.

Hitunglah luas segitiga dengan rumus :


Luas <-- (alas x tinggi)/2
Tampilkanlah hasil dari luas segitiga tersebut!
Latihan - next
Buatlah notasi Algoritma lengkap dengan
menggunakan pseudocode untuk
menghitung luas lingkarang dengan
ketentuan sbb:
Deklarasikanlah PHIE sebagai bilangan tetap
Berikanlah nilai bilangan bulat langsung
(assingment) kepada jari-jari sebagai inputan.
Hitunglah luas lingkaran dengan rumus :
Luas <-- PHIE x r x r
Tampilkanlah hasil dari luas lingkaran
tersebut!
Latihan - next
Buatlah notasi Algoritma lengkap dengan
menggunakan pseudocode untuk
menghitung luas lingkarang dengan
ketentuan sbb:
Deklarasikanlah PHIE sebagai bilangan tetap
Inputkan nilai jari jari dari inputan eksternal
(keyboard ) inputan tidak langsung (READ)
Hitunglah luas lingkaran dengan rumus :
Luas <-- PHIE x r x r
Tampilkanlah hasil dari luas lingkaran
tersebut!
Latihan - next
Buatlah Program dengan Bahasa Pascal
untuk menghitung luas persegi panjang
dengan ketentuan sbb:
Inputkan nilai panjang dan lebar pergi
panjang dari inputan eksternal (keyboard )
( inputan tidak langsung (READ))
Hitunglah luas persegi panjang rumus :
Luas <-- panjang x lebar
Tampilkanlah hasil dari luas persegi
panjang tersebut!
RANCANGAN OUTPUT

INPUTKAN BILANGAN 1 :
INPUTKAN BILANGAN 2 :

BILANGAN SEBELUM DITUKAR :


BIL 1 =
BIL 2 =

BILANGAN SETELAH SITUKAR:


BIL 1 =
BIL 2 =
Praktikum-pemberian nilai langsung

Algoritma : Bahasa pascal :


1. Judul : Program luas_lingkaran;
Program luas_lingkaran Uses wincrt;
Const
2. Kamus :
phie = 3.14;
const Var
phie = 3.14 r : integer;
r : integer luas : real;
luas : real Begin
3. Algoritma r := 5;
luas := phie * r * r;
r5
Write (luas
luas phie * r *r lingkaran :,luas:4:2);
output(luas:4:2) End.
Praktikum-pemberian nilai tidak langsung
(READ)
Algoritma : Bahasa pascal :
1. Judul : Program luas_lingkaran;
Program luas_lingkaran Uses wincrt;
2. Kamus : Const
const phie = 3.14;
Var
phie = 3.14
r : integer;
r : integer
luas : real;
luas : real
Begin
3. Algoritma
writeln(masukan jari-jari
Write (masukan jari- : );
jari :) read( r );
read( r ) luas := phie * r * r;
luas phie * r *r Write (luas:4:2);
output(luas) End.
Syarat penamaan (variabel, konstanta, nama type bentukan, nama
field, nama fungsi,nama prosedur)

Harus unik (tidak boleh dua buah nama


yang sama)
Harus dimulai dengan huruf alfabet (tidak
boleh dimulai dg angka, spasi, atau
karakter khusus lainnya)
Huruf besar dan huruf kecil tidak
dibedakan
Karakter penyusun nama hanya boleh
huruf alfabet, angka, dan _ (underscore)
Tidak boleh mengandung operator
aritmetika, relasional, tanda banca, dan
karakter khusus lainnya
Karakter tidak boleh dipisah dengan spasi
Contoh penamaan NAMA
Contoh yg salah Contoh yg benar

6titik Titik6 atau titik_6


Nilai ujian NilaiUjian atau Nilai_ujian
PT-1 PT_1 atau PT1
Hari! Hari
A1 A1
Yg diberi nama dalam Algoritma :

1. Peubah (variable) :
Tempat menyimpan nilai yg isinya dapat diubah
Contoh: X, nilai_ujian, jumlah : real
k : integer
2. Konstanta (constant)
Tempat penyimpanan di dalam memori yg
nilainya tetap selama pelaksanaan program
dan. Notasi yg digunakan adalah const
Contoh ;
const
phi = 3.14, Nmaks = 100, sandi =
xyz, dll
Yg diberi nama dalam Algoritma -next:
3. Tipe Bentukan :

Nama tipe bentukan diberikan oleh pemrogram


contoh:

Type
titik : record <x:real, y : real>
Type
Jam : record
< hh : integer {0..23}
mm : integer {0..59}
ss : integer {0..59} >

P : titik
J1, J2 : Jam

Titik dan Jam adalah nama tipe, sedangkan P adalah variabel yg bertipe Titik, J1 dan J2 adalah
variabel yg bertipe Jam
Yg diberi nama dalam Algoritma -next:

4. Nama Fungsi :
Function Maksimum (input A,B : integer)
integer
{ mengembalikan nilai terbesar antara A dan B}

Maksimum adalah nama fungsi

5. Nama prosedur :
Procedure Tukar(input/output A, B : integer)
{ mempertukarkan nilai A dan B}

Tukar adalah nama prosedur


NILAI dalam Algoritma
Nilai adalah besaran dari tipe data
yang terdefinisi (tipe dasar atau tipe
bentukan)
Dapat berupa data yg disimpan di
dalam peubah atau konstanta, nilai
dari hasil hitung, atau nilai yg dikirim
oleh fungsi
Pada ALgoritma, memanipulasi nilai
di dalam peubah/variabel (yg bertipe
sama)
Pengisian NIlai ke dalam Peubah
(Variable):
1. Pengisian secara langsung (assignment):
Mengisi sebuah nilai ke dalam peubah secara langsung (nilai yg
diisikan harus bertipe sama dg tipe peubah)
contoh :
M 16
PM*2
M P + 100
PP+M

2. Pembacaan :
Nilai peubah dapat diisi secara eksternal dafri piranti masukan,
misalnya dari keyboard, dari file, mouse, dsb.
Akan membaca sesuai apa yg kita masukkan (inputkan).
Contoh :
Read (M)
: komputer membaca nilai M yg diinputkan dari luar (mis:
keyboard), jika nilai yg diketik adalah 78, maka lokasi
memori yg bernama M sekarang berisi 78
EKSPRESI
Transformasi nilai menjadi keluaran
dilakukan melalui sutu perhitungan
(komputasi)
Cara perhitungan itu dinyatakan
dalam suatu ekspresi
Ekspresi terdiri atas :OPERAND dan
OPERATOR
Tiga macam ekspresi :
1. Ekspresi Aritmetik (operator aritmetik):
Contoh : a*b, a*b/c, a div b * c, a+b*c
: d a*b (tipe data d harus sama dengan hasil
hitungan ekspresi a*b)

2. Ekspresi Relasional (operator relasional):


Contoh : not ada, ada or ketemu, x < 5,
ada or (x=y), dll.

3. Ekspresi String (operator penyambungan (+))


Contoh :
Jl. Ganesa + No.12
Jenis Proses Algoritma
Algoritma berisi langkah2
penyelesaian suatu masalah
(berurut, pemilihan, pengulangan
aksi)

Konstruksi Algoritma :
Runtunan (sequence process)
Pemilihan (selection process)
Pengulangan (repetition process)
Runtunan (sequence
process)
Terdiri dari satu atau lebih pernyataan
Tiap pernyataan dikerjakan secara berurutan sesuai dg urutan
penulisannya
(sebuah instruksi dilaksanakan setelah instruksi sebelumnya selesai
dilaksanakan)

Bentuk umum :
proses 1
proses 2
proses 3

Contoh: mempertukarkan dua nilai dari dua buah variabel (peubah) A dan
B.
Algoritma :
1. isikan nilai A ke dalam C
2. isikan nilai B ke dalam A
3. isikan nilai C ke dalam B
Hasil akhir : varibel A berisi nilai dari varibale B, dan variabel B berisi nilai
LATIHAN
Buatlah Algoritma lengkap untuk
menukarkan 2 buah bilangan bulat, dengan
ketentuan sbb:
Input nilai lansung terhadap 2 buah variabel :
A = 150
B = 200
Lakukakanlah pertukaran nilai Variabel A dan B
Tampilkanlah Hasil pertukaran tsb!
Gunakanlah jenis Sekuential Proses untk
pertukaran dua buah variabel tsb!
Pemilihan (selection
process)
Sebuah aksi dikerjakan jika kondisi tertentu
dipenuhi (True) dan apabila suatu kondisi tidak
terpenuhi (false) maka program akan melakukan
aksi lain (jika ada) atau langsung keluar dari blok
pemilihan.
Contoh:
jika lampu traffic light berwarna merah,
maka berhenti
Dalam Algoritma dan pemrograman Struktur
pemilihan dapat didefinisikan dengan dua cara
yaitu menggunakan statemen IF atau CASE.
Struktur IF
Statemen IF akan diikuti oleh
ekspresi (sebagai kondsi yang
diperiksa) dan selalu berpasangan
dengan kata kunci THEN.

Bentuk umum dari selection process : IF


if kondisi then
aksi
Pemilihan (selection process)-IF-
next
Struktur pemilihan If-then : hanya
memberikan satu pilihan aksi
Struktur pemilihan If-then-else
Memilih satu dari dua buah aksi bergantung
pada nilai kondisinya.
bentuk umum : if kondisi then
aksi 1
else
aksi 2

Contoh : if x > y then


tulis x sebagai bilangan terbesar
else
tulis y sebagai bilangan terbesar
Algoritma Pemilihan satu Aksi (IF-
THEN)
Contoh:
Mencetak genap jika data masukan adalah bilangan genap.

Notasi Algoritma :

Program Genap
{mencetak pesan bilangan genap jika sebuah bilangan bulat yang
dibaca dari piranti masukan merupakan bilangan genap}

Kamus
x : integer

Algoritma
Read (x)
If x mod 2 = 0 then
write(genap)
endif
Algoritma Pemilihan dua aksi (IF-THEN-ELSE)

Contoh:
Mencetak genap jika data masukan adalah bilangan genap atau mencetak
ganjil jika data masukan adalah bilangan ganjil.

Notasi Algoritma :

Program Genap
{mencetak pesan bilangan genap jika sebuah bilangan bulat yang
dibaca dari piranti masukan merupakan bilangan genap dan
mencetak bilangan ganjil jika sebuah bilangan bulat yang dibaca
merupakan bilangan ganjil}

Kamus
x : integer

Algoritma
Read (x)
If x mod 2 = 0 then
write(genap)
Else
write(ganjil)
endif
Latihan IF
Buat program notasi algoritma
lengkap dengan pseuodocode untuk
menseleksi kondisi di bawah ini
Jika nilai >= 75 maka dinyatakan lulus
kalau tidak maka dinyatakan gagal
Gunakanlah konstruksi IF untuk
membuat seleksi proses di atas!
Pemilihan (selection process)-Nested-IF
Struktur pemilihan bersarang (nested-if) :
terdapat strktur IF didalam IF lainnya
Aksi yang dilakukan lebih dari 2 buah

Bentuk umum :
if kondisi1 then
aksi1
else if kondisi2 then
aksi2
else
aksi-alternatif

Contoh :
if x > y then
if x > z then
tulis x sebagai bilangan terbesar
else
tulis z sebagai bilangan terbesar
else
if y > z then
tulis y sebagai bilangan terbesar
else
tulis z sebagai bilangan terbesar
Tiga aksi atau lebih (Nested-IF)
Tiga kasus :
Empat kasus :
Notasi algoritma :
Notasi algoritma :
If kondisi1 then
aksi1 If kondisi1 then
Else aksi1
if kondisi2 then Else
aksi2 if kondisi2 then
else aksi2
if kondisi3 then else
aksi3 if kondisi3 then
endif aksi3
endif else
endif if kondisi4 then
aksi4
endif
endif
endif
endif
Algoritma Pemilihan tiga aksi atau lebih (Nested-IF )

Contoh:
Menentukan bilangan positif, negatif atau nol dari sebuah bilangan bulat yang diinput dari
piranti masukan.

Notasi Algoritma :

Program JenisBilanganBulat
{menentukanapakah sebuah bilangan bulat merupakan bilangan positif, negatif,
atau nol }

Kamus
x : integer

Algoritma
Read (x)
If x > 0 then
write(positif)
Else
if x < 0 then
write(negatif)
else
if x = 0 then
write(nol)
endif
endif
endif
Tugas
Buat Notasi Algoritma lengkap
dengan pseudocode untuk
menyeleksi 4 kasus dengan
menggunakan struktur seleksi proses
NESTED-IF
Transformasikanlah Algoritma di atas
ke dalam bahasa Pascal
kelebihan struktur/jenis proses pemilihan

kemampuannya yg memungkinkan
pemroses mengikuti jalur aksi yg
berbeda berdasarkan kondisi yg ada
Memungkinkan menulis algoritma
untuk permasalah praktis yg
demikian kompleks.
Struktur CASE
Konstruksi CASE dapat
menyederhanakan IF THEN ELSE
yang bertingkat (lebih dari 2 kasus)
Konstruksi CASE
CASE ekspresi if ekspresi = nilai1 then
Nilai1 : aksi1 aksi1
Nilai2 : aksi2 else
Nilai3 : aksi3 if ekspresi = nilai2 then
... aksi2
... else
Nilain : aksin if ekspresi = nilai3 then
Otherwise : aksix aksi3
endCASE else {otherwise}
aksi x
endif
endif
endif
----------------------------------------------------------------------------
Ekspresi menghasilkan suatu nilai (konstanta), range
dari konstanta yang bukan bertipe real.
Contoh CASE

Algoritma untuk membaca nomor hari (integer) ,


lalu menuliskan nama hari sesuai dengan angka
harinya.

-------------------------------------------------------------------------
------
Read(nomor_hari)
CASE nomor_hari
1: write(Minggu)
2: write(Senin)
3: write(Selasa)
4: write(Rabu)
5: write(Kamis)
6: write(Jumat)
7: write(Sabtu;)
Otherwise: write(bukan hari yang benar)
endCASE
NOTASI ALGORITMA
PROGRAM NamaHari
{ mencetak nama hari berdasarkan nomor hari (1..7) }

KAMUS
Nomor_hari : integer

ALGORITMA
Read(nomor_hari)
CASE nomor_hari
1: write(Minggu)
2: write(Senin)
3: write(Selasa)
4: write(Rabu)
5: write(Kamis)
6: write(Jumat)
7: write(Sabtu)
Otherwise: write(bukan hari yang benar)
endCASE
Tidak semua bahasa
pemrograman menyediakan
struktur CASE

Gunakan struktur IF-THEN-


ELSE
Ekuivalesi if-then-else dg CASE

If-Then-Else Case
Read(angka)
If angka = 1 then
write(satu)
Read(angka)
Else Case angka
if angka = 2 then
write(dua) 1: write(satu)
elses
if angka = 3 then 2: write(dua)
write(tiga)
elses
3: write(tiga)
if angka = 4 then
write(empat)
4: write(empat)
else otherwise
write(angka yg dimasukan salah)
endif :write(angka yg
endif dimasukan salah)
endif
endif endcase
Read(angka)
If angka = 1 then
write(satu)
Else
if angka = 2 then
write(dua)
else
if angka = 3 then
write(tiga)
else
if angka = 4 then
write(empat)
else
write(angka yg dimasukan salah)
endif
endif
endif
endif
Latihan CASE
Buat algoritma untuk konversikan
Huruf ke Status dari Nilai Mahasiswa,
dengan menggunakan Struktur
CASE.
Seperti :
A = Sangat Baik
B = Baik
C = Cukup
D = Kurang
E = Sangat Kurang
Uji kasus
Lihat hal 126 (hand book)
Jenis Proses : PENGULANGAN
(Repetition Process)

Kelebihan komputer dibanding


manusia adalah kemampuan untuk
melaksanakan perintah berulangkali
tanpa mengenal lelah dan bosan
Dalam algoritma, pengulangan
(repetition atau looping) dapat
dilakukan beberapa kali sampai
kondisi pemberhentian pengulangan
tercapai
Struktur Pengulangan
<inisialisasi>
Awal pengulangan
Badan pengulangan
Akhir pengulangan
<terminasi>

Inisialisasi dan terminasi tidak selalu harus


ada, namun pada beberapa kasus
inisialisasi umumnya diperlukan
Tiga konstruksi
pengulangan
FOR (pengulangan tanpa kondisi : jumlah pengulangan
sudah diketahui, sebelum konstruksi pengulangan
dieksekusi )
WHILE
REPEAT

WHILE dan REPEAT (pengulangan dengan kondisi :


jumlah pengulangan tidak diketahui sebelum eksekusi
program, yang dapat ditentukan hanyalah kondisi berhenti
pengulangan )
Pengulangan - FOR
Diperlukan sebuah peubah (variable)
pencacah (counter) untuk
menghitung sudah berapa kali
pengulangan dilakukan
Bentuk umum pengulangan FOR ada
dua macam :
FOR menaik (ascending) / FOR positif
FOR menurun (descending) / FOR
negatif
FOR menaik (ascending) / FOR positif

Bentuk umum:
For pencacahnilai_awal to nilai_akhir
do
Aksi
Endfor
Contoh pengulangan FOR Positif untuk
Satu Aksi
PROGRAM cetak_satuaksi
KAMUS
i: integer {pencacah pengulangan}

ALGORITMA
For i1 to 5 do {ulang sebanyak 5 kali}

Write(I Love Dinda) {aksi yang diulang}

endfor
Contoh Notasi Algoritma pengulangan FOR
Positif untuk membuat tabel

PROGRAM cetak_tabel
KAMUS
a,b,c: integer
Bagi : real;
ALGORITMA
Write(-----------------------------------)
write(a a*a a*a*a 1/a)
Write(-----------------------------------)
for a1 to 10 do
b a*a
c a*a*a
bagi 1/a
Write(a,b,c,bagi)
Endfor
Write(-----------------------------------)
FOR menurun (descending) / FOR
negatif

Bentuk umum:

For pencacahnilai_akhir downto nilai_awal do


Aksi
Endfor
Contoh pengulangan FOR Negatif
untuk Satu Aksi
PROGRAM cetak_ulangnegatif
KAMUS :
i: integer {pencacah pengulangan}

ALGORITMA :
For i10 downto 1 do {ulang sebanyak 10 kali
secara menurun}
Write(i) {Aksi yang diulang}

endfor
Pengulangan FOR tersarang
(nested-FOR)
Perulangan FOR berada pada
perulangan FOR yang lainnya
Perulangan yang lebih dalam akan
diproses terlebih dahulu sampai
habis, kemudian perulangan yang
lebih luar baru akan bertambah,
masuk lagi ke perulangan dalam
sampai habis, dst. Dan berakhir pada
akhir pengulangan luar.
Contoh :Pengulangan FOR tersarang
(nested-FOR)
PROGRAM nested_for
KAMUS
I,j: integer {pencacah pengulangan}

ALGORITMA
For i1 to 3 do
For j1 to 2 do
write(i,j)
endfor
Endfor
Contoh Tampilan

tampilan For a 1 to 5 do
1 for b 1 to a do
12 write(b, )
123
endfor
1234
12345 writeln
Endfor

Tampilan For a 5 downto 1 do


54321 for b a downto 1 do
4321
write(b)
321
21 endfor
1 writeln
endfor
LATIHAN: NESTED - FOR
FOR A 2 TO 3 DO
FOR B 1 TO 2 DO
FOR C 0 TO 1 DO
WRITELN(A,B,C)
ENDFOR
ENDFOR
ENDFOR
bb
Buatlah Algoritma lengkap untuk
menginputkan data bilangan genap
dari inputan eksternal (keyboard)
sebanyak 4 bilangan :
Hitunglah jumlah semua bilangan tsb?
Hitunglah rata-rata dari semua bilangan
yang anda inputkan tsb!
Tampilkanlah jumlah dan rata_rata tsb!
Struktur pengulangan- repeat-
until
Bentuk umum :
Repeat
aksi
Until kondisi
(pengulangan aksi dilakukan hingga
kondisi berhenti terpenuhi)
- Pengulangan akan dijalankan terus
kalau kondisi masih bernilai FALSE
- Pengulangan berhenti, jika kondisi
bernilai TRUE
Contoh :
ALGORITMA :

I1
Repeat
write (hello pascal)
II+1
Until I > 10
Struktur pengulangan: while-do
Bentuk umum :

While kondisi do
Aksi

: selama kondisi (persyaratan) pengulangan


masih benar, maka aksi dikerjakan
Contoh WHILE-DO
Algoritma :
I0
While I < 5 do
Write (I)
II+1
endwhile
while-do vs repeat-until

Repeat-until vs while-do
Kondisi pengulangan kondisi pengulangan
Di evaluasi di akhir di evaluasi di awal

Pernyataan REPEAT memiliki makna yang sama dg WHILE


Dalam beberapa masalah kedua pernyataan tsb komplemen
satu sama lain.

Paling sedikit statemen-statemen dalam repeat until diproses


sekali, karena seleksi kondisi ada pada statemen until yang
terletak dibawah.
Pada while do paling sedikit dikerjakan nol kali, karena seleksi
kondisi ada pada statemen while yang terletak diatas, sehingga
apabila kondisi tidak terpenuhi maka tidak akan masuk ke dalam
lingkungan perulangannya.
Kedua script diatas sengaja dibuat nilai awal yang tidak memenuhi kondisi
pada tiap perulangan, baik repeat...until maupun while-do. Jika kedua script
diatas dijalankan maka script dengan perulangan while-do tidak akan
menampilkan hasil apapun, sementara script dengan perulangan
repeat...until tetap akan menjalankan statement program minimal satu kali,
dan menampilkan hasil seperti ini:
WHILE atau REPEAT ?
Gunakan konstruksi WHILE pada
kasus yg mengharuskan terlebih
dahulu pemeriksaan kondisi objek
sebelum objek dimanipulasi
Gunakan konstruksi REPEAT pada
kasus yg terlebih dahulu
memanipulasi objek, baru kemudian
memeriksa kondisi objek tsb.
perbandingan
WHILE (benar) Repeat ( salah)
ALGORITMA :
ALGORITMA :
S0
S0
Read(x)
Repeat
While x 0 do
read(x)
s s + 1/x
s s + 1/x
read(x)
Until x = 0
Endwhile
Write (s)
Write (s)
perbandingan

Repeat ( benar) While (salah)


ALGORITMA :
ALGORITMA :
Repeat
While nomormenu 3 do
write( MENU )
write( MENU )
write(1. Baca Data)
write(1. Baca Data)
write(2. cetak data)
write(2. cetak data)
write(3. keluar)
write(3. keluar)
write(masukan pilihan
write(masukan pilihan
anda(1/2/3) ? )
anda(1/2/3) ? )
read(nomormenu)
read(nomormenu)
case nomormenu
case nomormenu
1 : write (anda memilih menu
1 : write (anda memilih menu
nomor 1)
nomor 1)
2 : write(anda memilih meniu
2 : write(anda memilih meniu
nomo 2)
nomo 2)
3 : write(keluar program
3 : write(keluar program
endcase
endcase
endwhile
Until nomormenu = 3
Latihan

Buatlah sebuah algoritma lengkap, untuk


menghitung jumlah deret bilangan bulat dari
3 sampai dengan 10. dengan menggunakan
konstruksi pengulangan REPEAT-UNTIL !
Transformasika algoritma di atas ke program
komputer dg bahasa pascal
Lakukan modifikasi algoritma dan program
komputer di atas untuk menghitung nilai
rata-rata, dan tampilkanlah nilai rata-rata
tsb.
PEMROGRAMAN MODULAR
adalah suatu teknik pemrograman di
mana program yang biasanya cukup
besar dibagi-bagi menjadi beberapa
bagian program yang lebih kecil .
Dalam beberapa bahasa
pemrograman disebut : sub-rutin,
modul, prosedur, atau fungsi.
STRUKTUR POHON
ILUSTRASI
DEKLARASI
A, B, Temp : integer
ALGORITMA
{ baca nilai A dan B}
read(A)
read(B)
{proses pertukaran}
temp A
AB
B temp
{ tulis nilai A dan B setelah pertukaran }
output(A)
output(B)
Dipecah subprogram
DEKLARASI
A, B : integer

Baca
ALGORITMA:
read(A)
read(B)

Tukar
DEKLARASI
temp : integer {peubah bantu}
ALGORITMA
temp A
AB
B temp
Tulis
ALGORITMA
output(A)
output(B)

ALGORITMA
Baca
Tukar
Tulis
KEUNTUNGAN Pemrogram Modular

1. Program lebih pendek


2. Mudah menulis (banyak
programer)
3. Mudah dibaca dan dimengerti
(bandingkan dg nonmodular dg
banyak instruksi)
4. Mudah didokumentasi
5. Mengurangi kesalahan dan mudah
mencari kesalahan(debug) program
6. Kesalahan yang terjadi bersifat
lokal
Dua bentuk pemrogram modular :
PROSEDUR dan FUNGSI
Struktur setiap subprogram tersebut pada
hakekatnya sama , yaitu :
Nama modul (subprogram)
Bagian deklarasi
Algoritma (intruksi yg akan dilaksanakan)
Perbedaan penggunaannya dalam bahasa
pemrograman Pascal :
Prosedur merupakan modul(subprogram) yg
melakukan aktifitas tertentu tanpa adanya
pengembalian nilai
Fungsi terdapat pengembalian nilai
PROSEDUR
Dalam bahasa pemrograman
Prosedur adalah modul program yang
mengerjakan tugas/aktifitas yg
spesifik dan menghasilkan suatu efek
netto (membandingkan keadaan awal
dan keadaan akhir dari suatu aktifitas
prosedur)
Setiap prosedur perlu mendefinisikan
keadaan awal sebelum rangkaian
instruksi di dalam prosedur
dilaksanakan, dan keadaan akhir yg
diharapkan setelah instruksi di dalam
Prosedur - next
prosedur bekerja dengan mekanisme
pemanggilan-pengembalian (call-
return mechanism ), yaitu dengan
urutan langkah:
1. Prosedur dipanggil oleh kode
pemanggil (program utama
maupunprosedur lainnya)
2. Sekumpulan operasi yang disimpan
dalam prosedur dieksekusi.
3. Kontrol dikembalikan ke kode
pemanggil
STRUKTUR PROSEDUR
JUDUL (header) nama prosedur
dan deklarasi parameter(kalau ada)
DEKLARASI mengumumkan nama-
nama dan tipe data
ALGORITMA badan prosedur
(instruksi)

*sama dengan struktur ALGORITMA


Nama Prosedur
Nama yang unik
Sebaiknya diawali dengan kata kerja
karena prosedur berisi suatu aktifitas
Misalnya: HitungLuas, Tukar,
CariMaks, Tulis, dll.
Parameter
Adalah nama-nama peubah
(variabel) yang dikdeklarasikan pada
bagian header (judul) prosedur dan
titik dimana dia dipanggil.
Penggunaan parameter menawarkan
mekanisme pertukaran informasi
(antara yg memanggil
(program/algoritma utama) dg
prosedur itu sendiri)
Parameter dibedakan menjadi
dua :
Parameter aktual (argumen) :
Parameter yg disertakan pada waktu pemanggilan
prosedur (parameter yg ada pada program/algoritma
utama).
Parameter formal :
Parameter yg dideklarasikan di dalam bagian header
prosedur itu sendiri.

Ketika prosedur dipanggil, parameter aktual


menggantikan parameter formal.
Tiap-tiap parameter aktual berpasangan dengan
parameter formal yg bersesuain (berkorespondasi
satu satu)
Notasi algoritma untuk
PROSEDUR
Procedure NamaProsedur(deklarasi
parameter, jika ada)
{spesifikasi prosedur, berisi penjelasan tentang apa yg
dilakukan oleh prosedur ini.
K.awal : keadaan sebelum prosedur dilaksanakan.
K. akhir : keadaan setelah prosedur dilaksanakan}
DEKLARASI
{semua nama yg dipakai di dalam prosedur dan hanya
berlaku lokal di dalam prosedur ini}
ALGORITMA
{badan prosedur, berisi urutan instruksi}
Pendeklarasian Parameter dalam
prosedur bukanlah keharusan

Contoh :
Procedure HitungLuasSegitiga
{menghitung luas segitiga dengan rumus : L = (alas x tinggi)/2}
{K.awal : sembarang}
{K.akhir : luas segitiga tercetak}
DEKLARASI
Alas, tinggi, luas : real
ALGORITMA
Read(alas, tinggi)
Luas (alas * tingg) / 2
Write(luas)
Pemanggilan Prosedur

Prosedur bukan program yg beridiri sendiri


Prosedur tidak dapat dieksekusi secara
langsung.
Instruksi-instruksi di dalam prosedur dapat
dilaksanakan bila prosedur itu diakses.
Prosedur diakses dg cara memanggil
namanya dari program pemanggil
(misalnya dari program utama atau modul
program lainnya)
Jika prosedur tanpa parameter, maka
pemanggilannya cukup dg nama
prosedurnya saja, contoh :
HitungLuasSegitiga
Notasi Algoritma :
PROGRAM Segitiga
{menghitung luas segitiga}
DEKLARASI
Procedure HitungLuasSegitiga
{menghitung luas segitiga dengan rumus : L = (alas x tinggi)/2}
{K.awal : sembarang}
{K.akhir : luas segitiga tercetak}
DEKLARASI
Alas, tinggi : integer
luas : real
ALGORITMA
Read(alas, tinggi)
Luas (alas * tinggi) / 2
Write(luas)
ALGORITMA
HitungLuasSegitiga
KUIS
BUATLAH NOTASI ALGORITMA UNTUK
MELAKUKAN PEMANGGILAN
PROSEDUR LUAS_LINGKARAN
SEBANYAK 3 X
PROGRAM LATIHAN
CONST
PHIE = 3.14
I : INTEGER
PROCEDURE LUAS_LINGKARAN
KAMUS :
R : INTEGER
L : REAL
ALGORITMA:
READ(R)
L PHIE X R X R
WRITE ( L:4:2)

ALGORITMA :
FOR I 1 TO 3 DO
LUAS_LINGKARAN
ENDFOR
Nama Global dan Nama
Lokal
Nama Lokal :
Nama-nama (Konstanta, peubah(variabel), tipe,
dll) yang dideklarasikan di dalam prosedur
(termasuk parameter, jika ada). (hanya
dikenal/digunakan dalam lingkup (scope)
prosedur tersebut

Nama Global :
Nama-nama (Konstanta, peubah(variabel), tipe,
dll) yang dideklarasikan di dalam program
utama. (dapat dikenal/digunakan dibagian
manapun dalam program (progam utama
maupun prosedur).
PROGRAM Segitiga
{menghitung luas N buah segitiga}
DEKLARASI
I, N : integer
alas, tinggi : real
Procedure HitungLuasSegitiga
{menghitung luas segitiga dengan rumus : L = (alas x tinggi)/2}
{K.awal : sembarang}
{K.akhir : luas segitiga tercetak}
DEKLARASI
luas : real
ALGORITMA
Luas (alas * tinggi) / 2
Write(luas)
ALGORITMA
read(N) { tentukan banyaknya segitiga }
for I 1 to N do
read(alas, tinggi
HitungLuasSegitiga
endfor

_______________________________________________________________Nama Peubah
(variabel) I, N, alas, tinggi variabel GLOBAL
Nama Peubah (variabel) luas variabel LOKAl
Menggunakan variabel Global atau variabel
Lokal

Bila suatu peubah (variabel) digunakan di


seluruh bagian program (baik program
utama maupun prosedur), maka
deklarasikanlah peubah tsb secara Global.
Bila suatu peubah (variabel) hanya
digunakan di dalam prosedur, maka
deklarasikanlah peubah tsb secara Lokal.
Gunakan peubah global sedikit mungkin
Penggunaan variabel lokal membuat
program lebih elegan
Penggunaan variabel lokal dapat
meminimumkan usaha pencarian
kesalahan yg disebabkan oleh nama-nama
tsb.
Parameter
Prosedur yg baik adalah prosedur yg
independen dari program utama/
program yg memanggilnya.
Prosedur yg baik tidak menggunakan
peubah-peubah global di dalam
prosedur.
Jika program utama perlu
mengomunikasikan nilai peubah
Global ke dalam prosedur, maka
gunakanlah PARAMETER.
Parameter - next
Penggunaan parameter adalah mekanisme
pertukaran informasi antara prosedur
dengan yang memaggilnya (program
utama maupun subprogram lainnya).
Prosedur dengan parameternya
(Parameter Formal) dapat diakses dg
cara memanggil namanya dari program yg
memanggilnya yg disertai dg parameter
dari program yg memanggil tsb
(Parameter Aktual).
Contoh: NamaProsedur(parameter
aktual)

Parameter - next
Ketika prosedur dipanggil, parameter
aktual berkoresponden satu-satu
dengan parameter formal (parameter
yg dideklarasikan pada bagian
header prosedur)
Aturan korespondensi satu
satu
Jumlah parameter aktual harus sama
dengan jumlah parameter formal.
Tiap parameter aktual harus bertipe
sama dengan tipe parameter formal
yg sesuai.
Tiap parameter aktual harus
diekspresikan dalam cara yg taat
azas dg parameter formal yg
bersesuaian, bergantung pada jenis
parameter formal.
Jenis parameter formal yg
disertakan di dalam prosedur :
Parameter Masukan (input
parameter) :
Parameter yg nilainya berlaku sebagai masukan
untuk prosedur.
Parameter Keluaran (Output
parameter):
Parameter menampung keluaran yg dihasilkan
oleh prosedur.
Parameter masukan/keluaran
(input/output parameter) :
Parameter yg berfungsi sebagai masukan
sekaligus keluaran bagi prosedur tsb.
Parameter masukan
Nilai parameter aktual diisikan ke
dalam parameter formal yg sesuai.
Perubahan nilai parameter di dalam
badan prosedur tidak mengubah nilai
parameter aktual.
Nama parameter aktual boleh
berbeda dg nama parameter formal
yg sesuai
Contoh : paramater
masukan
Procedure HitungLuasSegitiga(input
alas, tinggi : real)
{menghitung luas segitiga dengan rumus : L = (alas x
tinggi)/2}
{K.awal : alas dan tinggi sudah terdefinisi nilainya}
{K.akhir : luas segitiga tercetak}
DEKLARASI
luas : real
ALGORITMA
Luas (alas * tinggi) / 2
Write(luas)
Program utama yg memanggil nama prosedur:
harus mendeklarasikan nama prosedur dan memanggilnya dg
parameter aktual yg sesuai

PROGRAM Segitiga
{menghitung luas N buah segitiga}
DEKLARASI
I, N : integer
alas, tinggi : real
Procedure HitungLuasSegitiga(input alas, tinggi : real)
{menghitung luas segitiga dengan rumus : L = (alas x tinggi)/2}
{K.awal : alas dan tinggi sudah terdefinisi nilainya }
{K.akhir : luas segitiga tercetak}
DEKLARASI
luas : real
ALGORITMA
Luas (alas * tinggi) / 2
Write(luas)
ALGORITMA
read(N) { tentukan banyaknya segitiga }
for I 1 to N do
read(alas, tinggi
HitungLuasSegitiga(alas,tinggi)
endfor
nama parameter aktual tidak harus sama dengan
nama parameter formal : yg dipentingkan adalah
nilainya
PROGRAM Segitiga
{menghitung luas N buah segitiga}
DEKLARASI
I, N : integer
a, t : real
Procedure HitungLuasSegitiga(input alas, tinggi : real)
{menghitung luas segitiga dengan rumus : L = (alas x tinggi)/2}
{K.awal : alas dan tinggi sudah terdefinisi nilainya }
{K.akhir : luas segitiga tercetak}
DEKLARASI
luas : real
ALGORITMA
Luas (alas * tinggi) / 2
Write(luas)
ALGORITMA
read(N) { tentukan banyaknya segitiga }
for I 1 to N do
read(a, t)
HitungLuasSegitiga(a,t)
endfor
Parameter aktual boleh berupa
ekspresi atau konstanta
Contoh :

HitungLuasSegitiga(a*0.2, t*0.1)

HitungLuasSegitiga(12, 6)
Latihan :
Buatlah algoritma lengkap untuk
menghitung proses di dalam sub program
dengan menggunakan PROCEDURE,
dimana rumus proses tersebut adalah X =
A x 10, dimana nilai A yang ada pada
procedure tersebut di dapat dari nilai yang
diberikan oleh program utama sebagai
parameter input.
Buatlah parameter aktual dan parameter
formal dari Algoritma di atas!
Parameter keluaran
Parameter keluaran dideklarasikan di
dalam header prosedur, sebagaimana
parameter masukan
Parameter keluaran dideklarasikan dengan
keyword OUTPUT.
Ketika prosedur yg mengandung
parameter keluaran dipanggil, maka nama
parameter aktual menggantikan
(substitute) nama parameter formal yg
bersesuaian.
Contoh : parameter keluaran-next
PROGRAM Segitiga
{menghitung luas N buah segitiga}
DEKLARASI
I, N : integer
a, t, L : real
Procedure HitungLuasSegitiga(input alas, tinggi : real,
output luas:real)
{menghitung luas segitiga dengan rumus : L = (alas x tinggi)/2}
{K.awal : alas dan tinggi sudah terdefinisi nilainya }
{K.akhir : luas segitiga tercetak}
ALGORITMA
Luas (alas * tinggi) / 2
ALGORITMA
read(N) { tentukan banyaknya segitiga }
for I 1 to N do
read(a, t)
HitungLuasSegitiga(a, t, L)
Write(L)
endfor
Parameter
masukan/keluaran
Prosedur harus dapat mengakomodasi
baik masukan dari dan keluaran ke blok
program pemanggil
Maka gunakan parameter masukan/
keluaran
Bila parameter aktual diubah nilainya di
dalam badan prosedur, maka sesudah
pemanggilan prosedur nilai parameter
aktual di titik pemanggilan juga berubah
Parameter masukan/keluaran
dideklarasikan di dalam header prosedur
dengan keyword INPUT/OUTPUT
Parameter aktual harus berupa peubah,
tidak boleh berupa ekspresi atau
konstanta
Contoh : parameter masukan/keluaran
PROGRAM Cetak0Sampai10
{ mencetak nilai dari 0 sampai 10 }

DEKLARASI
x : integer
procedure Inc(input/output x : integer)
{menaikan nilai x sebesar 1}
{K.Awal : x sudah terdefinisi nilainya}
{K.Akhir : nilai x bertambah 1}
DEKLARASI

ALGORITMA
xx+1

ALGORITMA
X0
repeat
writeln(x)
inc(x)
until x > 10
Parameter masukan - parameter masukan/keluaran

PROGRAM xyz
PROGRAM xyz DEKLARASI
DEKLARASI a, b : integer
a, b : integer Procedure tambah(input/output
x,y:integer)
Procedure tambah(input Deklarasi
x,y:integer) Algoritma
Deklarasi xx+4
Algoritma Y y +4
write(nilai x dan y di akhir prosedur
xx+4 tambah:)
Y y +4 Write( x=, x)
write(nilai x dan y di akhir Write( y=, y)
ALGORITMA
prosedur tambah:)
a 15
Write( x=, x) B 10
Write( y=, y) Write(nilai a dan b sebelum panggil
ALGORITMA prosedur tambah:)
a 15 Write( a=, a)
Write( b=, b)
B 10
Tambah(a,b)
Write(nilai a dan b sebelum Write(nilai a dan b sesudah panggil
panggil prosedur tambah:) prosedur tambah:)
Write( a=, a) Write( a=, a)
Write( b=, b)
Write( b=, b)
Tambah(a,b)
Write(nilai a dan b sesudah
Program dg prosedur atau
tanpa prosedur
Dianjurkan menulis program yg
modular
Program yg dipecah menjadi
beberapa prosedur menunjukkan
teknik pemrograman yg baik dan
terstruktur
Prosedur dg parameter atau
tanpa parameter
Dianjurkan menulis prosedur dg
parameter
Parameter dapat mengurangi
kebutuhan penggunaan peubah
(variabel) global
Parameter masukan atau
parameter keluaran
Bila prosedur menghasilkan keluaran yg
digunakan oleh program pemanggil,
gunakan parameter keluaran untuk
menampung keluaran tsb.
Bila prosedur tidak menghasilkan
keluaran, atau kalaupun menghasilkan
keluaran tapi keluaran tsb hanya
digunakan di dalam prosedur itu saja,
maka gunakan parameter masukan.
Bila prosedur menerima masukan
sekaligus keluaran pada parameter yg
sama, gunakan parameter
masukan/keluaran.

Anda mungkin juga menyukai