Apa itu runtime?
Runtime adalah bagian dari kode yang menjalankan sebagian model eksekusi dari sebuah bahasa pemrograman. Dengan melakukan hal ini, runtime memungkinkan program berinteraksi dengan sumber daya komputasi yang dibutuhkannya agar bisa berjalan. Runtime biasanya menjadi bagian integral dari bahasa pemrograman dan tidak perlu diinstal secara terpisah.
Runtime juga merujuk pada waktu ketika sebuah program sedang berjalan. Artinya, ketika kamu menjalankan sebuah program di komputer, itulah yang disebut runtime untuk program tersebut. Dalam beberapa bahasa pemrograman, program-program yang dapat digunakan kembali atau “rutin” tertentu dibangun dan dikemas sebagai “runtime library.” Rutin-rutin ini bisa ditautkan dan digunakan oleh program apa pun saat sedang dijalankan.
Programmer kadang membedakan antara apa yang dimasukkan ke dalam program saat dikompilasi dan apa yang dimasukkan atau digunakan saat runtime. Yang pertama ini biasa disebut sebagai compile time.
Bagaimana cara kerja runtime?
Runtime adalah salah satu tahap dalam siklus hidup pemrograman. Ini adalah waktu di mana program dijalankan bersamaan dengan semua instruksi eksternal yang dibutuhkan untuk eksekusinya yang benar. Beberapa dari instruksi eksternal ini disebut runtime system atau runtime environment dan sudah menjadi bagian dari bahasa pemrogramannya.
Sebuah runtime system menciptakan lapisan di atas sistem operasi (OS) yang berisi program-program lain untuk menangani tugas-tugas agar program utama bisa berjalan. Program-program lain ini bertugas mengalokasikan memori untuk program utama dan menjadwalkannya.
Saat aplikasi berada pada tahap runtime, file executable dari program akan dimuat ke dalam RAM, bersamaan dengan file lain yang dibutuhkan program. File-file ini bisa termasuk kode yang tidak ditulis oleh pengguna tetapi tetap bekerja di latar belakang untuk membuat program berjalan. Kode tersebut akan dikirim ke prosesor komputer untuk diubah menjadi machine code, dan kemudian akan menggerakkan perangkat keras untuk menjalankan program tersebut.
Berikut adalah contoh sederhana dari runtime system yang ditulis menggunakan bahasa pemrograman BASIC (Beginner’s All-purpose Symbolic Instruction Code):
] 10 PRINT "HELLO" ] 20 GOTO 10
Kode di atas adalah source code. BASIC adalah bahasa pemrograman interpretatif, yang artinya instruksinya bisa langsung dijalankan tanpa perlu dikompilasi dulu menjadi versi runtime. Untuk menjalankan program dan mencetak kata Hello, programmer akan menambahkan satu perintah BASIC lainnya:
] RUN
Inilah yang disebut runtime system. Ia adalah program tersendiri yang membuat lapisan antara OS pengguna dan source code. Ia menciptakan runtime environment yang dibutuhkan agar source code bisa berinteraksi dengan OS. Lapisan ini akan memberi tahu komputer bagaimana membaca dan menjalankan source code, serta mengirimkan permintaan ke OS.
Kesalahan runtime
Banyak pengguna pertama kali mengenal istilah runtime dalam konteks runtime error. Ini mengacu pada masalah dalam program yang menyebabkan eksekusinya gagal saat runtime karena ada komponen yang rusak, hilang, atau tidak kompatibel.
Runtime error bisa terjadi karena berbagai alasan. Contohnya antara lain:
- Sumber daya sistem tidak mencukupi. Jika memori tidak cukup untuk menjalankan program, maka runtime environment tidak bisa bekerja. Program kemungkinan besar akan berhenti dan menampilkan pesan error.
- Kesalahan dalam penulisan kode. Sebuah bug dalam perangkat lunak bisa menyebabkan runtime error.
- Dependency rusak. Jika ada koneksi ke aplikasi lain yang dibutuhkan program dan koneksi tersebut rusak, maka bisa terjadi error.
Runtime environment biasanya akan menampilkan notifikasi yang memberi tahu penyebab crash atau di bagian mana error terjadi dalam program. Programmer mungkin harus melakukan debugging secara manual atau menggunakan tool tertentu untuk menemukan akar masalah runtime error tersebut.
Perbedaan istilah runtime
Istilah runtime memiliki banyak makna dalam ilmu komputer. Ia bisa merujuk ke status program, jenis program, atau waktu saat program dijalankan.
Penggunaan utama istilah runtime adalah untuk menggambarkan runtime environment — yaitu kode yang memungkinkan sebuah program berjalan. Namun, istilah ini juga digunakan dalam berbagai konteks lain di pemrograman:
- Digunakan sebagai kata benda untuk menyebut fase akhir dari siklus hidup program ketika program dijalankan (seperti dijelaskan di atas).
- Jika ditulis terpisah sebagai run time, maka artinya adalah durasi waktu eksekusi program.
- Dapat digunakan sebagai kata sifat untuk menjelaskan proses-proses yang terjadi saat fase runtime. Contohnya adalah runtime error dan runtime metrics.
- Juga digunakan untuk menyebut program-program lain — termasuk runtime environment, runtime system, dan runtime library — yang memungkinkan program utama berjalan. Semuanya ini secara kolektif bisa disebut sebagai runtimes.
Runtime system
Runtime system adalah perangkat lunak yang disertakan dalam bahasa pemrograman sebagai bagian dari model eksekusi. Ia menciptakan lapisan (seperti dijelaskan sebelumnya) di atas OS yang berisi program-program lain untuk membantu menjalankan program utama.
Istilah runtime system sering digunakan bergantian dengan runtime environment. Keduanya berperan sebagai mini OS yang menyediakan semua fungsi yang dibutuhkan program agar bisa berjalan.
Runtime environment
Runtime environment didefinisikan secara lebih luas sebagai lingkungan tempat program dijalankan. Dalam runtime environment, OS termasuk ke dalamnya, bersama perangkat keras dan memori. Runtime environment lebih sering digunakan dalam konteks operasi TI, bukan dalam pengembangan aplikasi.
Runtime library
Runtime library adalah sekumpulan rutin level rendah yang spesifik terhadap platform dan kompiler, yang digunakan kompiler untuk mengirimkan instruksi ke runtime environment agar program bisa berjalan.
Contoh runtime system dan environment
Runtime environment melakukan berbagai tugas tingkat rendah, seperti eksekusi paralel, input/output dari disk, penjadwalan tugas, garbage collection, atau manajemen sumber daya. Mereka juga dapat menjalankan perintah tingkat tinggi seperti pengecekan tipe data, debugging, dan optimisasi kode.
Berikut ini adalah tiga contoh runtime environment:
- Java Runtime Environment (JRE) dibutuhkan untuk menjalankan program Java, dan memungkinkan Java bekerja di berbagai sistem operasi. JRE menangani tugas dasar seperti memuat class library, memverifikasi akses memori, dan mengambil sumber daya sistem.
- Common Language Runtime (CLR) adalah runtime environment dari Microsoft .NET Framework. Ia adalah mesin virtual yang menjalankan dan mengelola kode untuk berbagai layanan tingkat tinggi seperti pengaturan objek dan manajemen referensi objek. CLR juga memiliki garbage collector untuk menangani kebocoran memori dan error pemrograman lainnya. Seperti runtime environment lainnya, CLR mengkompilasi kode intermediate menjadi machine code yang dapat dibaca oleh OS.
- Adobe Flash Player adalah contoh runtime environment lainnya yang umum digunakan. Adobe Flash Player menggunakan runtime untuk menjalankan kode Flash di berbagai OS dan perangkat.