anang@anang65.web.id
TIF UWKS 2009 DESAIN DAN ANALISIS ALGORITMA
Page 1
I. PENGANTAR ALGORITMA
ALGORITMA PEMROGRAMAN Definisi Algoritma
ALGORITMA : urutan langkah‐langkah logis penyelesaian masalah yang disusun secara sistematis. Algoritma menurut Kamus Besar Bahasa Indonesia adalah Urutan logis pengambilan keputusan untuk pemecahan masalah .
Definisi Pemrograman
PROGRAM : suatu bentuk dan aturan untuk menyelesaikan sesuatu yang tersetruktur dan teratur, dalah hal pemrograman yang dimaksut adalah bentuk dan aturan yang merupakan cara kerja yang ada didalam suatu komputer (merupakan proses dalam PC)
Jadi Algoritma Pemrograman adalah bagaimana langkah‐langkah yang ditempuh atau diputuskan untuk menyelesaikan suatu permasalahan dengan menggunakan aturan serta proses yang berada didalam komputer/PC. Sehingga dalam menyelesaiakan suatu permasalahan dituntut untuk berfikir dengan langkah‐langkah yang runtut seakan‐akan seperti langkah‐langkah yang akan di jalankan oleh sebuah sistem komputer, karena hasil pemikiran tersebut atau langkah‐langkah tersebut akan diimplementasikan dan dilaksanakan oleh komputer.
Yang bisanya menjadi sebuah kesulitan dalam permulaan belajar adalah jika kita belum bisa menyadari bahwa sebenarnya cara kerja otak kita juga seperti sebuah sistem komputer. Perbedaan mendasarnya kita tidak menyadari dikarenakan sudah otomatis dan menjadi suatu kebiasaan otak kita dalam berfikir sehingga suatu langkah akan bisa terlewati. Contohnya : jika kita sudah terbiasa memakai pisau roti untuk memotong roti maka ketika ada pilihan pisau yang lain kita akan langsung mengabaikannya, tetapi jika kita belum terbiasa memakai pisau roti bahkan belum tau mana yang dimaksut dengan pisau roti maka kita akan mencoba pilihan yang ada dengan pemikiran jika yang digunakan salah masih bisa mencoba pilihan lainnya. Cara berfikir itulah yang disebut suatu langkah‐ langkah yang harus ditempuh untuk menyelesaikan suatu masalah yang pada contoh diatas adalah untuk memotong roti.
anang@anang65.web.id
TIF UWKS 2009 DESAIN DAN ANALISIS ALGORITMA
Page 2
Proses Algoritma Langkah dalam Algoritma
Membuat Kue Resep Kue Ambil 3buah telur, ambil kuning telur dan kocok,… Membuat baju Pola Baju Potong kain sesuai pola,….
Isi Voucher HP Panduan Tekan nomor 555, tekan 1 untuk isi pulsa , ….
Ke Monas Perjalanan Beli Tiket Pesawat,Ke bandara Juanda, Turun Cengkareng,...
Jadi bisa disimpulkan bahwa dalam algoritma harus sudah jelas langkah‐langkah yang akan diambil, sudah ada alternatif atau langkah lain yang sudah direncanakan sebelumnya jika terjadi kegagalan pada langkah tertentu. Dimana semua langkah yang jelas itu merupakan suatu pemilihan atau pemikiran logika (yang dapat diterima akal dan dibuktikan). Walaupun logika bisa mengerti tetapi jika struktur algoritma tidak menemukan langkah‐langkah dalam penyelesaiannya maka bisa diumpamakan ”seseorang yang mengerti cara menyelesaikan masalah tetapi tidak tahu jalan mana yang ditempuh untuk bisa menyelesaiakn masalah tersebut”.
Jika algoritma kita sudah terlatih dengan baik maka untuk pemrograman hanyalah merupakan bahasa yang digunakan untuk menuliskan algoritma kita kedalam suatu Komputer. Bahasa tersebut yang akan dikenali dan dimengerti oleh sistem komputer sehingga komputer akan melaksanakan semua apa yang sudah dituliskan dengan bahasa pemrograman. Jadi bisa disimpulkan bahawa jika algoritma sudah terlatih maka beda bahasa pemrograman halnya seperti kita beda bahasa antara suku atau bangsa di dunia ini.
KONSEP DASAR ALGORITMA PEMROGRAMAN Berfikir Logis dengan Algoritma
Bagaimana bagaimana cara berpikir logis ala algoritma itu. Algoritma jangan dibayangkan sebuah tabel matematik dengan angka‐angka yang jelimet/rumit dan membuat mata sakit. Algoritma. Seperti penjelasan diatas, Algoritma adalah runtutan langkah‐langkah logis penyelesian masalah yang disusun secara sistematis atau kalau menurut Kamus Besar Bahasa Indonesia didefinisikan sebagai urutan logis pengambilan putusan untuk pemecahan masalah. Jadi jelas bukan masalah perhitungan dengan angka‐angka jelimet ,tetapi dititikberatkan pada proses berpikirnya yang dilakukan secara
anang@anang65.web.id
TIF UWKS 2009 DESAIN DAN ANALISIS ALGORITMA
Page 3
logis. Gampang dan sangat dibutuhkan dalam kehidupan sehari‐hari. Sebenarnya dalam bidang apapun kita pasti memerlukan cara berpikir logis untuk menyelesaikan tantangan/permasalahan yang kita hadapi.
Kata Logis merupakan kata kunci dalam Algoritma. Langkah‐langkah dalam Algoritma harus logis dan harus dapat ditentukan bernilai salah atau benar. Seperti contoh yang ada diatas dalam tatacara membuat kue atau masakan yang dinyatakan dalam suatu resep juga dapat disebut sebagai algoritma. Pada setiap resep selalu ada urutan langkah‐lankah membuat masakan. Bila langkah‐ langkahnya tidak logis, tidak dapat dihasilkan masakan yang diinginkan. Ibu‐ibu yang mencoba suatu resep masakan akan membaca satu per satu langkah‐langkah pembuatannya lalu ia mengerjakan proses secara runtut sesuai yang di baca.
Secara umum, pihak (benda) yang mengerjakan proses disebut pemroses (processor). Pemroses tersebut dapat berupa manusia, komputer, robot atau alat‐alat elektronik lainnya. Pemroses melakukan suatu proses dengan melaksanakan atau “mengeksekusi” algoritma yang menjabarkan proses tersebut.
Melaksanakan Algoritma berarti mengerjakan langkah‐langkah di dalam Algoritma tersebut. Pemroses mengerjakan proses sesuai dengan algoritma yang diberikan kepadanya. Juru masak membuat kue berdasarkan resep yang diberikan kepadanya, pianis memainkan lagu berdasarkan papan not balok. Karena itu suatu Algoritma harus dinyatakan dalam bentuk yang dapat dimengerti oleh pemroses. Jadi suatu pemroses harus : 1 Mengerti setiap langkah dalam Algoritma 2 Mengerjakan operasi yang bersesuaian dengan langkah tersebut. Langkah Penyusun Algoritma dalam suatu proses Komputer hanyalah salah satu pemroses. Agar dapat dilaksanakan oleh komputer, algoritma hasrus ditulis dalam notasi bahasa pemrograman sehingga dinamakan program. Jadi program adalah perwujudan atau implementasi teknis Algoritma yang ditulis dalam bahasa pemrogaman tertentu sehingga dapat dilaksanakan oleh komputer.
Algoritma berisi langkah‐langkah penyelesaian suatu masalah. Langkah‐langkah bisa berupa runtunan, pemilihan, dan pengulangan. Ketiga langkah itulah yang menyusun algoritma. Belajar
anang@anang65.web.id
TIF UWKS 2009 DESAIN DAN ANALISIS ALGORITMA
Page 4
memprogram tidak sama dengan belajar bahasa pemrograman. Belajar memprogram adalah belajar tentang metodologi pemecahan masalah, kemudian menuangkannya dalam suatu notasi tertentu yang mudah dibaca dan dipahami (belajar logika program). Sedangakan belajar bahasa pemrograman berarti belajar memakai suatu bahasa aturan‐aturan tata bahasanya, instruksi‐ instruksinya, tata cara pengoperasian compiler‐nya, dan memanfaatkan instruksi‐instruksi tersebut untuk membuat program yang ditulis hanya dalam bahasa itu saja. Sehingga bisa dijabarkan perbedaan antara belajar algoritma program dan belajar bahasa pemrograman sebagai berikkut;
Belajar Algoritma program / Memprogram
• Belajar memprogram ≠ belajar bahasa pemrograman.
• Belajar memprogram adalah belajar tentang strategi pemecahan masalah, metodologi dan sistematika pemecahan masalah kemudian menuliskannya dalam notasi yang disepakati bersama.
• Belajar memprogram adalah bersifat pemahaman persoalan, analisis dan sintesis. • Belajar memprogram, titik berat pada designer program atau langkah program berjalan.
Belajar Bahasa Pemrograman
• Belajar bahasa pemrograman adalah belajar memakai suatu bahasa pemrograman, aturan sintaks, tatacara untuk memanfaatkan instruksi yang spesifik untuk setiap bahasa.
• Belajar bahasa pemrograman , titik berat pada coder/coding (menuliskan sintaks/bahasa program pada komputer) Produk yang dihasilkan pemrogram/programer : • Program dengan rancangan yang baik (metodologis, sistematis). • Dapat dieksekusi oleh mesin. • Berfungsi dengan benar. • Sanggup melayani segala kemungkinan masukan. • Disertai dokumentasi. • Belajar memprogram, titik berat pada designer program atau langkah – langkah dalam membuat
anang@ana TIF UWKS progr Tahap Pe Kriteria P 1. A 2. Ef 3. Ju 4. B 5. T
Aloritm
(efektif) langkah ada solus ang65.web.id S ram (algoritm enyelesaian Pemilihan A Ada Output fektifitas da umlah Langk erakhir erstrukturma dikatak
dalam wak yg berhingg sinya.“ 2009 ma program Masalah lgoritma n Efisiensi kahnya Berhkan baik ji
ktu yg relat ga & prosed
DESA
m)
ingga
ika
: Suatu
tif singkat & durnya berak AIN DAN A u algoritma & pengguna khir baik dlm ANALISIS A harus men aan memor m keadaan d ALGORITMA ghasilkan o
ri yg relatif
diperoleh su A output yg te f sedikit (efe atu solusi at Page 5 epat guna fesien) dgn taupun tdk
anang@anang65.web.id
TIF UWKS 2009 DESAIN DAN ANALISIS ALGORITMA
Page 6 CONTOH : Langkah‐langkah ketika akan mengirimkan surat kepada teman: 1. Tulis surat pada secarik kertas surat 2. Ambil sampul surat atau amplop 3. Masukkan surat ke dalam amplop 4. Tutup amplop surat dengan lem perekat
5. Tulis alamat surat yg dituju, jika tdk ingat, lebih dahulu ambil buku alamat & cari alamat yg dituju, lalu tulis alamat tsb pd amplop surat.
6. Tempelkan perangko pada amplop surat
7. Bawa surat ke kantor pos utk diserahkan pd pegawai pos atau menuju ke bis surat untuk memasukkan surat ke dlm kotak/bis surat.
Langkah‐langkah penyelesaian untuk masalah menentukan akar kuadrat dari suatu bilangan Bulat Positif yg di Input : 1. Baca bilangan Bulat Positif yg diinput, sebut saja sebagai A 2. Dinyatakan Nilai B adalah 0 3. Hitung Nilai C yg berisikan Nilai B dikalikan Nilai B 4. Jika Nilai C sama dengan Nilai A, maka Nilai B adalah Akar dari Nilai A, lalu stop. 5. Jika tidak, maka Nilai B akan bertambah 1 6. Kembali ke langkah pada No. 3 Penulisan Algoritma • Menggunakan bahasa natural (Bahasa manusia: Indonesia, Inggris) o Kelemahannya masih sering membingungkan (ambigu) / sulit dipahami. • Menggunakan Flowchart o Baik karena alur algoritma dapat dilihat secara visual, tetapi repot pembuatannya jika algoritma panjang
anang@ana TIF UWKS • M Tahap An 1. B 2. B S d ang65.web.id S Menggunaka o Sudah belum nalisa Algor agaimana m Denga Conto diame Rumu agaimana m ‐ uatu cara isampaikan/ 2009 an Pseudoco h dekat den m tahu pemr itma merencanaka an Mendefin oh : Permasa eter lingkara us : ∏ . r2 de menyatakan s Misalnya D penulis /diekspresik DESA ode gan bahasa ograman an algoritma nisikan masa alahan meng an. engan Phi = suatu algorit Dengan psud san algorit an menggun AIN DAN A pemrogram alah. ghitung luas = 3.14 atau 2 tma (menuli docode ma agar nakan gaya b ANALISIS A man, tetapi lingkaran, d 22 is algoritma) ide dan bahasa pem ALGORITMA sulit dimen dengan data ) logika da rograman te A gerti oleh o yang diketa ari algoritm ertentu. Page 7 orang yang ahui adalah ma dapat
anang@ana TIF UWKS P p 3. B 4. B U ang65.web.id S ‐ rogram Flow emecahan m agaimana va Untuk algori Misalk denga agaimana M Untuk meliha • Waktu • Jumla 2009 Dengan flo wchart, yait masalah. aliditas suat k melihat k tma ersebut kan apakah an tujuan alg Menganalisa at effisiensi d u Tempuh d h memori ya DESA owchart / di tu bagan ya u algoritma. kesesuaian t. benar nilai s goritma, jika suatu Algori dan efektifit ari Suatu Alg ang digunak AIN DAN A agram alir ng mengga . dengan tuj suatu algorit salah harus itma. tas dari suat goritma kan ANALISIS A mbar‐kan u juan dan g tma akan ga s membuat a tu algoritma, ALGORITMA rutan logika goal dari p njil , jika ben algoritma lag , dapat dilih A
a dari suatu
pembuatan/ nar berarti te gi. at dari: Page 8 u prosedur /akhir dari elah sesuai
anang@anang65.web.id
TIF UWKS 2009 DESAIN DAN ANALISIS ALGORITMA
Page 9 • Hal‐hal yang dapat mempengaruhi waktu tempuh adalah : 9 Banyaknya langkah. 9 Besar dan jenis input data. 9 Jenis Operasi. 9 Komputer dan kompilator 5. Bagaimana Menguji Program dari suatu Algoritma Pengujian Tahap Debuging Untuk mengecek kesalahan program, Baik sintaksis maupun logika. Pengujian Tahap Profiling
Untuk menentukan waktu tempuh dan banyak nya memori program yang digunakan.
SIFAT ALGORITMA
Aspek Penting Algoritma :
Finite Æ algoritma harus berhenti setelah mengerjakan sejumlah langkah terbatas
Definite Æ setiap langkah didefinisikan secara tepat, tidak boleh membingungkan (ambigu)
Input Æ sebuah algoritma memiliki nol/lebih input sebelum dijalankan
Output Æ algoritma memiliki satu/lebih output, yang biasanya bergantung kepada input Effective Æ setiap algoritma diharapkan memiliki sifat efektif. (setiap langkah harus
sederhana dan sehingga dapat dikerjakan dalam waktu yang masuk akal)
Langkah‐langkah yang membentuk suatu algoritma dapat dibagi menjadi 3 kelompok proses:
1. Sequence Process Æ instruksi dikerjakan secara berurutan satu persatu dimulai dari langkah pertama sampai terakhir.
2. Selection Process Æ instruksi pemilihan proses (percabangan), sehingga apabila memenuhi persyaratan tertentu maka instruksi akan dikerjakan.
Contoh :
anang@anang65.web.id
TIF UWKS 2009 DESAIN DAN ANALISIS ALGORITMA
Page 10 Jika dilakukan secara kredit maka diskon 0 %. (dalam pernyataan diatas, hanya boleh melakukan 1 instruksi dari 2 alternatif instruksi. 3. Iteration Process Æ suatu instruksi yang dikerjakan berulang‐ulang selama beberapa kali selama masih memenuhi suatu kondisi. 4. NOTASI ALGORITMA
Notasi algoritma sangatlah penting untuk belajar Algoritma pemrograman, karena notasi algoritma bukan notasi bahasa pemrograman,sehingga siapapun dapat membuat notasi algoritma yang berbeda.
Hal yang penting mengenai notasi tersebut adalah mudah dibaca dan dimengerti. Meskipun notasi algoritma bukan notasi baku namun kepatuhan terhadap notasi perlu diperhatikan untuk menghindari kekeliruan. Dengan Notasi Algoritma kita menuliskan langkah‐langkah berfikir kita dalam betuk diskripsi yang urut dengan menggunakan bahasa kita sendiri (bukan bahasa program). Notasi Algoritma terbagi atas beberapa ,yaitu : 1. Notasi I : mendiskripsikan penyelesaiaan masalah.
Sebelum menyelesaiakn permasalahan harus terlebih dahulu bisa mendiskripsikan
permasalahannya sehingga bisa menemukan diskripsi untuk penyelesaian permasalahannya.
Contoh :
‐ Diskripsi Permasalahanya : Cara untuk pulang ke Surabaya ‐ Diskripsi cara penyelesaian masalahnya :
Untuk pulang ke Surabaya perlu menghitung biaya yang dikeluarkan dengan asumsi naik pesawat dan naik kereta‐api maka selisih biaya tidak banyak tetapi waktu yang ditempuh untuk dengan naik kereta‐api lebih lama daripada naik pesawat. Karena anak masih kecil dan takut capek dijalan maka dipilih waktu yang tercepat sampai di Surabaya.
anang@anang65.web.id
TIF UWKS 2009 DESAIN DAN ANALISIS ALGORITMA
Page 11
2. Notasi II : menyatakan langkah‐langkah algoritma dengan untaian kalimat deskriptif..
Yang dimaksut disini kita menuliskan langkah‐langkah apa yang harus di lakukan dalam menyelesaian suatu permasalahan. Langakah‐langkah tersebut merupakan proses yang beruntut dan urut. Dalam penulilsanya bisa kita lakukan dengan menggunakan penomoran atau pengkodean yang lain. Misalkan (Langkah 1, langkah 2,...atau langkah A, Langkah B,...).
Dalm pemilihan kata untuk notasi pertama bisa dilakukan dengan kalimat‐kalimat yang lebih deskriptif dan dengan bahasa yang mudah dimengerti. Misalkan :
suatau proses diawali dengan kata kerja seperti 'baca', 'hitung' , 'ganti'
dan sebagainya.
Sedangkan pernyataan kondisional dinyatakan dengan 'jika....' ,
'maka....'.
Notasi ini bagus untuk algoritma yang pendek ,namun untuk masalah yang besar notasi ini tidak mungkin dipakai.Selain itu, konversi dari notasi algoritma ke bahasa pemrograman cendrung relatif sukar. Sehingga penggunaan notasi ini harus di pisah‐pipsahkan dalam proses yang kecil/sederhana tidak diperbolehkan suatu algoritma yang panjang menggunakan hanya satu buah notasi.
Pemakaian notasi 1 akan efektif jika dalam algoritma yang pendek, sehingga jika algoritmanya panjang kita harus bisa membagi‐bagi dalam bagian yang pendek. Contoh : dari notasi I dibuat notasi II : - Pulang mudik 2 orang dewasa 1 anak umur 6 tahun. - Naik kereta api - Jika ya maka lama perjalanan 10 jam - Jika tidak naik pesawat yang lama perjalanan 45 menit - 3. Notasi III: menggunakan diagram alir(flow‐chart).
Jika notasi I sudah selesai maka kita bisa membuat langkah‐langkah dari notasi I tersebut kedalam bentuk Flowchart. Dalam membuat flowchart terdapat aturan baku untuk symbol‐symbolnya.
anang@anang65.web.id
TIF UWKS 2009 DESAIN DAN ANALISIS ALGORITMA
Page 12
Symbol tersebut dapat dilihat pada halam selanjutnya, dan akan dipelajari secara mendalam pada pertemuan selanjutnya. 4. Notasi IV: menggunakan bahasa program untuk menjabarkan hasil dari flowchart Dalam menuliskan dalam bahasa program kita menyesuikan dengan aturan‐aturan penulisan sesuai dengan baha program yang digunakan, misalnya Visual Basic,Delphi,Pascal,C#,C++, dan lain‐lain. Continue ….