STMIK WIDYADHARMA PONTIANAK
SIKB 104 LOGIKA DAN ALGORITMA NURI SIMARONA, ST
MATERI KULIAH Pendahuluan
Logika dan Algoritma Diagram Alir (Flowchart) Struktur Dasar Algoritma Sequence Selection Looping / Repetetion
Penyelesaian
Masalah dengan Algoritma
Referensi S.
E. Goodman, and S. T. Hedetriem, Introduction to The Design and Analysis of Algorithm, Mc Graw Hill. Horowitz, Ellis., and Sahni, Sartaj., Fundamentals of Computer Algorithms, Computer Science Press, USA, 1988. Munir,
Rinaldi., Algoritma dan Pemrograman dalam Bahasa Pascal dan C, Edisi kedua (Revisi), buku1, Penerbit Informatika Bandung, 2003
Definisi Algoritma Algoritma adalah urutan langkah-langkah logis penyelesaian masalah yang disusun secara sistematis (Munir, 2002) Algoritma adalah urutan logis pengambilan putusan untuk pemecahan masalah (KBBI, 1988)
Logis
merupakan kata kunci dalam algoritma. Langkah-langkah dalam algoritma harus logis dan harus dapat ditentukan bernilai salah atau benar.
Ciri-ciri Penting Algoritma Algoritma harus berhenti setelah mengerjakan sejumlah langkah tertentu. Setiap langkah harus didefinisikan dengan tepat dan tidak berarti-dua (ambigu). Algoritma memiliki nol atau lebih masukan (input). Masukan ialah besaran yang diberikan kepada algoritma sebelum algoritma mulai bekerja. Algoritma mempunyai nol atau lebih keluaran (output). Keluaran adalah besaran yang memiliki hubungan dengan masukan. Algoritma harus efektif.
CONTOH 1: Algoritma TUKAR_ISI_BEJANA Diberikan dua buah bejana, A dan B; bejana A berisi larutan berwarna merah, bejana B berisi larutan berwarna biru. Pertukaran isi kedua bejana itu sedemikian sehingga bejana A berisi larutan berwarna biru dan bejana B berisi larutan berwarna merah. DESKRIPSI 1. Tuangkan larutan dari bejana A ke dalam bejana C. 2. Tuangkan larutan dari bejana B ke dalam bejana A. 3. Tuangkan larutan dari bejana C ke dalam bejana B.
Bejana A
Bejana B
Bejana C
Keadaan Awal Sebelum Pertukaran:
PROSE S Keadaan Akhir Setelah Pertukaran:
Proses Pertukaran 1. Tuangkan larutan dari bejana A ke dalam bejana C
2. Tuangkan larutan dari bejana B ke dalam bejana A
3. Tuangkan larutan dari bejana C ke dalam bejana B
Contoh 2: Mencari akar bulat positif dari bilangan bulat (integer) positif a: 2. Masukkan bilangan bulat positif a 3. Berikan harga awal x sama dengan 1 4. Hitung y sebesar x * x 5. Jika y sama dengan a maka cetak x sebagai akar dari a. STOP 11.Tambah nilai x dengan 1 12.Pergi ke langkah 3.
Contoh 3: Menentukan apakah suatu bilangan merupakan bilangan ganjil atau bilangan genap. 2. Masukkan sebuah bilangan sembarang 3. Bagi bilangan tersebut dengan bilangan 2 4. Hitung sisa hasil bagi pada langkah 2. 5. Bila sisa hasil bagi sama dengan 0 maka bilangan itu adalah bilangan genap tetapi bila sisa hasil bagi sama dengan 1 maka bilangan itu adalah bilangan ganjil.
Penulisan Algoritma
Dalam bahasa natural (Bahasa Indonesia, Bahasa Inggris, dan bahasa manusia lainnya) Tapi sering membingungkan (ambiguous)
Menggunakan flow chart (diagram alir) Bagus secara visual akan tetapi repot kalau
algoritmanya panjang
Menggunakan pseudo-code Sudah lebih dekat ke bahasa pemrograman,
namun sulit dimengerti oleh orang yang tidak mengerti pemrograman
Diagram Alir (Flowchart) Bagan-bagan yang mempunyai alur yang menggambarkan langkah-langkah penyelesaian suatu masalah. Merupakan cara penyajian dari suatu algoritma. Ada 2 macam Flowchart :
System Flowchart
urutan proses dalam sistem dengan menunjukkan alat media input, output serta jenis media penyimpanan dalam proses pengolahan data. Program Flowchart urutan instruksi yang digambarkan dengan simbol tertentu untuk memecahkan masalah dalam suatu program.
Simbol-simbol Flowchart
Lanjutan ....
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
Lanjutan... 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 atau STOP.
Contoh 1: Flowchart untuk algoritma pencarian nilai maksimum dari 3 bilangan.
Algoritma dengan pseudocode maks ← bilangan pertama if (maks < bilangan kedua) maks ← bilangan kedua
if (maks < bilangan ketiga) maks ← bilangan ketiga
2004
EL 2001 - Algoritma v.1.2
18
Contoh 2 : Flowchart dari algoritma penentuan bilangan ganjil/genap
Latihan
1. Tiga pasang suami istri yang sedang menempuh perjalanan sampai ke sebuah sungai. Di situ mereka menemukan sebuah perahu kecil yang hanya bisa membawa tidak lebih dari dua orang setiap kali menyeberang. Penyeberangan sungai dirumitkan oleh kenyataan bahwa para suami sangat pencemburu dan tidak mau meninggalkan istri-istri mereka jika ada lelaki lain. Tulislah algoritma untuk menunjukkan bagaimana penyeberangan itu bisa dilakukan. 2. Buatlah algoritma untuk menghitung luas dan keliling lingkaran. Dengan masukan berupa jari-jari. 3. Buatlah flowchart dari algoritma pada soal no 2 di atas. 4. Buatlah algoritma untuk mengecek bilangan di antara 2 bilangan masukan, apakah sama ataukah lebih besar salah satunya, dan tampilkan hasilnya. 5. Buatlah flowchart dari algoritma pada soal no 4 di atas.
Latihan Tuliskan rumus-rumus berikut dalam notasi algoritma: a. b. c.
ALGORITMA DENGAN PSEUDO-CODE Algoritma yang menggunakan instruksi menyerupai bahasa pemrograman, meliputi deklarasi dan deskripsi. Keuntungan menggunakan pseudo-code adalah memudahkan menerjemahan algoritma ke dalam bahasa pemrograman.
Contoh: Penulisan algoritma secara deskriptif dan pseudo-code
Contoh: Penulisan algoritma secara flowchart dan pseudo-code
Cetak A
Baca A
a> hasil
i ← 1, n
Read A Write A
If a > hasil Then ....
For i ← 1, n Do ....
Contoh: Algoritma untuk pertukaran data Deklarasi: A, B, C : Integer L1 L2 L3 L4 L5
: : : : :
Read A, B C←A A←B B←C Write A, B
start
Read A, B
C←A
C←A
C←A
Write A, B
End