ALGORITMA : urutan langkah-langkah logis penyelesaian masalah yang
disusun secara .... perbedaan antara belajar algoritma program dan belajar
bahasa ...
[email protected] TIF UWKS
2009
DESAIN DAN ANALISIS ALGORITMA
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. Contoh lain Algoritma dalam kehidupan sehari‐hari :
Page 1
[email protected] TIF UWKS
2009
DESAIN DAN ANALISIS ALGORITMA
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
Page 2
[email protected] TIF UWKS
2009
DESAIN DAN ANALISIS ALGORITMA
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
Page 3
[email protected] TIF UWKS
2009
DESAIN DAN ANALISIS ALGORITMA
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
Page 4
[email protected] TIF UWKS S
2009
DESA AIN DAN ANALISIS A A ALGORITMA A
progrram (algoritm ma program m) Tahap Pe enyelesaian Masalah
Kriteria P Pemilihan Algoritma 1. Ada Output A 2. Effektifitas dan Efisiensi 3. Ju umlah Langkkahnya Berhingga 4. Berakhir 5. Terstruktur
Aloritm ma dikatakkan baik jiika : Suatuu algoritma harus menghasilkan output o yg teepat guna (efektif) dalam wakktu yg relattif singkat & & pengguna aan memorri yg relatif f sedikit (efe fesien) dgn ga & prosed durnya berakkhir baik dlm m keadaan d diperoleh suatu solusi attaupun tdk langkah yg berhingg ada solussinya.“
Page 5
[email protected] TIF UWKS
2009
DESAIN DAN ANALISIS ALGORITMA
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
Page 6
[email protected] TIF UWKS S
•
2009
DESA AIN DAN ANALISIS A A ALGORITMA A
M Menggunaka an Pseudoco ode o Sudah h dekat dengan bahasa pemrogram man, tetapi sulit dimengerti oleh orang o yang belum m tahu pemrograman
nalisa Algoritma Tahap An 1. Bagaimana m merencanakaan algoritma Dengaan Mendefin nisikan masaalah. Conto oh : Permasaalahan mengghitung luas lingkaran, d dengan data yang diketaahui adalah diame eter lingkaraan. Rumu us : ∏ . r2 de engan Phi == 3.14 atau 2 22 2. Bagaimana m menyatakan ssuatu algorittma (menuliis algoritma)) ‐
Misalnya D Dengan psud docode
Suatu cara penulissan algoritma agar ide dan logika daari algoritm ma dapat disampaikan//diekspresikan menggun nakan gaya b bahasa pemrograman teertentu.
Page 7
[email protected] TIF UWKS S
‐
2009
DESA AIN DAN ANALISIS A A ALGORITMA A
Dengan flo owchart / diagram alir
Program Flow wchart, yaittu bagan yang menggambar‐kan urutan logikaa dari suatu u prosedur pemecahan m masalah.
3. Bagaimana vaaliditas suatu algoritma.. Untukk melihat kesesuaian k g dari pembuatan/ p /akhir dari dengan tujjuan dan goal algoritma ersebutt. nar berarti teelah sesuai Misalkkan apakah benar nilai ssuatu algorittma akan ganjil , jika ben dengaan tujuan alggoritma, jika salah haruss membuat aalgoritma laggi. Menganalisa suatu Algoriitma. 4. Bagaimana M U Untuk meliha at effisiensi d dan efektifittas dari suattu algoritma,, dapat dilihat dari:
•
Waktu u Tempuh dari Suatu Alggoritma
•
Jumlah memori yaang digunakkan Page 8
[email protected] TIF UWKS
•
2009
DESAIN DAN ANALISIS ALGORITMA
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 : jika pembayaran tunai diberi diskon 10%
Page 9
[email protected] TIF UWKS
2009
DESAIN DAN ANALISIS ALGORITMA
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.
Page 10
[email protected] TIF UWKS
2009
DESAIN DAN ANALISIS ALGORITMA
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.
Page 11
[email protected] TIF UWKS
2009
DESAIN DAN ANALISIS ALGORITMA
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 ….
Page 12