Peserta didik diharapkan mampu menganalisis beberapa strategi algoritmik secara kritis untuk menyelesaikan suatu permasalahan dengan memberikan justifikasi efisiensi.
Menerapkan strategi algoritmik tersebut ke dalam suatu program yang lebih kompleks.
Strategi algoritmik adalah pendekatan yang digunakan dalam memecahkan masalah atau mencapai tujuan tertentu dengan memanfaatkan algoritma. Ini bukan hanya tentang menggunakan satu algoritma tunggal, melainkan tentang bagaimana kita memilih, menggabungkan, dan menerapkan berbagai algoritma secara cerdas untuk mendapatkan hasil yang optimal atau efisien.
Pemrograman, atau yang sering disebut koding, adalah proses menulis instruksi yang dapat dipahami dan dijalankan oleh komputer. Bayangkan komputer sebagai mesin yang sangat pintar, tetapi hanya bisa mengerti bahasa yang sangat spesifik dan terstruktur. Nah, tugas seorang programmer adalah "berbicara" dengan komputer menggunakan bahasa tersebut untuk memerintahkannya melakukan berbagai hal, mulai dari menghitung angka, menampilkan gambar, hingga mengelola data yang kompleks.
Selamat datang di dunia di mana kita akan belajar bagaimana caranya "berbicara" dengan komputer dan membuat mereka melakukan hal-hal luar biasa! Pernahkah kalian membayangkan bagaimana aplikasi game favoritmu dibuat, atau bagaimana YouTube bisa merekomendasikan video yang pas untukmu? Nah, semua itu tidak lepas dari strategi algoritmik dan pemrograman.
Bayangkan begini: jika kalian ingin membuat kue, kalian butuh resep yang jelas dan langkah-langkah yang berurutan, bukan? Resep itu adalah algoritma kita. Itu adalah serangkaian instruksi yang terstruktur untuk mencapai tujuan tertentu (dalam hal ini, membuat kue yang lezat). Nah, kalau resepnya adalah algoritmanya, maka memasak kuenya sendiri, yaitu mengikuti setiap langkah di resep itu agar kuenya jadi, itulah pemrograman! Kita menuliskan instruksi-instruksi ini dalam "bahasa" yang bisa dimengerti oleh komputer, seperti halnya kita membaca resep dalam bahasa Indonesia atau Inggris. Jadi, dalam pelajaran ini, kita akan belajar bagaimana merancang "resep-resep" cerdas dan kemudian "memasak" atau mengimplementasikannya agar komputer bisa membantu kita menyelesaikan berbagai masalah. Siap untuk menjadi "koki" digital?
Membuat program itu seperti membangun sebuah jembatan; ada langkah-langkah yang harus diikuti agar jembatan itu kuat dan berfungsi. Dalam pemrograman, kita juga punya empat langkah utama yang sering disebut siklus pengembangan perangkat lunak atau proses pemrograman. Yuk, kita bedah satu per satu!
1. Memahami Masalah (Perencanaan)
Ini adalah langkah pertama dan seringkali yang paling penting, seperti saat kalian ingin membuat kue, kalian harus tahu kue apa yang ingin dibuat! Kita perlu bertanya: "Apa yang ingin dipecahkan oleh program ini?" atau "Tugas apa yang harus dilakukan komputer?". Di tahap ini, kita akan menganalisis masalah, mengidentifikasi apa yang menjadi input (bahan-bahan kue), dan output yang diharapkan (kue yang sudah matang). Tanpa pemahaman yang jelas tentang masalahnya, kita bisa berakhir dengan program yang tidak berguna, sama seperti membuat kue tanpa tahu rasanya akan seperti apa.
2. Merancang Solusi (Desain Algoritma)
Setelah kita tahu masalahnya, saatnya merancang "resep" atau algoritma kita. Ini adalah fase di mana kita memikirkan langkah-langkah logis dan terstruktur yang akan diikuti komputer untuk menyelesaikan masalah. Kita bisa menuliskannya dalam bentuk daftar langkah-langkah, diagram alir, atau bahkan cerita pendek. Misalnya, jika program kita harus menghitung luas persegi, algoritmanya mungkin: "Ambil panjang sisi," lalu "Ambil lebar sisi," lalu "Kalikan panjang dengan lebar," dan "Tampilkan hasilnya." Di sini, kita belum menulis kode, tapi kita sudah punya rencana kerja yang jelas.
3. Menulis Kode (Implementasi)
Inilah saatnya "memasak" resep kita! Berbekal algoritma yang sudah dirancang, kita akan menuliskan instruksi-instruksi tersebut menggunakan bahasa pemrograman pilihan kita (misalnya Python, Scratch, atau JavaScript). Ini seperti mengubah resep tulisan tangan menjadi tindakan nyata di dapur. Kita akan menggunakan variabel untuk menyimpan data, struktur kontrol seperti if-else untuk membuat keputusan, dan loop untuk mengulang tugas. Di tahap ini, ketelitian sangat penting karena komputer sangat kaku; satu kesalahan kecil dalam penulisan (syntax error) bisa membuat program tidak berjalan.
4. Menguji dan Memperbaiki (Debugging)
Setelah kode selesai ditulis, program kita tidak selalu langsung sempurna, sama seperti kue pertama yang mungkin tidak langsung enak. Kita perlu menguji program dengan berbagai input untuk memastikan program berjalan sesuai harapan. Jika ada yang salah, itu disebut "bug" (serangga kecil dalam kode), dan proses mencari serta memperbaikinya disebut debugging. Ini seperti mencicipi kue dan menambahkan sedikit gula atau garam jika rasanya kurang pas. Proses ini seringkali berulang; kita akan terus menguji, menemukan bug, memperbaikinya, dan menguji lagi sampai program benar-benar berfungsi dengan baik dan bisa digunakan oleh orang lain.
Dengan mengikuti keempat langkah ini, kalian akan bisa menciptakan program yang rapi, efisien, dan siap membantu dalam berbagai tugas! Apakah kalian sudah punya ide program apa yang ingin kalian buat pertama kali?
Keempat tahap di atas seringkali tidak dilakukan satu kali, tapi berkali-kali sehingga membentuk suatu siklus pemrograman
Hebat sekali, sekarang kalian sudah paham empat langkah dasar dalam membuat program! Namun, ada satu hal lagi yang sangat penting untuk diketahui: sebuah program itu jarang sekali selesai begitu saja dan dibiarkan. Sama seperti sebuah rumah yang seringkali perlu direnovasi, diperbaiki atapnya, atau ditambah kamarnya seiring waktu, sebuah program juga senantiasa mengalami perubahan, perbaikan, dan penambahan fitur.
Coba bayangkan aplikasi game yang sering kalian mainkan. Awalnya, mungkin hanya ada beberapa level atau karakter. Lalu, tiba-tiba muncul update baru yang menambah karakter, memperbaiki bug yang membuat game crash, atau bahkan menambahkan fitur baru seperti mode multiplayer! Nah, itu semua adalah bagian dari proses pemeliharaan dan pengembangan berkelanjutan sebuah program. Programmer akan terus memantau apakah ada kesalahan (bug) yang perlu diperbaiki, menerima masukan dari pengguna tentang fitur apa yang mereka inginkan, dan juga berinovasi untuk membuat program jadi lebih baik atau lebih canggih. Jadi, siklus pemrograman yang kita bahas tadi itu sebenarnya berulang, karena setelah program jadi, kita akan kembali ke tahap "memahami masalah" (misalnya, masalah bug baru atau permintaan fitur baru), lalu merancang solusinya, menulis kode lagi, dan mengujinya. Program itu seperti makhluk hidup; ia terus tumbuh dan beradaptasi!
Bayangkan kita ingin membuat program sederhana yang bisa memberitahu kita, apakah sebuah segitiga itu sama sisi, sama kaki, atau sembarang, hanya dengan memasukkan panjang ketiga sisinya.
1. Memahami Masalah (Perencanaan)
Pertama, kita harus jelas tentang apa itu segitiga sama sisi, sama kaki, dan sembarang. Ini seperti mengenali jenis-jenis kue yang berbeda!
Segitiga Sama Sisi: Semua sisinya punya panjang yang sama. Contoh: sisi 5, 5, 5.
Segitiga Sama Kaki: Ada dua sisi yang punya panjang yang sama. Contoh: sisi 5, 5, 7 atau 7, 5, 5.
Segitiga Sembarang: Tidak ada sisi yang sama panjangnya. Contoh: sisi 3, 4, 5.
Selain itu, kita juga harus ingat bahwa tidak semua kumpulan tiga angka bisa membentuk segitiga. Jumlah panjang dua sisi harus selalu lebih besar dari panjang sisi ketiga. Misalnya, sisi 1, 2, 10 tidak akan pernah bisa membentuk segitiga!
Input: Tiga angka, yaitu panjang sisi A, sisi B, dan sisi C. Output: Jenis segitiga (Sama Sisi, Sama Kaki, Sembarang) atau pesan "Bukan Segitiga".
2. Merancang Solusi (Desain Algoritma)
Setelah paham masalahnya, mari kita rancang "resep" kita. Kita bisa menggunakan diagram alir atau daftar langkah-langkah:
Mulai.
Terima Input: Minta pengguna memasukkan panjang sisi A, sisi B, dan sisi C.
Periksa Validitas Segitiga:
Jika (A + B <= C) ATAU (A + C <= B) ATAU (B + C <= A), maka tampilkan "Bukan Segitiga".
Jika tidak, lanjutkan ke langkah berikutnya.
Identifikasi Jenis Segitiga:
Jika (A == B) DAN (B == C) (semua sisi sama), maka tampilkan "Segitiga Sama Sisi".
Jika TIDAK, cek:
Jika (A == B) ATAU (A == C) ATAU (B == C) (dua sisi sama), maka tampilkan "Segitiga Sama Kaki".
Jika TIDAK, maka tampilkan "Segitiga Sembarang".
Selesai.
3. Menulis Kode (Implementasi)
Sekarang, kita akan mengubah "resep" di atas menjadi kode. Kita bisa pakai bahasa pemrograman seperti Python, yang mudah dibaca:
Python
# Mengidentifikasi Jenis Segitiga#
sisi_a = float(input("Masukkan panjang sisi A: "))
sisi_b = float(input("Masukkan panjang sisi B: "))
sisi_c = float(input("Masukkan panjang sisi C: "))
# Langkah 3: Periksa Validitas Segitiga
if (sisi_a + sisi_b <= sisi_c) or \
(sisi_a + sisi_c <= sisi_b) or \
(sisi_b + sisi_c <= sisi_a):
print("Ketiga sisi tersebut TIDAK BISA membentuk segitiga.")
else:
# Langkah 4: Identifikasi Jenis Segitiga
if (sisi_a == sisi_b) and (sisi_b == sisi_c):
print("Ini adalah Segitiga Sama Sisi.")
elif (sisi_a == sisi_b) or (sisi_a == sisi_c) or (sisi_b == sisi_c):
print("Ini adalah Segitiga Sama Kaki.")
else:
print("Ini adalah Segitiga Sembarang.")
print("Program selesai.")
(Catatan: float(input(...)) digunakan agar kita bisa memasukkan angka desimal, bukan hanya bilangan bulat.)
4. Menguji dan Memperbaiki (Debugging)
Setelah menulis kode, kita harus mengujinya dengan berbagai skenario, seperti mencicipi kue yang sudah jadi!
Kasus Segitiga Sama Sisi: Input 5, 5, 5 -> Output: "Ini adalah Segitiga Sama Sisi." (Benar)
Kasus Segitiga Sama Kaki: Input 7, 7, 10 -> Output: "Ini adalah Segitiga Sama Kaki." (Benar)
Kasus Segitiga Sembarang: Input 3, 4, 5 -> Output: "Ini adalah Segitiga Sembarang." (Benar)
Kasus Bukan Segitiga (Panjang): Input 1, 2, 10 -> Output: "Ketiga sisi tersebut TIDAK BISA membentuk segitiga." (Benar)
Kasus Bukan Segitiga (Jumlah sama dengan sisi ketiga): Input 2, 3, 5 -> Output: "Ketiga sisi tersebut TIDAK BISA membentuk segitiga." (Benar)
Kasus Input Negatif/Nol: Apa yang terjadi jika kita memasukkan -5 atau 0? Saat ini, program kita belum menangani kasus itu. Ini adalah bug atau area untuk perbaikan! Kita bisa menambahkan pengecekan di awal untuk memastikan semua sisi lebih besar dari nol. Inilah mengapa langkah pengujian sangat penting—kita menemukan kelemahan program dan bisa memperbaikinya.
Melalui contoh ini, kalian bisa melihat bagaimana setiap langkah dalam pemrograman saling berkaitan dan penting untuk menghasilkan program yang berfungsi dan akurat! Apakah kalian bisa memikirkan cara lain untuk menguji program ini, atau fitur apa lagi yang bisa ditambahkan?