- Source: Julia (bahasa pemrograman)
Julia adalah bahasa pemrograman tingkat tinggi, tujuan umum, dan dinamis. Bahasa pemrograman ini didesain agar cepat dan produktif, dan digunakan untuk ilmu data, kecerdasan buatan, pemelajaran mesin, modeling dan simulasi, dan biasanya digunakan dalam analisis numerik dan ilmu komputasi.
Aspek yang membedakan Julia adalah sistem tipe dengan polimorfisme parametrik dan penggunaan pengiriman ganda sebagai paradigma pemrograman utama. Selain itu, Julia juga menggunakan kompilator just-in-time (JIT), dukungan kompilasi sebelumnya dan pengumpulan sampah yang efisien. Julia juga tidak mendukung kelas dengan metode terwadahi dan mengandalkan structs dengan fungsi atau metode umum yang tidak terikat pada struktur tersebut.
Secara bawaan, Julia berjalan seperti bahasa scripting, menggunakan waktu eksekusinya dan memperbolehkan interaksi. Namun, program atau kode sumber Julia dapat juga secara opsional dikirim ke pengguna dalam satu berkas yang siap dijalankan, tanpa perlu apa pun untuk dipasang di komputer pengguna. Program Julia juga dapat dikompilasi secara terpisah menjadi program yang dapat dieksekusi, tanpa perlu distribusi kode sumber. Kompilasi tersebut tidak dibutuhkan untuk kecepatan eksekusi, tapi dapat mengurangi biaya eksekusi awal. Hal ini karena program Julia juga dikompilasi ketika dijalankan secara interaktif.
Program Julia dapat menggunakan kembali pustaka dari bahasa lain, seperti C atau Rust, dengan cara memanggilnya. Selain itu, pustaka Julia juga dapat dipanggil melalui bahasa lain, seperti Python dan R, dengan beberapa paket Julia telah dibuat dalam bentuk pustaka dalam bahasa tersebut. Pemanggilan pustaka dalam dua arah juga telah diimplementasikan dalam banyak bahasa, termasuk C++.
Interaksi
Distribusi resmi Julia memasukkan baris perintah interaktif dengan gelung baca-evaluasi-cetak (bahasa Inggris: read-eval-print loop; REPL), dengan riwayat yang dapat dicari, Penyelesaian baris perintah, dan mode bantuan dan cangkang, yang dapat digunakan untuk bereksperimen dan mencoba kode secara cepat. Potongan kode berikut merepresentasikan sesi contoh di mana untaian dapat dirangkai secara otomatis dengan println:
Kemampuan REPL memberikan pengguna akses ke cangkang sistem dan ke mode bantuan masing-masing dengan menekan tombol ; atau ? setelah masukan (mendahului setiap perintah). REPL juga menyimpan riwayat perintah, termasuk riwayat antar sesi. Kode dapat diuji coba dalam sesi interaktif Julia atau disimpan dalam berkas dengan ekstensi .jl dan dijalankan dengan perintah baris per baris dengan mengetik:
Julia menggunakan kode UTF-8 dan LaTeX, yang memungkinkan Julia untuk mendukung simbol matematika umum sebagai operator, seperti ∈ sebagai operator himpunan masuk, yang dapat diketik dengan memasukkan \in dan menekan Tab ↹. Selain itu, pengguna juga dapat melakukan salin-tempel simbol, seperti √ dan ∛ untuk fungsi akar kuadrat dan akar pangkat tiga. Julia mendukung rilis mayor Unicode 15.0 terbaru. Julia 1.11-DEV mendukung versi Unicode 15.1) untuk bahasa yang digunakan, bahkan untuk kode sumber seperti nama variabel walaupun direkomendasikan untuk menggunakan bahasa Inggris untuk kode publik, seperti nama paket.
Julia didukung oleh Jupyter, sebuah lingkungan buku catatan daring interaktif. Selain itu, terdapat juga sebuah "buku catatan reaktif" Pluto.jl yang menyimpan buku catatan dalam berkas Julia murni, sebagai salah satu opsi pengganti untuk Jupyter. Sebagai tambahan, sistem publikasi Quarto milik Posit (sebelum RStudio Inc.) mendukung Julia, Python, R, dan Observable JavaScript. Bahasa-bahasa tersebut didukung secara resmi oleh Posit, bahkan dapat digunakan bersamaan dalam buku catatan yang sama; bahasa lain didukung secara tidak resmi.
REPL dapat dikembangkan dengan mode tambahan menggunakan paket, seperti mode SQL untuk akses basis data, dan RCall.jl yang menambahkan mode R untuk bekerja dengan bahasa pemrograman R.
= Penggunaan dengan bahasa lain
=Julia secara praktik interoperabel dengan bahasa lain, bahkan untuk mayoritas 20 bahasa terpopuler. Julia dapat digunakan untuk memanggil fungsi pustaka bersama secara sendiri-sendiri, seperti yang ditulis dengan C atau Fortran. Terdapat juga paket yang tersedia untuk memanggil bahasa lain (yang tidak memiliki fungsi yang diekspor dari C secara langsung), seperti Python (dengan PythonCall.jl), R, MATLAB, C# (dan bahasa .NET lainnya dengan DotNET.jl), JavaScript, dan Java (dan bahasa JVM lainnya, seperti Scala dengan JavaCall.jl). Selain itu, Julia juga memiliki paket untuk memanggil Julia dari bahasa lain, seperti Python, R, Rust, Ruby, atau C#. Julia juga digunakan untuk perangkat keras, dengan kode dikompilasi ke VHDL sebagai alat sintesis tingkat tinggi, misalnya FPGA.
Julia memiliki paket yang mendukung bahasa markah, seperti HTML (dan juga HTTP), XML, JSON, dan BSON. Paket-paket lain juga tersedia, misalnya untuk mendukung basis data, seperti PostgreSQL, Mongo,, Oracle, termasuk TimesTen, MySQL, SQLite, Microsoft SQL Server, Amazon Redshift, Vertica, dan ODBC. Julia juga dapat digunakan dalam penggunaan web secara umum.
Sistem paket
Julia memiliki manajer paket bawaan yang dimasukkan dalam sistem registrasi bawaan. Paket sering didistribusikan sebagai kode sumber yang dihos pada GitHub, walaupun hos alternatif dapat digunakan juga. Paket juga dapat dipasang secara biner, menggunakan artifak. Paket manajer Julia digunakan untuk mengueri dan mengompilasi paket, sekaligus untuk mengelola lingkungan. Registrasi paket bebas juga didukung, memungkinkan registrasi paket di luar paket resmi yang ditambahkan secara lokal.
Referensi
Bacaan lebih lanjut
Nagar, Sandeep (2017). Beginning Julia Programming: For Engineers and Scientists. Springer. ISBN 978-1-4842-3171-5.
Bezanson, J; Edelman, A; Karpinski, S; Shah, V. B (2017). "Julia: A fresh approach to numerical computing". SIAM Review. 59 (1): 65–98. arXiv:1411.1607 . CiteSeerX 10.1.1.760.8894 . doi:10.1137/141000671.
Joshi, Anshul (2016). Julia for Data Science - Explore the world of data science from scratch with Julia by your side. Packt. ISBN 978-1-78355-386-0.
Driscoll, Tobin A.; Braun, Richard J. (Agustus 2022). Fundamentals of Numerical Computation: Julia Edition. SIAM. ISBN 978-1-611977-00-4.
Kelley, C. T. (2022). Solving Nonlinear Equations with Iterative Methods: Solvers and Examples in Julia. SIAM. ISBN 978-1-611977-26-4.
Kalicharan, Noel (2021). Julia - Bit by Bit. Undergraduate Topics in Computer Science. Springer. doi:10.1007/978-3-030-73936-2. ISBN 978-3-030-73936-2.
Heitzinger, Clemens (2022). Algorithms with Julia. Springer. ISBN 978-3-031-16559-7.
Pranala luar
Situs web resmi
Repositori Julia (bahasa pemrograman) di GitHub