Julia (bahasa pemrograman): Perbedaan antara revisi
Konten dihapus Konten ditambahkan
NikolasKHF (bicara | kontrib) kTidak ada ringkasan suntingan |
NikolasKHF (bicara | kontrib) Tidak ada ringkasan suntingan |
||
Baris 73:
Program Julia dapat menggunakan kembali [[Pustaka (perangkat lunak)|pustaka]] dari bahasa lain, seperti [[C (bahasa pemrograman)|C]] atau [[Rust (bahasa pemrograman)|Rust]], dengan cara memanggilnya. Selain itu, pustaka Julia juga dapat dipanggil melalui bahasa lain, seperti [[Python (bahasa pemrograman)|Python]] dan [[R (bahasa pemrograman)|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 [[Antarmuka baris perintah|baris perintah]] interaktif dengan [[gelung baca-evaluasi-cetak]] ({{lang-en|read-eval-print loop}}; REPL),<ref>{{Cite web|url=https://docs.julialang.org/en/v1/stdlib/REPL/|title=The Julia REPL · The Julia Language|website=docs.julialang.org|access-date={{date|2019-09-22}}|archive-date={{date|22 September 2019}}|archive-url=https://web.archive.org/web/20190922175929/https://docs.julialang.org/en/v1/stdlib/REPL/|url-status=live}}</ref> dengan riwayat yang dapat dicari, [[Penyelesaian baris perintah]], dan mode bantuan dan [[Cangkang (komputer)|cangkang]],<ref>{{Cite web|url=https://en.wikibooks.org/wiki/Introducing_Julia/The_REPL|title=Introducing Julia/The REPL - Wikibooks, open books for an open world|website=en.wikibooks.org|quote=you can install the Julia package OhMyREPL.jl [..] which lets you customize the REPL's appearance and behaviour|access-date=2019-09-22|archive-date=23 June 2019|archive-url=https://web.archive.org/web/20190623142710/https://en.wikibooks.org/wiki/Introducing_Julia/The_REPL|url-status=live}}</ref> yang dapat digunakan untuk bereksperimen dan mencoba kode secara cepat.<ref>{{Cite web|url=https://docs.julialang.org/en/v1/manual/getting-started/|title=Getting Started · The Julia Language|website=docs.julialang.org|language=en|access-date=2018-08-15|archive-date=10 August 2019|archive-url=https://web.archive.org/web/20190810173026/https://docs.julialang.org/en/v1/manual/getting-started/|url-status=live}}</ref> Potongan kode berikut merepresentasikan sesi contoh di mana [[untaian]] dapat dirangkai secara otomatis dengan <code>println</code>:
<syntaxhighlight lang="jlcon">
julia> p(x) = 2x^2 + 1; f(x, y) = 1 + 2p(x)y
julia> println("Hello world!", " I'm on cloud ", f(0, 4), " as Julia supports recognizable syntax!")
Hello world! I'm on cloud 9 as Julia supports recognizable syntax!
</syntaxhighlight>
Kemampuan REPL memberikan pengguna akses ke cangkang sistem dan ke mode bantuan masing-masing dengan menekan tombol <code>;</code> atau <code>?</code> setelah masukan (mendahului setiap perintah). REPL juga menyimpan riwayat perintah, termasuk riwayat antar sesi.<ref>{{Cite web|title=Julia Documentation|url=https://docs.julialang.org/|website=JuliaLang.org|access-date={{date|18 November 2014}}|archive-date={{date|17 December 2016}}|archive-url=https://web.archive.org/web/20161217182748/http://docs.julialang.org/|url-status=live}}</ref> Kode dapat diuji coba dalam sesi interaktif Julia atau disimpan dalam berkas dengan ekstensi <code>.jl</code> dan dijalankan dengan perintah baris per baris dengan mengetik:<ref name="Learn Julia in Y">{{Cite web |url=https://learnxinyminutes.com/docs/julia/ |title=Learn Julia in Y Minutes |website=Learnxinyminutes.com |access-date={{date|2017-05-31}} |archive-date={{date|15 August 2018}} |archive-url=https://web.archive.org/web/20180815232855/https://learnxinyminutes.com/docs/julia/ |url-status=live }}</ref>
<syntaxhighlight lang="console">
$ julia <nama_berkas>
</syntaxhighlight>
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 <code>\in</code> dan menekan {{keypress|TAB}}. Selain itu, pengguna juga dapat melakukan salin-tempel simbol, seperti {{not a typo|√ 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<ref>{{Cite web |title=Unicode 15.1 support by stevengj · Pull Request #253 · JuliaStrings/utf8proc |url=https://github.com/JuliaStrings/utf8proc/pull/253 |access-date={{date|2024-01-22}} |website=GitHub |language=en |archive-date={{date|22 January 2024}} |archive-url=https://web.archive.org/web/20240122212737/https://github.com/JuliaStrings/utf8proc/pull/253 |url-status=live }}</ref>)<ref>{{Cite web |title=support Unicode 15 via utf8proc 2.8 by stevengj · Pull Request #47392 · JuliaLang/julia |url=https://github.com/JuliaLang/julia/pull/47392 |access-date={{date|2022-11-03}} |website=GitHub |language=en |archive-date={{date|3 November 2022}} |archive-url=https://web.archive.org/web/20221103134225/https://github.com/JuliaLang/julia/pull/47392 |url-status=live }}</ref> 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 ''[[Project Jupyter|Jupyter]]'', sebuah lingkungan buku catatan daring interaktif.<ref>{{Cite web |url=https://jupyter.org/ |title=Project Jupyter |access-date={{date|19 August 2015}} |archive-date={{date|29 June 2017}} |archive-url=https://web.archive.org/web/20170629054445/https://jupyter.org/ |url-status=live }}</ref> 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''.<ref>{{Cite web|last=Boudreau|first=Emmett|date={{date|2020-10-16}}|title=Could Pluto Be A Real Jupyter Replacement?|url=https://towardsdatascience.com/could-pluto-be-a-real-jupyter-replacement-6574bfb40cc6|access-date={{date|2020-12-08}}|website=Medium|language=en|archive-date={{date|12 April 2023}}|archive-url=https://web.archive.org/web/20230412112240/https://towardsdatascience.com/could-pluto-be-a-real-jupyter-replacement-6574bfb40cc6|url-status=live}}</ref> Sebagai tambahan, sistem publikasi Quarto milik Posit (sebelum [[RStudio]] Inc.) mendukung Julia, [[Python (bahasa pemrograman)|Python]], [[R (bahasa pemrograman)|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.<ref>{{Cite web |last=Machlis |first=Sharon |date={{date|2022-07-27}} |title=RStudio changes name to Posit, expands focus to include Python and VS Code |url=https://www.infoworld.com/article/3668252/rstudio-changes-name-to-posit-expands-focus-to-include-python-and-vs-code.html |access-date={{date|2023-01-18}} |website=InfoWorld |language=en}}</ref><ref>{{Cite web |date={{date|2022-07-20}} |title=Heads up! Quarto is here to stay. Immediately combine R & Python in your next document: An extension on a recent post. |url=https://www.ds-econ.com/quarto/ |access-date={{date|2023-01-18}} |website=ds-econ |language=en |archive-date={{date|31 January 2023}} |archive-url=https://web.archive.org/web/20230131161337/https://www.ds-econ.com/quarto/ |url-status=live }}</ref>
REPL dapat dikembangkan dengan mode tambahan menggunakan paket, seperti mode [[SQL]]<ref>{{Cite web |first=Chris |last=Foster |title=SQLREPL.jl |website=[[GitHub]] |date={{date|2022-04-04}} |url=https://github.com/c42f/SQLREPL.jl |access-date={{date|2022-09-27}} |archive-date={{date|27 September 2022}} |archive-url=https://web.archive.org/web/20220927085821/https://github.com/c42f/SQLREPL.jl |url-status=live }}</ref> untuk akses [[basis data]], dan ''RCall.jl'' yang menambahkan {{nowrap|mode R}} untuk bekerja dengan bahasa pemrograman R.<ref>{{Cite web |title=Getting Started · RCall.jl |url=https://juliainterop.github.io/RCall.jl/latest/gettingstarted.html#Several-Ways-to-use-RCall-1 |access-date={{date|2022-09-27}} |website=juliainterop.github.io |archive-date={{date|4 September 2024}} |archive-url=https://web.archive.org/web/20240904035201/https://juliainterop.github.io/RCall.jl/latest/gettingstarted.html#Several-Ways-to-use-RCall-1 |url-status=live }}</ref>
===Penggunaan dengan bahasa lain===
Julia secara praktik [[interoperabilitas|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,<ref>{{Cite web |date={{date|2024-10-21}} |title=Julia crashes on installation of the RCall module |url=https://discourse.julialang.org/t/julia-crashes-on-installation-of-the-rcall-module/121560/6 |access-date={{date|2024-10-22}} |website=Julia Programming Language |language=en |quote=For me RCall loads without issue on Julia 1.11 on MacOS}}</ref> MATLAB, C# (dan bahasa .NET lainnya dengan ''DotNET.jl''), JavaScript, dan Java (dan bahasa JVM lainnya, seperti [[Scala (bahasa pemrograman)|Scala]] dengan ''JavaCall.jl''). Selain itu, Julia juga memiliki paket untuk memanggil Julia dari bahasa lain, seperti Python, R,<ref>{{Cite web |title=juliacall fails in julia 1.11 with 'undefined symbol: jl_stdout_obj' · Issue #234 · Non-Contradiction/JuliaCall |url=https://github.com/Non-Contradiction/JuliaCall/issues/234 |access-date={{date|2024-10-22}} |website=GitHub |language=en}}</ref> [[Rust (bahasa pemrograman)|Rust]], Ruby, atau C#. Julia juga digunakan untuk perangkat keras, dengan kode dikompilasi ke [[VHDL]] sebagai alat [[sintesis tingkat tinggi]], misalnya [[FPGA]].<ref name="HLS/FPGA">{{Cite arXiv|title=High-level Synthesis using the Julia Language |eprint=2201.11522 |quote=We present a prototype Julia HLS tool, written in Julia, that transforms Julia code to VHDL.|last1=Biggs |first1=Benjamin |last2=McInerney |first2=Ian |last3=Kerrigan |first3=Eric C. |last4=Constantinides |first4=George A. |year=2022 |class=cs.SE }}</ref>
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,<ref>{{Cite web |title=Home · LibPQ.jl |url=https://invenia.github.io/LibPQ.jl/stable/ |access-date={{date|2022-11-08}} |website=invenia.github.io |archive-date={{date|8 November 2022}} |archive-url=https://web.archive.org/web/20221108125236/https://invenia.github.io/LibPQ.jl/stable/ |url-status=dead }}</ref> Mongo,<ref name="FunSQL" />, Oracle, termasuk TimesTen,<ref>{{Cite web |last=Hood |first=Doug |date={{date|21 October 2022}} |title=Using Julia with Oracle Databases |url=https://blogs.oracle.com/timesten/post/using-julia-with-oracle-database |access-date={{date|8 November 2022}} |archive-date={{date|8 November 2022}} |archive-url=https://web.archive.org/web/20221108125241/https://blogs.oracle.com/timesten/post/using-julia-with-oracle-database |url-status=live }}</ref> MySQL, SQLite, Microsoft SQL Server,<ref name="FunSQL">{{Cite web |title=Home · FunSQL.jl |url=https://docs.juliahub.com/FunSQL/HGzDG/0.9.2/ |access-date={{date|2022-11-08}} |website=docs.juliahub.com |archive-date={{date|8 November 2022}} |archive-url=https://web.archive.org/web/20221108125240/https://docs.juliahub.com/FunSQL/HGzDG/0.9.2/ |url-status=live }}</ref> Amazon Redshift, Vertica, dan ODBC. Julia juga dapat digunakan dalam penggunaan web secara umum.<ref>{{Cite web |title=Genie Builder - Visual Studio Marketplace |url=https://marketplace.visualstudio.com/items?itemName=GenieBuilder.geniebuilder |access-date=2022-11-08 |website=marketplace.visualstudio.com |language=en-us |archive-date={{date|8 November 2022}} |archive-url=https://web.archive.org/web/20221108123305/https://marketplace.visualstudio.com/items?itemName=GenieBuilder.geniebuilder |url-status=live }}</ref><ref>{{Cite web |date={{date|2022-02-01}} |title=How to Build Your First Web App in Julia with Genie.jl |url=https://www.freecodecamp.org/news/how-to-build-web-apps-in-julia/ |access-date={{date|2022-11-08}} |website=freeCodeCamp.org |language=en |archive-date={{date|8 November 2022}} |archive-url=https://web.archive.org/web/20221108123305/https://www.freecodecamp.org/news/how-to-build-web-apps-in-julia/ |url-status=live }}</ref>
==Sistem paket==
Julia memiliki [[manajer paket]] bawaan yang dimasukkan dalam sistem registrasi bawaan.<ref>{{Cite web|url=https://github.com/JuliaRegistries/General|title=JuliaRegistries / General|website=[[GitHub]]|access-date={{date|2020-04-30}}|archive-date={{date|3 August 2020}}|archive-url=https://web.archive.org/web/20200803230347/https://github.com/JuliaRegistries/General|url-status=live}}</ref> Paket sering didistribusikan sebagai kode sumber yang dihos pada [[GitHub]], walaupun hos alternatif dapat digunakan juga. Paket juga dapat dipasang secara biner, menggunakan artifak.<ref>{{Cite web|url=https://julialang.github.io/Pkg.jl/dev/artifacts/|title=Pkg.jl - Artifacts|access-date=2020-06-04|archive-date={{date|2 August 2020}} |archive-url=https://web.archive.org/web/20200802205207/https://julialang.github.io/Pkg.jl/dev/artifacts/|url-status=live}}</ref> 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.<ref>{{Cite web|url=https://julialang.github.io/Pkg.jl/v1/registries/|title=Pkg.jl - Registries|access-date={{date|2020-04-30}}|archive-date={{date|13 June 2020}}|archive-url=https://web.archive.org/web/20200613144113/https://julialang.github.io/Pkg.jl/v1/registries/|url-status=live}}</ref>
== Referensi ==
|