Buzzword List DSA

Common terms and concepts in data structures and algorithms.

7 min read |1,290 words
April 3, 2026

Buzzword List DSA: Istilah yang Sering Muncul di Problem Statement

Banyak orang stuck di soal DSA bukan karena algoritmanya susah, tapi karena salah baca instruksi. Satu kata kayak "subsequence" vs "subarray" atau "strictly increasing" vs "non-decreasing" bisa bikin solusi yang technically benar jadi salah jawaban.

Berikut word list yang sering muncul di problem statement, dikelompokkan per kategori biar gampang dicari pas lagi practice.

1. Bagian dari data (array, string, sequence)

WordingArtiPenjelasan
ArrayArrayList of elements yang diakses by index
SubarraySub-arrayBagian array yang kontigu. Dari [1,2,3,4,5], [2,3,4] valid; [1,3,5] BUKAN subarray
SubstringSubstringSama kayak subarray tapi untuk string. "bcd" substring dari "abcde", "ace" enggak
SubsequenceSubsequenceElement yang muncul dengan urutan sama tapi nggak harus kontigu. Dari [1,2,3,4,5], [1,3,5] valid subsequence
ContiguousBerdekatan tanpa skipSinonim dengan subarray/substring — element-elementnya berdampingan
Non-contiguousBoleh skipElement bisa diambil dengan melompat-lompat
AdjacentBersebelahan langsungIndex i dan i+1, atau cell yang berbagi sisi di grid
ConsecutiveBerurutan secara nilai/posisi"Three consecutive integers" = 3 angka berurutan kayak 7,8,9
PrefixAwalanDari awal array sampai index tertentu
SuffixAkhiranDari index tertentu sampai akhir array
Range / IntervalRentang [l, r]Bagian array dari index l sampai r
WindowJendela geserSubarray ukuran tertentu yang "geser" sepanjang array (sliding window)

2. Sifat angka & urutan

WordingArtiPenjelasan
DistinctBerbeda satu sama lainSemua nilai unik. [1,2,3] distinct, [1,2,2] enggak
UniqueUnikSama dengan distinct, sering dipakai bergantian
DuplicateDuplikat / kembarElement yang muncul lebih dari sekali
SortedSudah terurutDefault ascending kalau nggak disebut
AscendingNaikDari kecil ke besar
DescendingTurunDari besar ke kecil
Non-decreasingNggak turunBoleh sama atau naik. [1,2,2,3] non-decreasing tapi BUKAN strictly increasing
Non-increasingNggak naikBoleh sama atau turun
Strictly increasingNaik tegasSelalu naik, nggak boleh ada yang sama
Strictly decreasingTurun tegasSelalu turun
MonotonicMonotonSalah satu dari naik atau turun konsisten
Non-negativeNggak negatif≥ 0 (termasuk 0)
PositivePositif> 0 (TIDAK termasuk 0) — hati-hati di sini
Even / OddGenap / GanjilEven bisa dibagi 2
PairPasanganDua element. Cek soalnya: (i,j) dan (j,i) dihitung sama atau beda?

3. Kuantifier & batasan

WordingArtiPenjelasan
At mostMaksimal (≤)"At most k operations" = nggak lebih dari k
At leastMinimal (≥)"At least k" = paling sedikit k
ExactlyTepatTepat segini, nggak lebih nggak kurang
Up toSampai denganSama dengan "at most"
No more thanTidak lebih dariSama dengan "at most"
At least onceMinimal sekaliBoleh berkali-kali, asal nggak nol
In any orderUrutan bebasOutput urutan terserah, asal isinya benar
Lexicographically smallestTerkecil secara lexicographicDiurutkan kayak kamus. "abc" < "abd" < "b"
0-indexedIndex mulai dari 0Default LeetCode
1-indexedIndex mulai dari 1Sering muncul di soal yang bilang "the i-th element"
InclusiveTermasuk[l, r] inclusive = both l dan r masuk
ExclusiveTidak termasuk[l, r) = l masuk, r enggak

4. Operasi & instruksi

WordingArtiPenjelasan
In-placeUbah langsung di tempatModify input array directly, jangan bikin array baru. Biasanya sekalian minta O(1) extra space
ReturnKembalikanPakai keyword return. JANGAN print ke stdout
ModifyUbahUbah nilai/struktur langsung
SwapTukarTukar dua element
Rearrange / ReorderSusun ulangUbah urutan element
ReverseBalikUrutan dari belakang ke depan
RotatePutarGeser element, yang keluar dari satu ujung masuk lagi di ujung lain
AppendTambahkan di belakangPush ke akhir
InsertSisipkanMasukkan di posisi tertentu
Remove / DeleteHapusBuang element dari struktur
TraverseLewati / kunjungiDatangi tiap element/node satu per satu
PartitionPisahkan jadi bagianBagi data jadi beberapa bagian dengan kriteria
MergeGabungkanSatukan dua struktur jadi satu
Encode / DecodeEnkode / DekodeUbah ke representasi lain dan baliknya

5. Frasa standar yang sering muncul

WordingArtiPenjelasan
You may assume that...Kamu boleh anggap bahwa...Asumsi yang nggak perlu kamu validasi. Hemat code
It is guaranteed that...Dijamin bahwa...Sama kayak "you may assume"
Such thatSedemikian rupa sehinggaPenghubung kondisi. "Find x such that f(x) = 0" = cari x yang bikin f(x) = 0
If no such X existsJika X yang dimaksud nggak adaBiasanya diikuti instruksi return -1 atau empty
Return any valid XKembalikan X mana saja yang validBoleh ada banyak jawaban, satu aja cukup
Return all possible XKembalikan semua X yang mungkinHarus enumerate semua kemungkinan
Without using XTanpa menggunakan XConstraint operasi. Misal "without using division"
Note thatPerhatikan bahwaDetail penting yang gampang ke-skip — selalu baca
Follow-upPertanyaan lanjutanVariasi soal yang minta optimasi lebih
ConstraintsBatasanSection paling penting — nentuin kompleksitas yang harus kamu target
Modulo 10⁹ + 7Modulo 10⁹ + 7Karena hasilnya bisa kebesaran, return answer % (10**9 + 7). Ciri khas problem DP/kombinatorik
ValidSah / memenuhi syarat"Valid parentheses" = parentheses-nya tertutup dengan benar

6. Tree & graph

WordingArtiPenjelasan
NodeSimpulUnit data dalam tree/graph
EdgeSisi penghubungPenghubung antara dua node
Vertex / VerticesTitik (jamak: vertices)Nama lain dari node, biasanya untuk graph
RootAkarNode paling atas dalam tree
LeafDaunNode yang nggak punya child
Parent / ChildInduk / AnakHubungan langsung antar node
AncestorLeluhurNode mana saja di atas dalam jalur ke root
DescendantKeturunanNode mana saja di bawah
SiblingSaudaraNode yang punya parent sama
DepthKedalamanJarak dari root ke node tersebut
HeightTinggiJarak dari node ke leaf terjauh
SubtreeSub-treeTree kecil yang root-nya adalah suatu node
BSTBinary Search TreeTree dengan property: kiri < root < kanan
Preorder / Inorder / PostorderUrutan traversal treeRoot-Left-Right / Left-Root-Right / Left-Right-Root
Level-order / BFSPer levelTraversal level demi level pakai queue
ConnectedTerhubungAntar node bisa dijangkau lewat edge
CycleSiklusPath yang balik ke node awalnya
Directed / UndirectedBerarah / Tak berarahEdge punya arah atau dua arah
WeightedBerbobotTiap edge punya nilai (cost/distance)
PathJalurUrutan node yang dilewati lewat edge
NeighborTetanggaNode yang langsung terhubung lewat satu edge

7. Grid & matrix

WordingArtiPenjelasan
Matrix / GridMatriks / Grid2D array. m × n artinya m baris, n kolom
Row / ColumnBaris / Kolommatrix[row][col] — row dulu, baru column
CellSelSatu posisi di grid, alamatnya (row, col)
4-directional4 arahAtas/bawah/kiri/kanan saja, nggak diagonal
8-directional8 arahTermasuk diagonal
Boundary / BorderTepi gridCell yang ada di pinggir matrix
Out of boundsDi luar batasIndex yang nggak valid (negatif atau ≥ ukuran)

8. Kompleksitas

WordingArtiPenjelasan
Time complexityKompleksitas waktuBerapa cepat algoritma terhadap ukuran input
Space complexityKompleksitas ruangBerapa banyak memory yang dipakai
Auxiliary spaceMemory tambahanMemory di luar input. "O(1) auxiliary space" = nggak boleh array baru ukuran n
LinearLinearO(n)
LogarithmicLogaritmikO(log n)
ConstantKonstanO(1)
QuadraticKuadratikO(n²)
ExponentialEksponensialO(2ⁿ) atau lebih

Tiga distinction yang paling sering bikin ke-trap

Subarray vs subsequence. Paling fatal kalau salah baca. Subarray harus kontigu, subsequence boleh skip. Kalau soalnya bilang "longest increasing subsequence" terus kamu kerjain dengan asumsi kontigu, jawaban kamu salah.

Strictly increasing vs non-decreasing. Soal kayak "Longest Increasing Subsequence" di LeetCode pakai strictly increasing (nggak boleh sama), sementara variant lain pakai non-decreasing (boleh sama). Ini kadang nentuin algoritma yang berbeda.

At most k vs exactly k. Ini sering muncul di soal sliding window. "At most k distinct characters" lebih gampang dari "exactly k distinct characters" — pendekatan teknisnya beda.


Penutup

Saran praktisnya: tiap kali buka soal baru, scan keyword di problem statement dan match ke list ini. Lama-lama kamu hapal sendiri, dan kecepatan baca soal naik drastis — yang langsung berdampak ke jumlah problem yang bisa kamu solve per sesi practice.