Algoritma dan Pemrograman Oleh: Eddy Prasetyo N
08/02/2014
1
Konten
Pendahuluan Aturan Silabus Referensi Introduksi Algoritma
08/02/2014
2
Tentang Saya......
• Nama : Eddy • • • •
Prasetyo Nugroho
Beristri 1 dan Anak Tiga Unit kerja : Ilmu Komputer , FPMIPA, UPI Pendidikan S1 Teknik Informatika STT Telkom Pendidikan S2 ,Magister Teknik Bidang Rekayasa Perangkat Lunak, Informatika,ITB • E-mail :
[email protected] • Hp : 08562116367
Aturan
Metoda Penilaian : Tugas mandiri/Tugas Kelompok (min 10%) Kehadiran/Latihan di kelas (min 5%) Praktikum (maks 15%) Quiz (maks 15%) UTS (min 25%) UAS (min 30%) Syarat Kelulusan : Kehadiran minimal 80 % Mengumpulkan semua tugas mandiri/tugas kelompok Mengikuti Quiz Mengikuti UTS dan UAS
08/02/2014
4
Silabus
Pengantar ke algoritma Dasar-dasar algoritma dan aturan penulisan teks algoritma. Penggunaan tipe, nama, dan nilai yang tepat. Struktur Algoritma runtunan, pemilihan, dan pengulangan. Prosedur dan fungsi.
08/02/2014
5
Referensi
Liem, Inggriani, Diktat Algoritma dan Pemrograman (Paradigma Prosedural), Teknik Informatika ITB, 1999 Aho, Alfredd dkk, Data Structures and Algorithms, Addison-Wesley Publising Company, 1987 Munir, Rinaldi, Algoritma dan Pemrograman (buku 1), Informatika, Bandung 2005. Munir, Rinaldi dan Leony Lidya, Algoritma dan Pemrograman (buku 2), Informatika, Bandung 2005. Walter Salvitch, Absolute Java, Addison Wisley, 2007 Thomas Cormen, Introduction to Algorithm, McGraw Hill, 2001
08/02/2014
6
Introduksi Algoritma
08/02/2014
7
Pengantar Algoritma Saat ini sangat mudah kita menemukan orang yang bekerja dengan komputer. Dengan berkembangnya teknologi komputer, komputer telah banyak digunakan untuk membantu dan mengerjakan tugas manusia. Dalam banyak kasus, komputer terlihat pintar bahkan lebih pintar dari manusia, sehingga sering muncul anggapan bahwa komputer bisa mengerjakan apa pun untuk memberikan hasil yang diinginkan manusia.
08/02/2014
8
Pendapat di atas tidak sepenuhnya salah. Persoalannya, komputer tidak begitu saja bisa menyelesaikan masalah yang disodorkan. Orang harus merumuskan langkah-langkah penyelesaian masalah itu dalam bentuk urutan instruksi yang disebut dengan program.Agar program dapat dilaksanakan oleh komputer, program ditulis dalam bahasa yang dimengerti oleh komputer. Bahasa ini disebut dengan bahasa pemrograman. Tanpa program, komputer tetaplah sebuah perangkat keras yang tidak bisa melakukan apa-apa.
08/02/2014
9
Dengan semakin banyaknya bahasa pemrograman, pemecahan masalah tidak dilakukan dengan langsung menulis programnya. Perlu dibangun sebuah rancangan pemecahan masalah yang berisi urutan langkah-langkah untuk mencapai solusi dengan bahasa yang tidak tergantung pada bahasa pemrograman tertentu. Urutan langkah-langkah sistematis untuk menyelesaikan suatu masalah dinamakan algoritma. Tidak ada aturan baku bagaimana algoritma ditulis. Notasi algoritma ditentukan atas kesepatakan bersama, biasanya antara perancang program dan pemrogram.
08/02/2014
10
Algoritma merupakan deskripsi pelaksanaan suatu proses yang disusun dari sederetan langkah instruksi yang logis. Tiap langkah instruksi mengerjakan suatu aksi. Efek pengerjaan dari suatu aksi dapat diamati dengan membandingkan status awal yaitu kondisi sebelum aksi dilakukan dan status akhir yaitu kondisi setelah aksi dilakukan. Merancang algoritma dimulai dengan menentukan status awal dan status akhir yang ingin dicapai dari sebuah proses. Perhatikan 2 buah contoh berikut. 08/02/2014
11
Contoh 1 {status awal: gelas A berisi minuman a, gelas B berisi minuman b status akhir: gelas A berisi minuman b, gelas B berisi minuman a} {Dibutuhkan sebuah gelas kosong yaitu gelas C} Algoritma Tuangkan minuman a ke gelas C Tuangkan minuman b ke gelas A Tuangkan minuman a ke gelas B
08/02/2014
12
Contoh 2 {status awal: kotak A berisi sejumlah bola, kotak B kosong status akhir: Bola pada kotak A berkurang 1, kotak B berisi sebuah bola} Algoritma
Ambil 1 bola dari kotak A Masukkan bola terambil ke kotak B
08/02/2014
13
Perhatikan contoh 1. Contoh 1 terdiri dari 3 instruksi. Status awal dan status akhir dari algoritma ditulis pada 2 baris teratas. Untuk setiap aksi yang dilakukan masingmasing instruksi bisa ditentukan status awal dan status akhir sebagi berikut: Aksi 1 {status awal: gelas A berisi minuman a, gelas C kosong} Tuangkan minuman a ke gelas C {status akhir: gelas A kosong, gelas C berisi minuman a } Aksi 2 {status awal: gelas A kosong, gelas B berisi minuman b } Tuangkan minuman b ke gelas A {status akhir: gelas A berisi minuman b, gelas B kosong } Aksi 3 {status awal: gelas B kosong, gelas C berisi minuman a } Tuangkan minuman a ke gelas C {status akhir: gelas B berisi minuman a, gelas C kosong, } Perhatikan bahwa status akhir dari sebuah aksi menjadi status awal bagi aksi berikutnya
08/02/2014
14
#Latihan 1 Terdapat 4 buah bola yang tampilannya sama. 3 bola mempunyai berat yang sama dan sebuah bola lebih ringan atau lebih berat. Untuk mencari bola mana yang beratnya berbeda disediakan sebuah timbangan tanpa skala yang hanya bisa menunjukkan 2 benda beratnya sama atau tidak. Buat algoritma untuk persoalan ini.
08/02/2014
15
Contoh 3 {status awal: kotak A berisi sejumlah bola, kotak B kosong status akhir: bola pada kotak A berkurang 1, kotak B kosong atau berisi sebuah bola merah}
Algoritma Ambilkan 1 bola dari kotak A if bola berwarna merah then Masukkan bola terambil ke kotak B
08/02/2014
16
Definisi Algoritma
Algoritma berasal dari asal kata “algorism”, yaitu nama penulis buku Arab yang terkenal, yaitu Abu Ja‟far Muhammad Ibnu Musa Al-Khuwarizmi. Sekumpulan tahapan logis untuk menyelesaikan suatu tugas Suatu resep tindakan Suatu cara mendeskripsikan perilaku Urutan langkah-langkah logis, disusun secara sistematis untuk menyelesaikan masalah
08/02/2014
17
Mekanisme Pelaksanaan Algoritma oleh Prosesor
Agar dapat dilaksanakan oleh komputer, algoritma harus ditulis dalam notasi bahasa pemrograman sehingga dinamakan program. Jadi, program adalah perwujudan atau implementasi algoritma yang ditulis dalam bahasa pemrograman tertentu sehingga dapat dilaksanakan oleh komputer. Kegiatan membuat program disebut pemrograman (programming). Orang yang menulis program disebut pemrogram (programmer).
08/02/2014
18
Secara garis besar komputer tersusun atas empat komponen utama: piranti masukan, piranti keluaran, unit pemroses, dan memori
Piranti masukan
Unit Pemroses Utama
Piranti keluaran
Memori
08/02/2014
19
Notasi Algoritmik
Berdasarkan teknik pemrograman terstruktur, pemecahan masalah tidak selalu dilakukan dengan langsung menulis programnya dalam bahasa pemrograman, tetapi dibuat lebih dulu disain atau rancangan yang mewakili pemecahan masalah tersebut. Desain berisi urutan langkah-langkah pencapaian solusi yang ditulis dalam notasi-notasi deskriptif yang disebut algoritma. Notasi untuk menuliskan algoritma disebut notasi algoritmik
08/02/2014
20
Notasi Algoritma
Notasi algoritmik yang dipakai bersifat umum, kadang-kadang terdapat perbedaan notasi yang dirujuk, tetapi esensinya sama, tidak bergantung pada bahasa pemrograman maupun mesin komputernya. Algoritma yang dibuat dapat diterjemahkan ke dalam berbagai bahasa pemrograman.
08/02/2014
21
Teks Algoritma sebagai notasi
Notasi ini sebagai jembatan keragaman dan kompleksitas bahasa sehingga mahasiswwa mampu melakukan “abstraksi” Sebagai alat untuk menuangkan rancangan secara prosedural yang selanjutnya dengan mudah ditranslasi menjadi salah satu program dalam bahasa tertentu Teks Algoritma terdiri dari 3 bagian yaitu:
08/02/2014
Judul (Header) nama program, prosedur/fungsi, modul Kamus deklarasi type,konstanta,variabel, fungsi/prosedur Algoritma instruksi atau pemanggilan aksi yang telah didefinisikan 22
Contoh Algoritma dan notasinya
Contoh : Tiga versi algoritma untuk operasi tambah, kali, kurang, bagi, dua buah bilangan. Analisa perbedaan ketiga algoritma tersebut
08/02/2014
23
Format Teks Algoritma
JUDUL { Ini adl. Teks atau algoritma } { Spesifikasi teks algorima secara umum : Status Awal =….. Status Akhir = …..}
KAMUS { Bagian ini dilakukan pendefinisian nama konstanta, variabel, spesifikasi prosedur/fungsi }
ALGORITMA { ini bagian semua teks yang tidak diapit kurung kurawal dianggap sebagai notasi algoritmik}
08/02/2014
24
Versi 1
PROGRAM TKKB_V1 {Status Awal= “Diberikan dua buah bilangan dengan nama B1, B2”; Status Akhir= “Diperoleh luaran berupa hasil tambah, kali, kurang, bagi dari kedua bilangan tersebut”}
KAMUS B1, B2 : integer
ALGORITMA B1 99 B2 11 output (“ Nilai B1 dan B2 berturut-turut = ”, B1, B2 ) output (“ Penambahan B1 dan B2 = ”, B1+B2 ) output (“ Perkalian B1 dan B2 = ”, B1 * B2 ) output (“ Pengurangan B1 oleh B2 = ”, B1 - B2 ) output (“ Pembagian B1 oleh B2 = ”, B1/ B2 )
08/02/2014
25
Versi 2
PROGRAM TKKB_V2 {Status Awal= “Diberikan dua buah bilangan dengan nama B1, B2”; Status Akhir= “Diperoleh luaran berupa hasil tambah, kali, kurang, bagi dari kedua bilangan tersebut”}
KAMUS B1, B2 : integer
ALGORITMA Input (“ Bilangan bulat pertama ? : ”, B1) Input (“ Bilangan bulat kedua ? : ”, B2) output (“ Penambahan B1 dan B2 = ”, B1+B2 ) output (“ Perkalian B1 dan B2 = ”, B1 * B2 ) output (“ Pengurangan B1 oleh B2 = ”, B1 - B2 ) output (“ Pembagian B1 oleh B2 = ”, B1/ B2 )
08/02/2014
26
Versi 3
PROGRAM TKKB_V3 {Status Awal= “Diberikan dua buah bilangan dengan nama B1, B2”; Status Akhir= “Diperoleh luaran berupa hasil tambah, kali, kurang, bagi dari kedua bilangan tersebut”}
KAMUS B1, B2,Tb, Kl, Kr,Bg : integer
ALGORITMA Input (“ Bilangan bulat pertama ? : ”, B1) Input (“ Bilangan bulat kedua ? : ”, B2) Tb B1+B2 ; Kl B1*B2 ; Kr B1-B2 ; Bg B1/B2 output (“ Penambahan B1 dan B2 = ”, Tb) output (“ Perkalian B1 dan B2 = ”, Kl ) output (“ Pengurangan B1 oleh B2 = ”, Kr ) output (“ Pembagian B1 oleh B2 = ”, Bg )
08/02/2014
27
Belajar Memprogram dan Bahasa Pemrograman
Pemrograman memerlukan dua keahlian (skills) : berfikir algoritmik (Algoritmic thinking) dan pengetahuan sintaks bahasa pemrograman (language syntax) . Belajar sintaks bahasa pemrograman merupakan bagian yang relatif mudah. Belajar memprogram adalah belajar tentang metodologi pemecahan masalah, kemudian menuangkannya dalam suatu notasi yang mudah dipahami. Sedangkan belajar bahasa pemrograman berarti belajar memakai suatu bahasa, aturan tata bahasanya, instruksi-instruksinya, tata cara pengoperasian compiler-nya, dan memanfaatkan instruksiinstruksi tersebut untuk membuat program yang ditulis dalam suatu bahasa.
08/02/2014
28
Bahasa Pemrograman(1)
Berdasarkan terapannya, bahasa pemrograman dapat digolongkan atas dua kelompok besar:
Bahasa pemrograman bertujuan khusus. Misal Cobol (untuk terapan bisnis dan administrasi), fortran (terapan komputasi ilmiah), dll.
Bahasa pemrograman bertujuan umum, yang dapat digunakan untuk berbagai aplikasi. Yang termasuk kelompok ini adalah bahasa Pascal, Basic, dan C
08/02/2014
29
Bahasa Pemrograman(2)
Berdasarkan notasi bahasa pemrograman lebih “dekat” ke mesin atau bahasa manusia, maka dikelompokkan menjadi dua: Bahasa tingkat rendah. Bahasa jenis ini dirancang agar setiap instruksinya langsung dikerjakan oleh komputer, tanpa harus melalui penerjemah (translator). Contohnya adalah bahasa mesin.
08/02/2014
Bahasa tingkat tinggi, yang membuat pemrograman lebih mudah dipahami, lebih “manusiawi” dan berorientasi ke bahasa manusia (bahasa Inggris). Program dalam bahasa ini tidak dapat langsung dilaksanakan oleh komputer. Ia perlu diterjemahkan dulu oleh translator bahasa ke dalam bahasa mesin sebelum akhirnya dieksekusi oleh CPU. Contoh bahasa: Pascal, Cobol, Basic, C, dll.
30
Paradigma Pemrograman
Prosedural / imperative instruksi akan dieksekusi secara sekuensial o/ sebuah prosesor. Terdapat memorisasi dan struktur data Contoh: Pascal, C, Fortran …
Fungsional Didasari konsep pemetaan dan fungsi pada matematika. Fungsi dapat berbentuk sbg fungsi primitif, atau komposisi dari fungsi-fungsi lain yang telah didefinisikan. Pemrogram berasumsi bahwa ada fungsi-fungsi dasar yang dapat dilakukan. Disini tidak mempersoalkan Memori dan Struktur data, tidak ada pemilahan data dan program Contoh: LOGO, LISP
Deklaratif, Predikatif atu logik didasari atas pendefinisian rlasi antar individu yang dinyatakan sbg predikat orde pertama. Sebuah program lojik adalah kumpulan aksioma (fakta dan aturan deduksi). Pemrogram mendeklarasikan sekumpulan fakta dan aturan. Ketika program dieksekusi, pemakai mengajukan pertanyaan (Query) dan program akan menjawab apakah pernyataan itu dapat dededuksi dari autran dan fakta yang ada. Contoh : PROLOG
Object Oriented Didasari oleh kelas dan objek. Objek adl instansiasi dari kelas. Objek mempunyai atribut dan kelakuan (metoda). Paradigma ini menawarkan modularitas, reusable dan kemudahan modifikasi. Contoh: JAVA, C++
08/02/2014
31
Proses Interpretasi Algoritma ke Prosesor
Algoritma Translasi
Program dlm bahasa tingkat tinggi
Program dlm bhs Mesin Kompilasi
Interpretasi oleh CPU
08/02/2014
32
Contoh Program Pascal Program Selamat1a; (* Menuliskan : Hello.. *) (*Deskripsi*) Begin Write(„Hello.. ‟); End.
08/02/2014
33
Contoh Program C /*menulis hello ke layar */ Versi 1: Void main() { printf (“Hello..\n”); } Versi 2: Int main() { printf (“Hello..\n”); Return 0; }
08/02/2014
34
Dalam Java class Hello { //program Hello public static void main (String[] arg){ System.out.println("Heeeeellllo"); } }
08/02/2014
35