Modul 2.1 – Library vs Framework
Pada modul ini, kamu akan belajar:
- Apa itu library di dunia pemrograman (terutama web).
- Apa itu framework dan apa bedanya dengan library.
- Contoh-contoh library dan framework yang sering dipakai web developer.
- Kenapa penting memahami konsep ini sebelum belajar React dan Next.js.
1. Permasalahan di Pengembangan Web Manual
Di modul sebelumnya, kita sudah belajar membuat halaman web dengan:
- HTML untuk struktur.
- CSS untuk styling.
- JavaScript untuk interaktivitas.
Semua kita tulis secara manual. Cara ini bagus untuk belajar dasar, tapi saat proyek mulai membesar, akan muncul beberapa masalah:
- Banyak kode yang berulang (misalnya card, button, navbar, footer).
- File HTML bisa jadi sangat panjang dan sulit dibaca.
- Styling CSS bisa berantakan kalau tidak terstruktur.
- Menambah fitur baru sering membuat kode lama makin sulit di-maintain.
Di sinilah kita mulai butuh alat bantu: library dan framework.
2. Apa Itu Library?
Secara sederhana:
Library adalah kumpulan fungsi/kode yang bisa kita pakai untuk membantu menyelesaikan masalah tertentu.
Ciri-ciri utama library:
- Kita yang memanggil library ketika butuh.
- Library biasanya fokus pada satu area tertentu, misalnya:
- manipulasi tampilan,
- HTTP request,
- grafik/chart, dan lain-lain.
Beberapa contoh library di web development:
- React → library untuk membangun UI.
- Axios → library untuk melakukan HTTP request (GET, POST, dll).
- Chart.js → library untuk membuat grafik.
Analogi:
Library seperti kotak peralatan di rumah. Kalau butuh, kita ambil obeng/palu dari kotaknya, lalu kita yang pakai untuk memperbaiki sesuatu.
3. Apa Itu Framework?
Secara sederhana:
Framework adalah kerangka kerja yang sudah menentukan struktur dan pola sebuah aplikasi.
Ciri-ciri utama framework:
- Framework biasanya sudah menentukan cara kita menyusun kode (struktur folder, nama file, pola umum).
- Framework sering memakai konsep Inversion of Control:
- Bukan kita yang memanggil framework,
- tapi framework yang akan memanggil kode kita di waktu yang tepat.
Beberapa contoh framework:
- Next.js (JavaScript/TypeScript, di atas React).
- Laravel (PHP).
- Django (Python).
- Spring (Java).
Analogi:
Framework seperti kerangka bangunan yang sudah jadi. Tiang, dinding utama, dan pondasi sudah ditentukan. Tugas kita adalah mengisi ruangan-ruangan di dalam kerangka itu (misalnya: isi ruang tamu, kamar, dapur).
4. Perbedaan Library vs Framework
Secara ringkas:
Library:
- Kita yang mengontrol alur program.
- Kita memanggil fungsi/fitur dari library sesuai kebutuhan.
- Contoh:
- Memanggil fungsi dari React untuk merender komponen.
- Memanggil Axios untuk melakukan
axios.get('/api/users').
Framework:
- Framework mengontrol alur utama aplikasi.
- Framework memanggil kode kita pada titik-titik tertentu (misalnya saat ada request masuk).
- Contoh:
- Next.js yang mengatur routing dan memanggil halaman kita.
- Laravel yang memanggil controller kita ketika ada URL tertentu diakses.
Cara mudah mengingatnya:
- Library → “Saya punya aplikasi, dan saya memakai library ini di dalamnya.”
- Framework → “Saya memakai framework ini, dan saya membangun aplikasi saya di dalamnya.”
5. Kenapa Konsep Ini Penting untuk Web Developer?
Di dunia kerja, hampir semua aplikasi web modern memakai:
- Satu atau lebih library untuk membantu tugas tertentu (UI, HTTP, chart, dll).
- Satu framework utama untuk mengatur struktur aplikasi.
Dengan memahami perbedaan library vs framework:
- Kamu tidak hanya “ikut-ikutan pakai React/Next.js”.
- Kamu mengerti peran masing-masing alat di dalam sebuah project.
- Kamu bisa lebih mudah mempelajari teknologi lain yang konsepnya mirip (misalnya: Angular, Vue, SvelteKit, Laravel, Django, dan sebagainya).
6. Menghubungkan ke Materi Berikutnya
Di modul-modul berikutnya, kita akan melihat contoh nyata:
- React sebagai sebuah library untuk membangun UI berbasis komponen.
- Next.js sebagai sebuah framework yang dibangun di atas React.
Saat membaca modul selanjutnya, coba ingat:
- “Bagian mana yang terasa seperti library (kita yang memanggil)?”
- “Bagian mana yang terasa seperti framework (kita mengikuti aturan dan struktur yang sudah disiapkan)?”