TIPS: Rangkuman ini hanya sebagai pemahaman secara umum. Pastikan Anda juga membaca BMP (Buku Materi Pokok) versi cetak atau digital di Ruang Baca Virtual (RBV) untuk pemahaman lebih mendalam.
DILARANG: Memperjualbelikan seluruh konten atau latihan soal yang terdapat di portal ini. Pelanggaran akan dikenakan sanksi sesuai ketentuan yang berlaku.
Modul 1: Pengantar Algoritma dan Pemrograman
Kegiatan Belajar 1: Pengantar Algoritma dan Pemrograman Komputer
A. Pengertian Algoritma
Secara esensial, algoritma adalah inti dari penyelesaian masalah menggunakan komputer. Perkembangan teknologi memungkinkan penyelesaian masalah yang kompleks melalui aplikasi komputer, yang semuanya diawali dari desain algoritma.
Definisi Algoritma Menurut Para Ahli:
Abu Ja'far Muhammad Ibnu Musa Al-Khawarizmi: Suatu metode khusus untuk menyelesaikan suatu masalah.
Donald E. Knuth: Sekumpulan aturan-aturan berhingga yang memberikan sederetan proses-proses untuk menyelesaikan suatu masalah yang khusus.
David Bolton: Deskripsi dari suatu prosedur yang berakhir dengan sebuah output.
Stone dan Knuth: Suatu seperangkat aturan yang tepat mendefinisikan urutan operasi hingga sedemikian rupa sehingga setiap aturan yang efektif, jelas hingga sedemikian rupa sehingga urutan berakhir dalam waktu yang terbatas.
Andrey Andreyevich Markov: Hal umum untuk dipahami sebagai suatu keputusan yang tepat untuk mendefinisikan proses komputasi yang mengarahkan dari data awal hingga hasil yang diinginkan.
Definisi Gabungan:
Algoritma adalah suatu upaya dengan urutan operasi yang disusun secara logis dan sistematis untuk menyelesaikan suatu masalah untuk menghasilkan suatu output tertentu.
Pentingnya algoritma yang baik diibaratkan seperti menggunakan alat yang tepat. Algoritma yang salah akan tidak efektif dan memakan waktu lama. Contohnya adalah memilih cara perjalanan dari Jakarta ke Bogor (kereta, taksi, angkot), di mana setiap pilihan adalah algoritma yang berbeda dengan kelebihan dan kekurangan dari segi waktu dan biaya.
B. Alasan Menggunakan Algoritma
Algoritma adalah prosedur pemecahan masalah dalam bahasa alami yang nantinya akan dituangkan menjadi program komputer untuk mengotomatisasi penyelesaian masalah. Alasan utama penggunaan algoritma dari sudut pandang disiplin ilmu adalah:
Efisiensi: Algoritma yang baik harus mempertimbangkan efisiensi waktu-CPU dan memori. Tujuannya adalah menghasilkan solusi yang cepat dan tepat dengan menyeimbangkan kecepatan eksekusi dan penggunaan ruang memori.
Abstraksi: Algoritma mampu menyederhanakan permasalahan yang sangat kompleks menjadi terlihat lebih mudah dan sederhana melalui alur yang tersusun baik dan jelas.
Reusability (Dapat Digunakan Kembali): Algoritma adalah sebuah metode, bukan program. Ini berarti algoritma harus bersifat independen dari bahasa pemrograman tertentu dan dapat digunakan kembali dalam berbagai situasi dan implementasi bahasa pemrograman yang berbeda.
C. Pengertian Program dan Bahasa Pemrograman
Program adalah satu set instruksi berkode yang dapat dimengerti oleh komputer, sementara bahasa pemrograman adalah instruksi standar untuk membuat program tersebut.
1. Program
Definisi: Satu set instruksi berkode yang dapat dimengerti oleh komputer untuk memecahkan masalah atau menghasilkan hasil yang diinginkan.
Dua Kelompok Besar Program Komputer:
Sistem Operasi Komputer (OS): Program yang menyediakan instruksi paling mendasar untuk operasi komputer. OS mengelola perangkat keras, perangkat lunak, dan menyediakan layanan umum. Contoh: Windows, Linux, MacOS.
Program Aplikasi: Program yang berjalan di atas sistem operasi untuk melakukan pekerjaan spesifik sesuai kehendak pengguna. Contoh: pengolah kata, aplikasi perhitungan, pemutar video.
2. Bahasa Pemrograman Pertama
Bahasa pemrograman pertama ditulis oleh Augusta Ada Byron (Lady Lovelace) lebih dari 100 tahun yang lalu. Ia bekerja sama dengan Charles Babbage pada mesin analitikal. Ada menerjemahkan dan menguraikan catatan tentang mesin tersebut, yang kemudian dianggap sebagai "Program Komputer" pertama. Untuk menghormatinya, Departemen Pertahanan AS pada tahun 1978 menamakan perangkat lunak pertamanya "ADA".
3. Programmer dan Bahasa Pemrograman
Programmer: Orang yang secara profesional bertanggung jawab atas perangkat lunak. Terdapat dua kelompok besar:
Pemrograman Sistem: Fokus pada perangkat lunak sistem seperti sistem operasi.
Pemrograman Aplikasi: Menghasilkan perangkat lunak yang menyediakan layanan langsung kepada pengguna.
Bahasa Pemrograman: Bahasa formal yang terdiri dari set instruksi untuk komputer. Satu-satunya bahasa yang dipahami langsung oleh komputer adalah kode biner ('0' dan '1').
Klasifikasi Bahasa Pemrograman:
Tingkat Rendah (Bahasa Mesin): Ditulis dengan kode biner dan langsung diolah komputer tanpa kompilasi.
Tingkat Menengah (Bahasa Rakitan/Assembly): Menggunakan kode singkat (mnemonic) seperti MOV, SUB, JMP. Contoh: Assembler.
Tingkat Tinggi: Menggunakan kata kunci yang lebih mirip bahasa manusia. Contoh: Visual Basic, Delphi, Pascal, PHP, Java.
D. Penyelesaian Masalah dengan Program
Terdapat tiga konsep penting dalam penyelesaian masalah dengan program:
Menganalisa masalah dan membuat algoritma: Langkah awal adalah menganalisis dan mengidentifikasi masalah, menentukan data masukan dan keluaran, lalu merancang proses (algoritma) yang jelas dan berurutan untuk mengubah masukan menjadi keluaran yang diinginkan.
Menuangkan algoritma ke dalam bentuk program: Algoritma yang telah dirancang kemudian diimplementasikan atau ditulis oleh programmer menggunakan bahasa pemrograman yang dikuasai.
Mengeksekusi dan menguji program: Program yang sudah ditulis harus dikompilasi menjadi aplikasi yang dapat dijalankan, kemudian diuji untuk memastikan kebenarannya dan diperbaiki jika ditemukan kesalahan.
E. Ekspresi Algoritma
Algoritma dapat diekspresikan dalam berbagai notasi, antara lain:
Bahasa Alami: Cenderung bertele-tele dan ambigu, jarang digunakan untuk algoritma kompleks.
Flowchart (Diagram Alur) dan Pseudocode: Cara terstruktur untuk menghindari ambiguitas dan tetap independen dari bahasa pemrograman tertentu.
Bahasa Pemrograman: Mengekspresikan algoritma dalam bentuk kode yang dapat dieksekusi oleh komputer.
Perlu ditekankan bahwa algoritma yang baik adalah yang tidak banyak menggunakan sumber daya dan waktu.
F. Ciri-Ciri dan Manfaat Mempelajari Algoritma
Ciri-ciri Algoritma:
Ada input dan output.
Memiliki proses tertentu yang logis.
Instruksi harus jelas dan tidak ambigu.
Memiliki stopping role (aturan berhenti) untuk mencegah iterasi tak terbatas.
Manfaat Mempelajari Algoritma:
Meningkatkan kemampuan berpikir secara logis.
Mengembangkan cara berpikir yang sistematis.
Mempertajam analisis saat membuat program dan mencari kesalahan.
Meningkatkan kemampuan dalam mengatasi masalah secara umum.
G. Pedoman Penyusunan Algoritma
Menurut Ellis Horowitz dan Sartaj Sahni, sebuah algoritma yang baik harus memenuhi syarat-syarat berikut:
Input: Boleh memiliki nol atau lebih masukan.
Output: Wajib memiliki minimal satu keluaran, boleh lebih.
Definiteness (Kepastian): Setiap instruksi harus jelas dan tidak ambigu.
Finiteness (Keterbatasan): Algoritma harus berakhir setelah sejumlah langkah proses.
Effectiveness (Efektivitas): Semua operasi harus cukup sederhana untuk dapat diselesaikan dalam waktu yang singkat.
Kegiatan Belajar 2: Struktur Dasar Algoritma
A. Skuensial (Sequential)
Definisi: Struktur dasar di mana langkah-langkah atau instruksi dalam algoritma dikerjakan secara berurutan dari awal hingga akhir, tanpa melompati satu perintah pun. Pembuat algoritma harus menentukan urutan instruksi yang benar, karena urutan yang salah akan menghasilkan output yang salah.
Contoh: Dalam algoritma untuk menghitung kecepatan (v = s/t) dan percepatan (a = v/t), proses perhitungan kecepatan harus dilakukan sebelum perhitungan percepatan karena hasilnya saling bergantung.
B. Seleksi (Selection)
Definisi: Struktur yang digunakan ketika sebuah algoritma dihadapkan pada suatu kondisi yang memiliki dua atau lebih alternatif penyelesaian atau keputusan. Struktur ini memungkinkan algoritma untuk memilih jalur eksekusi yang berbeda berdasarkan apakah suatu kondisi terpenuhi (benar) atau tidak (salah).
Contoh: Membandingkan dua nilai (a dan b) untuk menentukan apakah "Nilai a >= b" atau "Nilai a < b". Algoritma akan mengeksekusi salah satu dari dua kemungkinan cetak berdasarkan hasil perbandingan.
C. Perulangan (Looping)
Definisi: Struktur yang digunakan untuk mengulang satu atau serangkaian instruksi beberapa kali hingga suatu kondisi tertentu tercapai. Sangat efektif untuk menyelesaikan masalah yang melibatkan banyak data atau proses berulang, seperti mengurutkan data atau menampilkan deretan angka.
Contoh: Untuk mencetak angka 1 sampai 100. Menggunakan struktur sekuensial akan sangat tidak efektif karena membutuhkan 100 instruksi cetak. Dengan struktur perulangan, hal ini dapat dilakukan dengan beberapa baris instruksi saja yang akan terus diulang sampai angka 100 tercetak, dan berhenti ketika kondisi (misalnya, angka > 100) terpenuhi.