Tutorial pemrograman
Pelajari satu bahasa pemrograman, pola desain, atau algoritme dalam satu halaman. Setiap tutorial menjawab pertanyaan lebih dulu, lalu menampilkan kode yang berjalan, kesalahan umum, dan referensi resmi.
Bahasa pemrograman
- 5 menit bacaPythonSintaks, tipe data, alur kontrol, fungsi, koleksi, error, dan file dalam satu halaman
- 5 menit bacaJavaScriptVariabel, tipe, fungsi, array, objek, promise, dan async/await dalam satu halaman
- 5 menit bacaTypeScriptTipe, interface, union, narrowing, generic, dan penanganan error dalam satu halaman
- 6 menit bacaJavaTipe, class, record, koleksi, exception, dan pattern matching dalam satu halaman
- 6 menit bacaCTipe, fungsi, array, string, pointer, malloc/free, dan penanganan error dalam satu halaman
- 7 menit bacaC++Tipe, class, container STL, lambda, RAII, smart pointer, dan exception dalam satu halaman
- 6 menit bacaC#Tipe, class, record, koleksi, LINQ, async/await, dan exception dalam satu halaman
- 6 menit bacaGoTipe, slice, map, struct, interface, goroutine, channel, dan error dalam satu halaman
- 6 menit bacaRustOwnership, borrowing, struct, enum, match, koleksi, dan Result dalam satu halaman
- 6 menit bacaPHPVariabel, array, fungsi, class, enum, exception, dan endpoint JSON dalam satu halaman
- 5 menit bacaRubyTipe, method, array, hash, block, class, module, dan exception dalam satu halaman
- 6 menit bacaSwiftTipe, optional, closure, koleksi, struct, enum, protocol, dan error dalam satu halaman
- 7 menit bacaKotlinNull safety, alur kontrol, fungsi, data class, dan coroutine dalam satu halaman
- 7 menit bacaDartNull safety, fungsi, koleksi, class, dan async/await untuk Flutter
- 6 menit bacaScalaSintaks Scala 3, pattern matching, koleksi, case class, dan Option dalam satu halaman
- 6 menit bacaRVektor, data frame, fungsi, statistik, dan plot di R dalam satu halaman
- 7 menit bacaSQLSELECT, JOIN, GROUP BY, CTE, transaksi, serta PostgreSQL vs MySQL vs SQLite
- 7 menit bacaBashSkrip shell, variabel, quoting, loop, fungsi, pipe, dan set -euo pipefail
- 7 menit bacaPowerShellCmdlet, pipeline objek, variabel, fungsi, hashtable, dan try/catch
- 7 menit bacaLuaVariabel, table, fungsi, metatable, dan pcall di Lua dalam satu halaman
- 8 menit bacaPerlSkalar, array, hash, subroutine, regular expression, dan error di Perl
- 7 menit bacaHaskellFungsi murni, tipe, pattern matching, list, Maybe, dan IO di Haskell
- 7 menit bacaElixirPattern matching, pipe, Enum, proses, dan penanganan error {:ok, value}
- 7 menit bacaErlangPattern matching, rekursi, proses, OTP, dan penanganan error let-it-crash
- 6 menit bacaClojureSintaks, koleksi immutable, fungsi, macro, atom, dan error dalam satu halaman
- 6 menit bacaF#Tipe, record, union, pattern matching, pipeline, dan Result dalam satu halaman
- 6 menit bacaOCamlTipe, record, variant, pattern matching, modul, dan error dalam satu halaman
- 6 menit bacaJuliaTipe, array, broadcasting, fungsi, multiple dispatch, dan error dalam satu halaman
- 6 menit bacaZigTipe, slice, optional, error union, comptime, defer, dan allocator dalam satu halaman
- 6 menit bacaFortranSintaks modern, tipe, loop, prosedur, modul, array, dan iostat dalam satu halaman
- 6 menit bacaCOBOLDivision, data PIC, IF/EVALUATE, loop PERFORM, tabel, file, dan error
- 8 menit bacaAssembly (x86-64)Register, instruksi, loop, memori, syscall, pemanggilan fungsi x86-64 NASM, sintaks AT&T
- 7 menit bacaVisual Basic .NETSintaks VB.NET, tipe, loop, fungsi, koleksi, class, LINQ, dan VBA dalam satu halaman
- 6 menit bacaObjective-CMessage, class, property, koleksi Foundation, block, ARC, dan NSError dalam satu halaman
- 6 menit bacaMATLABMatriks, indeks, loop, fungsi, struct, cell, error, plot, dan Octave dalam satu halaman
Pola desain
- 7 menit bacaDesign patternApa itu design pattern, 23 pola GoF per kategori, dan cara memilihnya
- 6 menit bacaPrinsip SOLIDLima prinsip desain SOLID, masing-masing dengan contoh TypeScript sebelum dan sesudah
- 5 menit bacaPola SingletonSatu instance saja: contoh TypeScript, varian async, jebakan, dan alternatifnya
- 4 menit bacaPola Factory MethodBiarkan subclass memilih objek yang dibuat: contoh TypeScript dan kapan memakainya
- 4 menit bacaPola Abstract FactoryMembuat keluarga objek terkait tanpa menyebut class konkretnya
- 4 menit bacaPola BuilderMembangun objek kompleks langkah demi langkah dengan API fluent, plus peran Director
- 4 menit bacaPola PrototypeMembuat objek dengan mengkloning instance: clone() di TypeScript, deep vs shallow copy
- 4 menit bacaPola AdapterInterface tak kompatibel bisa bekerja sama: contoh TypeScript, object vs class adapter
- 4 menit bacaPola BridgeMemisahkan abstraksi dari implementasinya agar keduanya dapat berubah secara independen
- 4 menit bacaPola CompositeMemperlakukan objek tunggal dan pohon objek secara sama: contoh sistem file TypeScript
- 4 menit bacaPola DecoratorMenambah perilaku objek saat runtime dengan membungkusnya: decorator class dan fungsi
- 4 menit bacaPola FacadeBeri subsistem yang kompleks satu pintu masuk sederhana: contoh checkout TypeScript
- 5 menit bacaPola FlyweightBerbagi state intrinsik antar banyak objek demi hemat memori, dengan contoh TypeScript
- 5 menit bacaPola ProxyMengontrol akses ke objek dengan proxy cache, lazy, proteksi, dan remote
- 5 menit bacaPola Chain of ResponsibilityTeruskan permintaan lewat rangkaian handler sampai ada yang menangani, plus middleware
- 4 menit bacaPola CommandUbah permintaan menjadi objek untuk antrean, log, undo, dan redo di TypeScript
- 4 menit bacaPola InterpreterMemodelkan bahasa kecil sebagai class dan mengevaluasi pohon ekspresi di TypeScript
- 4 menit bacaPola IteratorMenelusuri koleksi tanpa membuka penyimpanannya, dengan Symbol.iterator dan generator
- 4 menit bacaPola MediatorMengoordinasikan komponen lewat satu objek pusat, bukan referensi langsung
- 5 menit bacaPola MementoMenyimpan dan memulihkan state objek tanpa membuka internalnya, untuk undo dan checkpoint
- 4 menit bacaPola ObserverMemberi tahu subscriber otomatis saat subjek berubah, dengan kode TypeScript bertipe
- 5 menit bacaPola StateMengubah perilaku objek sesuai state dengan class state, bukan switch
- 4 menit bacaPola StrategyMenukar algoritma saat runtime, memakai fungsi atau class di TypeScript
- 5 menit bacaPola Template MethodTetapkan langkah algoritma di base class dan biarkan subclass mengisi detailnya
- 5 menit bacaPola VisitorMenambah operasi pada hierarki class dengan double dispatch, plus alternatif union type
Struktur data
- 5 menit bacaLinked listLinked list tunggal dan ganda: insert, delete, reverse, deteksi siklus, dan kompleksitas
- 4 menit bacaStack dan queueStack LIFO dan queue FIFO di Python: list, deque, pencocokan kurung, BFS, dan kompleksitas
- 5 menit bacaHash tableFungsi hash, bucket, collision, load factor, dan resizing, dengan kode Python
- 5 menit bacaBinary search treeAturan urutan BST, search, insert, delete di Python, penyeimbangan, dan kompleksitas
- 5 menit bacaTraversal binary treePreorder, inorder, postorder, dan level order, kode Python rekursif dan iteratif
- 6 menit bacaBinary heapProperti heap, sift up/down, heapify, priority queue, dan heapq Python
- 5 menit bacaTrie (prefix tree)Prefix tree: insert, search, starts-with, dan autocomplete di Python, dengan kompleksitas
- 5 menit bacaUnion-find (disjoint set union)Disjoint set union: find, union, path compression, union by rank dan size di Python
- 5 menit bacaLRU cacheCache least recently used dengan hash map dan doubly linked list, OrderedDict, lru_cache
Algoritme
- 5 menit bacaNotasi Big OKompleksitas waktu dan ruang, kelas yang umum, dan cara membacanya dari kode
- 5 menit bacaRekursiBase case, call stack, memoization, dan batas rekursi di Python
- 5 menit bacaBinary searchCara binary search membagi dua rentang terurut, kode Python, bisect, varian, dan jebakan
- 5 menit bacaTwo pointers dan sliding windowPola dua ujung, cepat-lambat, dan sliding window dengan kode Python dan jejak langkah
- 4 menit bacaBubble sortCara bubble sort menukar tetangga, jejak per putaran, kode Python, dan kompleksitas
- 4 menit bacaSelection sortCara selection sort memilih nilai minimum, jejak, Python, dan stabilitas
- 5 menit bacaInsertion sortInsertion sort menggeser elemen ke tempatnya: jejak, Python, stabilitas, kasus terbaik
- 5 menit bacaMerge sortMerge sort divide and conquer: jejak, Python, langkah merge, stabilitas, dan kompleksitas
- 6 menit bacaQuicksortPivot, jejak partisi Lomuto, kode Python, kasus terburuk, stabilitas, dan quickselect
- 5 menit bacaHeapsortMax-heap, sift-down, jejak langkah demi langkah, kode Python, heapq, dan kompleksitas
- 5 menit bacaCounting sortCounting sort linear untuk kunci bilangan bulat kecil: jejak, Python stabil, kompleksitas
- 5 menit bacaRadix sortRadix sort LSD dan MSD: jejak digit demi digit, kode Python, stabilitas, dan kompleksitas
- 5 menit bacaBreadth-first search (BFS)BFS dengan queue: contoh berjejak, kode Python, jalur terpendek, dan biaya O(V + E)
- 5 menit bacaDepth-first search (DFS)DFS rekursif dan iteratif di Python, contoh berjejak, deteksi siklus, dan biaya O(V + E)
- 5 menit bacaAlgoritma DijkstraJalur terpendek dengan priority queue: contoh, kode Python heapq, dan kompleksitas
- 5 menit bacaAlgoritma Bellman-FordJalur terpendek dengan bobot negatif, deteksi siklus negatif, dan kode Python
- 5 menit bacaAlgoritma Floyd-WarshallJalur terpendek semua pasangan: contoh matriks, kode Python, rekonstruksi jalur, dan O(V³)
- 5 menit bacaPencarian A*Pencarian jalur heuristik dengan f = g + h: heuristik admissible, contoh grid, kode Python
- 5 menit bacaTopological sortMengurutkan tugas menurut dependensi: algoritma Kahn, DFS, graphlib, dan deteksi siklus
- 6 menit bacaMinimum spanning treeAlgoritma Kruskal dan Prim: contoh berjejak, kode Python, union-find, dan heap
- 7 menit bacaDynamic programmingMemoization vs tabulation, coin change dan LCS berjejak, kode Python, dan kompleksitas
- 5 menit bacaAlgoritma greedyPilihan lokal terbaik di tiap langkah: interval scheduling, kode Python, contoh tandingan
- 5 menit bacaBacktrackingPilih, jelajahi, batalkan: N-Queens berjejak, subset, permutasi, dan pruning di Python
- 5 menit bacaPencarian string KMPKnuth-Morris-Pratt: prefix function, pencarian berjejak, kode Python, dan biaya O(n + m)
- 6 menit bacaBit manipulationOperator bitwise, trik satu bit, penghitungan bit, dan bitmask dengan contoh Python
Tutorial bahasa dimulai dari memasang perangkat dan mencetak Hello, world, lalu fungsi, koleksi, penanganan galat, hingga satu program kecil yang lengkap. Halaman pola menjelaskan masalah yang diselesaikan tiap pola Gang of Four, dengan contoh TypeScript dan kapan sebaiknya tidak dipakai. Halaman struktur data dan algoritme menelusuri contoh langkah demi langkah, memberi kode Python, dan menyebutkan kompleksitas waktu dan ruang.
Contoh kode singkat dan bisa dijalankan apa adanya, dan setiap halaman menautkan dokumentasi bahasa, standar, atau sumber asli yang dipakai untuk memeriksanya.
FAQ
Bahasa pemrograman apa yang sebaiknya dipelajari pertama?
Bagi kebanyakan pemula, Python atau JavaScript: sintaksisnya sederhana, komunitasnya besar, dan berjalan di mana saja. Pilih JavaScript untuk situs web, Python untuk data, otomatisasi, dan pemrograman umum.
Apakah perlu memasang sesuatu untuk mengikuti tutorial?
Setiap tutorial bahasa diawali cara memasang perangkat resmi dan menjalankan program pertama. Halaman pola dan algoritme memakai TypeScript dan Python, yang bisa dijalankan di komputer atau di lingkungan daring mana pun.
Apakah tutorial ini gratis?
Ya. Semua tutorial gratis dibaca tanpa akun, dan contoh kodenya boleh dipakai ulang di proyek Anda.
Apa beda struktur data dan algoritme?
Struktur data adalah cara menyimpan data, seperti array, hash table, atau tree. Algoritme adalah urutan langkah untuk menyelesaikan masalah, seperti mengurutkan atau mencari jalur terpendek, dan kecepatannya sering bergantung pada struktur data yang dipakai.