Soal 1Next.js yang kamu temui di buku pemula itu bahasa, library, atau framework?
Perbedaan Bahasa Pemrograman, serta Framework dan Library
Artikel ini adalah bagian dari kursus Dasar-Dasar Teknologi Informasi, yang membangun dari nol pengetahuan TI praktis yang minimal kamu butuhkan untuk memprogram dan melakukan vibe coding.
Python dan JavaScript berbeda pada cara menulisnya, bukan pada yang dikerjakan. Diagram membuat kamu bisa membedakan library dan framework dari arah pemanggilannya.
Artikel ini membahas perbedaan bahasa pemrograman, serta framework dan library.
Kamu akan bisa membedakan apakah nama seperti React atau Next.js itu sebuah bahasa atau sesuatu yang ditulis dengan sebuah bahasa.
Yang dibahas adalah Python dan JavaScript, ditambah 4 nama: React, Next.js, Django, dan Flutter.
Apa itu bahasa pemrograman — sintaksnya berbeda, isinya sama
Bahasa pemrograman (programming language, yaitu kosakata dan aturan penulisan untuk membuat kode sumber) berpasangan dengan runtime.
Yang berbeda adalah sintaks (syntax, yaitu aturan tentang simbol dan urutan kata untuk menulis sebuah instruksi).
| Peran yang sama | Python | JavaScript |
|---|---|---|
| Memberi nama pada sebuah nilai | a = 3 | let a = 3; |
| Bercabang berdasarkan kondisi | if a > 2: | if (a > 2) { |
| Menampilkan ke layar | print(a) | console.log(a) |
Python menandai satu blok dengan tanda titik dua di akhir baris dan indentasi, sedangkan JavaScript menandainya dengan ; dan { }.
Dari 4 baris berikut, 3 baris pertama ditulis dengan cara JavaScript dan baris terakhir dengan cara Python.
let a = 3;
let b = 4;
console.log(a + b);
console.log(len([a, b]))
Setelah baris ketiga menampilkan 7, prosesnya berhenti di baris terakhir.
Walaupun yang ingin kamu lakukan sama, runtime tidak bisa membacanya kalau cara menulisnya berbeda.
Yang berbeda antarbahasa adalah cara menulis, bukan yang dikerjakan
Bahasa pemrograman adalah kumpulan aturan tentang simbol dan urutan kata saat kamu menulis kode.
Memberi nama pada nilai, bercabang berdasarkan kondisi, dan mengulang ada di setiap bahasa, dan yang berbeda hanya cara menulisnya serta runtime yang membacanya.
Library dan framework — arah pemanggilannya berlawanan
Library maupun framework sama-sama kumpulan program buatan orang lain, dan kamu memakainya supaya menulis lebih sedikit sendiri.
Menyebut nama sebuah fungsi dari program lain lalu menjalankannya disebut memanggil (call).
Perbedaan keduanya ada pada arah pemanggilan itu.
| Yang dilihat | Library | Framework |
|---|---|---|
| Istilah Inggris | library | framework |
| Isinya | Program dengan fungsi tertentu | Alur proses seluruh aplikasi |
| Hubungan dengan kode kamu | Kamu panggil dari kode kamu sendiri | Kamu tambahkan di tempat tertentu |
| Arah pemanggilan | Kode kamu sendiri → library | Framework → kode kamu sendiri |
| Yang menentukan alurnya | Kode kamu sendiri | Framework |
- Yang dijalankan runtime adalah kode kamu sendiri (app.js)
- Menentukan alur seluruh program
- Memanggil library saat diperlukan
- Berjalan hanya saat dipanggil
- Setelah selesai, kembali ke kode kamu sendiri
- Yang dijalankan runtime adalah framework
- Alur seluruh aplikasi sudah ditulis sebelumnya
- Memanggil kode kamu sendiri di titik tertentu
- Berjalan hanya saat dipanggil
- Tempat menulisnya dan namanya sudah ditentukan
Pada bingkai bawah, bagian dalam dan luar bertukar, dan framework yang memanggil kode kamu sendiri.
Yang berada di luar menentukan alur keseluruhan.
Memanggil library membuat kamu cukup menulis 1 baris, bukan puluhan baris sendiri.
Yang berbeda hanya siapa yang menulis proses itu.
Library yang harus dipasang sebelum dipanggil akan berhenti dengan error kalau kamu memanggilnya tanpa memasangnya.
Di panduan, hal ini juga disebut "package" dan "module", dan cara kerjanya dibahas di artikel "Apa Itu Manajemen Package".
Framework aplikasi Web memiliki alur dari menerima request sampai mengembalikan response.
- Menerima request yang datang dari browser
- Melihat URL lalu mencari proses yang sesuai
- Menyusun response dari hasil yang kembali lalu mengembalikannya
- Berjalan hanya saat dipanggil
- Membaca dan menulis database lalu membuat hasilnya
- Mengembalikan hasil yang dibuat ke framework
Tiga bagian di sisi luar dikerjakan framework, jadi kamu tidak menulisnya.
Alasan memakai framework adalah supaya kamu tidak perlu menulis sisi luarnya sendiri.
Kode kamu sendiri berjalan hanya di langkah ketiga, dan sebelum serta sesudahnya ditangani framework.
Pemetaan URL mana menjalankan bagian yang mana juga cukup ditulis di tempat yang sudah ditentukan.
Yang memanggil, atau yang dipanggil
Library maupun framework sama-sama program buatan orang lain, dan bedanya ada pada mana yang berada di luar.
Library dipanggil dari dalam kode kamu sendiri, sedangkan framework memanggil kode kamu sendiri dari luar dan menentukan alur keseluruhan.
Apa itu React, Next.js, Django, dan Flutter — memilah nama ke dalam 3 jenis
Kamu membaca nama-nama yang muncul di kursus dengan memilahnya menjadi bahasa, library, atau framework.
Next.js bukan bahasa, melainkan framework yang ditulis dengan JavaScript.
- Kode layar yang berjalan di browser
- Kode sisi server yang berjalan di node
- Memisahkan file halaman per URL
- Proses sisi server juga bisa ditulis
- Layarnya disusun dengan React
- Menyusun bagian-bagian layar
- Bisa dipanggil tanpa memakai Next.js
- Kode untuk analisis data dan otomatisasi
- Kode untuk proses sisi server
- Memetakan URL ke proses
- Membaca dan menulis database
- Mekanisme login
- Kode untuk aplikasi ponsel
- Layar dan perilaku aplikasi ponsel
- Dari 1 kode ke iPhone dan Android sekaligus
React adalah library yang menyusun bagian-bagian layar, dan Next.js adalah framework yang memakai React itu sekaligus memegang proses sisi server.
Flutter adalah framework untuk membuat aplikasi ponsel, dan kamu menulisnya dengan bahasa bernama Dart.
Kemampuan membuat aplikasi yang berjalan di beberapa OS dari 1 kode disebut cross-platform.
Tidak satu pun nama ini yang merupakan bahasa; semuanya adalah sesuatu yang kamu pakai bersama kode kamu sendiri.
Nama yang sama, Next.js, muncul di sisi perangkat maupun di sisi server.
Sebabnya, cakupan yang ditanganinya berubah tergantung apakah hanya menyusun layar atau juga memegang proses sisi server.
Bahkan dari aplikasi ponsel buatan Flutter, yang dituju tetap server publik yang sama.
Namanya bahasa, atau sesuatu yang ditulis dengan bahasa
Next.js, React, Django, maupun Flutter bukan bahasa, melainkan sesuatu yang ditulis dengan suatu bahasa.
Dengan memeriksa bahasa yang dipakai menulisnya, kamu tahu apakah itu bahasa itu sendiri, dan dengan memeriksa arah pemanggilannya, kamu tahu apakah itu library atau framework.
Bahasa mana yang dipelajari lebih dulu — tentukan dari perlu tidaknya layar di browser
Bahasa yang bisa dibaca browser adalah JavaScript, jadi sisi layar (frontend) memakai JavaScript.
Sisi proses (backend) berjalan di server, jadi bisa ditulis dengan bahasa mana pun.
Kalau kamu perlu layar di browser, bagian itu sudah pasti JavaScript.
Kalau tidak perlu layar, mulailah dari Python, yang punya banyak library eksternal untuk analisis data dan otomatisasi.
Framework dan library di baris paling bawah muncul setelah kamu memilih bahasa, bukan yang kamu pilih lebih dahulu.
Dari mana pun kamu mulai, mekanisme yang kamu kuasai sama.
Kedua jalur itu pada akhirnya bertemu di tempat yang sama.
Yang kamu pelajari ulang hanya cara menulis dan nama library yang dipakai di bahasa itu.
Pilih satu yang paling dekat dengan yang ingin kamu buat, lalu lanjutkan dengan itu.
Begitu yang ingin dibuat ditentukan, bahasanya pun ditentukan
Bahasa bisa ditentukan dari yang ingin kamu buat, bukan dari selera.
Kalau kamu perlu layar yang berjalan di dalam browser, bagian itu memakai JavaScript, dan kalau tidak perlu, kamu bisa mulai dari Python, sedangkan untuk bahasa kedua yang kamu pelajari ulang hanya cara menulis dan nama library-nya.
Cek Pemahaman
Jawab setiap pertanyaan satu per satu.
Soal 2Mana pernyataan yang benar tentang perbedaan library dan framework?
Soal 3Apa alasan kode sisi layar aplikasi Web ditulis dengan JavaScript?