⚔ Algoritma & Kompleksitas

Level: Advanced

Algoritma adalah langkah-langkah logis untuk menyelesaikan masalah. Kompleksitas mengukur seberapa efisien algoritma berjalan, baik dari sisi waktu maupun memori. Bayangkan seperti rute perjalanan: ada jalan cepat, ada jalan macet, ada jalan memutar.

šŸ“– Konsep Utama

šŸ› ļø Praktik Kecil

# O(1) - konstan
def akses_elemen(lst):
    return lst[0]

# O(n) - linear
def jumlah_elemen(lst):
    total = 0
    for x in lst:
        total += x
    return total

# O(n^2) - kuadratik
def pasangan(lst):
    for i in lst:
        for j in lst:
            print(i, j)

šŸ‘‰ Perhatikan perbedaan: akses_elemen selalu cepat, jumlah_elemen butuh waktu sesuai panjang list, pasangan butuh waktu jauh lebih lama karena perulangan bersarang.

šŸŽ® Mini Challenge

Buat dua fungsi pencarian:

Tugas: Bandingkan kompleksitas keduanya (O(n) vs O(log n)) dengan mencoba list berisi 1.000, 10.000, dan 100.000 elemen.