v2 - M. Zidny Naf`an

advertisement
Dasar-dasar Algoritma Dan
Representasi Algoritma
Pengampu : Muhammad Zidny Naf’an, M.Kom
STRUKTUR DASAR ALGORITMA
2
Proses, Instruksi, dan Aksi
 Algoritma merupakan deskripsi urutan pelaksanaan suatu
proses.
 Algoritma tersusun oleh sederetan langkah instruksi yang
logis.
 Tiap langkah instruksi akan mengerjakan suatu tindakan
(Aksi).
 Bila Aksi dilaksanakan, maka sejumlah operasi yang
bersesuaian akan dikerjakan oleh CPU
3
Struktur Dasar Algoritma
• Runtunan (Sequence)
• Pemilihan (Selection)
• Pengulangan (Repetition)
4
Struktur Dasar Algoritma
Runtunan (sequence)

Runtunan (sequence)
• Aksi-aksi dalam algoritma yang dikerjakan secara berurutan
• Tiap instruksi dikerjakan satu per satu
• Tiap instruksi dilaksanakan tepat satu kali; tidak ada instruksi
yang di ulang
• Urutan instruksi yang dilaksanakan pemroses sama dengan
urutan instruksi sebagaimana yang tertulis di dalam teks
algoritmanya.
• Akhir dari instruksi terakhir merupakan akhir algoritma
•
Contoh :
A1. Aksi 1
A2. Aksi 2
A3. Aksi 3
• mula-mula aksi 1 dilakukan
• aksi 2 dilakukan setelah aksi 1 selesai dilaksanakan
• dst.
5
Struktur Dasar Algoritma
Pemilihan (Selection)
 Pemilihan (Selection)
 memungkinkan suatu Aksi dieksekusi jika suatu
kondisi terpenuhi atau tidak terpenuhi
 Bentuk-bentuk pemilihan
• if – else
• switch - case
6
Struktur Dasar Algoritma
Pemilihan (Selection)
switch - case
 Konstruksi ini digunakan sebagai pengganti
konstruksi if-else, bila konstruksi if-else bertingkat
terlalu jauh, sehingga menjadi sulit dibaca.
switch (ekspresi)
{
case constant_1 : statements_1; break;
case constant_2 : statements_2;
…
case constant_N : statements_N; break;
default : statements;
}
8
Struktur Dasar Algoritma
 Pengulangan (repeatition)
 Aksi-aksi yang dikerjakan berulang kali
 Bentuk-bentuk Pengulangan :
1. FOR pencacah pengulangan dari a sampai b DO
Aksi
(aksi dilakukan sebanyak hitungan pencacah pengulangan,
yaitu dari a sampai b yakni sebanyak b-a+1 kali)
9
2. REPEAT
Aksi
UNTIL kondisi
(pengulangan aksi dilakukan sehingga kondisi/persyaratan
berhenti terpenuhi)
3. WHILE kondisi DO
Aksi
(selama kondisi/persyaratan pengulangan masih benar,
maka aksi dikerjakan)
10
REPRESENTASI ALGORITMA
11
Representasi Algoritma
(Notasi Algoritmik)
• Kalimat Deklaratif
• Pseudocode
• Flowchart (diagram alir)
12
Kalimat Deklaratif
Judul program/algoritma
PROGRAM Hitung Luas Lingkaran
Program untuk menghitung luas lingkaran dengan diketahui PHI=3.14
Algoritma
Algoritma:
1. Baca r
2. Hitung Luas dengan rumus = PHI*r*r
3. Cetak Luas
13
Kalimat Deklaratif
Judul program/algoritma
PROGRAM Euclidean
Program untuk mencari GCD dari dua buah bilangan bulat positif m dan n (m
>= n). GCD dari m dan n adalah bilangan bulat positif terbesar yang habis
membagi m dan n
Algoritma:
1. Baca m dan n
2. Jika n=0 maka
m adalah jawabannya;
stop
Tetapi jika n!= 0
Lanjutkan ke langkah 3
3. Bagilah m dengan n dan misalkan r adalah sisanya
4. Ganti m dengan nilai n dan nilai n dengan nilai r, lalu ulang
kembali ke langkah 1
14
Algoritma
Pseudocode
 Kode atau tanda yang menyerupai (pseudo)
program atau merupakan penjelasan cara
menyelesaikan suatu masalah.
 Pseudocode sering digunakan oleh manusia
(programmer) untuk menuliskan algoritma
sebab mudah mudah dipahami dan digunakan
karena mirip dengan kode-kode program
sebenarnya.
15
Struktur Pseudocode
PROGRAM Nama Program
{Penjelasan tentang algoritma, berisi uraian singkat
mengenai masalah yang akan diselesaikan}
DEKLARASI
{semua nama yang dipakai, meliputi nama tipe, nama
konstanta, nama peubah, nama prosedur, dan nama
fungsi}
ALGORITMA:
{semua langkah/aksi algoritma dituliskan disini}
16
Format Pseudocode Lengkap
Judul program/algoritma
PROGRAM Euclidean
Program untuk mencari GCD dari dua buah bilangan bulat positif m dan n (m
>= n). GCD dari m dan n adalah bilangan bulat positif terbesar yang habis
membagi m dan n
Deklarasi:
m,n
r
: integer
: integer
{bil bulat}
{sisa hasil bagi}
Deklarasi variable
komentar
Algoritma
read(m,n)
{m >= n}
while n!= 0 do
Algoritma
r  m MOD n
mn
nr
end while
{kondisi selesai pengulangan n=0, maka gcd(m,n) = m}
17
Perbandingan Antara Notasi Algoritmik
Kalimat Deklaratif Dengan Pseudocode
Algoritma
Nilai A dikali dengan 10
Pseudocode
A  A x 10
Cetak nilai A bila lebih besar 10 IF A >10 THEN PRINT A
Dari dua bilangan A dan B, cari IF A > B THEN PRINT A ELSE
bilangan terbesar
PRINT B
18
Flow Chart
 Flow chart suatu bagan/diagram yang
menggambarkan aliran proses yang dikerjakan
program dari awal sampai akhir.
 Flow chart adalah algoritma yang digambarkan
dengan diagram.
 Fungsi dari flow chart adalah mendeskripsikan urutan
pelaksanaan suatu proses (sama dengan fungsi
algoritma).
19
Jenis Flowchart
 Sistem Flowchart
Urutan proses dalam sistem
dengan menunjukkan alat
media input, output serta jenis
media penyimpanan dalam
proses pengolahan data.
20
Jenis Flowchart
Start
 Program Flowchart
Urutan instruksi yang digambarkan
dengan simbol tertentu untuk
memecahkan masalah dalam suatu
program
Input alas, tinggi
Luas = alas*tinggi
Print Luas
End
21
Pembuatan Flowchart
 Dalam pembuatan flowchart tidak ada kaidah
yang baku.
• Flowchart = gambaran hasil analisa suatu masalah.
• Flowchart dapat bervariasi antara satu pemrogram
dengan pemrogram lainnya.
 Secara garis besar ada 3 bagian utama:
• Input
• Proses
• Output
22
 Beberapa hal yang perlu diperhatikan dalam
pembuatan flowchart, yaitu :
• 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.
• Sebuah flowchart diawali dari satu titik START dan
diakhiri dengan END.
23
Simbol Flowchart
Simbol
Nama
Keterangan
Terminator
Tanda mulai/selesai
Input/output
Operasi pemasukan data
atau penampilan data
Proses
Menyatakan sebarang
proses
Keputusan
Pengambilan keputusan. Di
dalam simbol berupa
pertanyaan dengan
jawaban YA atau TIDAK
24
Simbol Flowchart
Simbol
Nama
Keterangan
Proses Terdefinisi
Tanda prosedur/fungsi
Konektor
Sambungan dari satu
proses ke poses yang lain
dalam halaman yang sama
Konektor
Sambungan dari satu
proses ke poses yang lain
dalam halaman yang
berbeda
25
Simbol Flowchart
Simbol
Nama
Keterangan
Preparation
Inisialisasi perulangan
26
CONTOH ALGORITMA SEKUENSIAL
27
Contoh 1
(Konversi Fahrenheit - Celcius)
28
Contoh 1
(Konversi Fahrenheit - Celcius)
PROGRAM Konversi Fahrenheit ke Celcius
{algoritma ini akan menghitung nilai Celcius dari nilai
Fahrenheit yang diinputkan}
DEKLARASI
f,c
: float
ALGORITMA
read(f)
c  (F-32) * 5/9
print(c)
29
Contoh 2
(Menghitung Luas Lingkaran)
30
Contoh 2
(Menghitung Luas Lingkaran)
PROGRAM Menghitung Luas Lingkaran
{algoritma ini akan menghitung luas lingkaran
berdasarkan jari-jari yang diinputkan}
DEKLARASI
r, Luas : float
ALGORITMA
read(r)
Luas  phi * r *r
print(Luas)
31
Contoh 3
(Konversi Koordinat Polar ke Koordinat Cartesian)
32
Contoh 3
(Konversi Koordinat Polar ke Koordinat Cartesian)
PROGRAM Konversi Koordinat
{algoritma ini akan mengkonversi koordinat polar menjadi koordinat
cartesian}
DEKLARASI
radius, alpha, X, Y
: integer
ALGORITMA
read(radius)
read(alpha)
X  Radius * Cos(Alpha)
Y  Radius * Sin(Alpha)
print(X)
print(Y)
33
Contoh 3
(Bilangan Terbesar)
34
Contoh 3
(Bilangan Terbesar)
PROGRAM Mendapatkan Bilangan Terbesar
{algoritma ini akan mencari dan mendapatkan bilangan terbesar dari dua bilangan
yang diinputkan}
DEKLARASI
bilanganPertama, bilanganKedua
: integer
ALGORITMA
read(bilanganPertama)
read(bilanganKedua)
if bilanganPertama > bilanganKedua
print(bilanganPertama)
else
print(bilanganKedua)
end if
35
Diskusi
• Silahkan bentuk kelompok kecil dgn anggota 5
orang
• Buatlah algoritma dalam kalimat deklaratif,
flowchart, dan pseudocode untuk suatu
masalah tertentu
• Silahkan tentukan sendiri masalahnya
• Waktu 15 menit dan presentasi 1 kelompok
dipilih secara acak
36
Tugas
• Problem: Seorang kasir menginputkan data
barang yang dibeli oleh pelanggan ke dalam
sistem. Setiap pembelian barang akan
mendapatkan diskon sebesar 15%
• Alur program: pertama program meminta input
data nama barang dan harga asli, kemudian
program akan menghitung diskon, lalu mencetak
nama barang, diskon, dan harga setelah diskon
• Buatlah algoritma untuk kasus tersebut dalam
bentuk flowchart dan pseudocode
38
TUGAS
1.
Buat algoritma dalam bentuk kalimat deklaratif, pseudocode
& flowchart untuk mengkonversi dari satuan jam dan menit
menjadi detik
Misal 1 jam, 20 menit = 3600 + 1200 = 4800 detik
Di suatu pertemuan ada 4 orang pria dewasa, 4 wanita dewasa, dan 4
anak-anak. Keempat pria dewasa itu bernama: Santo, Markam,
Gunawan, dan Saiful. Keempat wanita dewasa itu bernama Ria, Gina,
Dewi, dan Hesti. Keempat anak itu bernama Hadi, Putra, Bobby dan
Soleh.
Sebenarnya mereka berasal dari 4 keluarga yang setiap keluarga terdiri
dari seorang ayah, seorang ibu dan satu orang orang anak, namun
tidak diketahui yang mana yang menjadi ayah dan mana yang menjadi
ibu dan mana yang menjadi anak dari masing-masing keluarga itu.
Kecuali, beberapa hal diketahui sebagai berikut:
Ibu Ria adalah ibu dari Soleh.
Pak Santo adalah ayah dari Hadi.
Pak Saiful adalah suami dari Ibu Dewi, tapi bukan ayah dari Bobby.
Pak Gunawan adalah suami Ibu Hesti.
(1) Putra adalah anak dari Pak ........
(2) Anak dari Pak Gunawan adalah ........
40
Terimakasih
41
Download