Sebutkan dan jelaskan teknik PEMECAHAN masalah dalam algoritma

Pemecahan masalah adalah suatu proses terencana yang perlu dilaksanakan agar memperoleh penyelesaian tertentu dari sebuah masalah yang mungkin tidak didapat dengan segera (Saad & Ghani, 2008:120).

Sebutkan dan jelaskan teknik PEMECAHAN masalah dalam algoritma
Pemecahan Masalah
Pendapat lainnya menyatakan bahwa pemecahan masalah sebagai usaha mencari jalan keluar dari suatu kesulitan (Polya, 1973:3). Menurut Goldstein dan Levin, pemecahan masalah telah didefinisikan sebagai proses kognitif tingkat tinggi yang memerlukan modulasi dan kontrol lebih dari keterampilan rutin atau dasar (Rosdiana & Misu, 2013:2). Beberapa pengertian pemecahan masalah dapat disimpulkan sebagai berikut (Syaiful, 2012: 37):
  1. Kemampuan pemecahan masalah merupakan tujuan umum pengajaran matematika, bahkan sebagai jantungnya matematika. 
  2. Pemecahan masalah meliputi metode, prosedur, dan strategi merupakan proses inti dan utama dalam kurikulum matematika. 
  3. Pemecahan masalah merupakan kemampuan dasar dalam belajar matematika. Pada saat memecahkan masalah matematika, siswa dihadapkan dengan beberapa tantangan seperti kesulitan dalam memahami soal. Hal ini disebabkan karena masalah yang dihadapi bukanlah masalah yang pernah dihadapi siswa sebelumnya.
Ada empat tahap pemecahan masalah yaitu; (1) memahami masalah, (2) merencanakan pemecahan, (3) melaksanakan rencana, (4) memeriksa kembali (Polya, 1973:5). Diagram pemecahan masalah Polya dapat dilihat pada Gambar berikut.
Sebutkan dan jelaskan teknik PEMECAHAN masalah dalam algoritma
Diagram Pemecahan Masalah Polya
 Dari diagram tahapan pemecaham masalah diatas, dapat dirincikan sebagai berikut (Polya, 1973:5-17):
Tahap pertama pada penyelesaian masalah adalah memahami soal. Siswa perlu mengidentifikasi apa yang diketahui, apa saja yang ada, jumlah, hubungan dan nilai-nilai yang terkait serta apa yang sedang mereka cari. Beberapa saran yang  dapat membantu siswa dalam memahami masalah yang kompleks: (1) memberikan pertanyaan mengenai apa yang diketahui dan dicari, (2) menjelaskan masalah sesuai dengan kalimat sendiri, (3) menghubungkannya dengan masalah lain yang serupa, (4) fokus pada bagian yang penting dari masalah tersebut, (5) mengembangkan model, dan (6) menggambar diagram.
Siswa perlu mengidentifikasi operasi yang terlibat serta strategi yang diperlukan untuk menyelesaikan masalah yang diberikan. Hal ini bisa dilakukan siswa dengan cara seperti: (1) menebak, (2) mengembangkan sebuah model, (3) mensketsa diagram, (4) menyederhanakan masalah, (5) mengidentifikasi pola, (6) membuat tabel, (7) eksperimen dan simulasi, (8) bekerja terbalik, (9) menguji semua kemungkinan, (10) mengidentifikasi sub-tujuan, (11) membuat analogi, dan (12) mengurutkan data/informasi.
Apa yang diterapkan jelaslah tergantung pada apa yang telah direncanakan sebelumnya dan juga termasuk hal-hal berikut: (1) mengartikan informasi yang diberikan ke dalam bentuk matematika; dan (2) melaksanakan strategi selama proses dan perhitungan yang berlangsung. Secara umum pada tahap ini siswa perlu mempertahankan rencana yang sudah dipilih. Jika semisal rencana tersebut tidak bisa terlaksana, maka siswa dapat memilih cara atau rencana lain.
 Aspek-aspek berikut perlu diperhatikan ketika mengecek kembali langkah-langkah yang sebelumnya terlibat dalam menyelesaikan masalah, yaitu: (1) mengecek kembali semua informasi yang penting yang telah teridentifikasi; (2) mengecek semua perhitungan yang sudah terlibat; (3) mempertimbangkan apakah solusinya logis; (4) melihat alternatif penyelesaian yang lain; dan (5) membaca pertanyaan kembali dan bertanya kepada diri sendiri apakah pertanyaannya sudah benar-benar terjawab. Sementara itu, menurut Krulik dan Rudnick (Carson, 2007: 21 -22), ada lima tahap yang dapat dilakukan dalam memecahkan masalah yaitu sebagai berikut:
  1. Membaca (read). Aktifitas yang dilakukan siswa pada tahap ini adalah mencatat kata kunci, bertanya kepada siswa lain apa yang sedang ditanyakan pada masalah, atau menyatakan kembali masalah ke dalam bahasa yang lebih mudah dipahami. 
  2. Mengeksplorasi (explore). Proses ini meliputi pencarian pola untuk menentukan konsep atau prinsip dari masalah. Pada tahap ini siswa mengidentifikasi masalah yang diberikan, menyajikan masalah ke dalam cara yang mudah dipahami. Pertanyaan yang digunakan pada tahap ini adalah, “seperti apa masalah tersebut”?. Pada tahap ini biasanya dilakukan kegiatan menggambar atau membuat tabel. 
  3. Memilih suatu strategi (select a strategy). Pada tahap ini, siswa menarik kesimpulan atau membuat hipotesis mengenai bagaimana cara menyelesaikan masalah yang ditemui berdasarkan apa yang sudah diperoleh pada dua tahap pertama.
  4. Menyelesaikan masalah (solve the problem). Pada tahap ini semua keterampilan matematika seperti menghitung dilakukan untuk menemukan suatu jawaban. 
  5. Meninjau kembali dan mendiskusikan (review and extend). Pada tahap ini, siswa mengecek kembali jawabannya dan melihat variasi daro cara memecahkan masalah. 
Sedangkan Dewey (Carson 2008: 39) menyatakan tingkat pemecahan masalah adalah sebagai berikut:
  1. Menghadapi masalah (confront problem), yaitu merasakan suatu kesulitan. Proses ini bisa meliputi menyadari hal yang belum diketahui, dan frustasi pada ketidakjelasan situasi. 
  2. Pendefinisian masalah (define problem), yaitu mengklarifikasi karakteristik-karakteristik situasi. Tahap ini meliputi kegiatan mengkhususkan apa yang diketahui dan yang tidak diketahui, menemukan tujuan-tujuan, dan mengidentifikasi kondisi-kondisi yang standar dan ekstrim. 
  3. Penemuan solusi (inventory several solution), yaitu mencari solusi. Tahap ini bisa meliputi kegiatan memperhatikan pola-pola, mengidentifikasi langkah-langkah dalam perencanaan, dan memilih atau menemukan algoritma. 
  4. Konsekuensi dugaan solusi (conjecture consequence of solution), yaitu melakukan rencana atas dugaan solusi. Seperti menggunakan algoritma yang ada, mengumpulkan data tambahan, melakukan analisis kebutuhan, merumuskan kembali masalah, mencobakan untuk situasi-situasi yang serupa, dan mendapatkan hasil (jawaban).
  5. Menguji konsekuensi (test concequnces), yaitu menguji apakah definisi masalah cocok dengan situasinya. Tahap ini bisa meliputi kegiatan mengevaluasi apakah hipotesis-hipotesisnya sesuai?, apakah data yang digunakan tepat?, apakah analisis yang digunakan tepat?, apakah analisis sesuai dengan tipe data yang ada?, apakah hasilnya masuk akal?, dan apakah rencana yang digunakan dapat diaplikasikan di soal yang lain?. 
  • Polya, G. 1980.  On Solving Mathematical Problems in High School. New Jersey: Princeton Univercity Press.
  • Saad,N.Ghani, S& Rajendran N.S 2005. The Sources of Pedagogical Content Knowledge (PCK) Used by Mathematics Teacher During Instructions: A Case Study. Departement of Mathematics. Universiti Pendidikan Sultan Idris.

Untuk menyelesaikan suatu masalah kita harus menggunakan komputer untuk memudahkannya, namun masalah yang ingin diselesaikan tidak dapat langsung diterima oleh komputer.

Agar komputer dapat menyelesaikan masalah, maka Anda perlu merumuskan langkah-langkah penyelesaian tersebut dalam suatu rangkaian instruksi. Komputerlah yang akan mengerjakan rangkaian instruksi tersebut, karena komputer dapat mengerjakannya dengan cepat, akurat, bahkan berulang-ulang tanpa kenal lelah dan bosan.

Sekumpulan instruksi yang merupakan penyelesaian masalah itu dinamakan program. Program “dimasukkan” ke dalam komputer, komputer mengerjakan instruksi di dalam program tersebut, lalu memberikan hasil atau keluaran yang di inginkan.

Tapi untuk memberikan instruksi anda harus membuat suatu program menggunakan bahasa yang dimengerti oleh komputer Sebagaimana dalam kehidupan manusia, kita hanya dapat memberikan perintah kepada orang lain dalam bahasa yang dimengerti olehnya.

Karena komputer adalah mesin, maka program harus ditulis dalam bahasa yang khusus dibuat untuk “berkomunikasi” dengan komputer. Bahasa komputer yang digunakan dalam menulis program dinamakan bahasa pemrograman.

Saat ini, dengan berkembangnya teknik pemrograman terstruktur, orang tidak lagi memecahkan masalah dengan langsung menulis programnya dalam bahasa pemrograman. Orang mulai memikirkan suatu cara penyelesaian masalah yang akan diprogram dengan menekankan pada desain atau rancangan yang mewakili pemecahan masalah tersebut.

Desain ini independen dari bahasa pemrograman yang digunakan dari komputer yang menjalankan program. Desain menyajikan cara berpikir si pemrogram dalam menyelesaikan masalah.Desain berisi urutan langkah-langkah pencapaian solusi yang ditulis dalam notasi-notasi deskriptif. Urutan langkah-langkah yang sistematis untuk menyelesaikan sebuah masalah dinamakan algoritma. Di Artikel kali ini kita akan memberikan informasi tentang pengenalan Algoritma: Definisi, Ciri – ciri, dan contohnya.

Mengenal Apa Itu Algoritma ?

Algoritma adalah deretan instruksi yang jelas dalam memecahkan masalah, yaitu untuk memperoleh keluaran yang diinginkan dari suatu masukkan dalam jumlah waktu yang terbatas.

Algoritma yang ditulis dalam bahasa komputer dinamakan program. Bahasa komputer yang digunakan untuk menulis program dinamakan bahasa pemrograman. Orang yang membuat program komputer disebut pemrogram, dan kegiatan merancang dan menulis program disebut pemrograman, serta ada aktivitas menulis kode program dinamakan coding.

Pada pemrograman ditekankan pada pemecahan masalah, rancangan pemecahan masalah berisi urutan langkahlangkah pencapaian solusi ditulis dalam notasi diskriptif (notasi algoritmik)

Kata algorism berasal dari nama penulis buku Arab yang terkenal, yaitu Abu Ja’far Muhammad Ibnu Musa alKhuwarizmi (al-Khuwarizmi dibaca orang Barat menjadi algorism). Seorang ilmuwan Persia yang menulis kitab al jabr w’al muqabala yang artinya “Buku pemugaran dan pengurangan” (The Book of Restoration and Reduction).

Perubahan kata dari kata algorism menjadi algorithm muncul karena kata algorism sering dikelirukan dengan arithmetic, sehingga akhiran –sm berubah menjadi –thm. Karena perhitungan dengan angka Arab sudah menjadi hal yang biasa/lumrah, maka lambat laun kata algorithm berangsur-angsur dipakai sebagai metode perhitungan (komputasi) secara umum, sehingga kehilangan makna aslinya. Dalam bahasa Indonesia, kata algorithm diserap menjadi algoritma. Berikut definisi dari Algoritma :

  1. Langkah – langkah yang dilakukan agar solusi masalah dapat diperoleh.
  2. Suatu prosedur yang merupakan urutan langkah-langkah yg berintegrasi.
  3. Suatu metode khusus yang digunakan untuk menyelesaikan suatu masalah yang nyata.

Baca Juga : Pembaruan Algoritma Google 2020, Yuk Cek Dampaknya!

Sebutkan dan jelaskan teknik PEMECAHAN masalah dalam algoritma
Sebutkan dan jelaskan teknik PEMECAHAN masalah dalam algoritma

Ciri – Ciri dari Algoritma

Sebutkan dan jelaskan teknik PEMECAHAN masalah dalam algoritma
Sebutkan dan jelaskan teknik PEMECAHAN masalah dalam algoritma

Tidak semua urutan langkah penyelesaian masalah yang logis dapat disebut sebagai algoritma. Menurut Donald E. Knuth di dalam bukunya yang berjudul The Art of Computer Programming, algoritma mempunyai lima ciri penting yang meliputi:

Finiteness (keterbatasan), algoritma harus berakhir setelah mengerjakan sejumlah langkah proses. Algoritma harus berhenti setelah mengerjakan sejumlah langkah terbatas (berhingga). Barisan instruksi yang dibuat dalam suatu urutan tertentu, dimaksudkan agar masalah yang dihadapi dapat diselesaikan. Banyaknya instruksi atau langkah itu haruslah berhingga.

Jika tidak demikian, proses yang dilakukan akan memerlukan waktu yang relatif lebih lama dan diperoleh hasil yang tidak diperlukan atau tidak berhubungan dengan masalah yang ada, bahkan mungkin proses akan terus berlangsung walaupun solusi yang diharapkan telah diperoleh. Hasil akhir yang didapat merupakan solusinya atau informasi tidak ditemukannya solusi.

Dengan kata lain, baik dalam kondisi ada solusi ataupun tidak, proses tetap akan berhenti. Sebagai contoh, tinjau kembali algoritma EUCLIDEAN. Pada langkah 1, jika n = 0, algoritma berhenti. Jika n ≠ 0, maka nilai n selalu berkurang sebagai akibat langkah 2 dan 3, dan pada akhirnya nilai n = 0.

Program yang tidak pernah berhenti adalah program yang berisi algoritma yang salah. Suatu prosedur yang hanya akan berhenti jika mempunyai atau menghasilkan solusi disebut semi algoritma. Definiteness (kepastian), setiap langkah harus didefinisikan secara tepat dan tidak berarti ganda.

Setiap langkah harus didefinisikan dengan tepat dan tidak berarti-dua (ambiguous). Pembaca harus mengerti apa yang dimaksud dengan “m dan n adalah bilangan bulat tak-negatif”. Contoh lainnya, pernyataan “bagilah P dengan sejumlah beberapa buah bilang bulat positif” dapat bermakna ganda. Input (masukan), algoritma memiliki nol atau lebih data masukan (input).

Algoritma memiliki nol atau lebih masukan (input). Masukan adalah besaran yang diberikan kepada algoritma sebelum algoritma mulai bekerja. Algoritma EUCLIDEAN mempunyai dua buah masukan, m dan n, sedangkan algoritma TUKAR ISI BEJANA memiliki masukan larutan bejana A dan larutan bejana B. Output (keluaran), algoritma mempunyai nol atau lebih hasil keluaran (output).

Algoritma mempunya nol atau lebih keluaran (output). Keluaran adalah besaran yang memiliki hubungan dengan masukan. Keluaran tersebut tentunya harus merupakan solusi dari masalah yang sedang diselesaikan. Algoritma EUCLIDEAN mempunyai satu keluaran yaitu n pada langkah 2 yang merupakan pembagi bersama terbesar dari kedua masukannya. Algoritma TUKAR ISI BEJANA tidak memiliki keluaran sama sekali. Effectiveness (efektivitas), algoritma harus sangkil (efektif), langkah-langkah algoritma dikerjakan dalam waktu yang wajar.

Algoritma harus efektif dan efisien. Setiap langkah harus sederhana sehingga dapat dikerjakan dalam sejumlah waktu yang masuk akal. Suatu algoritma dikatakan efektif jika algoritma tersebut dapat menghasilkan suatu solusi yang sesuai dengan masalah yang diselesaikan. Dengan kata lain suatu algoritma harus tepat guna.

Suatu algoritma dikatakan efisien jika waktu proses dari algoritma relatif lebih singkat dan penggunaan memorinya lebih sedikit. Pada beberapa sumber lain, ada tambahan ciri dari algoritma:

Algoritma harus terstruktur. Urutan baris langkah-langkahnya yang digunakan harus disusun sedemikian rupa agar proses penyelesaiannya tidak berbelit-belit, sehingga memungkinkan waktu prosesnya akan menjadi relatif lebih singkat.

Hal ini akan memperlihatkan bahwa bagian-bagian dari proses tersebut dapat dibedakan secara jelas (bagian input, proses dan output). Dengan demikian memudahkan kita didalam melakukan pemeriksaan ulang. Suatu algoritma harus menghasilkan output yang tepat guna (efektif) dalam waktu yang realtif singkat dan penggunaan memori yang relatif sedikit (efisien) dengan langkah yang berhingga dan prosesnya berakhir baik dalam keadaan diperoleh suatu solusi maupun tidak adanya solusi. Sedang sifat algoritma adalah:

  1. Tidak menggunakan simbol atau sintaks dari suatu bahasa pemrograman tertentu.
  2. Tidak tergantung pada suatu bahasa pemrograman tertentu.
  3. Notasi-notasinya dapat digunakan untuk seluruh bahasa manapun.
  4. Algoritma dapat digunakan untuk merepresentasikan suatu urutan kejadian secara logis dan dapat diterapkan di semua kejadian sehari-hari

Baca Juga : Panduan Search Engine Optimization (SEO) Terupdate dan Terbaru di 2020

Contoh-Contoh Algoritma

Sebutkan dan jelaskan teknik PEMECAHAN masalah dalam algoritma
Sebutkan dan jelaskan teknik PEMECAHAN masalah dalam algoritma

Algoritma adalah jantung ilmu komputer atau informatika. Banyak cabang ilmu komputer yang di acu 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. Berikut adalah beberapa contoh algoritma dalam kehidupan sehari-hari.

Sebutkan dan jelaskan teknik PEMECAHAN masalah dalam algoritma
Sebutkan dan jelaskan teknik PEMECAHAN masalah dalam algoritma

Langkah-langkah pada algoritma haruslah logis. Secara umum, pihak (benda) yang mengerjakan proses disebut pemroses (processor). Pemroses tersebut dapat berupa manusia, komputer, robot, atau alat-alat mekanik/elektronik lainnya. Pemroses melakukan suatu proses dengan melaksanakan atau mengeksekusi algoritma yang menjabarkan proses tersebut. Melaksanakan algoritma berarti mengerjakan langkahlangkah di dalam algoritma tersebut.

Pemroses mengerjakan proses sesuai dengan algoritma yang diberikan kepadanya. Karena itu suatu algoritma harus dinyatakan dalam bentuk yang dapat dimengerti oleh pemroses. Jadi suatu pemroses harus :

  1. Mengerti setiap langkah dalam algoritma.
  2. Mengerjakan operasi yang bersesuaian dengan langkah tersebut.

Penutup dan Kesimpulan

Algoritma adalah metode efektif yang diekspresikan sebagai rangkaian terbatas. Algoritma juga 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 syarat untuk setiap permasalahan memiliki kriteria kondisi awal yang harus dipenuhi sebelum menjalankan sebuah algoritma. Algoritma juga memiliki pengulangan proses (iterasi), dan juga memiliki keputusan hingga keputusan selesai.

Setelah membaca artikel ini kita sudah mengetahui pentingnya Algoritma dalam Ilmu Komputer maupun di kehidupan sehari – hari, untuk mempermudah menyelesaikan masalah yang ada. Dengan demikian pembahasan mengenai “Mengenal apa itu Algoritma: Definisi, Ciri – ciri, dan contohnya” kali ini, semoga anda sudah mengerti, apabila ada pertanyaan maupun saran anda bisa berkomentar dibawah.