Algoritma adalah urutan langkah-langkah yang logis, sistematis, dan terstruktur untuk menyelesaikan suatu masalah.
Contoh sederhana:
Masalah: Menghitung luas persegi panjang.
Langkah algoritma:
- Masukkan panjang.
- Masukkan lebar.
- Hitung luas = panjang × lebar.
- Tampilkan luas.
Algoritma tidak harus ditulis menggunakan bahasa pemrograman. Algoritma dapat ditulis menggunakan bahasa sehari-hari, pseudocode, maupun flowchart.
2. Pengertian Pemrograman
Pemrograman adalah proses menerjemahkan algoritma atau solusi suatu masalah ke dalam bahasa pemrograman agar dapat dijalankan oleh komputer.
Contoh algoritma:
Masukkan panjang
Masukkan lebar
Hitung luas = panjang × lebar
Tampilkan luas
Kemudian diterjemahkan ke Python:
panjang = 10
lebar = 5
luas = panjang * lebar
print(luas)
Output:
50
3. Hubungan Algoritma dan Pemrograman
Algoritma dan pemrograman memiliki hubungan yang sangat erat.
Urutannya:
MASALAH
↓
ANALISIS MASALAH
↓
ALGORITMA
↓
PSEUDOCODE / FLOWCHART
↓
PROGRAM
↓
OUTPUT
Contoh:
Masalah:
Menghitung total belanja.
Algoritma:
- Masukkan harga barang.
- Masukkan jumlah barang.
- Hitung total = harga × jumlah.
- Tampilkan total.
Program:
harga = 15000
jumlah = 3
total = harga * jumlah
print("Total belanja =", total)
4. Tujuan Mempelajari Algoritma dan Pemrograman
Tujuan utama mempelajari algoritma dan pemrograman adalah:
- Melatih kemampuan berpikir logis.
- Melatih kemampuan memecahkan masalah.
- Memahami cara kerja komputer.
- Membuat solusi yang sistematis.
- Membuat aplikasi atau program.
- Meningkatkan kemampuan berpikir komputasional.
- Membuat proses pekerjaan menjadi otomatis.
- Mengembangkan software dan sistem informasi.
5. Karakteristik Algoritma
Algoritma yang baik memiliki beberapa karakteristik:
a. Memiliki Input
Algoritma dapat menerima data masukan.
Contoh:
Masukkan nilai mahasiswa
b. Memiliki Output
Algoritma menghasilkan suatu keluaran.
Contoh:
Tampilkan nilai akhir
c. Definiteness
Setiap langkah harus jelas dan tidak ambigu.
Contoh:
Hitung total = harga × jumlah
lebih jelas daripada:
Hitung total belanja
d. Finiteness
Algoritma harus memiliki akhir.
Algoritma tidak boleh berjalan tanpa batas jika memang tidak diperlukan.
e. Effectiveness
Setiap langkah harus dapat dilakukan dan memiliki tujuan yang jelas.
6. Tahapan Penyelesaian Masalah
Dalam membuat program, kita dapat menggunakan tahapan berikut:
1. Identifikasi Masalah
Tentukan masalah yang akan diselesaikan.
Contoh:
Bagaimana menghitung total harga belanja?
2. Analisis Masalah
Tentukan:
- Input
- Proses
- Output
Contoh:
Input:
Harga
Jumlah
Proses:
Total = Harga × Jumlah
Output:
Total belanja
3. Membuat Algoritma
Contoh:
1. Mulai
2. Input harga
3. Input jumlah
4. Hitung total = harga × jumlah
5. Tampilkan total
6. Selesai
4. Membuat Flowchart atau Pseudocode
Algoritma dapat divisualisasikan menggunakan flowchart atau ditulis menggunakan pseudocode.
5. Implementasi
Algoritma diterjemahkan ke bahasa pemrograman.
6. Testing
Program diuji menggunakan berbagai data.
7. Debugging
Jika terdapat kesalahan, program diperbaiki.
8. Dokumentasi dan Pemeliharaan
Program didokumentasikan dan dapat dikembangkan kembali.
7. Struktur Dasar Algoritma
Secara umum terdapat tiga struktur dasar algoritma:
- Runtunan
- Percabangan
- Perulangan
Ketiga struktur ini merupakan dasar penting dalam pemrograman.
8. Runtunan
Runtunan adalah instruksi yang dijalankan secara berurutan dari langkah pertama sampai terakhir.
Contoh:
1. Masukkan panjang
2. Masukkan lebar
3. Hitung luas
4. Tampilkan luas
Python:
panjang = 10
lebar = 5
luas = panjang * lebar
print("Luas =", luas)
Contoh lain:
nama = "Budi"
umur = 20
alamat = "Bogor"
print(nama)
print(umur)
print(alamat)
9. Percabangan
Percabangan digunakan ketika program harus memilih suatu kondisi.
Contoh:
Jika nilai >= 60
maka LULUS
Jika tidak
maka TIDAK LULUS
Python:
nilai = 75
if nilai >= 60:
print("LULUS")
else:
print("TIDAK LULUS")
Jenis Percabangan
a. IF
if nilai >= 60:
print("LULUS")
b. IF ELSE
if nilai >= 60:
print("LULUS")
else:
print("TIDAK LULUS")
c. IF ELIF ELSE
if nilai >= 80:
print("A")
elif nilai >= 70:
print("B")
elif nilai >= 60:
print("C")
else:
print("D")
d. Nested IF
Percabangan di dalam percabangan.
nilai = 85
absen = 90
if nilai >= 60:
if absen >= 75:
print("LULUS")
else:
print("TIDAK LULUS")
else:
print("TIDAK LULUS")
10. Perulangan
Perulangan digunakan untuk menjalankan instruksi berulang kali.
Contoh:
Tampilkan angka 1 sampai 5
Python:
for i in range(1, 6):
print(i)
Output:
1
2
3
4
5
Jenis Perulangan
a. FOR
Digunakan ketika jumlah perulangan sudah diketahui.
for i in range(5):
print("Belajar Python")
b. WHILE
Digunakan selama kondisi masih bernilai benar.
i = 1
while i <= 5:
print(i)
i += 1
11. Variabel
Variabel adalah tempat untuk menyimpan data.
Contoh:
nama = "Budi"
umur = 20
nilai = 85
Dalam contoh tersebut:
nama → "Budi"
umur → 20
nilai → 85
Variabel memungkinkan program menyimpan dan memproses data.
12. Tipe Data
Tipe data menentukan jenis data yang disimpan.
Beberapa tipe data yang umum:
Integer
Bilangan bulat.
umur = 20
Float
Bilangan desimal.
tinggi = 170.5
String
Teks.
nama = "Sutrisno"
Boolean
Nilai benar atau salah.
lulus = True
13. Operator
Operator digunakan untuk melakukan operasi terhadap data.
Operator Aritmatika
+ Penjumlahan
- Pengurangan
* Perkalian
/ Pembagian
% Modulus
// Pembagian bulat
** Pangkat
Contoh:
a = 10
b = 3
print(a + b)
print(a - b)
print(a * b)
print(a / b)
print(a % b)
14. Operator Perbandingan
Operator perbandingan menghasilkan nilai True atau False.
== Sama dengan
!= Tidak sama dengan
> Lebih besar
< Lebih kecil
>= Lebih besar atau sama dengan
<= Lebih kecil atau sama dengan
Contoh:
nilai = 80
print(nilai >= 60)
Output:
True
15. Operator Logika
Operator logika digunakan untuk menggabungkan beberapa kondisi.
and
or
not
Contoh:
nilai = 80
absen = 90
if nilai >= 60 and absen >= 75:
print("LULUS")
16. Input dan Output
Program biasanya menerima input dari pengguna kemudian menghasilkan output.
Contoh Python:
nama = input("Masukkan nama: ")
print("Halo", nama)
Contoh menghitung luas:
panjang = float(input("Panjang: "))
lebar = float(input("Lebar: "))
luas = panjang * lebar
print("Luas =", luas)
17. Pseudocode
Pseudocode adalah cara menuliskan algoritma menggunakan bahasa yang sederhana dan menyerupai struktur program.
Contoh:
ALGORITMA HitungLuasPersegiPanjang
DEKLARASI
panjang : integer
lebar : integer
luas : integer
DESKRIPSI
Input panjang
Input lebar
luas ← panjang × lebar
Output luas
Pseudocode tidak terikat pada bahasa pemrograman tertentu.
18. Flowchart
Flowchart adalah diagram yang digunakan untuk menggambarkan alur algoritma.
Simbol dasar:
Oval → Start / End
Persegi → Process
Jajar Genjang → Input / Output
Belah Ketupat → Decision
Panah → Flow / Aliran
Contoh alur:
Mulai
↓
Input nilai
↓
nilai >= 60?
↓
┌─────────────┐
Ya Tidak
↓ ↓
LULUS TIDAK LULUS
↓ ↓
└───────┬───────┘
↓
Selesai
19. Fungsi
Fungsi adalah sekumpulan instruksi yang dibuat untuk melakukan tugas tertentu.
Contoh:
def luas_persegi(panjang, lebar):
return panjang * lebar
hasil = luas_persegi(10, 5)
print(hasil)
Keuntungan menggunakan fungsi:
- Program lebih terstruktur.
- Kode dapat digunakan kembali.
- Program lebih mudah dipelihara.
- Mengurangi pengulangan kode.
20. Array / List
Array atau list digunakan untuk menyimpan beberapa data dalam satu variabel.
Contoh:
nilai = [80, 75, 90, 85, 70]
print(nilai[0])
print(nilai[1])
Output:
80
75
Data dapat diproses menggunakan perulangan:
nilai = [80, 75, 90, 85, 70]
for n in nilai:
print(n)
21. Algoritma Pencarian
Algoritma pencarian digunakan untuk menemukan data.
Contoh Linear Search:
data = [10, 20, 30, 40, 50]
target = 30
for i in range(len(data)):
if data[i] == target:
print("Data ditemukan pada indeks", i)
Ada juga Binary Search, yang bekerja pada data yang sudah terurut.
Binary Search memiliki kompleksitas waktu sekitar:
O(log n)
22. Algoritma Pengurutan
Sorting digunakan untuk mengurutkan data.
Contoh:
data = [50, 20, 40, 10, 30]
data.sort()
print(data)
Output:
[10, 20, 30, 40, 50]
Beberapa algoritma sorting:
- Bubble Sort
- Selection Sort
- Insertion Sort
- Merge Sort
- Quick Sort
- Heap Sort
23. Kompleksitas Algoritma
Kompleksitas digunakan untuk mengetahui seberapa efisien sebuah algoritma dalam menggunakan waktu dan sumber daya.
Notasi yang sering digunakan adalah Big O.
Contoh:
O(1)
O(log n)
O(n)
O(n log n)
O(n²)
O(2ⁿ)
Contoh O(1):
print(data[0])
Contoh O(n):
for data in daftar:
print(data)
Contoh O(n²):
for i in data:
for j in data:
print(i, j)
24. Debugging
Debugging adalah proses mencari dan memperbaiki kesalahan dalam program.
Jenis kesalahan:
Syntax Error
Kesalahan penulisan sintaks.
if nilai >= 60
print("Lulus")
Runtime Error
Kesalahan ketika program sedang dijalankan.
Contoh pembagian dengan nol:
hasil = 10 / 0
Logic Error
Program berjalan tetapi hasilnya salah.
Contoh:
panjang = 10
lebar = 5
luas = panjang + lebar
Seharusnya:
luas = panjang * lebar
25. Contoh Studi Kasus
Kasus: Menghitung Total Belanja
Seorang pelanggan membeli beberapa barang.
Input:
Harga barang
Jumlah barang
Proses:
Total = Harga × Jumlah
Output:
Total pembayaran
Algoritma
1. Mulai
2. Input harga
3. Input jumlah
4. Hitung total = harga × jumlah
5. Tampilkan total
6. Selesai
Pseudocode
BEGIN
Input harga
Input jumlah
total ← harga × jumlah
Output total
END
Python
harga = float(input("Harga barang: "))
jumlah = int(input("Jumlah barang: "))
total = harga * jumlah
print("Total belanja =", total)
26. Contoh Studi Kasus Percabangan
Menentukan Kelulusan
Ketentuan:
Nilai >= 60 → LULUS
Nilai < 60 → TIDAK LULUS
Python:
nilai = float(input("Masukkan nilai: "))
if nilai >= 60:
print("LULUS")
else:
print("TIDAK LULUS")
27. Contoh Studi Kasus Perulangan
Menampilkan Bilangan 1–10
Algoritma:
1. Mulai
2. i = 1
3. Tampilkan i
4. Tambahkan i dengan 1
5. Jika i <= 10 kembali ke langkah 3
6. Selesai
Python:
for i in range(1, 11):
print(i)
28. Konsep Penting yang Perlu Dikuasai
Untuk belajar algoritma dan pemrograman dari dasar, urutan materi yang baik adalah:
1. Pengantar Algoritma
2. Analisis Masalah
3. Input – Process – Output
4. Variabel
5. Konstanta
6. Tipe Data
7. Operator
8. Runtunan
9. Percabangan
10. Perulangan
11. Array / List
12. String
13. Fungsi
14. Rekursi
15. Searching
16. Sorting
17. Struktur Data Dasar
18. Algoritma Greedy
19. Algoritma Divide and Conquer
20. Kompleksitas Algoritma
21. Big O
22. Debugging
23. Testing
24. Studi Kasus
25. Implementasi Program
Kesimpulan
Algoritma adalah cara berpikir dan langkah penyelesaian masalah, sedangkan pemrograman adalah proses menerjemahkan langkah tersebut menjadi program yang dapat dijalankan komputer.
Dasar utama algoritma dan pemrograman dapat diringkas menjadi:
INPUT
↓
PROSES
↓
OUTPUT
dan tiga struktur fundamental:
RUNTUNAN
+
PERCABANGAN
+
PERULANGAN
Ketiga konsep tersebut menjadi fondasi untuk mempelajari algoritma dan pemrograman yang lebih lanjut.