Programming Fundamental 1
Modul 1 Introduction - Full Stack Developers & Dasar Pemrograman
Di industri teknologi yang dinamis saat ini, peran Full Stack Developer adalah salah satu yang paling dicari dan dihargai. Profesi ini merujuk pada seorang developer yang memiliki kemampuan untuk bekerja di dua spektrum sekaligus:
- Sisi Frontend: Yaitu bagian yang dilihat dan diinteraksi langsung oleh pengguna (user interface).
- Sisi Backend: Yaitu logika server, pengelolaan data, dan interaksi database yang berjalan di balik layar.
Kemampuan menyeluruh (end-to-end) inilah yang menjadikan Full Stack Developer sangat bernilai (valuable) bagi perusahaan teknologi modern, karena mereka dapat melihat dan mengelola proyek dari perspektif yang lengkap, dari arsitektur hingga implementasi visual.
Maka dari itu, modul ini dirancang sebagai pengantar komprehensif bagi setiap individu yang bersemangat untuk mendalami dunia Full Stack Development. Di dalamnya, kita akan bersama-sama mengidentifikasi bahasa pemrograman esensial yang digunakan, memahami kumpulan keterampilan (skill-set) yang harus dikuasai, menyusun peta jalan (roadmap) yang jelas, serta menguasai dasar-dasar pemrograman dan algoritma yang menjadi fondasi intelektual utama dalam profesi ini.
Sebelum memasuki materi yang lebih dalam, mari kita refleksikan sebentar beberapa pertanyaan berikut ini:
Apa yang terlintas di pikiran Anda ketika mendengar istilah Full Stack Developer?
“Full Stack developer adalah seseorang yang memahami baik sisi frontend (user interface) maupun backend (server, database, API) dari sebuah aplikasi web.”
Mengapa perusahaan saat ini lebih banyak mencari Full Stack Developer dibanding hanya frontend atau backend developer saja?
“Karena full stack developers memiliki fleksibilitas yang lebih tinggi, dapat meningkatkan efisiensi tim, dan lebih mudah dalam memahami keterkaitan antar bagian dalam sebuah aplikasi.”
Berikut adalah tujuan pembelajaran yang akan menjadi pedoman kita setelah menyelesaikan modul ini:
1.1 What languages are used in Full Stack Development?
Full Stack Development melibatkan berbagai teknologi yang bekerja bersama untuk menciptakan aplikasi web yang lengkap. Menurut Web Development Roadmap 2024 yang dipublikasikan oleh Kamran Ahmed dalam situsnya roadmap.sh, teknologi ini dibagi menjadi beberapa layer utama diantaranya frontend sebagai sisi klien, backend sebagai sisi server dan database untuk menyimpan dan mengelola data pada aplikasi. Roadmap.sh sendiri adalah sebuah platform open-source berbasis komunitas yang menyediakan peta jalan (roadmap), panduan, dan konten edukasi lain untuk membantu pengembang belajar dan menavigasi jalur karir pada bidang teknologi seperti full stack developer, backend developer, frontend developer dan DevOps.
1.1.1 Frontend: HTML, CSS, JavaScript & Framework/Library
- Bahasa markup untuk membuat struktur halaman web
- Mendefinisikan elemen seperti heading, paragraf, link, gambar, dan form
- Digunakan untuk styling dan layout
- Mengatur warna, font, spacing, dan responsiveness
- Membuat tampilan web menjadi menarik dan user-friendly
- Bahasa pemrograman untuk membuat web interaktif
- Menangani event (klik, hover, input)
- Manipulasi DOM (Document Object Model)
- Validasi form dan komunikasi dengan backend via API
- Framework: Kerangka kerja yang menyediakan struktur dan tools untuk development
- Library: Kumpulan kode yang dapat digunakan ulang (React sebenarnya adalah library, bukan framework)
- Component-based: Pendekatan membangun User Interface dengan komponen-komponen kecil yang dapat digunakan ulang
- Virtual DOM: Representasi virtual dari struktur halaman untuk performa yang lebih baik
- SPA (Single Page Application): Aplikasi web yang memuat satu halaman dan update konten secara dinamis
- Progressive: Dapat diintegrasikan secara bertahap tanpa harus mengubah keseluruhan aplikasi
- Enterprise: Tingkat perusahaan besar dengan kebutuhan kompleks dan skala besar
- Dalam pengembangan Full Stack, bagian frontend adalah wajah aplikasi yang dilihat pengguna.
- Menguasai HTML, CSS, dan JavaScript (beserta framework seperti React, Angular, atau Vue) merupakan fondasi penting sebelum melangkah ke backend dan database.
1.1.2 Backend: JavaScript (Node.js), Python, Java, PHP, Ruby
- Runtime environment (lingkungan eksekusi): Tempat untuk menjalankan JavaScript di server
- Memungkinkan penggunaan satu bahasa (JavaScript) untuk frontend dan backend
- Non-blocking I/O (Input/Output tanpa blocking): Membuat Node.js sangat efisien untuk aplikasi real-time (waktu nyata)
- Framework populer: Express.js (paling populer dengan 28 juta per minggu download nya), NestJS, Fastify
- Python diciptakan oleh Guido van Rossum dan dirilis pada tahun 1991, kini menjadi bahasa pemrograman pertama paling populer menurut TIOBE Index 2025.
- Bahasa yang mudah dipelajari dengan syntax (aturan penulisan kode) yang clean.
- Framework populer: Django (digunakan oleh Instagram, Spotify), Flask, FastAPI
- Ekosistem (lingkungan) library (kumpulan kode siap pakai) yang sangat besar dengan lebih dari 400,000 packages (paket) di PyPI.
- Cocok untuk aplikasi dengan machine learning (pembelajaran mesin) integration.
- Java, yang dikembangkan oleh James Gosling di Sun Microsystems pada tahun 1995, masih menjadi pilihan utama untuk enterprise applications dengan 29.4% developer yang menggunakannya secara profesional (Stack Overflow Developer Survey 2023).
- Java merupakan bahasa yang mature dan reliable untuk enterprise.
- Framework: Spring Boot (framework Java paling populer dengan 14juta+ download per bulan)
- Bertipe kuat (strongly-typed) dan berorientasi pada objek (object-oriented)
- Memiliki performa tinggi dan scalability yang baik.
- Menurut data dari W3Techs (Updated Oktober 2025), PHP digunakan oleh 73.2% dari semua website yang menggunakan server-side programming language.
- WordPress, yang dibangun menggunakan bahasa PHP, kini menjadi tulang punggung bagi sekitar 43.2% dari seluruh situs web yang ada di internet saat ini.
- Framework: Laravel (framework PHP paling populer di GitHub dengan 75K+ stars), Symfony
- Versi PHP 8.x membawa significant performance improvements (hingga 3x lebih cepat dari PHP 5.x)
- Ruby, yang diciptakan oleh Yukihiro Matsumoto pada tahun 1995, dikenal dengan filosofi "developer happiness" dan productivity-nya.
- Framework: Ruby on Rails (digunakan oleh GitHub, Airbnb, Shopify)
- Pendekatan yang mengutamakan kesepakatan atau standar umum (konvensi) daripada keharusan mengatur setiap detail secara manual (konfigurasi).
- Sangat produktif untuk pengembangan yang cepat (atau: mendukung pengembangan aplikasi secara cepat).
- Melihat ketersediaan kendaraan secara real-time.
- Melakukan pemesanan dan pembayaran online.
- Melacak status sewa (aktif, dikembalikan, jatuh tempo).
- Tim developer harus membuat sistem backend yang aman, cepat, dan mudah diintegrasikan dengan frontend (yang menggunakan React).
- Mereka sedang mempertimbangkan beberapa opsi backend seperti: Node.js (JavaScript), Python (Django/Flask), Java (Spring Boot), PHP (Laravel) dan Ruby (Ruby on Rails).
- CTO meminta tim untuk menganalisis kelebihan dan kekurangan setiap bahasa agar bisa menentukan pilihan yang paling sesuai untuk kebutuhan GoFleet Services.
- Apa fungsi utama dari bahasa backend dalam Full Stack Development?
- Jelaskan secara singkat karakteristik dan keunggulan dari masing-masing bahasa berikut: Node.js, Python, Java, PHP dan Ruby.
- Jika perusahaan ingin mengutamakan performa real-time (misalnya untuk menampilkan status kendaraan yang sedang disewa secara langsung), bahasa backend mana yang paling tepat digunakan? Jelaskan alasannya.
- Jika perusahaan lebih fokus pada kemudahan pengembangan cepat dan sintaks yang mudah dipahami oleh tim pemula, bahasa mana yang sebaiknya dipilih?
- Bagaimana cara backend berkomunikasi dengan database dan frontend dalam arsitektur Full Stack? Berikan penjelasan singkat alurnya.
- Backend adalah “otak” dari aplikasi Full Stack yang mengatur data, logika, dan keamanan.
- Pemilihan bahasa backend tergantung kebutuhan proyek:
- Node.js → real-time, cepat, efisien.
- Python/Ruby → cepat dikembangkan, mudah dibaca.
- Java → skala besar & enterprise.
- PHP → web tradisional dan CMS.
- Backend bekerja sama dengan frontend melalui API agar pengalaman pengguna berjalan lancar dan efisien.
1.1.3 Database: Relational Database (SQL) dan Non-Relational Database (NoSQL)
- Dalam pengembangan sebuah aplikasi atau website, seorang full stack developer harus memiliki skill database management yang mencakup kemampuan bekerja dengan database seperti PostgreSQL, MySQL, serta database NoSQL seperti MongoDB atau Cassandra. Ini mencakup pemahaman tentang model data, query, dan manajemen transaksi.
- Database sendiri berfungsi menyimpan dan mengelola data aplikasi.
- Relational database model pertama kali diusulkan oleh Edgar F. Codd di IBM pada tahun 1970.
- SQL (Structured Query Language) menjadi standard language untuk database management sejak distandarisasi oleh ANSI pada tahun 1986.
- Data tersimpan dalam tabel dengan relasi yang terdefinisi.
- MySQL: Open-source RDBMS paling populer dengan 46.5% market share (Stack Overflow Survey 2023), digunakan oleh Facebook, Twitter, YouTube. MySQL adalah sebuah DBMS (Database Management System) menggunakan perintah SQL (Structured Query Language) yang banyak digunakan saat ini dalam pembuatan aplikasi berbasis website. MySQL termasuk ke dalam RDBMS (Relational Database Management System), sehingga dalam pengimplementasiannya menggunakan tabel, kolom, baris, di dalam struktur databasenya.
- PostgreSQL: Memiliki fitur-fitur yang canggih dan dinobatkan sebagai "Database of the Year" 4 kali oleh DB-Engines (2017, 2018, 2020, 2023). PostgreSQL adalah sebuah sistem manajemen basis data relasional objek (ORDBMS) yang open source, kuat, dan gratis. PostgreSQL mendukung kueri SQL dan non-relasional (seperti JSON), serta memiliki berbagai fitur canggih dan keandalan tinggi, menjadikannya pilihan populer untuk menyimpan data aplikasi web, seluler, dan geospasial berskala besar.
- Microsoft SQL Server: Enterprise-grade database dengan 26.87% market share. Microsoft SQL Server adalah Sistem Manajemen Basis Data Relasional (RDBMS) yang dikembangkan oleh Microsoft untuk menyimpan dan mengambil data sesuai permintaan aplikasi lain. Sistem ini menggunakan bahasa kueri terstruktur (SQL) yang disebut Transact-SQL (T-SQL) untuk berkomunikasi dengan basis data dan mengelola data dalam tabel-tabel yang saling berhubungan.
- SQLite: Lebih ringan (lightweight) dan database yang paling banyak diterapkan (deployed) di dunia, lebih dari 1 triliun SQLite database yang aktif digunakan. SQLite adalah sistem manajemen basis data relasional (RDBMS) yang ringan, mandiri, dan tidak menggunakan server. Seluruh basis data disimpan dalam satu berkas, sehingga mudah digunakan dan dikonfigurasi, menjadikannya ideal untuk aplikasi seluler, perangkat tertanam, dan aplikasi kecil hingga menengah.
- NoSQL databases mulai populer pada akhir 2000s untuk menangani big data dan real-time applications.
- Menurut DB-Engines Ranking 2024, MongoDB adalah NoSQL database paling populer di dunia.
- Data tersimpan dalam format flexible (document, key-value, graph).
- Memiliki scalability horizontal yang lebih baik.
- Relational Database (SQL) seperti MySQL atau PostgreSQL,
- Non-Relational Database (NoSQL) seperti MongoDB atau Firebase.
- Data pelanggan (nama, kontak, alamat).
- Data kendaraan (merek, tipe, status ketersediaan).
- Data transaksi sewa (tanggal mulai, tanggal kembali, total biaya).
- Riwayat log aktivitas pengguna dan status kendaraan (update cepat dan real-time).
- Data pelanggan dan kendaraan memiliki relasi yang jelas, misalnya satu pelanggan bisa memiliki banyak transaksi, dan setiap transaksi terhubung ke satu kendaraan tertentu.
- Namun sistem juga membutuhkan penyimpanan data aktivitas real-time seperti:
- Perubahan status kendaraan (tersedia → disewa → dalam perawatan).
- Log aktivitas pengguna di aplikasi (login, update profil, upload dokumen).
- Tim pengembang harus memutuskan apakah akan menggunakan Relational Database (SQL) saja, Non-Relational Database (NoSQL) saja, atau kombinasi keduanya (hybrid approach).
- Apa perbedaan utama antara Relational Database (SQL) dan Non-Relational Database (NoSQL)?
- Jenis database apa yang lebih cocok untuk menyimpan data pelanggan dan transaksi sewa kendaraan? Jelaskan alasannya.
- Jenis database apa yang lebih efektif untuk menyimpan log aktivitas pengguna atau status kendaraan secara real-time? Mengapa?
- Jika perusahaan ingin memastikan performa tinggi dan fleksibilitas data, apakah pendekatan hybrid (menggabungkan SQL dan NoSQL) dapat menjadi solusi? Jelaskan bagaimana penerapannya.
- Bagaimana peran bahasa pemrograman backend dalam menghubungkan aplikasi dengan database? (contoh: Node.js, Python, atau PHP)
- SQL cocok untuk data terstruktur & relasional, seperti pelanggan dan transaksi.
- NoSQL cocok untuk data dinamis & real-time, seperti log atau notifikasi.
- Kombinasi keduanya (hybrid) sering digunakan dalam proyek Full Stack modern untuk mendapatkan performa dan stabilitas optimal.
1.1.4 Additional Technologies
- Git: Sistem kontrol versi terdistribusi (Distributed Version Control System), yang diciptakan oleh Linus Torvalds pada tahun 2005, kini menjadi standar industri. Menurut survei Stack Overflow tahun 2023, teknologi ini digunakan oleh 93.9% pengembang di seluruh dunia.
- GitHub: Platform hosting terbesar dengan lebih dari 100 million developers dan 372 million repositories (2023)
- RESTful API (Application Programming Interface): Gaya arsitektur (Architectural style) yang diperkenalkan oleh Roy Fielding pada tahun 2000, menjadi standar untuk layanan web (web services)
- GraphQL: Bahasa query yang dikembangkan oleh Facebook pada tahun 2012 dan open-sourced (dirilis sebagai open source) pada tahun 2015, tingkat adopsi atau penerimaannya meningkat sebesar 23% setiap tahunnya.
- AWS (Amazon Web Services): Platform cloud terdepan global dengan lebih dari 200 layanan end-to-end (penyimpanan, database, komputasi), memungkinkan pengembang menjalankan aplikasi tanpa perlu infrastruktur fisik. Market leader (pemimpin pasar) dengan 32% market share (pangsa pasar) (Q4 2023, Gartner)
- Google Cloud Platform: Platform komputasi awan (cloud computing) dari Google yang menyediakan berbagai layanan seperti komputasi, penyimpanan, analisis data, dan kecerdasan buatan, memiliki 10% market share
- Microsoft Azure: Platform komputasi awan (cloud computing) yang menawarkan lebih dari 200 produk dan layanan berbasis cloud 23% market share
- Docker: Container platform (platform kontainerisasi - teknologi untuk membungkus aplikasi beserta dependensinya) dengan lebih dari 20 million developers (2023)
- Kubernetes: Container orchestration platform (platform untuk mengelola banyak container), originally developed by Google, digunakan oleh 88% organizations (CNCF Survey 2023)
- DevOps: Gabungan Development + Operations, praktik untuk mempercepat delivery software.
Komentar
Posting Komentar