Tuesday, February 24, 2015

DASAR ALGORITMA DAN PEMROGRAMAN

A. ALGORITMA

Kata algoritma diambil dari nama ilmuwan muslin Abu Jafar Muhammad bin Musa Al-Khawarizmi (760-846 M), beliau banyak menghasilkan karya di bidang matematika, geografi, hingga musik.
Pemecahan masalah sebenarnya adalah menemukan langkah-langkah tertentu yang dapat memecahkan masalah saat dijalankan. Seperti dalam masalah menelpon. Saat akan menelpon di telepon umum, maka langkah-langkah di bawah ini harus dilakukan:

1. Angkat ganggang telepon
2. Masukkan koin
3. Tekan nomor yang akan dihubungi
4. BIcara
5. Letakkan kembali gagang telepon

Langkah-langkah tersebut akan bekerja saat telepon dalam kondisi normal(telepon dijawab/nomor yang dihubungi menjawab), tetapi untuk keadaan tidak normal, maka langkah-langkah tersebut tidak akan memecahkan masalah. Oleh karena itu, langkah-langkah tersebut harus dikembangkan seperti berikut :

1. Angkat gagang telepon
2. a.  Jika terdengar nada panggil, masukkan koin
        b.  Jika tidak terdengar nada panggil, kelangkah selanjutnya
3. Tekan nomor yang akan dihubungi
4. a. Jika nomor telepon yang dihubungi menjawab, bicara
        b. Jika nomor telepon yang dihubungi tidak menjawab, kelangkah selanjutnya
5. Letakkan gagang telepon

Poin 2 dan 4 pada langkah pada contoh 2 dipecah menjadi dua langkah, masing-masing yaitu 2.a dan 2.b serta 4.a dan 4.b. ternyata, langkah-langkah yang lebihrinci itu pun tidak menggambarkan cara menelpom di telepon umum secara tuntas. Jika kita memberikan urutan langkah-langkah tersebut kepada sesorang yang belum pernah menggunakan telepon umum, maka belum tentu ia dapat menelpon dengan baik. Langkah tersebut benar jika seseorang hanya menelepon sebentar, tetapi jika ia akan menelepon lebih lama, yang berarti perlu memasukkan koin-koin lain, maka langkah-langkah tersebut harus lebih dikembangkan.

Urutan langkah-langkah tersebut adalah algoritma. Algoritma adalah urutan langkah-langkah yang dinyatakan dengan jelas dan tidak rancu untuk memecahkan suatu masalah (jika ada pemecahannya) dalam jangka waktu tertentu. Artinya, setiap langkah yang dikerjakan harus memiliki efek tertentu. Langkah-langkah yang tidak dapat dikerjakan dan tidak memiliki efek tertentu tidak dapat disebut sebagai suatu algoritma. Efek-efek pada setiap langkah akan menyelesaikan semua masalah secara keseluruhan.

Efek dari sebuah langkah tertentu bisa dilihat dengan membandingkan keadaan sebelum langkah tersebut dilakukan (K0) dan keadaan setelah langkah tersebut dilakukan (K1). Misalnya, keadaan sebelum langkah “angkat gagang telepon” adalah gagang telepon berada di tempatnya (K0), dan setelah langkah tersebut dilakukan gagang telepon sudah terangkat (K1), sehingga efek dari langkah tersebut adalah terangkatnya gagang telepon. Jika semua langkah di atas dilakukan, maka efek dari semua langkah tersebut akan memecahkan masalah tata cara menelepon.

Dari uraian di atas, secara umum dapat ditarik beberapa karakteristik atau syarat algoritma:

1. Algoritma harus tidak ambigu (unambiguous)
Deskripsi dari  langkah-langkah algoritma hanya dapat memiliki satu tafsiran. Oleh karena itu, sebuah bahasa pemograman seperti Pascal sering digunakan pada penulisan  algoritma, sehingga langkah-langkah yang dituliskan hanya mempunyai satu tafsiran saat dibaca oleh komputer.

2. Algoritma harut tepat (precise)
Algoritma harus menyatakan urutan tiap langkahnya. Kapan sebuah langkah atau langkah a dilakukan, apakah sebelum langkah b atau sesudahnya, dan harus dinyatakan dengan jelas. Algoritma harus mempunyai pernyataan jelas tentang kapan satu langkah berhenti dan kapan harus dilanjutkan ke langkah selanjutnya.

3. Algoritma harus pasti (definite)
Jika serangkaian langkah yang sama dilakukan dua kali maka hasilnya akan selalu sama. Misalnya, jika dua orang chef mengikuti satu resep yang sama, maka rasa masakan yang dihasilkan harus sama. Jika hasil akhir atau rasa masakan tidak sama, pasti ada beberapa perbedaan yang tidak disadari, seperti merk bahan yang berbeda, atau durasi memasak yang berbeda, atau ada perbedaan pada hal lainnya.

4. Algoritma harus berhingga (finite)
Langkah – langkah  dalam algoritma harus dapat dilakukan pada rentang waktu tertentu seperti yang telah diuraikan di atas.

B. CARA PENULISAN ALGORITMA

Algoritma sebagai langkah-langkah pemecahan masalah dapat dituliskan dalam beberapa cara, yaitu :
1. Uraian deskriptif
2. Pseudocode
3. Bagan alir (flow chart)

Algoritma dapat dituliskan dalam uraian deskriptif, yaitu menggunakan bahasa yang biasa digunakan sehari-hari. Selain cara tersebut, algoritma juga dapat dituliskan dengan kode-kode yang disepakati dan memiliki arti tertentu. Kode-kode ini disebut sebagai pseudocode. Kode-kode ini dapat dikembangkan oleh masing-masing programmer, asalkan arti dalam setiap kode disetujui bersama. Algoritma juga dapat dituliskan dalam notasi grafik yang masing-masing mempunyai arti tertentu. Notasi tersebut digunakan untuk menggambarkan bagan alir (flow chart). Terdapat beberapa notasi dasar dalam penggambaran bagan alir, seperti:

Keterangan:

a. Notasi kapsul digunakan untuk menggambarkan awal (mulai) dan akhir (selesai) sebuah bagan alir.
b. Notasi jajaran genjang digunakan untuk menggambarkan pembacaan data (input) dan untuk menampilkan daya (output).
c. Notasi persegi empat panjang digunakan untuk menggambarkan proses di dalam bagan alir.
d. Notasi belah keupat mrmpunyai dua panah keluar (dua nilai keluaran) yang masih bernilai true (ya, benar) dan false (tidak, salah) digunakan untuk pengujian sebah kondisi.
Langkah yang dilakukan setelah pengujian tergantung kepada hasil pengujian, true atau false.

Bagan alir sudah tidak banyak digunakan karena alasan berikut ini:

a. Bagan alir hanya cocok untuk masalah kecil. Untuk masalah yang lebih besar penggunaann ya menjadi kurang efisien.

b. Penggunaan bagan alir memerlukan kemampuan menggambar baik yang berarti modifikasi bagan alir akan lebih sulit. Meskipun demikian, bagan alir sangat bermanfaat saat digunakan untuk menggambarkan logika pemecahan masalah untuk pengajaran.

C. LANGKAH – LANGKAH PEMROGRAMAN

Sebenarnya hanya diperlukan waktu yang singkat untuk membuar program, terutama dalam penulisannya. Terdapat beberapa langkah penting lainnya yang jika dapat diselesaikan dengan baik, maka proses pemrograman akan menjadi singkat.

1. Mendefinisikan masalah. 
2. Mencari garis besar (outline) pemecahan masalah.
3. Menerjemahkan outline pemecahan masalah.
4. Menerjemahkan algoritma ke dalam bahasa pemrograman (coding).
5. Pengujian program (debugging).

Terdapat tiga kriteria program yang baik, yaitu benar (correct), jelas (clear) dan efisien (efficient). Kebenaran program harus dipenuhi oleh setiap program. Program yang baik akan jelas dan mudah dibaca dan dipahami. Jika terdapat beberapa alternative pemecahan masalah dalam program, program yang paling efisien adalah yang terbaik. Efisiensi program dapat terkait dengan waktu eksekusi dan ruang penyimpanan yang dibutuhkan.

Sumber : buku Dasar – dasar Algoritma dan Pemograman (BAB 1)








Adetya Pratiwi (D1041141048)

No comments:

Post a Comment