Mengenal Algoritma

A. Pengertian Algoritma

Algoritma adalah urutan langkah-langkah logis untuk menyelesaikan suatu masalah yang disusun secara sistematis dan logis. Kata Logis merupakan kata kunci dalam Algoritma karena langkah-langkah dalam Algoritma harus bersifat logis (nyata) dan harus dapat ditentukan bernilai salah atau benar.

Sedangkan menurut Kamus Besar Bahasa Indonesia, Algoritma adalah uruta logis pengambilan putusan untuk pemecahan masalah.
Kata logis merupakan kata kunci dalam sebuah algoritma. Langkah-langkah di dalam algoritma harus logis, ini berarti hasil dari urutan langkah-langkah tersebut harus dapat ditentukan, benar atau salah. Langkah-langkah yang tidak benar dapat memberikan hasil yang salah.

Dalam matematika dan komputasi, algoritma atau algoritme merupakan kumpulan perintah untuk menyelesaikan suatu masalah. Perintah-perintah ini dapat diterjemahkan secara bertahap dari awal hingga akhir. Masalah tersebut dapat berupa apa saja, dengan catatan untuk setiap masalah, ada kriteria kondisi awal yang harus dipenuhi sebelum menjalankan algoritma. Algoritma akan dapat selalu berakhir untuk semua kondisi awal yang memenuhi kriteria, dalam hal ini berbeda dengan heuristik. Algoritma sering mempunyai langkah pengulangan (iterasi) atau memerlukan keputusan (logika boolean dan perbandingan) sampai tugasnya selesai.

B. Penemu Algoritma dalam Sejarah

Kata algoritma berasal dari latinisasi nama seorang ahli matematika dari Uzbekistan Al Khawārizmi (hidup sekitar abad ke-9), sebagaimana tercantum pada terjemahan karyanya dalam bahasa latin dari abad ke-12 “Algorithmi de numero Indorum”. Pada awalnya kata algorisma adalah istilah yang merujuk kepada aturan-aturan aritmetis untuk menyelesaikan persoalan dengan menggunakan bilangan numerik arab (sebenarnya dari India, seperti tertulis pada judul di atas). Pada abad ke-18, istilah ini berkembang menjadi algoritma, yang mencakup semua prosedur atau urutan langkah yang jelas dan diperlukan untuk menyelesaikan suatu permasalahan. Masalah timbul pada saat akan menuangkan bagaimana proses yang harus dilalui dalam suatu/sebuah sistem (program) bagi komputer sehingga pada saat eksekusinya, komputer dapat bekerja seperti yang diharapkan. Programer komputer akan lebih nyaman menuangkan prosedur komputasinya atau urutan langkah proses dengan terlebih dahulu membuat gambaran (diagram alur) diatas kertas.

C. Jenis-jenis algoritma

Terdapat beragam klasifikasi algoritma dan setiap klasifikasi mempunyai alasan tersendiri. Salah satu cara untuk melakukan klasifikasi jenis-jenis algoritma adalah dengan memperhatikan paradigma dan metode yang digunakan untuk mendesain algoritma tersebut. Beberapa paradigma yang digunakan dalam menyusun suatu algoritma akan dipaparkan dibagian ini. Masing-masing paradigma dapat digunakan dalam banyak algoritma yang berbeda. Yaitu :

  1. Divide and Conquer, paradigma untuk membagi suatu permasalahan besar menjadi permasalahan-permasalahan yang lebih kecil. Pembagian masalah ini dilakukan terus menerus sampai ditemukan bagian masalah kecil yang mudah untuk dipecahkan. Singkatnya menyelesaikan keseluruhan masalah dengan membagi masalah besar dan kemudian memecahkan permasalahan-permasalahan kecil yang terbentuk.]
  1. Dynamic programming, paradigma pemrograman dinamik akan sesuai jika digunakan pada suatu masalah yang mengandung sub-struktur yang optimal (, dan mengandung beberapa bagian permasalahan yang tumpang tindih . Paradigma ini sekilas terlihat mirip dengan paradigma Divide and Conquer, sama-sama mencoba untuk membagi permasalahan menjadi sub permasalahan yang lebih kecil, tapi secara intrinsik ada perbedaan dari karakter permasalahan yang dihadapi.
  1. Metode serakah. Sebuah algoritma serakah mirip dengan sebuah Pemrograman dinamik, bedanya jawaban dari submasalah tidak perlu diketahui dalam setiap tahap; dan menggunakan pilihan “serakah” apa yang dilihat terbaik pada saat itu.

D. CONTOH ALGORITMA DALAM KEHIDUPAN SEHARI-HARI

Proses semacam algoritma sebenarnya dijumpai dalam kehidupan sehari-hari. Contohnya saja jika Anda membaca resep masakan, selain bahan-bahan yang digunakan, Anda juga akan melihat prosedur untuk membuat masakan. Prosedur dalam resep seperti itu sebenarnya menyatakan semacam algoritma. Prosedur itu merupakan suatu urutan yang memandu orang untuk melakukan suatu proses. Namun ada perbedaan antara algoritma dan prosedur. Prosedur biasanya bersifat global dengan mengasumsikan bahwa manusia telah mengetahui rincian langka-langkah tertentu.

berikut adalah contoh-contoh algoritma dan bukan algoritma, sehingga memudahkan kita untuk membedakan mana yang algoritma atau bukan dan kita lebih tau algoritma itu seperti apa.

1. Contoh Algoritma 1

  •  Rumusan masalah:
    Aku harus mengirim surat kepada sahabat penaku  yang berada di Jakarta. Aku harus menuliskan alamat sahabat penaku yg ada di Jakarta dibagian depan amplop dan alamat rumahku dibagian belakang amplop suratnya. Namun, aku tidak tahu jumlah perangko yang harus aku tempel di sisi kiri atas amplop. Jadi, aku harus pergi ke kantor pos terlebih dahulu. Sesampainya kantor pos, aku langsung menuju ke loket pengiriman surat. Aku beruntung tidak perlu mengantri karena dikantor pos sepi. Aku serahkan surat itu kepada penjaga loket, oleh penjaga loket suratku diberi perangko sesuai dengan tujuan surat yang aku buat untuk sahabatku. Dan suratku siap dikirim oleh tukang pos.
  •  Algoritma dari masalah diatas, yaitu:
    1. Aku menyiapkan surat yang akan aku kirimkan.
    2. Aku menuliskan alamat sahabatku dibagian depan amplop dan alamat rumahku dibagian belakang amplop.
    3. Aku pergi ke kantor pos.
    4. Menuju ke loket dan menyerahkan surat agar diberi perangko sesuai dengan tujuan surat.
    5. Surat siap dikirim.

2. Contoh Algoritma 2

  • Rumusan masalah:
    Menentukan sebuah bilangan bulat, apakah merupakan bilangan genap atau ganjil ? Dengan cara, bilangan di mod 2   Jika, hasilnya sama dengan 0 maka bilangan tersebut adalah bilangan genap. Dan apabila hasilnya selain 0 maka bilangan tersebut adalah bilangan ganjil.
  • Algoritmanya adalah:
    Tentukan sebuah bilangan bulat.
    2. Bilangan mod 2 .
    3. Jika, hasilnya sama dengan 0 maka bilangan tersebut adalah bilangan genap. Dan jika hasilnya selain 0 maka bilangan tersebut bilangan ganjil

 

Contoh bukan algoritma:
Saya ingin minum susu coklat.
1. Saya menyiapkan gelas dan susu coklat bubuk.
2. Tambahkan air panas dan gula.
3. Tambahkan air mineral.
4. Susu coklat siap diminum.

 

3. Contoh Algoritma 3 = Algoritma Membuat Mie Goreng Instant

1. Siapkan spons
2. Apakah spons ada?
3. Jika tidak ada, beli diwarung
4. Siapkan sabun pencuci piring
5. Apakah sabun ada?
6. Jika tidak ada, beli diwarung
7. Taruh piring kotor kedalam wastafel
8. Buka keran air
9. Basahi piring kotor dengan air
10. Tutup keran air
11. Tuang sabun ke spons
12. Usapkan spons ke piring yang kotor
13. Buka kran air
14. Bilas piring yang telah disabun dengan air sampai bersih
15. Tutup keran air
16. Jika sudah bersih, taruh disamping wastafel
17. Tunggu hingga airnya tiris dan kering
18. Jika sudah kering, pindahkan piring kedalam rak piring
19. Piring siap digunakan

Contoh Algoritma 4.

1. Siapkan spons
2. Apakah spons ada?
3. Jika tidak ada, beli diwarung
4. Siapkan sabun pencuci piring
5. Apakah sabun ada?
6. Jika tidak ada, beli diwarung
7. Taruh piring kotor kedalam wastafel
8. Buka keran air
9. Basahi piring kotor dengan air
10. Tutup keran air
11. Tuang sabun ke spons
12. Usapkan spons ke piring yang kotor
13. Buka kran air
14. Bilas piring yang telah disabun dengan air sampai bersih
15. Tutup keran air
16. Jika sudah bersih, taruh disamping wastafel
17. Tunggu hingga airnya tiris dan kering
18. Jika sudah kering, pindahkan piring kedalam rak piring
19. Piring siap digunakan