algoritma dan pemrograman 1 - telkom...
TRANSCRIPT
08/02/2014 1
Algoritma dan Pemrograman
Oleh:
Eddy Prasetyo N
08/02/2014 2
Konten
Pendahuluan
Aturan
Silabus
Referensi
Introduksi Algoritma
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
08/02/2014 4
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 5
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 6
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 7
Introduksi Algoritma
08/02/2014 8
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 9
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 10
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 11
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 12
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 13
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 14
Perhatikan contoh 1. Contoh 1 terdiri dari 3 instruksi. Status awal dan status akhir darialgoritma ditulis pada 2 baris teratas. Untuk setiap aksi yang dilakukan masing-masing 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 15
#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 16
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}
AlgoritmaAmbilkan 1 bola dari kotak A
if bola berwarna merah then
Masukkan bola terambil ke kotak B
08/02/2014 17
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 18
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 19
Secara garis besar komputer tersusun atas empat komponen
utama: piranti masukan, piranti keluaran, unit pemroses, dan
memori
Piranti masukan
Memori
Piranti keluaranUnit Pemroses
Utama
08/02/2014 20
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 21
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 22
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: Judul (Header) nama program, prosedur/fungsi, modul
Kamus deklarasi type,konstanta,variabel, fungsi/prosedur
Algoritma instruksi atau pemanggilan aksi yang telah didefinisikan
08/02/2014 23
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 24
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 25
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 26
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 27
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 28
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 instruksi-instruksi tersebut untuk membuat program yang ditulis dalam suatu bahasa.
08/02/2014 29
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 30
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.
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.
08/02/2014 31
Paradigma Pemrograman
Prosedural / imperative instruksi akan dieksekusi secara sekuensial o/ sebuah prosesor. Terdapat memorisasi dan struktur dataContoh: 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 programContoh: 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 32
Proses Interpretasi Algoritma
ke Prosesor
Algoritma Program dlm bhs MesinProgram dlm bahasa tingkat
tinggi
Interpretasi oleh CPU
Translasi Kompilasi
08/02/2014 33
Contoh Program Pascal
Program Selamat1a;
(* Menuliskan : Hello.. *)
(*Deskripsi*)
Begin
Write(„Hello.. ‟);
End.
08/02/2014 34
Contoh Program C
/*menulis hello ke layar */
Versi 1:Void main()
{
printf (“Hello..\n”);
}
Versi 2:Int main()
{
printf (“Hello..\n”);
Return 0;
}
Dalam Java
class Hello {
//program Hello
public static void main (String[] arg){
System.out.println("Heeeeellllo");
}
}
08/02/2014 35