Kamis, 03 Agustus 2023

Problem solving dan algoritma

 Elemen : 

BK (Berpikir Komputasional)

Capaian Pembelajaran : 

Peserta didik mampu menerapkan strategi algoritmik standar pada kehidupan sehari-hari maupun implementasinya dalam sistem komputer, untuk menghasilkan beberapa solusi persoalan dengan data diskrit bervolume besar.

Tujuan Pembelajaran : 

Setelah  kegiatan  pembelajaran  Peserta didik diharapkan mampu :

BK.13  Menjelaskan konsep pemecahan masalah (problem solving) 
BK.14. Mengidentifikasi masalah 
BK.15. Menerapkan brainstorming untuk menguraikan permasalahan menjadi komponen-komponen yang lebih kecil (decomposition) (KK) 
BK.16. Mengidentifikasi data-data terkait permasalahan  
BK.17. Menganalisis pola, tren, dan keteraturan dalam data (pattern recognition) (KK)
BK.18. Mereduksi data-data yang tidak diperlukan pada penyelesaian masalah (abstraction) (KK) 
BK.19. Menentukan batasan-batasan serta kriteria-kriteria dalam penyelesaian permasalahan 
BK.20.  Menerapkan  brainstorming  untuk menentukan alternatif-alternatif pemecahan masalah

Problem solving dan algoritma

Problem Solving atau dalam bahasa Indonesia adalah pemecahan masalah terdiri atas berbagai metode yang dikerjakan secara berurutan untuk menemukan solusi dari suatu permasalahan. Problem Solving diperlukan di berbagai aspek kehidupan karena masalah adalah bagian dari kehidupan manusia yang tidak dapat dihilangkan secara permanen. Berbagai teknik problem solving telah dikembangkan di berbagai bidang keilmuan, seperti kecerdasan buatan, ilmu komputer, teknik, matematika, dan kedokteran.

Definisi


Problem Solving adalah sebuah tindakan untuk mendefinisikan suatu masalah, menentukan penyebab masalah, mengidentifikasikan dan memilih berbagai alternatif untuk solusi, serta mengimplementasikan solusi tersebut[1].

Problem Solving digunakan di berbagai disiplin ilmu, yang tentu saja akan memiliki perspektif dan terminologi yang berbeda. Untuk bisa menemukan solusi dari sebuah masalah diperlukan logika dan kemampuan untuk menafsirkan masalah. Terkadang untuk menyelesaikan sebuah masalah juga diperlukan pemikiran abstrak yang dapat melahirkan solusi-solusi kreatif.

Problem Solving dalam Ilmu Komputer


Ilmu Komputer sebenarnya adalah ilmu yang mempelajari masalah, pemecahan masalah dan solusi yang didapat dari pemecahan masalah tersebut [2]. Maka dari itu, problem solving adalah akar dari ilmu komputer sendiri. Di dalam ilmu komputer, problem solving hadir dalam bentuk algoritma. Algoritma sendiri adalah rangkaian langkah-langkah yang dikerjakan secara berurutan untuk menyelesaikan suatu masalah. Algoritma adalah solusi yang digunakan untuk mencapai tujuan tertentu.

Meskipun Ilmu komputer adalah ilmu yang mempelajari tentang algoritma, tetapi dalam ilmu komputer ada masalah yang memang tidak dapat ditemukan solusinya.Masalah tersebut disebut dengan non-computable problems. Non-computable problems adalah masalah yang tidak dapat diselesaikan dengan algoritma apapun

Strategi Problem Solving


Strategi problem solving adalah strategi yang digunakan untuk menemukan masalah yang menghalangi sebuah tujuan yang telah ditetapkan. Beberapa ahli sering menyebutnya sebagai ‘problem solving cycle’ atau dalam bahasa Indonesianya adalah daur penyelesaian masalah. [4]

Pada problem solving cycle seseorang akan menemukan suatu masalah, mendefinisikan suatu masalah, mengembangkan strategi untuk menyelesaikan masalah, mengumpulkan dan mengorganisaskan data yang berhubungan dengan penyelesaian masalah, membuat alternatif solusi, dan memilih serta mengevaluasi solusi yang digunakan untuk menyelesaikan masalah. Disebut ‘cycle’ karena kerap kali ketika suatu masalah sudah selesai maka akan muncul masalah lain.

Berikut adalah teknik yang digunakan untuk strategi problem solving [5]

Abstraction: menyelesaikan masalah pada model sistem terlebih dahulu sebelum akhirnya pada sistem yang sebenarnya

 Analogy: Menggunakan solusi yang dapat memecahkan masalah yng menggunakan analogi

Brainstorming: (sering kali digunakan oleh sekelompok orang) menyediakan, mengkombinasi, dan mengembangkan banyak solusi dan ide sampai solusi yang optimal ditemukan

Divide and conquer: Memecah masalah yang besar dan rumit menjadi sekumpulan masalah yang kecil sehingga lebih mudah diselesaikan

Hypothesis testing: mengasumsikan kemungkinan penyelesaian sebuah masalah dan kemudian mencoba membuktikan kevalidan asumsi tersebut

Lateral thinking: Melakukan pendekatan terhadap solusi secara kreatif.

Means-ends analysis: Memilih tindakan yang tepat pada setiap tahapan untuk mencapai tujuan yang ditetapkan.

Method of focal objects: Membuat sesuatu yang baru dari objek-objek berbeda yang memiliki karakteristik yang kelihatannya tidak cocok.

Morphological analysis: Menghubungkan output dengan interaksi yang berada di sistem

Proof: Mencoba membuktikan kalau sebuah masalah tidak bisa diselesaikan. Titik dimana pembuktian itu gagal adalah titik awal untuk memulai menyelesaikannya.

Reduction: Mentransformasikan suatu masalah menjadi masalah lain yang sudah ada solusinya.

Research: Menggunakan ide yang sudah ada atau mengadaptasi solusi yang sudah ada untuk masalah yang serupa.

Root cause analysis: Mengidentifikasikan akar dari sebuah permasalahan

Trial-and-error: Mencoba berbagai kemungkinan sampai solusi yang paling tepat ditemukan.


Ada empat langkah dasar dalam memecahkan suatu masalah:

1.      Mendefinisikan masalah.

2.      Menghasilkan alternatif.

3.      Mengevaluasi dan memilih alternatif.

4.      Menerapkan solusi.


Mendefinisikan Masalah

Kunci untuk definisi masalah yang baik adalah memastikan bahwa Anda berurusan dengan masalah yang sebenarnya - bukan gejalanya. Misalnya, jika kinerja di departemen Anda tidak lancar, Anda mungkin berpikir masalahnya adalah dengan individu melakukan pekerjaan. Namun, jika Anda melihat sedikit lebih dalam, masalah sebenarnya mungkin kurangnya pelatihan, atau beban kerja yang tidak masuk akal.

Pada tahap ini, itu juga penting untuk memastikan bahwa Anda melihat masalah ini dari berbagai perspektif. Jika Anda berkomitmen diri terlalu dini, Anda dapat berakhir dengan pernyataan masalah yang benar-benar solusi sebagai gantinya. Sebagai contoh, perhatikan pernyataan masalah ini: “Kita harus menemukan cara untuk mendisiplinkan orang yang melakukan pekerjaan di bawah standar.” Ini tidak memungkinkan Anda kesempatan menemukan alasan yang nyata untuk di bawah performa.


Kompleksitas pemahaman

Ketika masalah Anda bersifat sederhana, solusinya sudah jelas, dan Anda tidak perlu mengikuti empat langkah kita diuraikan sebelumnya. Jadi ketika Anda mengambil pendekatan yang lebih formal, masalah Anda mungkin akan rumit dan sulit dimengerti, karena ada jaringan isu yang saling terkait.

Kabar baiknya adalah bahwa ada banyak alat yang dapat digunakan untuk membuat rasa berantakan kusut ini! Banyak dari ini membantu Anda membuat representasi visual yang jelas dari situasi, sehingga Anda dapat lebih memahami apa yang terjadi.

Affinity Diagram yang besar untuk mengatur banyak potongan informasi yang berbeda dalam tema umum, dan untuk menemukan hubungan antara ini.

Alat lain yang populer adalah Cause-and-Effect Diagram . Untuk menghasilkan solusi yang layak, Anda harus memiliki pemahaman yang kuat tentang apa yang menyebabkan masalah. Menggunakan contoh kita kerja di bawah standar, diagram Cause-and-Effect akan menyoroti bahwa kurangnya pelatihan dapat berkontribusi untuk masalah ini, dan mereka juga bisa menyoroti kemungkinan penyebab seperti kelebihan beban kerja dan masalah dengan teknologi.

Ketika masalah Anda terjadi dalam proses bisnis, menciptakan Flow ChartSwim-Lane Diagram atau System Diagram akan membantu Anda melihat bagaimana berbagai kegiatan dan masukan cocok bersama-sama. Hal ini sering akan membantu Anda mengidentifikasi elemen yang hilang atau hambatan yang menyebabkan masalah Anda.

Cukup sering, apa yang tampaknya menjadi satu masalah ternyata menjadi seluruh rangkaian masalah. Kembali ke contoh kita, kerja di bawah standar dapat disebabkan oleh keterampilan memadai, tetapi beban kerja yang berlebihan juga bisa memberikan kontribusi, seperti bisa berlebihan pendek lead time dan motivasi miskin. The Drill Down Technique akan membantu Anda memisahkan masalah Anda menjadi bagian-bagian kecil, masing-masing yang kemudian dapat diselesaikan dengan tepat.


Proses Pemecahan Masalah

Empat langkah pendekatan untuk memecahkan masalah yang disebutkan di awal akan bisa Anda gunakan dengan baik dalam banyak situasi. Namun, untuk proses lebih komprehensif, Anda dapat menggunakan SimplexAppreciative Inquiry atau Soft System Methodology (SSM). Ini memberikan langkah-langkah rinci yang dapat Anda gunakan untuk memecahkan masalah secara efektif.

· Simplex melibatkan proses delapan tahap: masalah menemukan, pencarian fakta, mendefinisikan masalah, ide temuan, memilih dan mengevaluasi, perencanaan, menjual ide, dan bertindak. Langkah-langkah ini membangun proses dasar yang dijelaskan sebelumnya, dan mereka membuat siklus masalah temuan dan pemecahan yang akan terus meningkatkan organisasi Anda.

·         Appreciative Inquiry mengambil pendekatan unik positif dengan membantu Anda memecahkan masalah dengan memeriksa apa yang bekerja dengan baik di daerah sekitar mereka.

·    Soft System Methodology dirancang untuk membantu Anda memahami masalah yang kompleks sehingga Anda dapat memulai proses pemecahan mereka. Menggunakan empat tahap untuk membantu Anda menemukan rincian lebih lanjut tentang apa yang membuat masalah, dan kemudian menentukan tindakan yang akan memperbaiki situasi.

 

Algoritma

Algoritma Adalah Metode Pemecahan Masalah

Pengertian Algoritma Berdasarkan Kamus Besar Bahasa Indonesia (KBBI), algoritma adalah prosedur sistematis untuk memecahkan masalah matematis dalam langkah-langkah terbatas atau urutan logis pengambilan keputusan untuk pemecahan masalah.

Mengutip Unida.ac.id, algoritma adalah langkah atau metode yang direncanakan secara tersusun dan berurutan untuk menyelesaikan atau memecahkan masalah dengan sebuah instruksi atau kegiatan.

Sementara itu, menurut Otoritas Jasa Keuangan (OJK), algoritma adalah alur pemikiran pemecahaan masalah yang terdiri dari langkah-langkah matematis, seperti program perhitungan komputer untuk menghitung tingkat bunga kredit, modal keuangan, transfer pricing serta pengamanan data.

Sederhananya, algoritma adalah serangkaian aturan atau proses yang mesti diikuti dalam perhitungan atau operasi pemecahan masalah, terutama oleh komputer. Sebab, sebagian besar algoritma dimaksudkan untuk diterapkan sebagai program komputer. Dengan implementasi algoritma, komputer dapat mengolah data, melakukan perhitungan, melakukan penalaran otomatis, dan menyelesaikan berbagai masalah yang ada di komputer. Walau demikian, algoritma tidak hanya diterapkan pada komputer atau kehidupan sehari-hari saja, metode tersusun ini juga kerap digunakan oleh beberapa perusahaan, terutama perusahaan yang bergerak di bidang keuangan atau perdagangan otomatis, seperti untuk keperluan perdagangan saham dan sebagainya


Algoritma Menurut Ahli

Istilah Algoritma pertama kali diperkenalkan oleh seorang ilmuwan matematika bernama Abu Ja'far Muhammad Ibnu Musa Al-Khawarizmi. Beliau telah menjelaskan terkait algoritma dalam bukunya berjudul “Al-Jabr Wa-al Muqabla”. Ia mengatakan bahwa algoritma adalah cara atau metode untuk menyelesaikan satu atau beberapa masalah.

Menurut Kani (2020), algoritma adalah upaya dengan urutan operasi yang disusun secara logis dan sistematis untuk menuntaskan suatu masalah dan menghasilkan output tertentu.

Sementara itu, Sismoro (2005) mengartikan algoritma sebagai sekumpulan instruksi atau langkah-langkah yang ditulis secara sistematis dan digunakan untuk menyelesaikan masalah atau persoalan logika dan matematika dengan bantuan komputer.


Ciri-ciri Algoritma Mengutip Gramedia, menurut Donald Ervin Knuth algoritma memiliki beberapa ciri, yaitu:

Input: Setiap masalah harus dicarikan solusi agar dapat diselesaikan dengan baik. Dalam algoritma, minimal terdiri dari nilai 0 atau memiliki nilai lebih.

Output: Harus ada output bisa diartikan sebagai sebuah solusi dari permasalahan yang dihadapi. Dalam algoritma minimal harus ada satu output atau lebih.

Proses: Algoritma memiliki proses atau langkah-langkah yang harus dilakukan untuk menyelesaikan masalah.

Instruksi: Apabila instruksi yang diberikan jelas, maka kesalahan dapat ditekan dan bisa menciptakan output yang baik.

Tujuan Akhir: Algoritma harus memiliki tujuan akhir. Dengan demikian, kita akan berhenti setelah mencapai tujuan akhir.

Jenis-jenis Algoritma

Algoritma bisa dibagi menjadi tiga jenis, yaitu algoritma sekuensial, perulangan, dan percabangan atau bersyarat.

Algoritma sekuensial: Dalam algoritma ini, langkah-langkahnya tersusun urut dari awal sampai akhir, langkah demi langkah yang dijalankan dari atas sampai bawah.

Algoritma perulangan: Algoritma ini menjalankan beberapa langkah tertentu secara berulang-ulang atau looping.

Algoritma percabangan atau bersyarat: Algoritma ini menjalankan langkah berikutnya apabila terdapat syarat yang sudah terpenuhi.

Sementara itu, meneruskan Accurate, menurut ahli komputer dan matematika, Christoph Koutschan, setidaknya terdapat 32 algoritma dalam ilmu komputer. Namun, jika ditinjau berdasarkan fungsinya, algoritma dapat dibagi menjadi enam, yaitu:

Rekursi: Algoritma ini akan memanggil dirinya sendiri berulang kali agar masalah bisa diselesaikan dengan baik.

Divide and Conquer: Jenis ini berfungsi membagi permasalahan besar menjadi permasalahan lain yang lebih kecil.

Dynamic Programming: Dynamic programing bekerja dengan mengingat hasil dari suatu progres yang lain dan menggunakan agar bisa menemukan hasil yang baru.

Greedy: Jenis ini menyelesaikan masalah optimasi. Dalam algoritma, terdapat solusi yang lebih optimal secara lokal tanpa harus memperhatikan konsekuensi apapun yang akan terjadi di masa mendatang.

Brute Force: Brute force akan melakukan integrasi pada seluruh solusi yang mungkin untuk mencari satu atau lebih dari satu solusi yang mampu menjawab permasalahan.

Algoritma Backtracking: Teknik ini berusaha memecahkan berbagai masalah secara rekursif dan mencobanya agar memperoleh solusi dengan cara menyelesaikan suatu bagian masalah di waktu yang bersamaan.

Langkah-Langkah Mendesain Algoritma

Desain algoritma adalah proses penting dalam pengembangan perangkat lunak (software). Namun, masih banyak pemrogram yang mengabaikan proses ini padahal berguna dalam pemecahan masalah. Berikut langkah yang harus dilakukan untuk menghasilkan algoritma yang bekerja optimal.

1. Memahami Masalah yang Ingin Diselesaikan

Pertama, kamu harus memahami masalah yang ingin diselesaikan dengan algoritma. Pemahaman yang baik tentang suatu masalah akan membantu kamu dalam mencari solusi yang tepat. Untuk memahami masalah, kamu harus mengumpulkan informasi yang cukup tentang masalah tersebut dan membuat beberapa pertanyaan yang relevan.

2. Menganalisis Kompleksitas Masalah

Setelah memahami masalah, kamu juga harus menganalisis kompleksitas masalah. Analisis ini akan membantu kamu dalam menentukan jenis algoritma yang tepat untuk digunakan. Kompleksitas masalah dapat dianalisis menggunakan pertimbangan jumlah data, waktu eksekusi, dan ruang yang dibutuhkan oleh algoritma.

3. Membuat Pseudocode

Pseudocode merupakan deskripsi umum tentang cara kerja algoritma tanpa harus terikat bahasa pemrograman tertentu. Pseudocode berguna untuk mengembangkan kode program yang lebih baik dan lebih mudah dibaca oleh sistem komputer.

4. Menerjemahkan Pseudocode ke dalam Kode Program

Terakhir, kamu akan menerjemahkan pseudocode ke dalam kode program. Proses ini mencakup penulisan kode program dalam bahasa pemrograman tertentu, contohnya Java atau C+. Saat menuliskan kode program, kamu harus memperhatikan masalah kompleksitas, struktur kode yang jelas dan mudah dibaca, dan menghindari kesalahan pemrograman yang umum.

LEMBAR KERJA PESERTA DIDIK

PERTEMUAN 4

Materi Ajar          : Problem solving dan algoritma

Mata Pelajaran     : Informatika

Jenjang/Kelas       : SMK/X

Nama Anggota Kelompok:

1.            ______________________________

2.            ______________________________

3.            ______________________________

4.            ______________________________

Langkah Kerja

1.      Melakukan diskusi kelompok untuk menentukan tugas masing – masing anggota

2.      Mengidentifikasi soal

3.      Mendiskusikan hasil identifikasi soal

4.      Menentukan dan merangkum hasil identifikasi soal

5.      Membuat laporan hasil identifikasi soal menggunakan MS. Word

6.      Membuat presentasi hasil kelompok

7.      Mempresentasikan hasil diskusi kelompok

 

Tugas Diskusi

    1.    Uraikan apa itu Problem Solving  dan Problem Solving Dalam Ilmu Komputer!
2.    Teknik apa saja yang digunakan untuk strategi problem solving?
3.    Uraikan apa itu algoritma  dan langkah-langkah mendesaian algoritama!

 

 Rangkuman Hasil Diskusi

No

Pertanyaan

Jawaban Hasil Diskusi

1

 

 

2

 

 

3