PENGERTIAN DASAR
Pernahkah kalian dengan tentang kata Algoritma atau juga Mungkin kita sering mendengar orang menyebutkan kata algoritma. Hampir di semua sisi kehidupan kita, selalu berkaitan dengan yang namanya algoritma. Mau membuat program komputer, mau menyelesaikan soal-soal matemetika, pasti pakai algoritma. Bahkan kegiatan sehari-hari pun tidak lepas dari yang namanya algoritma.
Mengapa algoritma selalu ada? Jawabnya simpel saja, selama ada masalah, maka algoritma juga ada dan akan selalu diusahakan untuk ada. Lalu apa hubungannya?
Begini, pada saat kita menghadapi masalah, tentu kita ingin menyelesaikan masalah tersebut, iya kan? Bagaimanapun, seberat apapun masalahnya, kita ingin agar masalah itu selesai. Nah, proses-proses dan langkah-langkah kita dalam penyelesaian masalah inilah yang disebut dengan algoritma. Ya… walaupun dalan kenyataannya kita tidak pernah menggunakan atau bahkan tahu dengan sebutan algoritma.
Algoritma adalah rangkaian prosedur atau langkah-langkah yang berurutan untuk memecahkan dan menyelesaikan suatu masalah.
Ya, begitulah kira-kira gambaran singkat tentang algoritma. Lalu seperti apa sih contohnya? Tadi kan disebut bahwa kehidupan ini tidak lepas dengan yang namanya algoritma. Coba kita baca dulu beberapa masalah berikut ini :
- Misalkan Anda seorang pelajar atau mahasiswa (seperti saya), setiap pagi hari harus pergi ke sekolah/kampus, apa yang Anda lakukan untuk memecahkan masalah Anda ini, agar Anda bisa sampai tujuan.
- Anda punya 2 gelas minuman, 1 gelas berisi susu dan lainnya berisi teh, bagaimana cara Anda menukarkan isi kedua gelas tersebut? Ingat ya, ditukar, bukan dicampur…
- Anda hobi bikin kue, misalnya donat, bagaimana cara Anda bikin kue tersebut?
- Banyak lagi masalah-masalah lainnya, Anda pikirkan saja sendiri.
Melihat beberapa contoh tersebut yang menuntut penyelesaian, maka kesatuan setiap urutan langkah-langkah kita dalam menyelesaikannya disebut algoritma. Sekarang coba kita lihat bagaimana algortima dari contoh-contoh di atas.
Contoh 1 :
- bangun pagi-pagi
- mandi
- berpakaian rapi
- makan pagi/sarapan
- berangkat ke sekolah/kampus naik motor
- kalau tidak, ikut teman
- kalau tidak, naik angkot
- sampai sekolah/kampus, belajar
Contoh 2 :
- beri nama A untuk gelas berisi susu dan B untuk gelas berisi teh
- ambil 1 gelas kosong untuk membantu proses pertukaran, beri nama C untuk gelas bantu tersebut
- tuang susu dari gelas A ke dalam gelas C
- tuang teh dari gelas B ke dalam gelas A
- tuang susu dari gelas C ke dalam gelas B
- susu dan teh sudah bertukar tempat
Kriteria Pemilihan Algoritma.
Suatu Algoritma yg terbaik (The Best) : “ Suatu algoritma harus menghasilkan output yg tepat guna (efektif) dlm waktu yg relatif singkat & penggunaan memori yg relatif sedikit (efesien) dgn langkah yg berhingga & prosedurnya berakhir baik dlm keadaan dip’oleh suatu solusi ataupun tdk ada solusinya. “
b. Jumlah Memori Yang Digunakan.
Sifat – Sifat Algoritma
Kriteria Pemilihan Algoritma
1. Ada output: mengacu pada definisi algoritma, suatu algoritma haruslah mempunyai output yang harus merupakan solusi dari masalah yang sedang diselesaikan.
2. Efektifitas dan Efisiensi :Dikatakan efektif jika algoritma tersebut menghasilkan suatu solusi yang sesuai dengan masalah yang diselesaikan dalam arti algoritma harus tepat guna.Dikatakan efisiensi jika waktu proses suatu algoritma relatif lebih singkat dan penggunaan memori komputernya lebih sedikit.
3. Jumlah langkahnya berhingga : maksudnya adalah barisan instruksi yang dibuat harus dalam suatu urutan tertentu atau harus berhingga agar masalah yang dihadapi dapat diselesaikan dengan tidak memerlukan waktu relatif lama.
4. Berakhir à (Semi Algoritma) : proses didalam mencari penyelesaian suatu masalah harus berhenti dan berakhir dengan hasil akhir yang merupakan solusinya atau berupa informasi yang tidak diketemukan solusinya. Artinya baik dalam kondisi solusi ada atau tidak ada, proses akan tetap harus berakhir dan berhenti. Istilah lain dalam algoritma dikenal sebagai SEMI ALGORITMA, yaitu suatu prosedur yang hanya akan berhenti jika mempunyai atau menghasilkan solusi, sedangkan jika tidak menghasilkan solusi, maka prosedur tersebut akan berjalan tanpa henti.
5. Terstruktur : yaitu urutan barisan langkah-langkah yang digunakan harus disusun sedemikian rupa agar proses penyelesaian tidak berbelit-belit sedemikian sehingga bagian-bagian proses dapat dibedakan dengan jelas mana bagian input, proses dan output sehingga memudahkan user melakukan pemeriksaan ulang.
Kesimpulannya:
Suatu Algoritma yang terbaik(The Best) : “Suatu algoritma harus menghasilkan output yan tepat guna(efektif) dalam waktu yang relatif singkat & penggunaan memori yang relatif sedikit(efisien) dengan langkah yang berhingga & prosedurnya berakhir baik dalam keadan diperoleh suatu solusi ataupun tidak ada solusinya”