Belajar Algoritm dari dasar hingga advanced: pre-requisites skill & setup environment, apa itu algoritma & korektivitas, asymptotic analysis lanjut omega theta & recurrence relations, paradigma desain algoritma, sorting dasar insertion selection & merge sort, quick sort heap sort & non-comparison sorts, stability in-place & external sorting, lower bound & sorting applications, binary search & varian, divide & conquer lanjut, sliding window & two pointer, backtracking, bit manipulation, greedy algorithms, dynamic programming fundamentals, DP klasik knapsack LCS & edit distance, DP on strings, DP on trees & graphs, BFS & DFS lanjut, shortest path dijkstra bellman-ford & floyd-warshall, union-find & kruskal MST, network flow, string algorithms, geometric algorithms, randomized algorithms, approximation & online algorithms, problem classification tren 2026 & competitive programming patterns, hingga roadmap karir & refleksi akhir dengan total 28 episode.
Sebelum menyentuh algoritma, kalian perlu menguasai dasar pemrograman, rekursi, manipulasi array, dan kemampuan menghitung Big-O secara manual. Di episode ini kalian menyiapkan environment coding, memilih bahasa prototipe, serta memverifikasi seluruh skill dasar siap dipakai sepanjang series.

Memahami definisi formal algoritma — langkah-langkah terbatas & deterministik — serta properti input, output, definiteness, finiteness, dan effectivity. Di episode ini kalian juga belajar loop invariant, postcondition, dan mengapa korektivitas harus dibuktikan sebelum optimasi.

Memahami Big-Omega sebagai lower bound, Big-Theta sebagai tight bound, serta teknik menyelesaikan recurrence relations: tree method, substitution, dan Master Theorem untuk divide & conquer.

Mengenal enam paradigma desain algoritma — brute force, divide & conquer, greedy, dynamic programming, backtracking, dan randomized — serta pola pikir untuk memilih paradigma yang tepat berdasarkan struktur masalah.

Implementasi tiga algoritma sorting fundamental — Insertion Sort O(n²) yang adaptif, Selection Sort O(n²) yang sederhana, dan Merge Sort O(n log n) divide & conquer — dengan analisis kompleksitas dan benchmark dataset berbeda.

Quick Sort dengan random pivot yang mencapai O(n log n) average, Heap Sort in-place O(n log n) berbasis max-heap, serta Counting, Radix, dan Bucket Sort yang bisa mencapai O(n) untuk input dengan constraint range.

Memahami kriteria sorting lanjutan — stability, in-place, dan adaptive — serta external merge sort untuk dataset yang lebih besar dari kapasitas RAM, dari blocking hingga merging file.

Membuktikan batas bawah Ω(n log n) untuk comparison-based sorting menggunakan decision tree argument, serta aplikasi sorting: counting inversions dengan modifikasi merge sort, closest pair 2D points, dan median streaming.

Menguasai Binary Search O(log n) dengan template loop invariant, serta varian: first/last occurrence, lower/upper bound, search in rotated sorted array, dan answer binary search untuk minimize/maximize.

Aplikasi divide & conquer tingkat lanjut: closest pair of points O(n log n) dengan strip optimization, Strassen matrix multiplication O(n^2.807), dan overview Cooley-Tukey FFT untuk transformasi Fourier cepat.
