Cari Tahu Yuk, Apa Itu Runtime dan Compile Time!
Ditulis oleh : Farhan Rivaldy
Artikel ini dibuat karena Saya sempat bingung seharian ketika membaca sebuah dokumentasi dari satu bahasa pemrograman yang membahas “Runtime”. Hah apa pula itu? Saya kan mau ngoding buat crud doang kenapa harus dihadapkan sama istilah sulit begini sih…
Tapi setelah mencoba untuk mengerti istilah sulit tersebut secara pelan-pelan ternyata ga sulit banget. Saya sendiri sering bergumam sendiri bila mengalami hal tersebut, tapi setelah mulai paham “OOOOOO gitu doang!, Easy Pizi” *sombong mode on
Saya kan mau ngoding buat crud doang kenapa harus dihadapkan sama istilah sulit begini sih…
Perkataan diatas mungkin seringkali Kita lontarkan ketika mengalami masalah tersebut. Saya rasa memang sudah naluri manusia untuk takut akan hal yang belum diketahuinya, karena kesombongan manusialah rasa takut tersebut Kita konversi menjadi kekesalanan yang berujung benci.
Selama bergelut didunia IT, mempelajari hal yang baru adalah hal yang lumrah, sebelum bisa belajar ke step tertinggi tentunya Kita harus ke step terendah terlebih dahulu, masa iya masak mie instan langsung jadi pastinya ada prosesnya kan.
Begitulah didunia IT, Kita harus step awalnya terlebih dahulu sebelum melangkahkan kaki ke step paling akhir, Pertanyaannya? step awalnya emang apa? jawabannya yaitu berkenalan dengan topik yang ingin dikuasai.
Sebelum masak mie instan, Kita harus tahu apa itu panci, kompor, piring dan lain sebagainya. Jika Kita sudah tahu tentu Saja Kita mempelajari cara mengoperasikannya. yah… Sama halnya di dunia IT kan? Saya yakin semua orang pasti begitu, mereka mulai dari step terendah terlebih dahulu, berkenalan dengan SDK itu apa, control flow itu bagaimana dan lain sebagainy,a ga mungkin kan baru awal belajar ngoding udah langsung bikin apps untuk product startup.
Back To The Topic!
Apa sih runtime dan compile time itu?
Ketika Kita mengembangkan sebuah aplikasi ada beberapa tahapan, pada artikel kali ini Kita hanya akan membahas runtime dan compile time saja. Perhatikan ilustrasi dibawah ini :

Saat Kita membuat kode di bahasa pemrograman java, maka Kita akan membuat sebuah file dengan ekstensi <namaFile.java>. Setelah kode yang Kita buat selesai Kita compile demgan Java Development Kit(JDK) menjadi <namaFile.class>. Setelah itu Kita compile menggunakan bantuan Java Virtual Machine (JVM) ke ByteCode, di bahasa pemrogaman lain biasa disebut Assembely Code, dan yang terakhir untuk mengubah ByteCode tadi ke bahasa mesin Kita perlu menggunakan bantuan Java Runtime Environment (JRE).
Proses dari yang awalnya <namaFile.java> berubah menjadi ByteCode disebut compile time, sedangkan proses mengubah ByteCode menjadi bahasa mesin disebun runtime. Terkesan ribet yah hehehe

Kalau masih bingung Kita sederhanakan deh,
Compile time :
Waktu dimana kode di bahasa pemrograman seperti (C#, Java, Kotlin, dsb) dikonversi ke kode mesin (bytecode/binarycode/machine language). Selama compile time, compiler akan mengecheck sintaks,, semantic dari kode yang Kita tulis.
Runtime
Waktu dimana program sedang berjalan dan umumnya terjadi setelah waktu kompilasi.
Prosesnya ribet juga yah? iya emang udah dari sananya PC / Laptop mu gak ngerti dengan bahasa pemrograman tapi mereka ngerti nya cuman bahasa mesin.
Hadirnya bahasa pemrograman dibantu dengan environmentnya (SDK, Installer, compiler, dsb) biar Kita mudah menuliskan kode yang lebih mudah dibaca manusia.

Jadi Kita tinggal ngikutin ketentuan dari bahasa pemrograman tersebut dan biarkan mereka yang mengatur sisanya.
Manfaat Kita mengetahui hal seperti ini apa?
Seperti yang Saya bilang sebelumnya, untuk melangkahkan kaki ke step paling akhir Kita harus mengetahui dulu dasar-dasarnya. pepatah mengatakan :
Tak kenal maka tak sayang
Kalau teman-teman langsung belajar masak tapi ga tahu apa itu kompor dan bagaimana cara mengoperasikannya, bisa-bisa ditengah perjalanan teman-teman memasak ketika kompornya bermasalah pasti akan kebingungan.
Inilah yang terjadi pada Saya ketika membaca sebuah dokumentasi kemarin, alhasil bingung seharian dan mulai coba untuk membaca pengertian apa itu compile time dan runtime.
Mungkin banyak juga orang seperti Saya. Apa itu salah? Yah gak juga, setiap orang pasti pernah memiliki kesalahan dalam belajar, melakukan kesalahan itu wajar, asal Kita mau memperbaiki kesalahan tersebut.
Jangan mau jadi software engineer yang skillnya hanya crud-crud tok, bisa make tech ini itu giliran disuruh jelasin secara teknis malah ga bisa jawab.
Yuk sama-sama mengupgrade diri :)
PENUTUP
Pada artikel ini Saya rasa cukup sampai disini saja dulu, bila teman-teman ada hal yang ingin dibahas silahkan komentar dibawah…
Kurang lebihnya mohon dimaafkan, bila ada saran dan kritik sangat dipersilahkan sekali demi menambah wawasan setiap orang yang membaca artikel ini.
Jangan lupa follow akun medium Saya Farhan Rivaldy dan DSC Mulia University agar bisa mendapatkan pengetahuan lainnya.
Sekian dan terima kasih
じゃあね ー See you

“Kekuatan sejati dari umat manusia adalah bahwa kita memiliki kuasa penuh untuk mengubah diri kita sendiri.” — Saitama