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.

Nama yang muncul di buku pemula pasti salah satu dari 3 jenis
Bahasa pemrogramanLibraryFrameworkPythonJavaScriptReactNext.jsDjangoAturan menulistiap baris sendiriDipanggil darikode kamu sendiriTulis kode kamudi tempat tertentuApakah berpasangandengan runtimeApakah panggilankeluar dari kamuApakah panggilanmasuk dari luar
Baris atas adalah sebutannya, baris tengah adalah contoh khasnya, dan baris bawah adalah cara nama itu berhubungan dengan kode kamu sendiri. Kolom paling kanan adalah yang kamu pastikan saat menemukan nama tersebut.

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 samaPythonJavaScript
Memberi nama pada sebuah nilaia = 3let a = 3;
Bercabang berdasarkan kondisiif a > 2:if (a > 2) {
Menampilkan ke layarprint(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 dilihatLibraryFramework
Istilah Inggrislibraryframework
IsinyaProgram dengan fungsi tertentuAlur proses seluruh aplikasi
Hubungan dengan kode kamuKamu panggil dari kode kamu sendiriKamu tambahkan di tempat tertentu
Arah pemanggilanKode kamu sendiri → libraryFramework → kode kamu sendiri
Yang menentukan alurnyaKode kamu sendiriFramework
Arah pemanggilan ditentukan oleh mana yang berada di luar
Saat memakai library
  • Yang dijalankan runtime adalah kode kamu sendiri (app.js)
Kode kamu sendiri (app.js)
  • Menentukan alur seluruh program
  • Memanggil library saat diperlukan
Library
  • Berjalan hanya saat dipanggil
  • Setelah selesai, kembali ke kode kamu sendiri
Saat memakai framework
  • Yang dijalankan runtime adalah framework
Framework
  • Alur seluruh aplikasi sudah ditulis sebelumnya
  • Memanggil kode kamu sendiri di titik tertentu
Kode kamu sendiri (di file tertentu)
  • Berjalan hanya saat dipanggil
  • Tempat menulisnya dan namanya sudah ditentukan
Bingkai atas adalah saat kamu memakai library, dan bingkai bawah adalah saat kamu memakai framework. Yang berada di luar menentukan alur keseluruhan, dan yang di dalam berjalan hanya saat dipanggil.

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.

Cakupan yang ditangani framework di aplikasi Web
Cakupan yang ditangani framework
  • Menerima request yang datang dari browser
  • Melihat URL lalu mencari proses yang sesuai
  • Menyusun response dari hasil yang kembali lalu mengembalikannya
Tempat kamu menulis kode sendiri
  • Berjalan hanya saat dipanggil
  • Membaca dan menulis database lalu membuat hasilnya
  • Mengembalikan hasil yang dibuat ke framework
Bingkai luar adalah yang ditangani framework, dari menerima request sampai menyusun response. Hanya bingkai dalam yang menjadi tempat kamu menulis kode sendiri.

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.

Framework dan library, ditempatkan di dalam bahasanya
Ditulis dengan JavaScript
  • Kode layar yang berjalan di browser
  • Kode sisi server yang berjalan di node
Next.js (framework)
  • Memisahkan file halaman per URL
  • Proses sisi server juga bisa ditulis
  • Layarnya disusun dengan React
React (library)
  • Menyusun bagian-bagian layar
  • Bisa dipanggil tanpa memakai Next.js
Ditulis dengan Python
  • Kode untuk analisis data dan otomatisasi
  • Kode untuk proses sisi server
Django (framework)
  • Memetakan URL ke proses
  • Membaca dan menulis database
  • Mekanisme login
Ditulis dengan Dart
  • Kode untuk aplikasi ponsel
Flutter (framework)
  • Layar dan perilaku aplikasi ponsel
  • Dari 1 kode ke iPhone dan Android sekaligus
Sisi luar adalah bahasanya, dan sisi dalam adalah framework dan library yang kamu tulis dengan bahasa itu. Yang berada di dalam ditulis dengan sintaks bahasa yang ada di luarnya.

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.

Dari yang ingin kamu buat, ke bahasa pertamamu, sampai nama-nama yang muncul sesudahnya
Yang ingin dibuatPerlu layardi dalam browserPerlu layardi dalam ponselTidak perlu layarhitungan, otomatisasiJavaScriptDart dan lainnyaPythonReactNext.jsFlutterDjangopandas
Satu kotak di atas bercabang menjadi 3, dan masing-masing berujung pada bahasa di bawahnya. Baris paling bawah adalah framework dan library yang namanya akan kamu lihat setelah memilih bahasa itu.

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.

Dari bahasa mana pun kamu mulai, mekanisme yang kamu kuasai sama
Kalau mulaidari PythonKalau mulaidari JavaScripta = 3if / whilelet a = 3;if / whileBeri nama nilaibercabang per kondisiulangi
Dua jalur di kiri dan kanan bertemu menjadi satu di bawah. Cara menulisnya kamu pelajari terpisah, tetapi mekanisme yang kamu capai 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.

QUIZ

Cek Pemahaman

Jawab setiap pertanyaan satu per satu.

Soal 1Next.js yang kamu temui di buku pemula itu bahasa, library, atau framework?

Soal 2Mana pernyataan yang benar tentang perbedaan library dan framework?

Soal 3Apa alasan kode sisi layar aplikasi Web ditulis dengan JavaScript?