1  UTS-1 All About Me

About Me

Saya adalah mahasiswa semester tiga asal Jakarta yang menempuh pendidikan di Program Studi Sistem dan Teknologi Informasi, Institut Teknologi Bandung (ITB). Dengan fondasi dari program akselerasi MIPA SMA Notre Dame, saya kini berfokus pada pengembangan keahlian di bidang Software Engineering dan Competitive Programming.

Saat ini, fokus tersebut saya wujudkan dengan mengembangkan proyek web pribadi, prosepect.com, dan secara aktif berlatih competitive programming di platform Codeforces.

Saya selalu terbuka untuk diskusi mengenai teknologi dan peluang kolaborasi. Mari terhubung secara profesional melalui profil LinkedIn saya: https://www.linkedin.com/in/daniel-manurung-7bb18b34a/

1.1 Kisah yang Membentuk Diri Saya: Membangun Diri, Baris demi Baris Kode

Para psikolog menyebutnya “identitas naratif”—sebuah kisah personal yang terus kita kembangkan untuk memahami siapa diri kita. Cerita ini menghubungkan masa lalu, masa kini, dan masa depan menjadi satu kesatuan yang utuh, menjawab pertanyaan mendasar: “Siapa saya? Bagaimana saya sampai di sini? Ke mana saya akan pergi?” Bagi saya, seorang mahasiswa Teknik Informatika di ITB, proses penciptaan diri ini tidak terjadi di ruang refleksi yang sunyi, melainkan di depan layar monitor yang terang, di tengah barisan kode yang berantakan.

“Bagaimana saya sampai di sini?” Jawaban saya dimulai dari sebuah titik koma (;). Dulu, saya berpikir fondasi MIPA dari SMA sudah cukup. Namun, kenyataan di dunia coding menampar saya. Saya sampai di titik ini melalui frustrasi berjam-jam saat mengerjakan proyek web pribadi, di mana satu bug kecil terasa seperti tembok raksasa. Momen puncaknya adalah ketika saya menyadari kesalahan fatal yang saya cari seharian ternyata hanyalah sebuah titik koma yang terlupakan. Momen tragikomedi itulah yang menjadi babak penting dalam narasi saya. Saya tidak hanya belajar debugging kode, saya belajar debugging ego. Saya belajar menertawakan kesalahan, menerima bahwa solusi besar sering kali datang dari kesabaran pada hal-hal kecil, dan yang terpenting, memahami rasa frustrasi saat terjebak.

“Siapa saya sekarang?” Pengalaman itu membentuk saya menjadi pribadi yang berbeda. Saya adalah seorang programmer yang memahami bahwa di balik setiap masalah teknis yang kompleks, ada aspek manusiawi—rasa panik, lelah, dan butuh perspektif lain. Identitas saya hari ini dibangun di atas empati yang lahir dari pengalaman gagal tersebut. Kemampuan untuk mengatakan "Saya mengerti rasanya, mari kita lihat bersama" kepada teman yang kesulitan, menjadi lebih berharga daripada solusi teknis tercepat. Inilah daya tarik interpersonal yang saya yakini: koneksi yang lahir dari pemahaman atas perjuangan bersama.

“Ke mana saya akan pergi?” Tujuan saya jelas: berkontribusi di salah satu big tech giants. Saya sadar bahwa di lingkungan sekaliber itu, keahlian teknis hanyalah tiket masuk. Pembeda sesungguhnya adalah kemampuan untuk berkolaborasi, berkomunikasi, dan bertahan di bawah tekanan. Kisah titik koma itu bukan lagi sekadar cerita lucu dari masa lalu; ia telah menjadi fondasi naratif saya. Ia adalah pengingat bahwa untuk membangun teknologi yang hebat, kita butuh kesabaran. Untuk memimpin tim, kita butuh empati. Dan untuk terus berinovasi, kita butuh kerendahan hati untuk mengakui bahwa terkadang kita bisa salah. Dengan narasi inilah saya melangkah maju, siap untuk menulis babak berikutnya.

1.1.1 1. Tiga Lapisan Diri Saya: Di Mana Cerita Hidup Saya Berada?

Ini adalah kerangka kerja yang sangat menarik. Saat saya merenungkannya, beginilah pemahaman saya tentang diri saya:

  1. Level 1: Sifat Dasar

    Saya melihat ini sebagai "pengaturan pabrik" saya. Ada kecenderungan alami dalam diri saya yang rasanya sudah ada sejak lama—mungkin cara saya memproses informasi, tingkat energi saya saat bersosialisasi (sebagai seorang introvert), atau kecenderungan umum saya untuk berhati-hati. Ini adalah fondasi yang saya miliki.

  2. Level 2: Kepedulian Pribadi

    Ini adalah hal-hal yang saya pilih untuk pedulikan. Ini adalah tujuan yang saya tetapkan secara sadar, seperti tujuan hidup saya untuk menjadi ahli di bidang rekayasa perangkat lunak dan pemecahan masalah (problem solving), nilai-nilai yang saya putuskan untuk pegang teguh, dan keyakinan yang saya bangun seiring berjalannya waktu. Jika Level 1 adalah apa saya, Level 2 adalah apa yang penting bagi saya.

  3. Level 3: Identitas Naratif

    Bagi saya, inilah bagian yang paling kuat. Ini adalah 'cerita' yang saya ciptakan untuk menghubungkan Sifat Dasar dan Kepedulian Pribadi saya, dan memberi makna pada pengalaman saya.

Wawasan utamanya adalah: Saya mungkin tidak bisa mengubah 'sifat dasar' saya, tapi saya memiliki kekuatan penuh untuk mengubah cerita tentangnya.

Saya bisa memilih untuk menceritakan sifat saya sebagai kelemahan, atau sebagai kekuatan yang mendukung tujuan saya. Kekuatannya ada pada pembingkaian cerita itu, dan saya sadar bahwa saya adalah penulisnya.

1.1.2 2. Pola-Pola Kisah Kehidupan: Apa yang Membuat Sebuah Cerita Bermanfaat?

Kalau hidup saya ini ibarat spaghetti code, saya mulai melihat ada dua function yang lumayan sering saya panggil. Dua pola ini—yang untungnya cukup bermanfaat—selalu muncul justru ketika saya sedang di ambang krisis eksistensial jam 3 pagi di depan laptop.

Pola pertama adalah Penebusan (Redemption), atau yang saya suka sebut 'Pola Belajar dari Kebodohan'. Kisah titik koma (;) saya itu adalah masterpiece-nya. Bayangkan, frustrasi berjam-jam, mempertanyakan pilihan hidup, hampir ganti jurusan jadi sastra, ternyata hanya karena satu tanda baca laknat. Pengalaman itu negatif? Jelas. Tapi narasi yang saya bangun adalah: 'Oke, saya berhasil jadi badut hari itu, tapi badut yang belajar.' Saya mengubah penderitaan itu menjadi pelajaran: sabar, tertawakan diri sendiri, dan selalu cek titik koma sebelum menyalahkan alam semesta. Pola ini super bermanfaat karena mengubah setiap bug—baik di kode atau di hidup—dari 'Kiamat Sudah Dekat' menjadi 'Oke, Mari Kita Coba Lagi Sambil Ngopi'.

Pola kedua adalah Agensi (Agency), alias 'Pola Nggak Mau Pasrah'. Saya sadar gelar 'Software Engineer Hebat' itu nggak akan turun dari langit via angel investor atau wahyu ilahi. Saya harus grinding. Jadi, inilah saya: sengaja menyiksa diri dengan proyek web pribadi (prosepect.com) dan adu nasib di Codeforces. Ini adalah wujud agensi saya; saya memilih untuk jadi pemeran utama di film komedi-tragedi ini. Pola ini bermanfaat karena memberi saya ilusi kendali. Daripada cuma jadi korban bug yang PHP atau kurikulum yang rasanya over-engineered, saya proaktif 'membangun' (atau setidaknya mencoba membangun) keahlian saya, baris demi baris kode.

Jadi, ya, inilah dua pola andalan saya: mengubah 'apes' jadi 'pelajaran' (Penebusan), dan 'bergerak' daripada 'mengeluh' (Agensi). Ini fondasi saya sejauh ini. Dan ternyata, kata para psikolog (yang akan saya kutip di bawah ini biar kelihatan pintar), kedua pola ini memang terbukti kuat. Bukan cuma perasaan saya saja.

1.1.3 3. Seni Memberi Makna: Kekuatan Super Saya dalam Bernalar

Bagi saya, "seni memberi makna" ini terdengar sangat agung. Sejujurnya, "mesin pembuat makna" saya tidak secanggih itu. Kalau boleh jujur, mesin saya lebih mirip proses debugging program yang kodenya acak-acakan, minim dokumentasi, dan ditulis sambil ngantuk jam 3 pagi.

Proses saya memberi makna pada suatu kejadian—terutama kejadian buruk—selalu berjalan seperti ini:

Fase 1: Panik, Marah, dan Menyalahkan Segala Sesuatu.
Ini adalah fase "kenapa kodenya nggak jalan?!". Entah itu dapat nilai jelek, gagal total di kontes competitive programming, atau tentu saja, insiden titik koma (;) yang legendaris itu. Reaksi pertama saya bukanlah mencari makna. Reaksi pertama saya adalah: "Pasti compiler-nya yang salah. Atau laptopnya. Atau dosennya. Atau konspirasi global."

Fase 2: Refactor Masalah (Fase Penerimaan Sambil Ngopi).
Setelah ritual kopi dan mengeluh secukupnya, 'mesin nalar' saya baru mulai jalan. Saya mulai berhenti melihat masalah sebagai "Saya bodoh" atau "Saya gagal." Saya mengubahnya menjadi, "Oke, ada bug. Mari kita isolasi. Di mana letak error-nya?"

Fase 3: Menemukan 'Makna' (alias 'Aha! Ketemu Bug-nya!').
Inilah kekuatan super saya: kemampuan untuk mengubah frustrasi murni menjadi sebuah logic puzzle. Makna yang saya temukan dari insiden titik koma itu bukanlah "Saya ceroboh," tapi "Aha! Ternyata ego dan kepanikan bisa membutakan saya dari solusi paling sepele. Pelajaran dicatat."

Bagi saya, "memaknai peristiwa sulit secara positif" itu ya ini. Ini bukan soal menjadi bijak secara instan. Ini adalah skill yang saya latih setiap hari di Codeforces. Setiap kali saya dapat 'Wrong Answer' di tes ke-37, saya tidak menganggapnya sebagai "takdir saya jadi programmer gagal." Saya menganggapnya sebagai, "Logika saya salah di edge case itu. Mari kita cari."

Memahami bahwa ini adalah skill yang bisa dilatih memberi saya kekuatan. Saya jadi sadar bahwa error dan bug dalam hidup itu bukan akhir dari segalanya. Itu hanyalah ticket baru di backlog yang menunggu untuk saya debug. Langkah-langkah berikutnya adalah cara saya biasanya melakukan proses debugging hidup itu.

1.1.4 4. Mulai Menulis Ulang Kisah Anda: Dua Langkah Praktis

Oke, jadi kita sudah sepakat bahwa "memaknai hidup" itu pada dasarnya adalah "proses debugging" versi mental. Sekarang, bagian praktisnya. Gimana cara saya actually nge-patch bug mental ini?

Sayangnya, saya nggak bisa git reset --hard ke masa lalu dan menghapus commit-commit yang memalukan. Tapi saya sadar saya punya kekuatan penuh untuk melakukan refactor. Saya bisa mengubah commit message di kepala saya, dari yang tadinya "Fix: Gue bego banget" menjadi "Refactor: Belajar tentang pentingnya titik koma dan kesabaran."

Dalam prosesnya, saya sadar saya menggunakan dua "langkah" atau "fungsi" utama untuk me-refactor narasi saya sendiri. (Yang ternyata, setelah saya baca-baca, mirip dengan apa yang disebut psikolog sebagai Terapi Naratif).

1.1.4.1 Langkah 1: Memisahkan ‘Saya’ dari ‘Masalah’ (Prinsip OOP untuk Hidup)

Dulu, kalau saya stuck sama masalah—misalnya, 'rasa malas' atau 'kecemasan'—narasi otomatis di kepala saya adalah: "Saya adalah seorang yang pencemas" atau "Saya ini pemalas."

Belakangan saya sadar, ini kodingan yang buruk. Ini membuat masalahnya hard-coded ke dalam core class Daniel. Masalah itu jadi properti yang immutable, jadi bagian dari identitas saya.

Jadi, saya coba terapkan prinsip Object-Oriented Programming (OOP) untuk hidup. Saya bukan 'Si Cemas'. Saya adalah Daniel, sebuah objek, yang sedang berinteraksi dengan objek lain bernama AnxietyBug.

Alih-alih berpikir Daniel.isAnxious = true, saya mengubah narasinya menjadi Daniel.handle(new AnxietyBug()).

Pergeseran bahasa yang sepele ini dampaknya raksasa buat saya. Kalau masalahnya itu adalah objek eksternal, berarti itu adalah sesuatu yang bisa saya amati perilakunya, saya pelajari properties-nya, dan saya cari method untuk mengatasinya (.handle(), .ignore(), atau .debug()). Masalahnya bukan lagi identitas saya; itu cuma bug ticket yang bisa dikelola.

1.1.4.2 Langkah 2: Mencari 'Unit Test' yang Lolos (Momen Berkilau Versi Saya)

Setelah saya berhasil memisahkan diri dari si bug (Langkah 1), 'narasi masalah' di kepala saya seringkali masih berisik. Narasi ini bilang: "Program ini selalu gagal. 100% crash. Nggak ada harapan."

Saya sadar: Ini bohong.

Maka, langkah kedua saya adalah menjadi Quality Assurance (QA) engineer untuk hidup saya sendiri. Tugas saya: mencari bukti yang bertentangan. Mencari unit test yang lolos.

Dalam psikologi, ini disebut unique outcomes. Saya menyebutnya "momen berkilau" atau "bukti kalau codebase-nya nggak sejelek itu."

Saya lalu aktif menantang narasi negatif itu dengan bukti spesifik. Pikiran saya bilang, "Lo pemalas, nggak pernah bisa produktif." Saya lawan dengan, "Ingat nggak minggu lalu pas deadline mepet, gue berhasil git push jam 2 pagi? Itu apa namanya kalau bukan produktif?"

Atau, "Lo payah dalam presentasi, BugCemas selalu menang." Saya balas, "Ingat nggak pas rapat UKM, gue bisa kasih ide dengan jelas dan orang-orang setuju?"

Momen-momen ini adalah test case yang membuktikan bahwa 'narasi masalah' itu salah besar. Mereka adalah bukti nyata bahwa codebase saya sebenarnya capable. Inilah bahan mentah yang saya gunakan untuk mulai menulis script baru yang lebih kuat.

1.1.5 5. Kesimpulan: Kisah Saya Adalah Perjalanan yang Terus Berlanjut

Pada akhirnya, saya sadar kalau saya adalah lead developer dari software yang bernama Daniel. Dan narasi atau 'cerita' yang saya tulis tentang diri saya? Itu bukan sekadar komentar di dalam kode. Itu adalah commit message yang menentukan bagaimana runtime environment (baca: realitas) saya berjalan.

Sebuah codebase yang sehat, seperti yang saya pelajari, ditandai oleh dua hal: Penebusan (kemampuan me-refactor bug terburuk menjadi feature terbaik) dan Agensi (kesadaran penuh bahwa sayalah yang memegang keyboard dan punya akses sudo ke hidup saya sendiri).

Tujuannya bukanlah untuk menulis sebuah software yang "sempurna" dan bebas bug. Itu mustahil. Proyek ini, 'Daniel v1.0', akan selalu berada dalam status perpetual beta. Akan selalu ada bug baru, akan selalu ada vulnerability yang tak terduga.

Tujuan sebenarnya adalah untuk terus punya keberanian coding. Terus berani membuka issue ticket baru, jujur mengakui bug, dan yang terpenting, terus menekan tombol git push. Ini bukan sprint satu malam. Ini adalah proyek seumur hidup dengan proses CI/CD—Continuous Improvement / Continuous Development. Perjalanan ini terus berlanjut.