1. Pengantar Algoritma Tingkat Menengah
Algoritma adalah langkah-langkah logis untuk menyelesaikan suatu masalah secara sistematis. Algoritma tingkat menengah membahas konsep yang lebih kompleks dari algoritma dasar, termasuk struktur kendali yang bercabang dan berulang secara bersarang, serta pemrograman modular menggunakan prosedur dan fungsi.
2. Struktur Data dan Variabel
·
Variabel adalah tempat menyimpan data sementara dalam program.
·
Tipe data umum: integer, float, char, boolean.
·
Array: variabel yang dapat menyimpan banyak data dengan indeks.
Contoh: menyimpan daftar nilai siswa dalam satu variabel.
3. Struktur Kendali Lanjutan
·
Percabangan bersarang (nested if-else): percabangan di dalam percabangan
untuk pengambilan keputusan yang kompleks.
if (kondisi1)
{
if (kondisi2) {
aksi
} else {
aksi lain
}
}
·
Pengulangan bersarang (nested loop): loop di dalam loop untuk proses data
dua dimensi, seperti tabel.
for(i=0;
i<n; i++) {
for(j=0; j<m; j++) {
aksi
}
}
4. Prosedur dan Fungsi
·
Prosedur: bagian program yang menjalankan perintah tertentu, tanpa
mengembalikan nilai.
·
Fungsi: bagian program yang menjalankan perintah dan mengembalikan
nilai hasil operasi.
·
Memudahkan
pemrograman yang modular dan terstruktur.
·
Contoh
prosedur dan fungsi sederhana disertai parameter masukan.
5. Algoritma Penyelesaian Masalah
·
Pencarian Linear: mencari data dengan memeriksa satu
per satu.
·
Pencarian Binary: mencari data dengan cara membagi dua
bagian (hanya pada data terurut).
·
Pengurutan (Sorting):
o Bubble Sort: menukar elemen berdekatan
jika tidak dalam urutan yang benar.
o Insertion Sort: memasukkan elemen ke
posisi yang tepat secara berurutan.
6. Studi Kasus dan Latihan Soal
·
Buat program
dengan prosedur untuk mencetak array.
·
Fungsi
untuk menemukan nilai maksimum dalam array.
·
Latihan:
pengurutan array menggunakan bubble sort.
·
Latihan:
program pencarian linear dan binary.
Modul Algoritma Tingkat Menengah - Python
1. Pengantar Algoritma Tingkat Menengah
Algoritma adalah urutan langkah sistematis yang digunakan
untuk memecahkan masalah. Di tingkat menengah, kita mulai menggunakan konsep
percabangan bersarang (nested if) dan pengulangan bersarang (nested loop) untuk
memproses logika yang lebih kompleks.
![]()
2. Struktur Data dan Variabel
# Contoh
penggunaan array (list) dalam Python
nilai = [75, 80, 65, 90, 85] # List
menyimpan 5 nilai
print("Nilai ketiga adalah:", nilai[^2]) # Output: Nilai ketiga adalah: 65
![]()
3. Struktur Kendali Lanjutan
Percabangan Bersarang (Nested If-Else)
nilai = 90
if nilai >= 80:
if nilai == 100:
print("Nilai sempurna")
else:
print("Nilai bagus")
else:
print("Perlu belajar lagi")
Pengulangan Bersarang (Nested Loop)
for i in
range(1, 4): # 1 sampai 3
for j in range(1, 3): # 1 sampai 2
print(f"Iterasi: {i},
{j}")
![]()
4. Prosedur dan Fungsi
Prosedur (fungsi tanpa return)
def
cetak_pesan():
print("Ini prosedur
sederhana")
cetak_pesan()
Fungsi (dengan return)
def tambah(a,
b):
return a + b
hasil = tambah(5, 3)
print("Hasil penjumlahan:", hasil)
![]()
5. Algoritma Penyelesaian Masalah
Pencarian Linear
def
cari_linear(arr, target):
for i in range(len(arr)):
if arr[i] == target:
return i
return -1
data = [10, 20, 30, 40, 50]
posisi = cari_linear(data, 30)
print("Posisi data:", posisi)
Pencarian Binary (data harus terurut)
def
cari_binary(arr, target):
low = 0
high = len(arr) - 1
while low <= high:
mid = (low + high) // 2
if arr[mid] == target:
return mid
elif arr[mid] < target:
low = mid + 1
else:
high = mid - 1
return -1
data = [10, 20, 30, 40, 50]
posisi = cari_binary(data, 40)
print("Posisi data:", posisi)
Bubble Sort
def bubble_sort(arr):
n = len(arr)
for i in range(n-1):
for j in range(n-1-i):
if arr[j] > arr[j+1]:
arr[j], arr[j+1] =
arr[j+1], arr[j]
data = [64, 34, 25, 12, 22, 11, 90]
print("Sebelum sorting:", data)
bubble_sort(data)
print("Setelah sorting:", data)
Studi Kasus dan Latihan
1. Fungsi mencari nilai maksimum dalam
list
def
cari_maksimum(arr):
maksimum = arr[0]
for nilai in arr:
if nilai > maksimum:
maksimum = nilai
return maksimum
nilai_siswa = [75, 80, 65, 90, 85]
print("Nilai maksimum:", cari_maksimum(nilai_siswa))
2. Prosedur mencetak semua elemen list
nilai siswa
def
cetak_nilai(arr):
print("Daftar nilai
siswa:")
for i, nilai in enumerate(arr,
start=1):
print(f"{i}. {nilai}")
cetak_nilai(nilai_siswa)
3. Program pengurutan dengan bubble
sort
def
bubble_sort(arr):
n = len(arr)
for i in range(n-1):
for j in range(n-1-i):
if arr[j] > arr[j+1]:
arr[j], arr[j+1] =
arr[j+1], arr[j]
data = [64, 34, 25, 12, 22, 11, 90]
print("Sebelum sorting:", data)
bubble_sort(data)
print("Setelah sorting:", data)
4. Program pencarian data dengan linear
dan binary search
def cari_linear(arr,
target):
for i in range(len(arr)):
if arr[i] == target:
return i
return -1
def cari_binary(arr, target):
low = 0
high = len(arr) - 1
while low <= high:
mid = (low + high) // 2
if arr[mid] == target:
return mid
elif arr[mid] < target:
low = mid + 1
else:
high = mid - 1
return -1
data = [10, 20, 30, 40, 50]
target = 30
posisi_linear = cari_linear(data, target)
print(f"Pencarian Linear: posisi {target} ada di indeks
{posisi_linear}")
posisi_binary = cari_binary(data, target)
print(f"Pencarian Binary: posisi {target} ada di indeks
{posisi_binary}")
![]()
Tidak ada komentar:
Posting Komentar
tinggalkan pesan yang baik