Fosil Digital: Aplikasi Pertama yang Dibangun Tanpa Framework, Tanpa Library, Tanpa Alat Modern

Fosil Digital: Aplikasi Pertama yang Dibangun Tanpa Framework, Tanpa Library, Tanpa Alat Modern
Rizal MaddrendRizal Maddrend
Tags
Software EngineeringCareerJavaScript
KategoriDigital Archeology
Tanggal Terbit2 Oktober 2025

Sebelum VS Code dan Stack Overflow, Kode Ditulis dengan Doa, Kesabaran, dan Air Mata

Bro, coba kita mulai dengan sebuah gambaran dari kehidupan seorang developer di tahun 2025. Pagi hari, lo buka laptop, lo buka Visual Studio Code yang canggih dengan puluhan ekstensi yang membantu lo. Lo mau bikin proyek web baru? Cukup ketik satu baris perintah di terminal: npx create-next-app@latest. Dalam waktu kurang dari satu menit, sebuah struktur aplikasi NextJS yang modern dan siap pakai sudah terhidang di depan lo.

Butuh komponen UI yang keren? Cukup ketik npm install shadcn-ui. Butuh state management yang canggih? Ada Zustand atau Redux. Mentok sama bug? Tinggal buka tab baru, ketik masalah lo di Google, dan dalam 0.3 detik, Stack Overflow atau ChatGPT akan memberikan lo beberapa kemungkinan solusi. Kita hidup di sebuah era kemewahan teknologi yang luar biasa.

Sekarang, coba kita putar waktu mundur. Jauh ke belakang.

Bagaimana cara Tim Berners-Lee membangun World Wide Web pertama kali, saat Google bahkan belum ada di dalam mimpi? Dengan tool apa para engineer di Netscape membangun browser pertama yang bisa menampilkan gambar? Bagaimana cara sebuah transaksi e-commerce pertama kali terjadi, saat belum ada API payment gateway?

Bagaimana cara mereka "ngoding" di sebuah zaman "kegelapan", tanpa adanya framework, tanpa tumpukan library di npm, tanpa hot reloading, dan tanpa Stack Overflow untuk bertanya saat mentok?

Selamat datang di sebuah ekspedisi arkeologi digital, bro. Di artikel super panjang ini, kita akan menjadi seorang Indiana Jones di dunia teknologi. Kita akan menggali "fosil-fosil" digital yang terlupakan. Kita akan mencoba untuk merekonstruksi dan memahami bagaimana cara para pionir, para "pandai besi" digital, bisa membangun fondasi dari dunia yang kita tinggali saat ini, hanya dengan berbekal "palu dan pahat" yang sangat primitif: sebuah text editor sederhana, sebuah compiler, dan sebuah gunung kesabaran yang tingginya mungkin melebihi Gunung Everest.

Zaman Batu Digital: Era Punch Card, Mainframe, dan Komputer Sebesar Ruangan

Sebelum kita bahkan bisa bicara tentang aplikasi atau website, kita harus kembali ke zaman di mana "komputer" itu sendiri adalah sebuah konsep yang sangat berbeda.

Komputer Sebesar Ruangan yang Hanya Bisa Ditemui di Universitas atau Militer

Bayangkan sebuah komputer yang ukurannya sebesar sebuah ruangan kelas, seperti ENIAC atau UNIVAC. Komputer-komputer raksasa (mainframe) ini tidak memiliki layar monitor, tidak memiliki keyboard, dan tentu saja tidak memiliki mouse. "Berinteraksi" dengan komputer ini adalah sebuah proses yang sangat fisik dan melelahkan. Programming pada masa-masa paling awal bahkan bukan tentang mengetik, melainkan tentang secara fisik menyambungkan ratusan kabel di papan sirkuit untuk bisa membentuk sebuah logika.

"Kode" sebagai Setumpuk Kartu Kertas Berlubang (Punch Cards)

Kemudian, teknologinya "sedikit" lebih maju dengan ditemukannya punch card. Ini adalah sebuah kartu kertas tebal di mana setiap baris kode atau data direpresentasikan oleh kombinasi lubang-lubang di atasnya. Seorang programmer akan mengetik programnya di sebuah mesin khusus yang akan melubangi kartu-kartu ini.

Satu program bisa terdiri dari ratusan, bahkan ribuan, tumpukan kartu. Jika lo membuat satu kesalahan ketik (salah satu lubang), lo harus membuat ulang kartu tersebut. Jika lo tidak sengaja menjatuhkan tumpukan kartu lo dan urutannya menjadi acak, selamat, lo mungkin harus mengurutkannya kembali selama berjam-jam. Inilah "bug" fisik yang sesungguhnya.

Bahasa Pemrograman Pertama: Fortran & COBOL, dan Konsep "Batch Processing"

Di era ini, lahirlah beberapa bahasa pemrograman tingkat tinggi pertama, seperti Fortran (untuk komputasi ilmiah dan teknik) dan COBOL (untuk pemrosesan data bisnis). Program-program ini tidaklah interaktif.

Prosesnya adalah sebagai berikut: lo akan menyerahkan setumpuk punch card program lo ke seorang operator komputer. Operator itu akan memasukkan tumpukan kartu lo ke dalam mesin pembaca. Komputer akan memproses "pekerjaan" (job) lo. Dan beberapa jam kemudian (jika lo beruntung), atau bahkan keesokan harinya, lo akan mendapatkan hasilnya yang dicetak di atas kertas oleh sebuah printer raksasa. Inilah yang disebut dengan batch processing. Tidak ada debugging secara real-time. Jika program lo error, lo hanya akan mendapatkan pesan error di kertas, dan lo harus kembali ke meja lo, mencari kesalahannya di tumpukan kartu, memperbaikinya, dan mengantri lagi untuk menyerahkannya ke operator.

Fajar Interaktivitas: Lahirnya Minicomputer, Terminal, dan Sistem Operasi UNIX

Revolusi besar berikutnya terjadi saat ukuran komputer mulai mengecil (minicomputer) dan konsep terminal interaktif muncul pada era 60-an dan 70-an.

Pergeseran dari Batch ke Sesi: Sebuah Dialog dengan Mesin

Untuk pertama kalinya dalam sejarah, seorang programmer bisa "berdialog" dengan sebuah komputer secara real-time. Mereka duduk di depan sebuah "terminal" (yang awalnya lebih mirip mesin tik yang terhubung ke komputer, lalu berevolusi menjadi layar monitor dengan teks hijau atau oranye), dan mereka bisa mengetikkan perintah dan melihat respons dari komputer secara langsung. Konsep menyerahkan setumpuk kartu dan menunggu berjam-jam mulai ditinggalkan. Ini adalah sebuah lompatan kuantum dalam dunia programming.

"Medan Perang" Abadi Para Editor Teks: Vi vs. Emacs

Sebelum adanya Visual Studio Code dengan antarmukanya yang ramah, dengan jutaan tema dan ekstensinya, dunia programming di terminal didominasi oleh dua "agama" besar: Vi (dan penerusnya, Vim) dan Emacs.

Keduanya adalah text editor yang luar biasa powerful, namun juga terkenal memiliki kurva belajar yang sangat curam. Tidak ada menu grafis, tidak ada tombol mouse. Semuanya dikendalikan melalui kombinasi-kombinasi shortcut keyboard yang rumit dan harus dihafal di luar kepala. Untuk sekadar keluar dari editor Vim saja sudah menjadi sebuah meme legendaris di kalangan para developer (:q!). Pertarungan antara pengguna Vi dan Emacs adalah sebuah "perang suci" pertama di dunia software.

Bahasa C: "Bahasa Latin" dari Dunia Pemrograman Modern

Di tengah era UNIX inilah, lahir sebuah bahasa pemrograman yang akan menjadi fondasi dari hampir semua hal yang kita gunakan hari ini: bahasa C. Diciptakan oleh Dennis Ritchie di Bell Labs, bahasa C adalah sebuah mahakarya. Ia cukup tingkat tinggi untuk bisa dipahami manusia, namun juga cukup "dekat dengan mesin" (close to the metal) sehingga bisa menghasilkan program yang sangat cepat dan efisien.

Sistem operasi UNIX (yang menjadi nenek moyang dari Linux, macOS, dan bahkan Android), database seperti MySQL dan Oracle, dan sebagian besar bahasa pemrograman modern lainnya (C++, Java, Python, JavaScript) semuanya ditulis atau sangat terinspirasi oleh bahasa C. Mempelajari C di era itu adalah seperti mempelajari "bahasa Latin"-nya dunia pemrograman.

Revolusi Web 1.0: Membangun Website Pertama di Dunia dengan Tangan Kosong

Dan kemudian, di penghujung tahun 80-an dan awal 90-an, seorang fisikawan Inggris yang bekerja di CERN (Organisasi Eropa untuk Riset Nuklir) di Swiss, merasa frustrasi. Namanya Tim Berners-Lee. Frustrasinya sederhana: para peneliti di seluruh dunia kesulitan untuk bisa saling berbagi dokumen dan data penelitian dengan mudah.

Dari frustrasi inilah, ia "merakit" sebuah penemuan yang akan mengubah dunia selamanya: World Wide Web. Ia tidak hanya menciptakan satu teknologi, ia menciptakan tiga pilar fundamental yang saling terkait:

  1. HTML (HyperText Markup Language): Ia menciptakan sebuah bahasa markup yang sangat sederhana untuk bisa menstrukturkan sebuah dokumen teks dan yang terpenting, untuk bisa membuat sebuah hyperlink—sebuah teks yang bisa diklik untuk "melompat" ke dokumen lain.
  2. URI/URL (Uniform Resource Identifier/Locator): Ia menciptakan sebuah sistem pengalamatan standar agar setiap dokumen di dalam jaringan global ini memiliki sebuah alamat yang unik.
  3. HTTP (Hypertext Transfer Protocol): Ia menciptakan sebuah "bahasa" atau protokol sederhana agar sebuah program (browser) bisa meminta sebuah dokumen dari sebuah komputer lain (server) di dalam jaringan.

Pada tahun 1991, Tim Berners-Lee menyalakan website pertama di dunia di komputernya, sebuah NeXT Computer. Alamatnya adalah info.cern.ch. Apa isinya? Tidak ada gambar, tidak ada video, tidak ada CSS. Hanya sebuah halaman teks sederhana berwarna hitam-putih, yang menjelaskan tentang apa itu proyek World Wide Web, dan beberapa hyperlink biru. Semuanya ia tulis menggunakan sebuah text editor sederhana. Itulah "fosil digital" pertama dari dunia yang kini kita huni.

Era "Wild West": Membuat Website Dinamis dengan PHP dan JavaScript "Vanilla"

Era Web 1.0 yang statis tidak berlangsung lama. Manusia dengan cepat menginginkan sebuah web yang lebih dinamis dan interaktif. Inilah era "Wild West" di pertengahan hingga akhir 90-an dan awal 2000-an.

*Lahirnya Sisi Dinamis: Dari CGI Scripts hingga Kejayaan PHP

Awalnya, untuk membuat sebuah halaman web yang dinamis (misalnya, sebuah buku tamu atau guestbook), para developer harus menggunakan sesuatu yang disebut CGI Scripts, yang seringkali ditulis dengan bahasa seperti Perl. Ini cukup rumit.

Lalu, pada tahun 1995, seorang programmer bernama Rasmus Lerdorf menciptakan PHP (Personal Home Page Tools). Kejeniusan PHP adalah pada kesederhanaannya. Ia memungkinkan para developer untuk bisa menyisipkan kode logika secara langsung di dalam file HTML. Pendekatan ini, meskipun di kemudian hari sering menghasilkan "spaghetti code" (kode yang berantakan dan sulit dirawat), secara radikal menurunkan ambang batas bagi siapa saja untuk bisa membuat sebuah website yang dinamis. Era blog, forum, dan sistem manajemen konten (CMS) pertama pun dimulai.

JavaScript "Vanilla": Pahlawan dan Penjahat di Sisi Klien

Di saat yang bersamaan, Netscape menciptakan sebuah bahasa scripting yang akan berjalan di sisi browser, yang bernama JavaScript. Tujuannya adalah untuk membuat halaman web menjadi lebih hidup—memvalidasi form tanpa perlu me-reload halaman, membuat animasi sederhana, dan lain-lain.

Sebelum adanya library seperti jQuery atau framework modern seperti ReactJS, para developer harus menulis JavaScript "vanilla" (murni). Ini adalah sebuah proses yang seringkali menyakitkan, terutama karena satu hal: Browser Wars.

Perang antara browser Netscape Navigator dan Microsoft Internet Explorer membuat keduanya memiliki implementasi JavaScript yang sedikit berbeda. Akibatnya, para developer harus menulis kode yang bercabang dan jelek, seperti if (browser === 'Netscape') { ... } else if (browser === 'IE') { ... }, hanya untuk bisa memastikan sebuah fungsi sederhana bisa berjalan di kedua browser.

Demokratisasi Database: Era Kejayaan LAMP Stack

Kombinasi dari sistem operasi Linux (gratis), web server Apache (gratis), database MySQL (gratis), dan bahasa PHP (gratis)—yang dikenal sebagai LAMP stack—adalah sebuah revolusi. Tumpukan teknologi yang sepenuhnya open-source ini mendemokratisasi pengembangan web. Siapa saja, dengan komputer yang sederhana, kini bisa membangun dan menjalankan sebuah aplikasi web yang dinamis dan berbasis data, tanpa harus membayar lisensi software yang mahal.

Studi Kasus: Rekonstruksi "Fosil Digital"

Kasus 1: Membangun "Friendster" di Era Aslinya vs. di Era Modern

  • Di Era Aslinya (Awal 2000-an): Friendster kemungkinan besar dibangun di atas tumpukan LAMP. Kodenya kemungkinan besar adalah PHP prosedural yang masif, di mana logika bisnis, query database MySQL, dan HTML dicampur aduk di dalam satu file. JavaScript mungkin hanya digunakan untuk validasi form sederhana. Proses pengembangannya lambat dan perawatannya pasti sangat sulit.
  • Jika Dibangun di Era Modern: Seorang developer hari ini akan menggunakan pendekatan yang sama sekali berbeda. Ia mungkin akan menggunakan NextJS (sebuah framework ReactJS) untuk membangun frontend yang super cepat dan interaktif. Untuk backend, ia mungkin akan menggunakan NestJS untuk membangun serangkaian microservices yang skalabel, yang berkomunikasi melalui API REST atau GraphQL. Logika, data, dan tampilan akan dipisahkan dengan sangat rapi, mengikuti prinsip-prinsip Software Engineering modern.

Pelajaran dari Kode "Kuno" saat Melakukan Proyek Migrasi di Nexvibe

Tim Software Engineering di Nexvibe cukup sering mendapatkan proyek untuk melakukan migrasi atau modernisasi sistem-sistem lama milik klien. Dalam proses ini, mereka seringkali harus "menggali" dan berinteraksi dengan "fosil-fosil digital"—aplikasi-aplikasi yang mungkin dibangun 10-15 tahun yang lalu dengan menggunakan PHP prosedural, query MySQL yang tidak efisien, dan library JavaScript kuno.

Seorang Senior Engineer di Nexvibe pernah berbagi pengalamannya: "Membongkar sebuah codebase PHP lama itu rasanya benar-benar seperti melakukan sebuah penggalian arkeologi. Lo akan menemukan logika-logika bisnis yang aneh, query-query SQL yang sangat tidak efisien yang ditulis di dalam file HTML, dan variabel-variabel dengan nama yang tidak jelas. Di satu sisi, lo merasa pusing. Tapi di sisi lain, lo juga akan merasa sangat kagum. Kagum bagaimana para developer di zaman itu, hanya dengan tools dan pengetahuan yang begitu terbatas, ternyata bisa membangun sebuah sistem yang cukup kompleks dan mampu berjalan melayani bisnis selama belasan tahun."

Quote dari Seorang "Arkeolog Digital"

Dr. Banyu Aji, seorang sejarawan teknologi, seringkali mengatakan ini kepada para mahasiswanya:

"Anak-anak coding zaman sekarang sering mengeluh kalau proses build time dari proyek NextJS mereka memakan waktu lebih dari 30 detik. Kami dulu harus menunggu selama 30 menit untuk sebuah program yang ditulis dalam bahasa C selesai di-compile di sebuah server bersama, dan kemudian berdoa dengan khusyuk semoga tidak ada segmentation fault yang muncul. Keterbatasan alat di masa lalu memaksa para pionir untuk bisa memiliki sebuah pemahaman yang sangat mendalam tentang bagaimana cara kerja sebuah komputer hingga ke level dasarnya. Sebuah 'rasa' yang seringkali hilang di era framework-framework 'ajaib' saat ini."

Kesimpulan: Kita Semua Berdiri di Atas Bahu Para Raksasa Digital

Bro, melakukan perjalanan arkeologi digital ini memberikan kita sebuah perspektif yang sangat berharga. Ia memberikan kita sebuah rasa syukur yang luar biasa atas semua kemudahan yang kita nikmati hari ini.

Setiap kali lo mengetik npm install, setiap kali lo menggunakan sebuah library atau framework open-source, setiap kali lo mencari solusi di Stack Overflow, ingatlah bahwa semua kemudahan itu tidak datang dari langit. Semua itu adalah hasil dari perjuangan, keringat, dan frustrasi selama puluhan tahun dari para pionir, para "pandai besi" digital yang telah menempa tools kita dari nol dengan peralatan yang sangat primitif.

Mereka telah membangun fondasi dan jalan tolnya untuk kita. Cara terbaik untuk bisa menghormati warisan mereka adalah dengan tidak menganggap remeh semua kemudahan ini. Gunakanlah framework ReactJS yang canggih, manfaatkan ekosistem API yang kaya, dan manfaatkan akses informasi yang tak terbatas ini untuk bisa membangun sesuatu yang lebih hebat, lebih baik, dan lebih bermanfaat daripada yang bisa mereka bayangkan pada masanya.

Jadi, apa yang akan lo bangun hari ini, bro?