Sebelum merancang sistem berskala besar, kalian perlu memahami mental model system design: requirements → estimasi → design → bottleneck, serta mempersiapkan tool whiteboarding dan latihan estimasi back-of-envelope

Selamat datang di series Belajar System Design! Series ini akan membawa kalian menguasai system design — kemampuan merancang sistem berskala besar dari load balancing, caching, database sharding, hingga distributed consensus, microservices, dan case study nyata. Total ada 28 episode yang tersusun dalam enam fase, dari fondasi mental model sampai case study design dan tren modern 2026.
Mengapa system design begitu penting? Karena ini adalah kemampuan yang membedakan engineer biasa dari engineer yang mampu membangun sistem yang bertahan di skala jutaan pengguna. Di dunia kerja, system design interview adalah ronde paling menentukan di hiring proses FAANG/Big Tech — dan di lapangan, ini adalah skill yang menentukan apakah arsitektur kalian bisa bertahan saat traffic naik 100x.
Episode 0 ini adalah pijakan kalian: kita akan membangun mental model, menyiapkan tool, dan melatih intuisi estimasi sebelum masuk ke konsep teknis di episode-episode berikutnya.
Setiap problem system design bisa didekati dengan framework yang sama:
Framework ini bukan template kaku — ia adalah cara berpikir. Di episode 20-24 (case study), kita akan mengulangi framework ini berulang kali untuk berbagai masalah desain.
Sebelum menggambar diagram, tanyakan:
| Kategori | Contoh Pertanyaan |
|---|---|
| Fitur | Apa fitur utama? Apa yang tidak perlu dibangun? |
| Skala | Berapa pengguna aktif? Berapa request per detik? |
| Constraint | Latency requirement? Budget? Tim berapa? |
| Durability | Data harus survive restart? Backup policy? |
| Availability | Berapa uptime yang diharapkan? |
Tip
Dalam interview, menanyakan pertanyaan yang tepat di 5 menit pertama menunjukkan kedewasaan teknis. Kandidat yang langsung menggambar diagram tanpa klarifikasi requirements biasanya tidak lolos ronde ini.
Untuk praktik dan interview, kalian butuh tool untuk menggambar arsitektur:
Untuk estimasi back-of-envelope, kalian butuh kalkulator dan pemahaman order of magnitude:
1 hari = 86.400 detik ≈ 100K detik
1 bulan ≈ 2.6 juta detik
1 juta request/hari ≈ 12 request/detik
1 juta request/detik = 1K request/milidetik
1 KB = 10^3 bytes
1 MB = 10^6 bytes
1 GB = 10^9 bytes
1 TB = 10^12 bytes
1 PB = 10^15 bytesPertanyaan: Berapa request per detik yang diterima YouTube, dan berapa storage untuk 1 tahun video baru?
Estimasi QPS:
Estimasi Storage:
Angka ini membantu kalian memahami skala: YouTube bukan sekadar "banyak video" — ini sistem yang memproses petabyte data setiap hari.
Kalian wajib memahami:
Untuk menilai kompleksitas solusi, kalian perlu nyaman dengan:
Note
Tidak perlu menjadi expert di semua domain ini sebelum memulai series. Namun pemahaman dasar akan membuat episode-episode berikutnya jauh lebih mudah diikuti. Jika ada yang belum kuasai, beri tanda dan pelajari sambil jalan.
Sebelum lanjut ke episode 1, pastikan:
# Excalidraw bisa diakses di browser
echo "Buka https://excalidraw.com di browser"
# Kalkulator tersedia
python3 -c "print('Kalkulator siap:', 86400)"
# Kertas & pena untuk estimasi manual
echo "Siapkan kertas dan pena untuk back-of-envelope"Checklist akhir episode 0:
Rangkuman yang sudah kalian siapkan di episode 0:
Jika ada yang belum terpenuhi, beri tanda dan pelajari sambil jalan. Perjalanan 28 episode ke depan akan jauh lebih lancar dengan pijakan yang kuat ini.
Inti yang harus dibawa pulang:
Di episode 1 selanjutnya kita akan membahas pengenalan distributed system — monolith vs distributed, kenapa harus distribusi, CAP theorem, dan bagaimana mengidentifikasi single point of failure. Pastikan mental model kalian sudah siap, karena perjalanan Belajar System Design baru saja dimulai!