Algoritma sebenarnya bukan sesuatu yang asing bagi kita. Penemunya adalah seorang ahli matematika Muslim dari uzbekistan yang bernama Abu Abdullah Muhammad Ibn Musa al-Khwarizmi. Di literatur barat beliau lebih terkenal dengan sebutan Algorizm. Panggilan inilah yang kemudian dipakai untuk menyebut konsep algoritma yang ditemukannya. Abu Abdullah Muhammad Ibn Musa al-Khwarizmi (770-840) lahir di Khwarizm (Kheva), kota di selatan sungai Oxus (sekarang Uzbekistan) tahun 770 masehi. Kedua orangtuanya kemudian pindah ke sebuah tempat di selatan kota Baghdad (Irak), ketika ia masih kecil. Khwarizm dikenal sebagai orang yang memperkenalkan konsep algoritma dalam matematika, konsep yang diambil dari nama belakangnya.
Jadi, pengertian Algoritma adalah urutan langkah-langkah logis penyelesaian masalah yang disusun secara sistematis dan logis.
Algoritma adalah jantung dari ilmu komputer atau informatika, tetapi tidak identik dengan komputer saja karena algoritma selalu dipakai dalam sehari-hari. Contohnya adalah dalam resep memasak dengan langkah-langkahnya yang sistematis. Dan masih banyak lagi kegiatan sehari-hari yang merupakan algoritma. Bedanya adalah dalam dunia TI algoritma dipakai dalam bahasa pemrograman, karena komputer hanyalah salah satu pemroses. Agar dapat dilaksanakan oleh komputer, algoritma harus dituliskan dalam bahasa pemrograman. Bahasa pemrograman ada banyak, antara lain Pascal, C, C++, Basic, Fortran, Labview, Java, dll.
Jenis-jenis algoritma
~ JENIS-JENIS ALGORITMA
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.
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.
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.
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.
Adapun jenis-jenis algoritma yang lain adalah :
1. Bahasa Semu (pseudo code)
yaitu dengan menggunakan bahasa sehari-hari, tetapi harus jelas dan struktur.
2. Diagram Alir/Alur (Flowchart)
yaitu dengan membuat suatu penulisan atau penyajian algoritma berupa
diagram yang menggambarkan susunan alur logika dari suatu permasalahan
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.
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.
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.
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.
Adapun jenis-jenis algoritma yang lain adalah :
1. Bahasa Semu (pseudo code)
yaitu dengan menggunakan bahasa sehari-hari, tetapi harus jelas dan struktur.
2. Diagram Alir/Alur (Flowchart)
yaitu dengan membuat suatu penulisan atau penyajian algoritma berupa
diagram yang menggambarkan susunan alur logika dari suatu permasalahan
TRIK CEPAT MENYELESAIKAN SOAL MATEMATIKA
(Algoritma yang tetap dapat terlupakan)
Baru-baru saja aku menonton tayangan televisi di sebuah stasiun televisi swasta. Tayangan itu cukup menarik karena membahas trik cepat mengerjakan soal-soal ujian matematika tentang materi perbandingan. Namun saat pembahasan dengan trik cepat aku malah tertawa keras. Saking kerasnya membuat salah seorang teman kos ku terkejut dan sehingga dia tertarik ikut menonton. Dan tahukah kamu apa yang terjadi? Dia juga ikut tertawa. Hua...ha...ha...ha.... Mau tau ceritanya?
Begini ceritanya. Pada jaman dahulu kala ........... (alah.....jadi ngawur. Sorry)
Ada soal seperti ini (kira-kira aja ya kata-katanya, lupa. Tapi konsepnya tetap diusahakan sama)
2 orang pekerja mampu menyelesaikan suatu proyek selama 12 hari. Jika pekerjanya ditambah 6 orang, berapa lama proyek itu selesai?
Penyelesaiannya dengan cara biasa seperti ini.
Diketahui :
n1 = 2 orang
t1 = 12 hari
n2 = 2 + 6 = 8 orang
Tanya : n2 (waktu yang diperlukan setelah ditambah pekerjanya)?
Jawab. Karena semakin banyak pekerja maka waktu yang dihabiskan makin sedikit maka hal ini merupakan perbandingan terbalik. (ciri-cirinya perbandingan terbalik adalah jika variabel x semakin naik tetapi variabel y semakin turun).
Kalau begitu maka perkalian pasangan masing-masing komponen akan menghasilkan konstanta yang sama. Artinya:
Jadi, perlu waktu sebanyak 3 hari.
Nah, setelah itu muncul ungkapan:
Bukan SAYA (maaf nama tayangan dirahasiakan) kalau tidak ada trik cepatnya. Begini caranya:
Karena ini perbandingan terbalik, maka
Hebat bukan? Cuma satu baris (dengan bangganya dia tertawa).
Melihat trik cepat ini, kontan saja saya tertawa. Ini kan cara yang sama seperti cara sebelumnya, hanya beberapa langkah dihilangkan. Coba perhatikan langkah kedua pada cara sebelumnya. Kalau 8 kita pindahkan pakai kali silang*, maka 8 kan berada di bawah. Jadinya sama dengan cara di atas. Cara pertama terlihat panjang karena urutan pekerjaan diperlihatkan. Kemudian teknik pindah silang baru dijalankan pada langkah ke empat.
Hua...ha...ha.... lucu kan (mudah-mudahan anda juga merasa lucu).
Kalau anda merasa lucu, maka seharusnya anda tertawa juga pada hampir semua trik cepat yang ada sekarang ini. Hampir semuanya memiliki karakteristik seperti di atas. Trik cepat biasanya merupakan cara yang panjang tetapi beberapa baris dihilangkan. Lalu cara cepat itu ditulis dengan rumus tersendiri yang sepertinya terpisah dari rumus sebenarnya (coba aja kita mau tekun, maka kita dapat menemukan semua cara atau trik cepat melalui penurunan rumus sebenarnya).
Terlepas dari itu semua, jika kita perhatikan dengan seksama baik menggunakan rumus sebenarnya maupun trik cepat, maka keduanya merupakan suatu algoritma. Dikatakan algoritma karena adanya urutan langkah-langkah tertentu dalam mengerjakan. Nah, kalau lupa pada langkahnya, matilah kita. Pasti kita tidak mampu mengerjakannya. Apalagi untuk trik cepat karena lain soal lain pula trik cepatnya. Artinya, jauh lebih banyak menghapal trik cepat dibandingkan hanya menghapal rumusnya. Sekali lagi, kalau lupa cara cepatnya atau karakteristik soalnya, Matilah kita.(weleh...weleh.... matinya dua kali. Mungkin karena ini ya plesetan kata matematika adalah mati-matian)
Kalau seandainya pembelajaran matematika tidak menitikberatkan pada rumus dan urutan-urutan langkah penggunaan melainkan pada berpikir dan bernalar kreatif siswa, maka hal ini tidak perlu terjadi. Siswa tidak perlu banyak menghapal karena mampu berpikir dan bernalar sendiri untuk menyelesaikan soal. Artinya siswa dibebaskan untuk menentukan penyelesaian berdasarkan pemikiran dan penalarannya sendiri. Coba perhatikan contoh soal di atas, kita akan menyelesaikannya dengan logika.
”Kalau 2 orang selesainya 12 hari, maka kalau pekerja menjadi 4 orang selesainya menjadi 6 hari. Ya kan.... nah kalau 4 orang selesainya 6 hari maka tentunya kalau pekerjanya menjadi 8 orang, berarti selesainya menjadi 3 hari”. Selesai bukan. Pakai nalar aja bisa kok.
Coba juga persoalan berikut.
Andi memandang dari jendela sebuah taman dekat rumahnya. Dia melihat bahwa masing-masing orang di taman membawa seekor anjing piaraannya. Setelah itu dia menghitung banyaknya semua kaki di taman itu dan ternyata ada 54 buah. Berapa banyaknya anjing peliharaan yang ada di taman?
Hayo, bagaimana mengerjakannya. Pasti di antara anda sudah keluar tuh lambang-lambang x dan y. Ya kan? Lalu karena manusia punya dua kaki dan anjing punya empat kaki pasti ada yang memikirkan 2x + 4y = 54. benar kan? Nah, sekarang bagaimana persamaan lainnya????.............
Kalau anda memikirkan cara di atas, maka kalau boleh saya katakan di kepala anda sudah tertanam algoritma yang kuat. Jika anda menemukan persamaan satunya maka anda dapat menyelesaikannya dengan teknik substitusi atau teknik lainnya. Tapi kalau tidak, apa yang terjadi?
Sebenarnya kalau kita mau berpikir dan bernalar kreatif, maka kita dapat menggunakan logika saja. Misalnya seperti ini......
Manusia punya 2 kaki
Seekor anjing punya 4 kaki
Satu pasang (manusia dan anjing peliharaan) totalnya 6 kaki. Karena terdapat 54 kaki berarti ada 9 pasang.
Jadi ada 9 ekor anjing peliharaan.
Selesai. tanpa ada rumus-rumus yang bikin ribet.
Jika kita mau menggunakan logika yang diwujudkandalam berpikir dan bernalar maka hampir semua permasalahan dapat kita selesaikan. Terutama permasalahan yang berkaitan dengan kehidupan sehari-hari. Bukan kah untuk menyelesaikan masalah yang dihadapi kita menyelesaikannya dengan logika dan berpikir, bukannya dengan rumus-rumus yang njelimet?
Bebaskan para siswa berpikir dan bernalar. Biarkan kedua komponen itu berkembang dengan baik dalam diri siswa. Karena keduanya diperlukan oleh siswa untuk menghadapi kehidupan.





0 comments:
Post a Comment
Terima kasih atas kunjungannya.....
Jangan lupa komentar anda ya !