Latihan DSA berjalan mulus bila lingkungannya siap sejak hari pertama. Topik ini menyiapkan pasangan editor dan terminal, memeriksa versi Python dan Java lewat perintah nyata, menjalankan berkas .py dan .java dari terminal, serta membentuk kebiasaan menguji kasus kecil secara teratur. Penjelasan ditutup dengan pengenalan judge daring seperti LeetCode dan peta jalan NeetCode sebagai tempat latihan soal. Semua contoh dijalankan pada Python 3.12 dan OpenJDK 21, sedangkan mesin sendiri cukup memakai Python 3.10 atau lebih baru dengan JDK 21.
Alur kerja editor dan terminal#
Seluruh latihan pada jalur ini berjalan pada pasangan editor dan terminal. Editor menuliskan kode ke dalam berkas, sedangkan terminal menjalankan berkas tersebut dan menampilkan keluarannya. Alurnya berputar dalam lima langkah berikut.
- Buka berkas kode pada editor.
- Sunting kodenya, lalu simpan.
- Ketik perintah pengeksekusi pada terminal.
- Baca keluaran atau pesan error yang muncul.
- Kembali ke editor dan perbaiki.
Siklus ini terasa sederhana, tetapi disiplinnya yang membentuk kebiasaan baik. Perubahan kode selalu diuji lewat eksekusi nyata, bukan hanya dibaca dalam hati. Pesan error diperlakukan sebagai umpan balik yang menyebut lokasi kesalahannya, bukan sebagai tanda kegagalan. Semakin sering siklus diputar, semakin kecil pula setiap perbaikan yang dikerjakannya.
Editor apa pun yang terpasang dapat dipakai, mulai dari VS Code sampai editor teks polos seperti nano. Yang menentukan hanya dua hal, yaitu berkas tersimpan dengan ekstensi yang benar dan terminal dibuka pada folder yang sama dengan berkas tersebut. Kedua syarat itulah yang membuat perintah pengeksekusi menemukan berkasnya tanpa perlu mengetik alamat lengkap.
Memeriksa versi#
Pemeriksaan versi menjadi langkah pertama karena hampir semua kesulitan awal berakar pada perbedaan versi. Opsi --version menyuruh program mencetak identitasnya lalu berhenti. Periksa Python terlebih dahulu dengan perintah berikut.
python3 --versionPython 3.12.16Python pada lingkungan tempat jalur ini diuji adalah versi 3.12.16, sedangkan mesin sendiri cukup berada di versi 3.10 atau lebih baru. Beda angka di belakang koma tidak berpengaruh pada materi jalur ini. Lanjutkan ke Java dengan pola yang sama.
java --versionopenjdk 21.0.13 2026-10-20
OpenJDK Runtime Environment (build 21.0.13+9-1-deb13u2-Debian)
OpenJDK 64-Bit Server VM (build 21.0.13+9-1-deb13u2-Debian, mixed mode, sharing)Bila perintah tidak dikenali, terminal menampilkan pesan semacam command not found, yang berarti programnya belum terpasang atau belum masuk ke PATH, yakni daftar folder yang dicari sistem untuk menemukan perintah. Python dapat dipasang dari situs resminya atau melalui manajer paket sistem operasi, sedangkan JDK tersedia dari beberapa penerbit seperti Eclipse Temurin. Setelah pemasangan selesai, buka ulang terminal dan ulangi kedua perintah pemeriksaannya.
Menjalankan berkas dari terminal#
Menjalankan berkas dari terminal adalah keterampilan inti latihan ini. Program pertama dibuat dalam dua bahasa sekaligus untuk membiasakan kedua perintah eksekusinya. Versi Python-nya hanya berisi dua baris.
print("Halo, dunia!")
print("Python siap dipakai untuk latihan DSA.")Halo, dunia!
Python siap dipakai untuk latihan DSA.Berkas Java-nya menyimpan kelas publik bernama SapaDunia, sama persis dengan nama berkasnya, sesuai kaidah Java. Sejak JDK 11, perintah java NamaBerkas.java mengompilasi dan menjalankan satu berkas sumber dalam satu langkah, sehingga pemanggilan javac terpisah belum diperlukan pada latihan awal.
public class SapaDunia {
public static void main(String[] args) {
System.out.println("Halo, dunia!");
System.out.println("Java siap dipakai untuk latihan DSA.");
}
}Halo, dunia!
Java siap dipakai untuk latihan DSA.Kedua perintah berikut dijalankan dari folder tempat kedua berkas tersimpan. Urutannya bebas, dan keduanya dapat diulang kapan saja setelah kode disunting. Keluarannya juga sama persis dengan dua blok sebelumnya, karena perintahnya memang sama.
# menjalankan program Python dari terminal
python3 SapaDunia.py
# menjalankan program Java dari terminal
java SapaDunia.javaHalo, dunia!
Python siap dipakai untuk latihan DSA.
Halo, dunia!
Java siap dipakai untuk latihan DSA.Bila perintah dijalankan dari folder yang salah, terminal menampilkan pesan berkas tidak ditemukan. Perbaikannya sederhana, yaitu berpindah ke folder yang tepat dengan cd atau menuliskan alamat berkasnya secara lengkap. Pesan error semacam ini adalah bagian normal dari alur kerja, dan terbiasa membacanya mempercepat perbaikan.
Menguji kasus kecil secara teratur#
Kasus kecil adalah alat pemeriksaan paling murah sebelum kode dihadapkan pada masukan besar. Pola yang dipakai sepanjang jalur ini mudah dicontoh, yaitu menyimpan daftar kasus uji bersama fungsinya, lengkap dengan keluaran yang diharapkan. Program berikut menguji fungsi penjumlahan array dengan empat kasus, termasuk kasus khusus berupa daftar kosong dan daftar berisi satu elemen.
def jumlah_daftar(angka):
total = 0
for a in angka:
total += a
return total
kasus_uji = [
([3, 1, 4, 1, 5], 14),
([], 0),
([10], 10),
([2, 2, 2, 2], 8),
]
for masukan, harapan in kasus_uji:
hasil = jumlah_daftar(masukan)
status = "cocok" if hasil == harapan else "TIDAK cocok"
print(f"jumlah_daftar({masukan}) = {hasil} ({status})")jumlah_daftar([3, 1, 4, 1, 5]) = 14 (cocok)
jumlah_daftar([]) = 0 (cocok)
jumlah_daftar([10]) = 10 (cocok)
jumlah_daftar([2, 2, 2, 2]) = 8 (cocok)Setiap baris keluaran membandingkan hasil fungsi dengan nilai harapannya, sehingga ketidakcocokan langsung terlihat. Kasus khusus sengaja dimasukkan karena di sanalah kebanyakan bug bersembunyi, misalnya daftar kosong yang membuat variabel total tetap bernilai nol. Saat kode disunting, seluruh daftar kasus dijalankan ulang, sehingga perbaikan pada satu kasus tidak diam-diam merusak kasus lain. Kebiasaan ini berbiaya rendah, tetapi menahan sebagian besar error sebelum kode sampai ke tahap submit.
Pola yang sama diterapkan pada Java lewat beberapa pemanggilan fungsi di dalam main. Bentuk penulisannya boleh berbeda, tetapi prinsipnya sama, yaitu keluaran yang diharapkan ditetapkan lebih dahulu, lalu kode dijalankan untuk mengeceknya. Kasus yang dipilih juga sebaiknya mewakili batasan soal, misalnya daftar terpanjang yang diizinkan, agar pengujian lokal mendekati kondisi penilaian yang sebenarnya.
Mengenal judge daring#
Judge daring adalah situs yang menilai kode secara otomatis. LeetCode merupakan judge yang lazim dipakai untuk latihan wawancara, dan seluruh soal yang dirujuk pada jalur ini berasal dari bank soalnya. NeetCode melengkapinya dengan roadmap, yakni peta jalan yang menyusun soal-soal LeetCode menurut pola dan tingkat kesulitan, sehingga urutan latihan sudah tersedia. Keduanya dapat dipakai gratis pada tingkat dasar.
Setiap halaman soal terdiri atas tiga bagian yang perlu dibaca berurutan. Pernyataan soal menjelaskan situasi, masukan yang diberikan, dan keluaran yang diminta. Tab kasus uji menampilkan pasangan masukan dan keluaran nyata, sedangkan bagian batasan (constraints) menyatakan ukuran masukan maksimal. Ukuran pada batasan itu petunjuk penting, karena masukan hingga 10.000 elemen menuntut strategi yang berbeda daripada masukan hingga satu miliar elemen.
Editor pada halaman soal menerima kode yang langsung diuji. Tombol Run mengeksekusi kode pada kasus uji yang terlihat, sedangkan tombol Submit menghadapkan kode pada kasus uji tersembunyi yang jauh lebih banyak. Judge membandingkan keluaran secara persis, termasuk urutan baris dan spasinya, sehingga keluaran yang sedikit berbeda bentuk pun dinilai salah. Menguji kasus kecil secara lokal sebelum submit memangkas jumlah percobaan gagal, karena kebanyakan kesalahan sederhana tertangkap lebih dahulu.
Soal untuk dipraktikkan#
Empat soal berikut mendampingi jalur ini berulang kali dalam berbagai bentuk, tetapi tugas sekarang bukan menyelesaikannya. Buka masing-masing soal, baca pernyataannya, dan amati tab kasus ujinya dengan tenang. Pemanasan ini membiasakan mata pada format masukan dan keluaran sebelum kode pertama ditulis.
- Two sum : amati bagaimana masukan berupa array beserta nilai target dan keluarannya berupa dua indeks.
- Valid anagram : perhatikan bahwa kedua masukan berupa string, sedangkan keluarannya hanya satu nilai benar atau salah.
- Climbing stairs : baca batasan nilai yang diberikan, karena batasan semacam ini sering menjadi petunjuk strategi penyelesaian.
- Reverse linked list : amati bentuk masukan berupa linked list yang digambarkan lewat contoh pada pernyataan soal.
Ringkasan#
- Lingkungan latihan berdiri di atas pasangan editor dan terminal, dengan siklus sunting, simpan, jalankan, baca keluaran, lalu perbaiki.
- Perintah
python3 --versiondanjava --versionmemeriksa kesiapan kedua bahasa, dengan target Python 3.10 atau lebih baru dan JDK 21 atau lebih baru. - Berkas
.pydijalankan lewatpython3 nama.py, sedangkan berkas.javadijalankan lewatjava Nama.javasejak JDK 11. - Daftar kasus uji kecil yang disimpan bersama fungsinya menangkap error sebelum kode dikirim ke judge daring.
Referensi#
- The Python Tutorial — Python documentation — Tutorial resmi Python, termasuk pemakaian interpreter dari terminal.
- Getting Started — The Java Tutorials — Trail resmi untuk menyusun dan menjalankan program Java pertama.
- LeetCode problemset — LeetCode — Bank soal dengan editor daring dan kasus uji yang diperiksa otomatis.
- NeetCode Roadmap — NeetCode — Urutan latihan soal LeetCode yang dikelompokkan menurut pola.