🎡
πŸ’»
+
πŸ’•

Debugging Hati

Bab 2: Ketika bug dalam kode membawa pada penemuan cinta yang tak terduga

Meskipun proyek "Memori Terstruktur" memberinya pengakuan dan secercah tujuan baru, perjalanan Arjuna di dunia informatika tetaplah sebuah perjalanan yang sunyi. Ia berhasil melewati mata kuliah, memahami bahasa-bahasa pemrograman, namun ia melakukannya seorang diri. Ia adalah seorang imigran di dunia digital, mengerti bahasanya namun tidak benar-benar merasa memiliki teman seperjuangan.

"Ia adalah seorang imigran di dunia digital, mengerti bahasanya namun tidak benar-benar merasa memiliki teman seperjuangan."

Ia masih menjaga jarak, hatinya yang telah dua kali retak kini terbungkus oleh logika dan algoritma yang dingin. Setiap interaksi sosial ia perlakukan seperti fungsi dalam programβ€”input, proses, outputβ€”tanpa ruang untuk variabel tak terduga yang bernama perasaan.

Semua itu mulai berubah di semester lima, di sebuah mata kuliah yang terkenal paling sulit: "Struktur Data dan Algoritma Lanjutan". Di sanalah ia bertemu Hana Karimah.

πŸ‘©β€πŸ’»

Hana Karimah - Bintang di angkatannya

Hana adalah bintang di angkatannya. Ia bukan hanya cantik dengan hijab modern yang membingkai wajah cerdasnya, tetapi otaknya setajam dan seefisien kode yang ia tulis. Jika mahasiswa lain melihat algoritma sebagai beban, Hana melihatnya sebagai seni. Ia bisa menemukan keindahan dalam sebuah fungsi rekursif yang elegan atau efisiensi sebuah query database yang kompleks.

Profil Hana Karimah

🧠
Kecerdasan

Algoritma adalah seni baginya

✨
Kepribadian

Cantik dengan hijab modern

🎯
Keahlian

Efisiensi dan keindahan kode

Pertemuan mereka terjadi di laboratorium komputer, larut malam menjelang tenggat waktu sebuah proyek. Arjuna sedang menemui jalan buntu. Programnya terus-menerus mengalami crash karena kesalahan logika pada pointer yang rumit. Rasa frustrasi yang dulu sering ia rasakan kembali muncul. Ia menatap barisan kode di layarnya, merasa seperti seorang penyair yang kehabisan kata.

debugging_session.cpp
// ERROR: Segmentation fault (core dumped)
int* ptr = malloc(sizeof(int) * 100);
for(int i = 0; i <= 100; i++) {
ptr[i] = i * 2; // Memory leak!
}
// Missing: free(ptr);
"Kebocoran memori (memory leak)?" sebuah suara jernih terdengar dari sampingnya.

Arjuna menoleh dan melihat Hana berdiri di sana, membawa secangkir kopi. Ia menunjuk ke layar Arjuna. "Kamu mengalokasikan memori, tapi lupa membebaskannya di akhir perulangan. Kamu membuat banyak 'hantu' di dalam sistemmu."

Arjuna tertegun, bukan hanya karena Hana langsung menemukan kesalahannya, tetapi karena cara ia menjelaskannya. "Hantu di dalam sistem," sebuah metafora yang anehnya sangat artistik.

πŸ‘»

"Hantu di dalam sistem"

Hana menarik kursi dan duduk di sebelahnya. "Boleh aku lihat?" Tanpa menunggu jawaban, jemarinya yang lentik menari di atas papan ketik, bukan untuk memperbaiki, melainkan untuk menunjukkan di mana letak kesalahan berpikir Arjuna.

"Kamu berpikir seperti seorang pelukis. Kamu mencoba mencampurkan semua warna sekaligus. Dalam coding, kamu harus berpikir seperti pematung. Pahat satu bagian sampai sempurna, baru pindah ke bagian berikutnya."

Filosofi Coding Hana

🎨
Cara Pelukis

Mencampur semua warna sekaligus

❌ Chaos & Memory Leak

πŸ—Ώ
Cara Pematung

Pahat satu bagian sampai sempurna

βœ… Clean & Efficient

Untuk pertama kalinya, seseorang tidak hanya membantunya secara teknis, tetapi juga memahami cara otaknya bekerja. Hana tidak menertawakan latar belakangnya sebagai seniman; ia justru menggunakannya untuk membangun jembatan pemahaman.

Malam itu, mereka tidak hanya memperbaiki program Arjuna, tetapi juga menghabiskan dua jam berikutnya berdiskusi tentang filosofi di balik desain UI/UX yang intuitif dan keindahan matematika dalam algoritma pengurutan.

Simulasi Perbaikan Kode
❌ BEFORE: Memory Leak
int* ptr = malloc(100);
// Missing free(ptr);
βœ… AFTER: Clean Code
int* ptr = malloc(100);
// ... use ptr ...
free(ptr); // Fixed!
Sentuh untuk melihat transformasi kode

Sejak malam itu, sesuatu berubah dalam rutinitas Arjuna. Ia mulai menantikan mata kuliah yang sama dengan Hana. Ia mulai memperhatikan cara Hana menjelaskan konsep rumit dengan analogi sederhana, cara ia tertawa ketika menemukan solusi elegan untuk masalah kompleks, cara matanya berbinar saat membicarakan proyek-proyek ambisius yang ingin ia kerjakan.

"Kadang, algoritma terbaik untuk mengatasi rindu bukanlah menghapusnya, melainkan memahami dan mengubahnya menjadi sesuatu yang indah."

Tanpa disadari, Arjuna mulai menulis kode dengan lebih hati-hati, tidak hanya karena ingin menghindari bug, tetapi karena ia tahu Hana mungkin akan melihatnya. Ia mulai menambahkan komentar yang lebih deskriptif, memilih nama variabel yang lebih bermakna, dan menyusun struktur program yang lebih rapi.

Suatu hari, saat mereka sedang mengerjakan proyek kelompok tentang implementasi Binary Search Tree, Hana berkata sesuatu yang membuat hati Arjuna berdebar tidak karuan.

"Kamu tahu, Arjuna, kode yang kamu tulis akhir-akhir ini... ada sesuatu yang berbeda. Seperti ada emosi di dalamnya. Seperti kamu tidak hanya menulis untuk komputer, tapi juga untuk manusia yang akan membacanya."

Arjuna terdiam. Ia tidak tahu harus menjawab apa. Bagaimana ia bisa mengatakan bahwa "manusia" yang ia maksud adalah Hana sendiri? Bahwa setiap baris kode yang ia tulis adalah upayanya untuk berkomunikasi dengannya dalam bahasa yang mereka berdua pahami?

πŸ’»πŸ’•

Kode sebagai bahasa cinta

Malam itu, Arjuna pulang dengan perasaan campur aduk. Di satu sisi, ia merasa bahagia karena Hana menghargai usahanya. Di sisi lain, ia takut. Takut bahwa hatinya yang sudah dua kali hancur akan kembali terbuka, hanya untuk mengalami keretakan ketiga.

Ia duduk di depan laptopnya, menatap layar kosong. Untuk pertama kalinya setelah sekian lama, ia tidak menulis kode. Ia menulis puisi. Puisi tentang algoritma cinta, tentang debugging hati, tentang bagaimana exception handling tidak selalu bisa menangkap error yang bernama perasaan.

πŸ“πŸ’»

Puisi: "Exception Handling"

try {
heart.open(hana);
love.compile();
} catch (HeartBreakException e) {
// Sudah dua kali terjadi
pain.handle(e);
} finally {
// Haruskah mencoba lagi?
hope.persist();
}

Bersambung ke Bab 3: "Merge Conflict"