Skip to content

M03 · Bab 9± 40 menitDraf AI

Big-O & Memilih Struktur Data

Tujuan belajar

  • Menjelaskan intuisi notasi Big-O untuk O(1), O(log n), O(n), O(n log n), dan O(n²)
  • Membaca kompleksitas operasi umum pada ArrayList, LinkedList, HashMap, TreeMap, HashSet, ArrayDeque, dan PriorityQueue
  • Mengubah algoritma O(n²) menjadi O(n) dengan HashSet/HashMap
  • Mengukur waktu secara kasar dengan System.nanoTime dan memahami keterbatasannya
  • Menilai kapan Big-O penting dan kapan biaya I/O atau database lebih dominan

Prasyarat: Try-with-Resources

Kuis

5 soal · lulus bila minimal 70% benar

1.Berapa kompleksitas waktu rata-rata HashMap.get(key)?
2.Apa output kode ini? int n = 8; int steps = 0; while (n > 1) { n = n / 2; steps++; } System.out.println(steps);
3.Endpoint laporan memeriksa 50.000 pesanan; untuk setiap pesanan dipanggil paidIds.contains(id) pada sebuah ArrayList berisi 45.000 ID. Endpoint makin lambat seiring data bertambah. Perbaikan paling tepat?
4.Kenapa ArrayList.add di akhir list disebut O(1) _amortized_, padahal sesekali array internalnya harus disalin?
5.Sebuah endpoint memuat 20 produk lalu menjalankan satu query database untuk kategori setiap produk (21 query total). Optimasi mana yang paling berdampak?

Jawab semua soal dulu (0/5)