BAB 1: Tentang Pemrograman
Apa itu pemrograman, mengapa bahasa penting, dan bagaimana komputer menjalankan instruksi.
Bayangkan kamu sedang mengajari seseorang membuat nasi goreng melalui pesan teks. Kamu tidak bisa sekadar bilang "buat nasi gorengnya" -- kamu harus menulis langkah demi langkah: panaskan wajan, tuang minyak, masukkan bawang, aduk sampai harum. Setiap instruksi harus spesifik dan berurutan, karena orang di sana akan mengikutinya persis seperti yang kamu tulis.
Pemrograman bekerja dengan cara yang sama. Komputer tidak bisa menebak maksudmu -- ia hanya menjalankan instruksi yang kamu berikan, satu per satu, sesuai urutan yang kamu tentukan. Perbedaannya: komputer jauh lebih literal dari manusia. Kalau kamu lupa satu langkah kecil, komputer tidak akan berimprovisasi -- ia akan berhenti atau menghasilkan sesuatu yang tidak kamu harapkan.
Apa Itu Pemrograman
Pemrograman adalah proses menyusun sekumpulan instruksi yang memberitahu komputer apa yang harus dilakukan. Instruksi-instruksi ini ditulis dalam bahasa yang terstruktur dan memiliki aturan ketat -- disebut bahasa pemrograman.
Sebelum instruksi itu bisa dijalankan komputer, ada satu masalah mendasar yang perlu dipahami: prosesor di dalam komputer hanya memahami satu "bahasa" -- rangkaian angka 0 dan 1, atau yang sering disebut machine code. Tidak ada manusia normal yang menulis program dalam bentuk 10110000 01100001 -- itu tidak praktis dan hampir mustahil dibaca.
Di sinilah bahasa pemrograman berperan. Bahasa seperti JavaScript, Python, atau C++ memungkinkan kamu menulis instruksi dalam bentuk yang bisa dipahami manusia, lalu secara otomatis diterjemahkan ke machine code yang bisa dieksekusi prosesor. Terjemahan ini dilakukan oleh program khusus yang disebut compiler atau interpreter.
Dari Machine Code ke Bahasa Manusia
Pada awal era komputer, programmer memang menulis langsung dalam bentuk angka biner atau assembly -- sekumpulan singkatan seperti MOV AX, 1 yang merepresentasikan instruksi mesin. Ini sangat menyiksa.
Terobosan besar datang di tahun 1950-an ketika John Backus dari IBM menciptakan Fortran -- bahasa pemrograman tingkat tinggi pertama yang terbukti bisa diterjemahkan ke machine code secara otomatis. Sejak saat itu, abstraksi menjadi prinsip utama dalam desain bahasa pemrograman: sembunyikan kompleksitas mesin, biarkan programmer fokus pada logika dan masalah yang ingin dipecahkan.
Konsep ini terus berkembang. Hari ini kita punya ratusan bahasa pemrograman, masing-masing dirancang dengan trade-off berbeda: ada yang mengutamakan performa (C++, Rust), ada yang mengutamakan kemudahan (Python, Ruby), ada yang dirancang khusus untuk web (JavaScript, TypeScript).
Bagaimana Program Dieksekusi
Ada dua pendekatan utama dalam menerjemahkan kode yang kamu tulis ke instruksi yang bisa dijalankan komputer.
Compilation bekerja seperti menerjemahkan buku -- seluruh teks diterjemahkan lebih dulu sebelum siapapun membacanya. Kamu menulis kode, menjalankan compiler, dan hasilnya adalah file binary yang sudah siap dieksekusi. Inilah cara kerja C++ dan Rust: program dikompilasi dulu, baru dijalankan.
Interpretation bekerja seperti penerjemah simultan -- teks dibaca dan diterjemahkan sekaligus, baris per baris, pada saat dibacakan. Tidak ada file binary yang dihasilkan di muka; interpreter membaca kode sumbermu dan langsung mengeksekusinya.
JavaScript secara tradisional masuk kategori interpreted. Tapi JavaScript engine modern -- seperti V8 yang digunakan Chrome dan Node.js -- menggunakan teknik yang disebut JIT (Just-in-Time) compilation: kode dikompilasi ke format biner yang dioptimasi, tapi proses itu terjadi saat runtime, bukan sebelumnya. Hasilnya, JavaScript modern bisa sangat cepat meski tetap mempertahankan fleksibilitas bahasa interpreted.
Kode JavaScript yang kamu tulis
|
v
JavaScript Engine (V8)
|
v
JIT Compilation (saat runtime)
|
v
Instruksi mesin yang dieksekusi prosesor
JavaScript dalam Ekosistem Web
Sebelum kita masuk lebih dalam, ada satu kesalahpahaman umum yang perlu diluruskan: JavaScript dan Java adalah dua bahasa yang sama sekali berbeda. Nama yang mirip itu hasil keputusan pemasaran di tahun 1990-an -- secara teknis, keduanya tidak berkaitan.
JavaScript adalah satu dari tiga pilar teknologi web yang bekerja bersama:
- HTML -- mendefinisikan struktur konten: heading, paragraf, gambar, tautan
- CSS -- mengatur tampilan: warna, ukuran, layout, animasi visual
- JavaScript -- mengatur perilaku: apa yang terjadi ketika tombol diklik, data yang diambil dari server, konten yang berubah tanpa reload halaman
Keunikan JavaScript dibanding bahasa lain adalah ia bisa berjalan langsung di browser -- tanpa instalasi, tanpa kompilasi manual, tanpa setup khusus. Kamu cukup buka browser, buka DevTools, dan langsung tulis kode. Ini yang membuat JavaScript jadi bahasa yang sangat accessible, terutama bagi pemula.
Selain browser, JavaScript juga bisa berjalan di server melalui Node.js, di desktop melalui Electron, dan di mobile melalui React Native. Satu bahasa, banyak platform -- itulah salah satu alasan mengapa JavaScript menjadi bahasa pemrograman yang paling banyak digunakan di dunia selama bertahun-tahun berturut-turut.
ECMAScript: Standar di Balik JavaScript
JavaScript punya standar resmi yang disebut ECMAScript, dipelihara oleh organisasi standar internasional Ecma International melalui komite yang disebut TC39. Standar ini mendefinisikan aturan dasar bahasa: sintaks, tipe data, built-in objects, dan mekanisme lainnya.
Versi terbaru saat buku ini ditulis adalah ECMAScript 2025 (edisi ke-16). Sejak 2015, ECMAScript mendapat pembaruan setiap tahun -- itulah mengapa kamu sering mendengar istilah "ES6", "ES2017", atau "ES2020" saat membaca artikel JavaScript.
Sepanjang buku ini, kita akan menggunakan fitur-fitur JavaScript modern (ES2015 ke atas). Semua kode yang ditulis di sini bisa langsung dijalankan di browser modern maupun Node.js versi terbaru tanpa transpiler.
Memahami bahwa JavaScript punya standar resmi itu penting: artinya bahasa ini tidak dikontrol oleh satu perusahaan. Chrome, Firefox, Safari, dan Edge semuanya mengimplementasikan spesifikasi yang sama -- meski kadang dengan kecepatan adopsi fitur baru yang berbeda.
Algoritma: Cara Berpikir Sebelum Menulis Kode
Ada konsep yang lebih tua dari bahasa pemrograman manapun: algoritma. Algoritma adalah serangkaian instruksi terurut yang menjelaskan cara menyelesaikan suatu masalah -- bisa ditulis dalam bahasa manusia, pseudocode, atau bahasa pemrograman manapun.
Resep masakan yang kamu baca tadi adalah algoritma. Petunjuk merakit furnitur adalah algoritma. Langkah-langkah mengurutkan kartu dari kecil ke besar juga algoritma.
Menulis program yang baik dimulai dari kemampuan berpikir algoritmik: memecah masalah besar menjadi langkah-langkah kecil yang jelas, terurut, dan tidak ambigu. Keterampilan ini yang membedakan programmer yang bisa menyelesaikan masalah dari yang hanya hafal sintaks.
Sepanjang buku ini, kita tidak hanya akan belajar sintaks JavaScript -- kita akan melatih cara berpikir seperti programmer: memecah masalah, merancang solusi, dan mengekspresikannya dalam kode yang bisa dibaca manusia sekaligus dieksekusi mesin.
Latihan
Sebelum masuk ke kode, coba pikirkan dua soal berikut:
-
Tulis algoritma untuk menentukan apakah suatu angka adalah bilangan genap atau ganjil -- dalam bahasa Indonesia biasa, tanpa kode. Pastikan instruksimu cukup detail sehingga bisa diikuti orang yang tidak tahu matematika sama sekali.
-
Bayangkan kamu punya sebuah daftar nama siswa yang panjangnya tidak diketahui. Tulis algoritma untuk menemukan nama yang datang paling awal secara alfabetis -- lagi-lagi dalam bahasa Indonesia biasa. Langkah apa saja yang perlu dilakukan?
Tidak ada jawaban tunggal yang "benar" -- yang penting instruksinya jelas, terurut, dan menghasilkan hasil yang sama setiap kali diikuti.
Di bab selanjutnya, kita akan berkenalan langsung dengan JavaScript: dari mana ia berasal, kenapa namanya menyebabkan begitu banyak kebingungan, dan -- yang paling penting -- kamu akan menulis baris kode JavaScript pertamamu langsung di browser, tanpa perlu menginstal apapun.