Selasa, 07 Oktober 2025

Modul Algoritma Tingkat Menengah

 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

Penjelasan Tahapan UKK Peserta didik DKV

  1. Tahap Perencanaan & Konsep (Judul Unit: Menterjemahkan Arah Visual) Di tahap ini, siswa dinilai kemampuannya dalam memahami brief ...