Version 2 of 2

Pendahuluan

Generated Aksbel book section. · Working · Sep 23, 2026 10:05 · saved by @mujirin

Pendahuluan

Ada momen yang hampir selalu dialami orang ketika pertama kali belajar pemrograman: layar kosong, kursor berkedip, lalu muncul pertanyaan, “Saya harus mulai dari mana?”

Pertanyaan itu wajar. Pemrograman memang terlihat asing pada awalnya karena kita sedang belajar berbicara dengan mesin menggunakan bahasa yang sangat teliti. Komputer tidak memahami maksud samar seperti manusia. Jika kita berkata kepada teman, “Tolong rapikan daftar nilai ini,” teman kita bisa menebak maksudnya. Namun komputer perlu instruksi yang lebih tepat: data nilainya disimpan di mana, urutannya berdasarkan apa, nilai kosong harus diapakan, hasilnya ditampilkan dalam bentuk apa, dan seterusnya.

Di situlah pemrograman menjadi menarik. Pemrograman bukan sekadar menulis kode. Pemrograman adalah cara menyusun pikiran agar masalah yang kabur menjadi langkah-langkah yang jelas. Jeannette Wing menyebut cara berpikir seperti ini sebagai bagian dari computational thinking, yaitu kemampuan merumuskan masalah dan solusinya dalam bentuk yang dapat dijalankan oleh agen pemroses informasi, termasuk komputer (Wing, 2006). Dalam bahasa sehari-hari: kita belajar mengubah “keinginan” menjadi “prosedur”.

Buku ini ditulis untuk menemani Anda dari titik awal itu.

Anda tidak diasumsikan sudah bisa Java. Anda tidak harus hafal istilah teknis. Anda juga tidak perlu merasa “harus jago matematika dulu” sebelum mulai. Yang Anda perlukan adalah kesediaan untuk membaca pelan-pelan, mencoba contoh, membuat kesalahan, memperbaikinya, lalu mencoba lagi. Dalam pemrograman, kesalahan bukan tanda gagal. Kesalahan adalah bahan baku belajar.

Apa yang sebenarnya kita pelajari saat belajar Java?

Sebelum masuk ke bab-bab teknis, mari kita luruskan beberapa istilah dasar.

Program adalah kumpulan instruksi yang ditulis agar komputer melakukan suatu pekerjaan. Contohnya, program sederhana dapat meminta nama pengguna, lalu menampilkan sapaan:

System.out.println("Halo, Rani!");

Baris tersebut memerintahkan komputer untuk menampilkan teks Halo, Rani! ke layar.

Pemrograman adalah proses merancang, menulis, menjalankan, menguji, dan memperbaiki program. Jadi, pemrograman tidak berhenti pada “mengetik kode”. Jika program belum berjalan sesuai harapan, kegiatan membaca pesan galat, mencari penyebab, dan memperbaikinya juga termasuk pemrograman.

Kode sumber adalah teks program yang ditulis manusia. Dalam Java, kode sumber biasanya disimpan dalam berkas berekstensi .java, misalnya Halo.java.

Algoritma adalah urutan langkah yang terdefinisi dengan jelas untuk menyelesaikan masalah. Misalnya, algoritma menentukan bilangan terbesar dari tiga angka dapat ditulis seperti ini:

  1. Anggap angka pertama sebagai yang terbesar.
  2. Bandingkan dengan angka kedua.
  3. Jika angka kedua lebih besar, ganti nilai terbesar.
  4. Bandingkan dengan angka ketiga.
  5. Jika angka ketiga lebih besar, ganti nilai terbesar.
  6. Tampilkan nilai terbesar.

Nanti, algoritma seperti itu dapat diterjemahkan ke dalam kode Java. Tetapi sebelum menjadi kode, ia harus masuk akal dulu sebagai langkah berpikir.

Java adalah bahasa pemrograman sekaligus bagian dari sebuah platform. Sebagai bahasa, Java menyediakan aturan penulisan kode: bagaimana menulis class, method, variabel, percabangan, perulangan, dan sebagainya. Aturan resmi bahasa Java dijelaskan dalam The Java Language Specification (Oracle, 2023). Sebagai platform, Java juga menyediakan lingkungan untuk menjalankan program, pustaka standar, dan mesin virtual.

Istilah penting berikutnya adalah JVM, singkatan dari Java Virtual Machine. Secara sederhana, JVM adalah lingkungan eksekusi yang menjalankan program Java yang sudah dikompilasi. Kode Java tidak langsung dijalankan sebagai instruksi mesin komputer seperti yang dipahami prosesor. Biasanya, kode .java dikompilasi menjadi bytecode, yaitu bentuk instruksi perantara yang dapat dijalankan oleh JVM. Rancangan JVM dan format bytecode dijelaskan dalam The Java Virtual Machine Specification (Lindholm et al., 2023).

Gambaran besarnya seperti ini:

Kode sumber Java (.java)
        ↓ dikompilasi
Bytecode (.class)
        ↓ dijalankan oleh
JVM
        ↓
Program berjalan

Mengapa ini penting? Karena sejak awal Anda perlu memahami bahwa ketika program Java berjalan, ada beberapa lapisan yang bekerja bersama: kode yang Anda tulis, compiler yang menerjemahkannya, JVM yang menjalankannya, dan sistem operasi tempat JVM berada. Saat nanti muncul pesan galat, pemahaman lapisan ini membantu Anda membaca masalah dengan lebih tenang.

“Dari nol sampai bisa” artinya apa?

Judul buku ini adalah Java dari Nol sampai Bisa. Kata “bisa” di sini tidak berarti setelah membaca buku ini Anda langsung menjadi senior software engineer. Pemrograman adalah keahlian yang tumbuh melalui latihan panjang. Namun “bisa” berarti Anda mencapai fondasi yang cukup untuk:

  • menulis program Java sederhana dari awal;
  • memahami struktur kode Java;
  • memakai variabel, tipe data, percabangan, perulangan, array, dan method;
  • membuat class dan object;
  • memahami dasar pemrograman berorientasi objek;
  • menangani galat dengan exception;
  • memakai collections seperti ArrayList, HashMap, dan HashSet;
  • membaca dan menulis file;
  • melakukan debugging dan testing dasar;
  • membangun aplikasi konsol yang utuh;
  • mengenal jalur lanjutan seperti JavaFX, Web API, basis data, dan Spring Boot.

Dengan kata lain, buku ini tidak hanya mengejar “programnya jalan”. Kita akan belajar agar program dapat dipahami, diuji, dirawat, dan dikembangkan.

Ini penting karena dalam dunia nyata, kode lebih sering dibaca daripada ditulis. Anda mungkin menulis suatu bagian program selama satu jam, tetapi membacanya kembali berkali-kali ketika memperbaiki bug, menambah fitur, atau menjelaskan kepada teman satu tim. Joshua Bloch menekankan pentingnya rancangan kode dan API yang jelas, mudah digunakan, dan sulit disalahgunakan dalam praktik Java profesional (Bloch, 2018). Sejak awal, buku ini akan membiasakan Anda menulis kode yang tidak hanya benar, tetapi juga rapi dan masuk akal.

Mengapa Java cocok untuk belajar?

Java bukan satu-satunya bahasa pemrograman yang bagus untuk pemula. Python, JavaScript, C, C++, Kotlin, Go, dan bahasa lain juga memiliki kekuatan masing-masing. Namun Java memiliki beberapa keunggulan sebagai bahasa belajar, terutama untuk mahasiswa S1 yang ingin membangun fondasi pemrograman yang kuat.

Pertama, Java cukup eksplisit. Banyak hal harus ditulis dengan jelas: tipe data, nama class, nama method, dan struktur blok kode. Pada awalnya ini terasa agak panjang. Tetapi kejelasan itu membantu Anda melihat bentuk program secara teratur.

Bandingkan ide berikut:

Simpan umur seseorang.
Jika umurnya minimal 17, tampilkan "Boleh membuat KTP".
Jika belum, tampilkan "Belum cukup umur".

Dalam Java, ide itu dapat ditulis seperti ini:

int umur = 18;

if (umur >= 17) {
    System.out.println("Boleh membuat KTP");
} else {
    System.out.println("Belum cukup umur");
}

Kode tersebut memperlihatkan beberapa konsep sekaligus: variabel umur, tipe data int, kondisi umur >= 17, percabangan if, dan keluaran System.out.println. Pada bab-bab awal, semua bagian ini akan dibedah pelan-pelan.

Kedua, Java menggunakan static typing. Artinya, tipe data variabel diperiksa sebelum program berjalan. Jika Anda menyatakan sebuah variabel sebagai int, variabel itu dimaksudkan untuk menyimpan bilangan bulat. Contoh:

int jumlahMahasiswa = 35;

Jika kemudian Anda mencoba menyimpan teks ke dalam variabel tersebut, compiler akan menolak:

jumlahMahasiswa = "tiga puluh lima"; // ini salah

Pada awalnya, pemeriksaan seperti ini mungkin terasa cerewet. Namun ia membantu menangkap banyak kesalahan lebih awal. Compiler seolah berkata, “Tunggu, ini tidak sesuai aturan.” Bagi pemula, teguran semacam ini adalah guru yang berguna.

Ketiga, Java mendukung pemrograman berorientasi objek. Dalam pendekatan ini, program disusun menggunakan object yang memiliki data dan perilaku. Misalnya, kita dapat memodelkan Mahasiswa sebagai object yang memiliki nama, NIM, dan daftar nilai. Kita juga dapat membuat method seperti hitungRataRata() untuk menghitung rata-rata nilai mahasiswa tersebut.

Contoh awalnya kira-kira seperti ini:

class Mahasiswa {
    String nama;
    String nim;

    void perkenalkanDiri() {
        System.out.println("Halo, saya " + nama + " dengan NIM " + nim);
    }
}

Anda belum perlu memahami semua detail kode itu sekarang. Yang penting, Anda mulai melihat bahwa Java membantu kita memodelkan konsep: mahasiswa, rekening, produk, pesanan, tugas, buku, kendaraan, dan banyak hal lain.

Keempat, Java memiliki ekosistem yang besar. Banyak pustaka, alat bantu, framework, dan dokumentasi tersedia. Tetapi buku ini tidak akan langsung melempar Anda ke tumpukan teknologi. Kita akan mulai dari fondasi: berpikir sebagai programmer, memahami struktur kode, lalu bergerak bertahap.

Cara belajar yang akan kita pakai

Buku ini menggunakan pendekatan bertahap. Setiap bab dibangun dari konsep yang sudah diperkenalkan sebelumnya. Anda akan sering melihat pola seperti ini: ide sederhana, contoh kecil, penjelasan, latihan, lalu penerapan yang sedikit lebih nyata.

Misalnya, saat belajar perulangan, kita tidak langsung membuat aplikasi besar. Kita mulai dari mencetak angka:

for (int i = 1; i <= 5; i++) {
    System.out.println(i);
}

Lalu kita bertanya:

  • Apa arti int i = 1?
  • Mengapa kondisinya i <= 5?
  • Apa yang dilakukan i++?
  • Mengapa hasilnya 1 sampai 5?

Setelah itu, baru konsep yang sama dipakai untuk menghitung total belanja, mencari nilai terbesar, menelusuri array, atau membaca daftar tugas.

Allen Downey dan Chris Mayfield dalam Think Java juga menekankan bahwa belajar pemrograman bukan hanya mempelajari sintaks, melainkan belajar berpikir secara bertahap melalui contoh, eksperimen, dan pemecahan masalah (Downey & Mayfield, 2020). Buku ini mengikuti semangat yang sama: Anda tidak diminta menghafal semua hal sekaligus. Anda diajak membangun pemahaman.

Ada tiga kebiasaan belajar yang sangat disarankan.

Pertama, ketik ulang kode penting, jangan hanya membaca. Saat mengetik, Anda akan memperhatikan tanda kurung, titik koma, huruf besar-kecil, dan struktur blok. Java membedakan huruf besar dan kecil, sehingga Main, main, dan MAIN adalah nama yang berbeda. Detail kecil seperti ini sering menjadi sumber galat bagi pemula.

Kedua, ubah contoh sedikit demi sedikit. Jika contoh menampilkan nama, ubah menjadi umur. Jika contoh menghitung luas persegi panjang, ubah menjadi luas segitiga. Perubahan kecil membuat Anda aktif berpikir.

Misalnya, dari:

int panjang = 10;
int lebar = 5;
int luas = panjang * lebar;

System.out.println(luas);

Coba ubah menjadi:

int alas = 10;
int tinggi = 6;
double luas = 0.5 * alas * tinggi;

System.out.println(luas);

Perubahan ini membawa pertanyaan baru: mengapa luas memakai double, bukan int? Pertanyaan seperti itulah yang membuat belajar menjadi hidup.

Ketiga, baca pesan galat, bukan menghindarinya. Pesan galat memang sering terlihat menakutkan. Tetapi sebagian besar pesan galat memberi petunjuk: baris mana yang bermasalah, jenis masalahnya apa, dan kadang apa yang diharapkan compiler. Nanti kita akan belajar membaca pesan galat dengan lebih sistematis.

Kesalahan adalah bagian dari proses

Jika Anda menulis kode seperti ini:

System.out.println("Halo dunia")

lalu compiler menampilkan galat, penyebabnya sederhana: kurang titik koma di akhir statement.

Versi yang benar:

System.out.println("Halo dunia");

Kesalahan seperti ini bukan bukti bahwa Anda tidak berbakat. Itu hanya tanda bahwa Java memiliki aturan sintaks. Sintaks adalah aturan bentuk penulisan program, seperti tata bahasa dalam bahasa manusia. Dalam bahasa Indonesia, kalimat “Saya makan nasi” terasa wajar, sedangkan “Makan saya nasi” terdengar janggal dalam konteks biasa. Dalam Java, titik koma, kurung kurawal, tanda kutip, dan susunan kata kunci juga memiliki aturan.

Selain sintaks, ada juga logika program. Program bisa saja tidak memiliki galat sintaks, tetapi hasilnya salah.

Contoh:

int panjang = 10;
int lebar = 5;
int keliling = panjang * lebar;

System.out.println(keliling);

Program itu dapat dikompilasi, tetapi rumus keliling persegi panjang salah. Seharusnya:

int keliling = 2 * (panjang + lebar);

Inilah perbedaan penting: ada galat yang membuat program tidak dapat dijalankan, ada juga galat yang membuat program berjalan tetapi menghasilkan jawaban yang keliru. Programmer yang baik belajar menghadapi keduanya.

Gambaran perjalanan buku

Perjalanan kita dimulai dari cara berpikir. Bab 1 tidak langsung memaksa Anda menulis banyak kode karena fondasi pemrograman terletak pada kemampuan memecah masalah. Kita akan belajar tentang input, proses, output, algoritma, dan cara membaca galat.

Setelah itu, Bab 2 membantu Anda menyiapkan lingkungan Java: JDK, IDE, compiler, JVM, dan cara menjalankan program pertama. Bab 3 sampai Bab 9 membangun dasar-dasar utama: struktur kode, variabel, tipe data, input-output, percabangan, perulangan, array, dan method.

Mulai Bab 10, kita masuk ke pemrograman berorientasi objek. Anda akan belajar class, object, field, method, constructor, enkapsulasi, pewarisan, polimorfisme, interface, dan abstract class. Bagian ini penting karena Java sangat erat dengan desain berbasis object.

Bab-bab berikutnya membawa Anda ke kemampuan yang lebih praktis: exception handling, collections, pemrosesan String, date-time, file, debugging, testing, lambda expression, Stream API, JDBC, JavaFX, dan dasar Web API. Pada akhir buku, Anda diarahkan membuat proyek akhir dan melihat peta jalan lanjutan.

Tujuan akhirnya bukan agar Anda menghafal semua class dalam pustaka Java. Itu tidak realistis dan tidak perlu. Programmer profesional pun sering membaca dokumentasi. Yang lebih penting adalah Anda memahami konsep, tahu cara mencari informasi, mampu membaca kode, mampu menulis solusi, dan mampu memperbaiki program ketika ada masalah.

Sebelum mulai

Jika suatu saat Anda merasa lambat, ingatlah: lambat bukan masalah. Yang berbahaya adalah terburu-buru merasa paham padahal belum mencoba. Pemrograman dipelajari dengan kombinasi membaca, menulis, menjalankan, mengamati hasil, dan memperbaiki.

Anda boleh bingung. Anda boleh salah ketik. Anda boleh lupa titik koma. Anda boleh menulis program yang awalnya berantakan. Semua itu bagian dari proses.

Yang penting, setiap kali bertemu masalah, biasakan bertanya:

  • Apa input program ini?
  • Proses apa yang harus terjadi?
  • Output apa yang diharapkan?
  • Bagian mana dari kode yang bertanggung jawab?
  • Apa pesan galatnya?
  • Jika hasilnya salah, contoh data apa yang bisa membuktikannya?

Pertanyaan-pertanyaan sederhana ini akan menemani Anda dari program pertama sampai proyek yang lebih besar.

Mari mulai dari fondasi paling penting: cara berpikir seperti programmer.

References

Bloch, J. (2018). Effective Java (3rd ed.). Addison-Wesley.

Downey, A. B., & Mayfield, C. (2020). Think Java: How to Think Like a Computer Scientist (2nd ed.). Green Tea Press. https://greenteapress.com/wp/think-java-2e/

Lindholm, T., Yellin, F., Bracha, G., Buckley, A., & Smith, D. (2023). The Java Virtual Machine Specification, Java SE 21 Edition. Oracle. https://docs.oracle.com/javase/specs/jvms/se21/html/

Oracle. (2023). The Java Language Specification, Java SE 21 Edition. Oracle. https://docs.oracle.com/javase/specs/jls/se21/html/

Wing, J. M. (2006). Computational thinking. Communications of the ACM, 49(3), 33–35. https://doi.org/10.1145/1118178.1118215

τ TheoryTrace