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 :
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 Chart, Swim-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 Simplex, Appreciative 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
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.
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!
3.
Uraikan
apa itu algoritma dan langkah-langkah mendesaian algoritama!
Rangkuman Hasil Diskusi
No |
Pertanyaan |
Jawaban Hasil Diskusi |
1 |
|
|
2 |
|
|
3 |
|
|