1
ALGORITMA
ALGORITMA
• DEFINISI
– Logika, metode dan tahapan (urutan)
sistematis yang digunakan untuk
memecahkan suatu permasalahan
3
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
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
Struktur Data
• Struktur data
merujuk pada
koleksi/kumpulan
peubah komputer
yang saling
berhubungn untuk
tujuan tertentu.
#include <iostream> #include <string> using namespace std; struct Mahasiswa { string nama;
string alamat; int noMahasiswa; double IPK;
};
void printInfo(const Mahasiswa &m)
{ cout << “Nomer : “<< m.noMahasiswa << endl; cout << “Nama : “<< m.nama << endl;
cout << “Alamat : “<< m.alamat << endl; cout << “IPK : “ << m.IPK << endl;
}
int main()
{ Mahasiswa yayuk;
yayuk.nama = “Yayuk Dwinanti”;
yayuk.alamat = “Jl. Pahlawan 15 Surabaya”; yayuk.noMahasiswa = 123;
yayuk.IPK = 3.75; printInfo(yayuk); return 0;
KEUNTUNGAN
PEMBUATAN ALGORITMA
• Pembuatan atau penulisan algoritma tidak
tergantung pada bahasa pemrograman
manapun
• Notasi algoritmik dapat diterjemahkan ke
dalam berbagai bahasa pemrograman
• Apapun bahasa pemrogramannya, output
yang akan dikeluarkan sama karena
7
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
TRANSLASI
ALGORITMA
à
BAHASA PEMROGRAMAN
Hal-hal yang perlu diperhatikan :
• Pendeklarasian variabel
• Pemilihan tipe data
• Pemakaian instruksi-instruksi
• Aturan sintaks
• Tampilan hasil
9
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
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
11
TAHAP PEMROGRAMAN :
Pembuatan Program
Test
Dokumentasi
Dipakai Analisa Problem
Perancangan Algoritma
Test
FASE I : PROBLEM SOLVING
FASE II :
TAHAP PEMROGRAMAN :
I. Fase Problem Solving
Merancang atau Merumuskan Logika
• Kondisi awal, yaitu input yang tersedia • Kondisi akhir, yaitu output yang diinginkan
• Data lain yang tersedia
• Operator yang tersedia
• Syarat atau kendala yang harus dipenuhi
Contoh Kasus : Menghitung biaya percakapan di wartel
• Input yang tersedia : jam mulai bicara dan jam selesai bicara
• Output yang diinginkan adalah biaya percakapan
• Data lain yang tersedia adalah besarnya pulsa yang
digunakan dan biaya per pulsa
13
TAHAP PEMROGRAMAN :
II. Fase Implementasi
Menulis program
Standar penilaian program
• Standar teknik pemecahan masalah
• Teknik top-down à suatu masalah yang kompleks dibagi ke dalam beberapa kelompok masalah yang lebih kecil
• Teknik bottom-up à menggabungkan beberapa prosedur menjadi satu kesatuan program sebagai penyelesaian masalah tersebut
• Standar penyusunan program
• Kebenaran logika dan penulisan
• Waktu minimum untuk penulisan program • Ekspresi penggunaan memori
• Kemudahan perawatan dan mengembangkan program • User friendly
• Portability
• Pemrograman modular
• Standar Perawatan Program
• Dokumentasi
• Penulisan Instruksi
STRUKTUR DASAR ALGORITMA/
STRUKTUR KONTROL
Struktur dasar algoritma ada 3, yaitu :
• Struktur runtunan/sequential
– Digunakan untuk program yang instruksinya
sequential atau urutan
• Struktur pemilihan/conditional
– Digunakan untuk program yang menggunakan
pemilihan atau penyeleksi kondisi
• Struktur perulangan/iterasi
15
Struktur Runtunan
• Runtunan merupakan
struktur dasar algoritma
terdiri dari satu atau lebih
instruksi
• Dikerjakan secara
berurutan
• Pada dasarnya semua
program dibuat
berdasarkan struktur
algoritma runtunan
A1
A2 A3
Contoh kasus runtunan 1
• Terdapat 2 buah variabel a dan b yang
17
Contoh kasus runtunan 2
• Menghitung luas persegi
panjang
– Algoritmanya :
• Masukkan panjang dan lebar
• Kalikan panjang dan lebar, simpan hasil sebagai luas
• Tuliskan hasilnya
Dalam Pseudocode
Input (p,l); Luas = p * l; Output (Luas);
Start
Input(P,L)
Luas = P * L
Output(Luas)
End
Contoh kasus runtunan 3
• Konversikan total detik menjadi
berapa jam lebih berapa menit lebih berapa detik
– Algoritmanya :
• Baca data total detik • Bagi data dengan 3600 • Simpan hasil bagi dalam J
dan sisa dalam S • Bagi S dengan 60
• Simpan hasil dalam M dan sisa bagi dalam D
• Tulis hasil J, M, D
Dalam Pseudocode
Input (Dt);
19
Struktur Pemilihan
• Bentuk instruksi pemilihan
– IF
– IF – ELSE
– SWITCH
Struktur Pemilihan IF - ELSE
Pernyataan A
Pernyataan 1
Pernyataan B Pernyataan 2 false KONDISI true
Pseudocode :
Pernyataan A
If <kondisi> then <pernyataan 1> Else
<pernyataan 2> EndIf
21
Struktur Pemilihan SWITCH
Pseudocode :
Switch<pilihan>
Case <pilihan1> : <aksi1> Case <pilihan2> : <aksi2> …
{otherwise aksi} endcase
pilihan
pilihan
Aksi 1 Aksi 1 Aksi 1 Aksi 1
Pernyataan berikutnya
Struktur Perulangan
• Macam-macam instruktur perulangan
– FOR
– WHILE
23
STRUKTUR PERULANGAN FOR
• Instruksi perulangan yang paling sering
digunakan
• Memiliki 3 parameter, yaitu :
– Nilai awal (initial value)
STRUKTUR PERULANGAN FOR
Pseudocode :
For indeks = nilai_awal to nilai_akhir
do
<instruksi/blok instruksi>
endfor
Indeks = nilai awal
pilihan
Indeks = indeks + 1
Badan loop
25
STRUKTUR PERULANGAN WHILE
• Instruksi perulangan yang paling sering
digunakan
• Memiliki 3 parameter, yaitu :
– Nilai awal (initial value)
STRUKTUR PERULANGAN WHILE-DO
Pseudocode :
While <kondisi> do
<instruksi/blok instruksi>
endwhile pilihan
Badan loop
Pernyataan berikutnya true
false
Flowchart Instruksi WHILE- DO
Contoh dlm bhs C : int i;
i = 3;
27
STRUKTUR PERULANGAN DO-WHILE
Pseudocode :
do
<instruksi/blok instruksi> while <kondisi>
pilihan Badan loop
Pernyataan berikutnya true
false
Flowchart Instruksi DO-WHILE
Contoh dlm bhs C : int i;
i = 3; do {
printf (i); i--;
}