Apakah sebelum membuat algoritma kita harus melakukan dekomposisi, pengenalan pola, dan abstraksi terlebih dahulu?

Algoritma adalah jantung ilmu komputer atau informatika. Banyak cabang ilmu komputer yang mengarah ke dalam terminologi algoritma. Namun, jangan beranggapan algoritma selalu identik dengan ilmu komputer saja. Dalam kehidupan sehari-hari pun banyak terdapat proses yang dinyatakan dalam suatu algoritma.

Apakah kita harus selalu melakukan dekomposisi, abstraksi, pengenalan pola, dan abstraksi terlebih dahulu sebelum merancang sebuah algoritma. Jawaban saya adalah iya, ketiga hal tersebut sangat penting untuk dilakukan mengapa? Karena pada dasarnya keempat langkah tersebut adalah serangkaian computational thinking, computational thinking sendiri mengajarkan kita untuk berfikir selangkah demi selangkah.

Dekomposisi membantu kita untuk memecah masalah yang kompleks menjadi sederhana sehingga lebih mudah untuk dipahami dan dicari penyelesaiannya, pattern recognition membantu kita memprediksi penyelesaian masalah melalui pola yang ada sehingga saat kita menghadapi masalah baru yang serupa tidak perlu bekerja dari awal lagi cukup mengenali pola yang ada dan tentukan penyelesaiannya, selanjutnya tahapan abstraksi juga tidak bisa dilewatkan, melalui proses pemilahan informasi abstraksi memudahkan kita untuk menjelaskan suatu ide.

Algoritma dirancang berdasarkan hasil dekomposisi masalah dan pattern recognition yang telah dilakukan. Sulit merancang algoritma tanpa ketiga proses tersebut. Bayangkan bila kita merancang algoritma tanpa proses dekomposisi, pattern recognition, dan abstraksi, tentunya kita akan pusing menentukan langkah-langkah apa saja yang harus dilakukan, saat menemui masalah yang serupa kita akan membutuhkan waktu yang lama untuk menyelesaikannya karena tidak mengenali pola, dan tentu saja Algoritma yang kita rancang akan memuat banyak informasi yang tidak penting karena melewatkan proses abstraksi, akibatnya algoritma yang kita buat susah diimplementasikan untuk menyelesaikan masalah.

sumber :

Berpikir komputasi (Computational Thinking) adalah sebuah metoda pemecahan masalah dengan mengaplikasikan/melibatkan teknik yang digunakan oleh software engineer dalam menulis program. Berpikir komputasi tidak berarti berpikir seperti komputer, melainkan berpikir tentang komputasi di mana sesorang dituntut untuk memformulasikan masalah dalam bentuk masalah komputasi dan menyusun solusi komputasi yang baik (dalam bentuk algoritma) atau menjelaskan mengapa tidak ditemukan solusi yang sesuai.

Teknik berpikir komputasi diantaranya:

  • Dekomposisi: Yaitu kemampuan untuk memecah tugas (masalah) kompleks menjadi tugas-tugas kecil yang lebih rinci.
  • Pengenalan pola: Yaitu kemampuan untuk mengenal kesamaan atau perbedaan umum yang nantinya akan membantu dalam membuat prediksi.
  • Abstraksi: Kemampuan menyaring informasi yang tidak dibutuhkan dan menarik generalisasi dari informasi yang dibutuhkan sehingga seseorang dapat menggunakan informasi tersebut untuk menyelesaikan masalah yang serupa.
  • Perancangan algoritma: Adalah kemampuan untuk menyusun langkah-langkah penyelesaian masalah.

Sehingga, didalam pembuatan sebuah algoritma pasti memerlukan untuk melakukan dekomposisi, pengenalan pola dan abstraksi terlebih dahulu karena keempat rangkaian tersebut saling berkaitan satu sama lain. Apabila tidak ada salah satu darinya pasti akan menghasilkan hasil akhir yang tidak sesuai dengan keinginan awal kita. Karena algoritma sendiri merupakan langkah-langkah untuk menyusun suatu penyelesaian suatu masalah,jika didalam menentukan sebuah algoritma kita tidak melalui tahapan-tahapan penyelesaian masalah dengan semua proses yang ada pada computational thinking pasti hasil dari sebuah algoritma akan ada yang tidak tepat bahkah bisa jadi terdapat banyak kekurangan dan kesalahn.

Referensi:
https://www.google.co.id/url?sa=t&rct=j&q=&esrc=s&source=web&cd=4&cad=rja&uact=8&ved=0ahUKEwiawbTayejWAhUDvLwKHajmA8gQFghBMAM&url=https%3A%2F%2Fhaddadsammir.wordpress.com%2F2015%2F01%2F22%2Fberpikir-komputasi%2F&usg=AOvVaw2nKQWD4DTn1Gle-1bYDQbA

computational-thinking

Algoritma merupakan urutan atau langkah-langkah untuk penghitungan atau untuk menyelesaikan suatu masalah yang ditulis secara berurutan. Algoritma bisa dibuat setelah kita melakukan dekomposisi, pengenalan pola, dan abstraksi. Kita tidak bisa membuat suatu algoritma sebelum kita melakukan ketiga hal tersebut. Karena algoritma dan ketiga hal tersebut tadi memiliki hubungan saling keterkaitan yang tidak bisa dipisahkan dalam computational thinking.

Algoritma dan ketiga hal tersebut seperti seperti bagian – bagian dari puzzle, oleh karena itu bila kita ingin menyelesaikan suatu masalah kita harus melakukan keempat hal tersebut. Apabila kita membuat algoritma tanpa memperhatikan atau melakukan ketiga hal tersebut. Mungkin algoritma yang kita buat akan tidak karuan ataupun akan terjadi error. Dan bila terjadi error maka output/hasil dari algoritma tersebut akan tidak sesuai dengan apa yang direncanakan dan diinginkan. Dan juga masalah – masalah yang ada tidak akan bisa terselesaikan.
Sumber :

https://books.google.co.id/books?id=BZkkDwAAQBAJ&pg=PT33&lpg=PT33&dq=what+happened+if+we+make+an+algorithm+without+making+abstraction,+decomposition,+pattern+recognition&source=bl&ots=8OmNOeNclf&sig=-tHS9eijS4GI1VmTbqxP4MZJ2d4&hl=id&sa=X&ved=0ahUKEwiXwciriejWAhWDppQKHW4FAYcQ6AEIRTAE#v=onepage&q=what%20happened%20if%20we%20make%20an%20algorithm%20without%20making%20abstraction%2C%20decomposition%2C%20pattern%20recognition&f=false

Dalam pengerjaannya, Computational thinking harus mengerjakan dekomposisi, pattern recognition, dan abstraksi terlebih dahulu sebelum mengerjakan Algoritma. Lalu apakah kita harus melakukan semua itu sebelum melakukan tahapan algoritma?

Jawabannya adalah iya, karena dalam computational thinking kita dituntut untuk berpikiran secara runtut dan logis. Dan tahapan dekomposisi, pattern recognition, dan abstraksi adalah sebuah proses yang dilakukan untuk mempermudah pengerjaan dan untuk melogiskan pikiran agar tidak menjalankan sebuah keadaan yang tidak logis. Sedangkan Algoritma hanyalah sebuah proses pengeksekusian runtutan kegiatan yang telah dirancang.

Dekomposisi memiliki pengertian yaitu pemecahan suatu masalah yang komplex menjadi masalah masalah yang lebih kecil lagi. Hal ini sangat dibutuhkan untuk membuat otak kita bisa memahami langkah yang akan kita lakukan dalam penyelesaian sub masalah. Jika kita melewatkan proses dekomposisi ini maka bisa jadi akan terbesit sebuah kegiatan yang tidak masuk akal untuk menyelesaikan masalah yang sangat besar dan sangat membingungkan.

Pattern Reognition adalah sebuah proses penemuan pola dari beberapa sub masalah yang sudah di dekomposisikan tadi. Dari sini bila kita melewati proses pattern recognition maka bisa jadi kita akan melakukan suatu algoritma yang akan kita kerjakan berulang-ulang kali dalam menyelesaikan beberapa sub masalah yang sebenarnya bisa kita selesaikan dengan melakukan kegiatannya hanya sekali saja. Dan dari pengulangan aktifitas tersebut menimbulkan ketidak efisienan dalam melakukan algoritma.

Abstraksi adalah proses pemilahan antara sub masalah yang sangat berpengaruh dengan masalah pokok dan sub masalah yang tidak berpengaruh terhadap masalah pokok. Jika kita melewatkan proses abstraksi ini bisa jadi kita akan melakukan suatu kegiatan yang sia-sia karena kegiatan tersebut adalah sebuah penyelesaian dari suatu sub masalah yang tidak berpengaruh terhadap masalah pokok

referensi :

https://code.org/curriculum/course3/1/Teacher