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.

Selamat datang di series Belajar Algoritm! Series ini akan membawa kalian memahami algoritma — fondasi utama pemrograman komputer — dari definisi, analisis kompleksitas, hingga teknik desain yang dipakai di coding interview, optimasi sistem, dan aplikasi AI modern. Total ada 28 episode yang tersusun dalam enam fase, dari fondasi analisis hingga graph algorithms, randomized, dan problem classification.
Sebelum menulis kode algoritma pertama, ada skill dasar dan perangkat yang wajib kalian siapkan. Mengapa prasyarat ini penting? Karena algoritma bukan tentang menghafal sintaks — ia tentang berpikir logis terhadap masalah. Tanpa fondasi rekursi, manipulasi array, dan pemahaman kompleksitas, kalian akan kesulitan memahami mengapa sebuah algoritma lebih baik dari yang lain.
Episode 0 ini adalah pijakan kalian: kita akan memastikan skill dasar terpenuhi, menyiapkan environment coding, dan memverifikasi bahwa kalian siap mengikuti 27 episode ke depan.
Kalian harus nyaman dengan setidaknya satu bahasa umum — Python, JavaScript, Java, atau C++. Yang terpenting bukan syntax-nya, melainkan kemampuan menulis fungsi yang menerima input, memproses data, dan mengembalikan output. Pastikan kalian bisa:
for, while) dan conditional (if/else).Rekursi adalah fondasi banyak algoritma — dari binary search hingga divide & conquer. Kalian harus memahami konsep base case dan recursive case:
def factorial(n):
if n <= 1:
return 1
return n * factorial(n - 1)factorial(5) akan memanggil factorial(4), yang memanggil factorial(3), dan seterusnya sampai base case n <= 1. Tanpa pemahaman ini, divide & conquer dan dynamic programming akan terasa seperti sihir.
Sebagian besar algoritma bekerja dengan array. Kalian wajib bisa:
Ini adalah skill paling kritis sebelum masuk ke analisis algoritma. Kalian harus bisa menentukan waktu eksekusi sebuah fungsi berdasarkan ukuran input n:
def count_pairs(arr):
count = 0
for i in range(len(arr)):
for j in range(i + 1, len(arr)):
if arr[i] + arr[j] == 0:
count += 1
return countNested loop dengan iterasi Independen → O(n²). Kita akan memperdalam ini di episode 2, tetapi kalian harus bisa mengidentifikasi pola dasarnya sekarang.
Tip
Latihan cepat: hitung Big-O dari 5 fungsi yang kalian tulis minggu ini. Verifikasi dengan mengukur waktu aktual menggunakan profiler. Jika hasilnya tidak mendekati teori, cari tahu mengapa — biasanya ada overhead konstanta yang menipu.
Untuk series ini, Python direkomendasikan sebagai bahasa prototipe utama karena sintaksnya ringkas dan mudah dibaca. Namun kalian boleh menggunakan bahasa lain yang nyaman. Yang penting adalah konsistensi — jangan ganti-ganti bahasa di tengah series.
python3 --versionJika belum terinstall, gunakan package manager sesuai distro:
sudo apt install python3 # Debian/Ubuntu
sudo dnf install python3 # RHEL/FedoraKita akan mengukur waktu aktual algoritma untuk memverifikasi analisis teoritis. Python sudah punya built-in timeit:
import timeit
def linear_search(arr, target):
for x in arr:
if x == target:
return True
return False
#ukur waktu
n = 10000
arr = list(range(n))
timeit.timeit(lambda: linear_search(arr, n - 1), number=100)Untuk memahami algoritma secara visual, gunakan pen & paper terlebih dahulu — gambar array, lingkari elemen yang berubah, dan catat setiap langkah. Setelah konsepnya jelas, barulah implementasikan dalam kode. Tools seperti VisuAlgo (visualgo.net) berguna untuk verifikasi, tetapi pemahaman manual lebih dalam.
Sebelum lanjut ke episode 1, jalankan verifikasi menyeluruh:
python3 --version
python3 -c "print('Algoritma ready')"Checklist akhir:
Note
Jika belum familiar dengan rekursi atau Big-O, luangkan waktu 1-2 hari untuk latihan sebelum lanjut. Fondasi ini akan menentukan seberapa cepat kalian menangkap materi di episode-episode selanjutnya.
Rangkuman yang sudah kalian siapkan di episode 0:
timeit untuk profiling, pen & paper untuk visualisasi.Jika ada yang belum terpenuhi, berhenti dulu dan lengkapi sebelum melanjutkan. Perjalanan 27 episode ke depan akan jauh lebih lancar dengan pijakan yang kuat ini.
Inti yang harus dibawa pulang:
Di episode 1 selanjutnya kita akan membahas apa itu algoritma dan korektivitas — definisi formal, properti algoritma, loop invariant, postcondition, dan mengapa membuktikan algoritma benar harus dilakukan sebelum mengoptimasi. Pastikan environment kalian sudah siap, karena perjalanan Belajar Algoritm baru saja dimulai!