Dasar-dasar Algoritma Dan Representasi Algoritma

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)
if (ekspresi boolean)
Aksi 1;
Aksi 2;
…………
end if
Aksi 1 dan Aksi 2 akan
diproses jika dan hanya
jika nilai ekspresi Boolean
= TRUE
7
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
Cetak nilai A bila lebih besar 10
Dari dua bilangan A dan B, cari
bilangan terbesar
Pseudocode
A  A + 10
IF A >10 THEN PRINT A
IF A > B THEN PRINT A ELSE
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
 Program Flowchart
Urutan instruksi yang digambarkan
dengan simbol tertentu untuk
memecahkan masalah dalam suatu
program
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
CONTOH ALGORITMA SEKUENSIAL
26
Contoh 1
(Konversi Fahrenheit - Celcius)
27
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)
28
Contoh 2
(Menghitung Luas Lingkaran)
29
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)
30
Contoh 3
(Konversi Koordinat Polar ke Koordinat Cartesian)
31
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)
32
Contoh 3
(Bilangan Terbesar)
33
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
34
Buatlah Flowchart dan Pseudocode
• Problem: Seorang salesman akan menerima
komisi berdasarkan nilai penjualan yang dicapai.
Salesman itu mendapat komisi 5% dari hasil
penjualannya. Buatlah flowchart dan pseudocode
untuk menghitung komisi yang didapatkan
seorang salesman.
Algoritma program: pertama program meminta
input data nama salesman dan nilai
penjualannya, kemudian program akan
menghitung komisi, lalu mencetak nama
salesman dan komisi yang didapatkan.
35
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
Diskusi
• Silahkan bentuk kelompok kecil dgn anggota 3
orang
• Buatlah algoritma dalam flowchart dan
pseudocode untuk suatu masalah tertentu
• Silahkan tentukan sendiri masalahnya
• Waktu 20 menit dan presentasi 3 kelompok
dipilih secara acak
37
Terimakasih
38
Download