Algoritma dan struktur data adalah fondasi ilmu komputer. Section ini menerapkan keduanya di Kotlin dengan fokus pada kompleksitas dan keterbacaan.
Pelajari cara mengukur kinerja algoritma dengan kompleksitas waktu dan memori, serta trade-off klasik antara waktu dan ruang.
Buka → # Big-O NotationPelajari Big-O Notation dari O(1) hingga O(2^n), beserta best/worst/average case untuk setiap algoritma.
Buka → # Array dan Linked ListPelajari Array dengan akses O(1) dan Linked List dengan insert/delete O(1) di posisi yang diketahui, serta implementasi LinkedList di Kotlin.
Buka → # Stack dan QueuePelajari Stack (LIFO) dan Queue (FIFO) di Kotlin: implementasi dengan ArrayDeque, cek bracket seimbang, dan simulasi antrian.
Buka → # Hash TablePelajari Hash Table: hash function, collision resolution dengan chaining dan open addressing, load factor, dan perbandingan dengan HashMap Kotlin.
Buka → # Tree dan Binary Search TreePelajari struktur tree: terminologi root/leaf/height, Binary Search Tree dengan insert/search O(log n), dan tiga jenis traversal.
Buka → # Heap dan Priority QueuePelajari Min-Heap dan Max-Heap, implementasi sift-up/sift-down, java.util.PriorityQueue, dan use case top-K.
Buka → # GraphPelajari struktur data graph: adjacency list vs matrix, directed/undirected, weighted, dan implementasi class Graph di Kotlin.
Buka → # Searching AlgorithmsPelajari linear search O(n) dan binary search O(log n) pada sorted array, lengkap dengan function binarySearch bawaan Kotlin stdlib.
Buka → # Sorting AlgorithmsPelajari algoritma pengurutan bubble, selection, insertion O(n²) dan merge, quick, heap O(n log n), serta function sorted() bawaan Kotlin.
Buka → # Recursion dan BacktrackingPelajari recursion dengan base case dan recursive case, risiko stack overflow, serta backtracking untuk N-Queens, permutasi, dan subset sum.
Buka → # Greedy AlgorithmsPelajari pola greedy yang memilih local optimum menuju global optimum: coin change, activity selection, fractional knapsack, dan kapan greedy gagal.
Buka → # Dynamic ProgrammingPelajari memoization (top-down) dan tabulation (bottom-up) dengan contoh Fibonacci, 0/1 knapsack, LCS, dan minimum coin change.
Buka → # Graph AlgorithmsPelajari BFS, DFS, Dijkstra shortest path, dan topological sort Kahn's algorithm dengan implementasi Kotlin di graph adjacency list berbobot.
Buka → # Implementasi Algoritma dengan KotlinPelajari cara menulis algoritma secara idiomatic Kotlin: extension function, sealed class untuk state, sequence untuk lazy evaluation, dan tail recursion.
Buka →