RINTA KRIDALUKMANA
SISKOM UNDIP
1
ALGORITMA
• DEFINISI
– Logika, metode dan tahapan (urutan)
sistematis yang digunakan untuk
memecahkan suatu permasalahan
– Spesifikasi urutan langkah untuk melakukan
pekerjaan tertentu
2
PERTIMBANGAN
PEMILIHAN ALGORITMA
1. Algoritma haruslah benar
• Output sesuai dg yg dikehendaki dari input yang diberikan
• Algoritma bagus, output salah bukan algoritma yang baik
2. Seberapa baik hasil yang dicapai oleh algoritma
• Terutama untuk output yang berupa estimasi, perkiraan,
prediksi, aproksimaksi
• Harus mampu memberikan hasil sedekat mungkin dengan
nilai sebenarnya
3. Efisiensi algoritma
• Ditinjau dari 2 hal, yaitu waktu dan memori
• Algoritma baik + waktu lama TIDAK EFISIEN
• Apalagi bila memori yang digunakan besar, akan menambah
ketidakefisienan dari algoritma
3
ALGORITMA VS PROGRAM
• Program adalah
– kumpulan instruksi komputer
– Kata, ekspresi, pernyataan yang disusun dan dirangkai menjadi satu
kesatuan prosedur, yang berupa urutan langkah untuk menyelesaikan
masalah yang diimplementasikan dengan menggunakan bahasa
pemrograman
• Metode dan tahapan sistematis dalam program adalah algoritma.
• Bahasa Pemrograman : prosedur atau tata cara penulisan program
• Pemrograman adalah proses mengimplementasikan urutan langkah
untuk menyelesaikan suatu masalah dengan menggunakan bahasa
pemrograman tertentu
6
YANG PERLU DIPERHATIKAN
• Teks algoritma berisi deskripsi langkah-
langkah penyelesaian masalah, dapat
ditulis dalam notasi apapun asalkan
mudah dimengerti dan dipahami
• Notasi algoritmik bukan notasi bahasa
pemrograman, karena itu tidak dapat
dijalankan oleh komputer
– Perlu translasi ke bahasa pemrograman
7
TRANSLASI
ALGORITMA BAHASA PEMROGRAMAN
8
SYARAT MEMBUAT ALGORITMA
YANG BAIK
• Tingkat kepercayaannya tinggi (realibility)
– Hasil yang diperoleh harus berakurasi tinggi dan benar
• Pemrosesan yang efisien (cost rendah)
– Proses harus diselesaikan secepat mungkin dengan frekuensi
kalkulasi yang sependek mungkin
• Sifatnya general
– Bukan untuk menyelesaikan satu kasus saja, tetapi sifatnya
general
• Bisa Dikembangkan (expandable)
– Bisa dikembangkan lebih jauh berdasarkan perubahan
requirement yang ada
• Mudah dimengerti
• Portabilitas tinggi
– Bisa diimplementasikan di berbagai platform komputer dan
bahasa pemrograman
9
CIRI-CIRI ALGORITMA YANG
BAIK
• Precise (tepat, betul, teliti)
– Instruksi tidak ada keraguan
– Instruksi dinyatakan secara eksplisit
– Setiap langkah harus jelas dan pasti
Contoh : Tambahkan 1 atau 2 pada x
terdapat keraguan
• Jumlah langkah atau instruksi berhingga atau tertentu
– Untuk kasus yang sama, banyaknya langkah harus tetap dan
tertentu meskipun datanya berbeda
• Efektif
– Tidak boleh ada instruksi yang tidak mungkin dikerjakan oleh
pemroses
• Harus terminate
– Ada kriteria untuk berhenti
• Output yang dihasilkan tepat
10
TAHAP PEMROGRAMAN :
Perancangan
Algoritma Test
Dokumentasi
Test
Dipakai
program dibuat
berdasarkan struktur
algoritma runtunan
15
Contoh kasus runtunan 1
• Terdapat 2 buah variabel a dan b yang
memiliki nilai a = 4 dan b = 5. Bagaimana
algoritma untuk mempertukarkan nilai a
dan b sehingga nilai a = 5 dan nilai b =
4?
16
Contoh kasus runtunan 2
• Menghitung luas persegi
Start
panjang
– Algoritmanya :
• Masukkan panjang dan Input(P,L)
lebar
• Kalikan panjang dan
Luas = P * L
lebar, simpan hasil
sebagai luas
• Tuliskan hasilnya
Output(Luas)
Dalam Pseudocode
Input (p,l); End
Luas = p * l;
Output (Luas); Flowchart Hitung Luas
Persegi Panjang 17
Contoh kasus runtunan 3
• Konversikan total detik menjadi
berapa jam lebih berapa menit lebih Start
berapa detik
– Algoritmanya :
• Baca data total detik Input(Dt)
• Bagi data dengan 3600
• Simpan hasil bagi dalam J
dan sisa dalam S J = Dt div 3600
• Bagi S dengan 60 S = Dt mod 3600
• Simpan hasil dalam M dan M = S div 60
sisa bagi dalam D D = S mod 60
• Tulis hasil J, M, D
Output(J, M, D)
Dalam Pseudocode
Input (Dt);
J = Dt div 3600 End
S = Dt mod 3600
M = S div 60 Flowchart Konversi
D = S mod 60 Detik 18
Struktur Pemilihan
• Bentuk instruksi pemilihan
– IF
– IF – ELSE
– SWITCH
– IF Bersarang
19
Struktur Pemilihan IF - ELSE
Pseudocode :
Pernyataan A Pernyataan A
If <kondisi> then <pernyataan 1>
Else
<pernyataan 2>
EndIf false true
Pernyataan B Pernyataan 2 KONDISI Pernyataan 1
Pernyataan B
21
Struktur Perulangan
• Macam-macam instruktur perulangan
– FOR
– WHILE
– WHILE-DO
22
STRUKTUR PERULANGAN FOR
• Instruksi perulangan yang paling sering
digunakan
• Memiliki 3 parameter, yaitu :
– Nilai awal (initial value)
– Test kondisi yang menentukan akhir LOOP
– Penentu perubahan nilai
23
STRUKTUR PERULANGAN FOR
Pseudocode :
For indeks = nilai_awal to nilai_akhir Indeks = nilai awal
do
<instruksi/blok instruksi> Indeks = indeks + 1
endfor
true
pilihan Badan loop
false
Contoh dlm bhs C :
Pernyataan berikutnya
int i;
i = 3;
for (i=1, i<=3, i++) {
Printf (i);
} Flowchart Instruksi FOR format naik
24
STRUKTUR PERULANGAN WHILE
25
STRUKTUR PERULANGAN WHILE-DO
Pseudocode :
While <kondisi> do
<instruksi/blok instruksi>
endwhile true
pilihan Badan loop
false
Pernyataan berikutnya
Contoh dlm bhs C :
int i;
i = 3;
while (i>0 { Flowchart Instruksi WHILE- DO
printf (i);
i--;
}
26
STRUKTUR PERULANGAN DO-WHILE
Pseudocode : Badan loop
do
<instruksi/blok instruksi>
while <kondisi>
true
pilihan
false
Contoh dlm bhs C : Pernyataan berikutnya
int i;
i = 3;
do { Flowchart Instruksi DO-WHILE
printf (i);
i--;
}
while(i>3);
27