Lompat ke isi

GNU Octave: Perbedaan antara revisi

Ensiklopedia Pengetahuan Universitas Islam Sultan Agung
Maintenance script (bicara | kontrib)
Impor teks terkontrol dari Wikipedia bahasa Indonesia; revisi 29459440; atribusi sumber disertakan.
 
Maintenance script (bicara | kontrib)
Presentation V4: sitasi, referensi, Math, Wikimedia Commons, dan atribusi
 
Baris 1: Baris 1:
'''GNU Octave''' adalah [[perangkat lunak bebas]] [[GNU]] yang dipakai untuk [[analisis numerik]], dan setara dengan kemampuan [[perangkat lunak]] [[MATLAB]]. Octave dapat menyelesaikan permasalahan [[Lincoln Near-Earth Asteroid Research|linear]] dan nonlinear secara numerik dengan menggunakan bahasa yang [[#MATLAB|kompatibel dengan MATLAB]]. Perangkat lunak ini juga dapat digunakan sebagai bahasa [[pemrosesan tumpak]]. Sebagai bagian dari [[GNU Project]], Octave adalah [[perangkat lunak bebas]] dengan lisensi [[Lisensi Publik Umum GNU]].
'''GNU Octave''' adalah [[perangkat lunak bebas]] [[GNU]] yang dipakai untuk [[analisis numerik]], dan setara dengan kemampuan [[perangkat lunak]] [[MATLAB]]. Octave dapat menyelesaikan permasalahan [[Lincoln Near-Earth Asteroid Research|linear]] dan nonlinear secara numerik dengan menggunakan bahasa yang [[#MATLAB|kompatibel dengan MATLAB]]. Perangkat lunak ini juga dapat digunakan sebagai bahasa [[pemrosesan tumpak]]. Sebagai bagian dari [[GNU Project]], Octave adalah [[perangkat lunak bebas]] dengan lisensi [[Lisensi Publik Umum GNU]].


Karena Octave memiliki Lisensi Publik GNU, maka Octave dapat dimodifikasi, disalin, dan digunakan secara bebas. Program ini berjalan di [[Microsoft Windows]] dan kebanyakan [[sistem operasi]] [[Unix]] dan [[mirip Unix]], termasuk [[Linux]], [[Android (sistem operasi)|Android]], dan [[macOS]].
Karena Octave memiliki Lisensi Publik GNU, maka Octave dapat dimodifikasi, disalin, dan digunakan secara bebas.<ref>John W Eaton. [https://www.gnu.org/software/octave/about.html About Octave].</ref> Program ini berjalan di [[Microsoft Windows]] dan kebanyakan [[sistem operasi]] [[Unix]] dan [[mirip Unix]], termasuk [[Linux]], [[Android (sistem operasi)|Android]], dan [[macOS]].<ref>[http://www.octave.org/wiki/index.php?title=FAQ#On_what_platforms_does_Octave_run.3F FAQ: Getting Octave].</ref><ref>[https://octave.org/doc/v6.3.0/ Top (GNU Octave (version 6.3.0))]. ''octave.org''.</ref><ref>[https://wiki.octave.org/Octave_for_Android Octave for Android - Octave]. ''wiki.octave.org''.</ref>


GNU Octave biasanya digunakan untuk komputasi ilmiah pribadi, akademis, dan industri. Misalnya, GNU Octave digunakan pada [[Komputasi paralel|paralel]] komputer besar di [[Pittsburgh Supercomputing Center]] untuk mencari kerentanan yang berhubungan dengan teknik penebakan [[nomor Jaminan Sosial]]. Akselerasi dengan [[OpenCL]] atau [[CUDA]] juga dapat dilakukan dengan penggunaan GPU.
GNU Octave biasanya digunakan untuk komputasi ilmiah pribadi, akademis, dan industri. Misalnya, GNU Octave digunakan pada [[Komputasi paralel|paralel]] komputer besar di [[Pittsburgh Supercomputing Center]] untuk mencari kerentanan yang berhubungan dengan teknik penebakan [[nomor Jaminan Sosial]].<ref>[http://www.hpcwire.com/industry/government/Social-Security-Number-Vulnerability-Findings-Relied-on-Supercomputing-50292227.html Social Security Number Vulnerability Findings Relied on Supercomputing].</ref> Akselerasi dengan [[OpenCL]] atau [[CUDA]] juga dapat dilakukan dengan penggunaan GPU.<ref>[https://developer.nvidia.com/blog/drop-in-acceleration-gnu-octave/ Drop-in Acceleration of GNU Octave]. ''NVIDIA Developer Blog''.</ref>


==Sejarah==
==Sejarah==
Proyek GNU Octave diawali sekitar tahun 1988. Awalnya, proyek ini dimaksudkan sebagai pendamping mata kuliah desain reaktor kimia. Pengembangan penuh dimulai oleh John W. Eaton pada tahun 1992. [[Daur hidup rilis perangkat lunak#Alfa|Versi alfa]] pertama dirilis pada 4 Januari 1993 dan versi 1.0 dirilis pada tanggal 17 Februari 1994.
Proyek GNU Octave diawali sekitar tahun 1988.<ref>[https://www.gnu.org/software/octave/about.html About GNU Octave]. ''www.gnu.org''. GNU.</ref> Awalnya, proyek ini dimaksudkan sebagai pendamping mata kuliah desain reaktor kimia. Pengembangan penuh dimulai oleh John W. Eaton pada tahun 1992. [[Daur hidup rilis perangkat lunak#Alfa|Versi alfa]] pertama dirilis pada 4 Januari 1993 dan versi 1.0 dirilis pada tanggal 17 Februari 1994.


Nama program ini diambil dari [[Octave Levenspiel]], mantan profesor dari pengembang utama. Levenspiel dikenal oleh karena kemampuannya melakukan [[perhitungan belakang-surat]] dengan cepat.
Nama program ini diambil dari [[Octave Levenspiel]], mantan profesor dari pengembang utama. Levenspiel dikenal oleh karena kemampuannya melakukan [[perhitungan belakang-surat]] dengan cepat.<ref>John W Eaton. [https://www.gnu.org/software/octave/about.html About Octave].</ref>


=== Lini waktu pengembangan ===
=== Lini waktu pengembangan ===
 
{| class="wikitable"
|-
! Waktu !! Keterangan
|-
|style="text-align: right; white-space: nowrap;"| 1988/1989 || Diskusi pertama (buku dan perangkat lunak)
|-
|style="text-align: right; white-space: nowrap;"| Februari 1992 || Pengembangan dimulai
|-
|style="text-align: right; white-space: nowrap;"| Januari 1993 || Berita di web (version 0.60)
|-
|style="text-align: right; white-space: nowrap;"| Februari 1994 || Publikasi pertama (versi 1.0.0 ke 1.1.1)<ref>[https://www.gnu.org/software/octave/NEWS-1.html GNU Octave Version 1]. ''www.gnu.org''.</ref>
|-
|style="text-align: right; white-space: nowrap;"| Desember 1996 || Publikasi kedua (versi 2.0.x) dengan ''[[porting]]'' ke [[Windows]] ([[Cygwin]])<ref>[https://www.gnu.org/software/octave/NEWS-2.html GNU Octave Version 2]. ''www.gnu.org''.</ref>
|-
|style="text-align: right; white-space: nowrap;"| Desember 2007 || Publikasi versi 3.0 (''[[Tonggak pencapaian|Milestone]]'')<ref>[https://www.gnu.org/software/octave/NEWS-3.html GNU Octave Version 3]. ''www.gnu.org''.</ref>
|-
|style="text-align: right; white-space: nowrap;"| 29 Mei 2015 || Versi 4.0.0 ([[Antarmuka pengguna grafis|GUI]] stabil dan sintaks baru untuk [[Pemrograman berorientasi objek|OOP]])<ref>[https://www.gnu.org/software/octave/NEWS-4.0.html GNU Octave Version 4.0]. ''www.gnu.org''.</ref><ref>[https://www.gnu.org/software/octave/news/release/2015/05/29/octave-4.0.0-released.html GNU Octave 4.0.0 Released]. ''www.gnu.org''.</ref><ref>[https://www.gnu.org/software/octave/news/release/2016/03/23/octave-4.0.1-released.html GNU Octave 4.0.1 Released]. ''www.gnu.org''.</ref><ref>[https://www.gnu.org/software/octave/news/release/2016/07/02/octave-4.0.3-released.html GNU Octave 4.0.3 Released]. ''www.gnu.org''.</ref>
|-
|style="text-align: right; white-space: nowrap;"| 1 Maret 2019 || Publikasi Octave 5.1.0 (penggunaan minimum Qt 4.8, rekomendasi Qt 5), dukungan hiDpi<ref>[https://www.gnu.org/software/octave/NEWS-5.1.html GNU Octave Version 5]. ''www.gnu.org''.</ref>
|-
|style="text-align: right; white-space: nowrap;"| 26 November 2020 || Publikasi Octave 6.1.0 (rekomendasi penggunaan QT5, Qt 4.x ditinggalkan dan akan dihapus pada versi 7)<ref>[https://www.gnu.org/software/octave/news/release/2020/11/26/octave-6.1.0-released.html GNU Octave 6.1.0 Released]. ''www.gnu.org''.</ref>
|-
|style="text-align: right; white-space: nowrap;"| 6 April 2022 || Publikasi Octave 7.1.0 (rekomendasi penggunaan QT5), peningkatan ''[[Bagian depan dan bagian belakang (komputasi)#Bagian belakang|backend]]'' grafik dan kompatibilitas MATLAB<ref>[https://www.gnu.org/software/octave/news/release/2022/04/06/octave-7.1.0-released.html GNU Octave 7.1.0 Released]. ''www.gnu.org''. 6 April 2022.</ref>
|-
|style="text-align: right; white-space: nowrap;"| 7 Maret 2023 || Publikasi Octave 8.1.0, peningkatan ''back-end'' grafik dan kompatibilitas MATLAB.<ref>[https://octave.org/news/release/2023/03/07/octave-8.1.0-released.html GNU Octave 8.1.0 Released]. ''octave.org''. 7 Maret 2023.</ref>
|-
|style="text-align: right; white-space: nowrap;"| 14 Maret 2024 || Publikasi Octave 9.1.0, peningkatan umum, kompatibilitas MATLAB, dan grafik.<ref>[https://octave.org/NEWS-9.html GNU Octave Version 9]. ''octave.org''.</ref>
|-
|style="text-align: right; white-space: nowrap;"| 7 Juni 2024 || Publikasi Octave 9.2.0, perbaikan [[Kutu (komputer)|kutu]] dan GUI.<ref>[https://octave.org/news/release/2024/06/07/octave-9.2.0-released.html Octave 9.2.0 released]. ''octave.org''. 7 Juni 2024.</ref>
|}


==Detail teknis==
==Detail teknis==
Baris 17: Baris 46:


===Antarmuka pengguna grafis===
===Antarmuka pengguna grafis===
GNU Octave memiliki antarmuka pengguna grafis (GUI) dan sebuah [[Lingkungan pengembangan terpadu]] (; IDE) yang ditulis dengan [[Qt]]. GUI ini telah tersedia sejak GNU Octave 3.8, dan menjadi antarmuka bawaan (di atas [[antarmuka baris perintah]]) di rilis GNU Octave versi 4.0.
GNU Octave memiliki antarmuka pengguna grafis (GUI) dan sebuah [[Lingkungan pengembangan terpadu]] (; IDE) yang ditulis dengan [[Qt]]. GUI ini telah tersedia sejak GNU Octave 3.8,<ref>[https://www.gnu.org/software/octave/NEWS-3.8.html GNU Octave Version 3.8]. ''www.gnu.org''.</ref> dan menjadi antarmuka bawaan (di atas [[antarmuka baris perintah]]) di rilis GNU Octave versi 4.0.<ref>[https://www.gnu.org/software/octave/NEWS-4.0.html GNU Octave Version 4.0]. ''www.gnu.org''.</ref>


GUI ini mendapatkan respons positif oleh kontributor EDN yang menulis "(GNU Octave) sekarang memiliki GUI yang dapat digunakan" saat meninjau GUI yang saat itu baru pada tahun 2014.
GUI ini mendapatkan respons positif oleh kontributor EDN yang menulis "(GNU Octave) sekarang memiliki GUI yang dapat digunakan" saat meninjau GUI yang saat itu baru pada tahun 2014.<ref>Steve Hageman. [http://www.edn.com/electronics-blogs/the-practicing-instrumentation-engineer/4428091/GNU-Octave-hits-a-high-note GNU Octave hits a high note]. ''EDN''.</ref>


Beberapa grafis bagian depan juga telah dikembangkan, seperti [[Toolbox (perangkat lunak)|ToolboX]] untuk pendidikan koding.
Beberapa grafis bagian depan juga telah dikembangkan, seperti [[Toolbox (perangkat lunak)|ToolboX]] untuk pendidikan koding.


===Bahasa===
===Bahasa===
Octave adalah [[bahasa pemrograman]] terjemahan. Bahasa ini adalah bahasa [[pemrograman terstruktur]] (mirip dengan [[C (programming language)|C]]), mendukung banyak fungsi umum di [[pustaka dasar C]], dan beberapa pemanggilan sistem dan fungsi [[POSIX|UNIX]]. Namun, Octave tidak mendukung mentransfer argumen dengan referensi, meskipun argumen fungsi bersifat [[salin saat tulis]] untuk menghindari duplikasi yang tidak diinginkan.
Octave adalah [[bahasa pemrograman]] terjemahan. Bahasa ini adalah bahasa [[pemrograman terstruktur]] (mirip dengan [[C (programming language)|C]]), mendukung banyak fungsi umum di [[pustaka dasar C]], dan beberapa pemanggilan sistem dan fungsi [[POSIX|UNIX]].<ref>[http://www.network-theory.co.uk/docs/octave3/octave_269.html GNU Octave - Controlling subprocesses].</ref> Namun, Octave tidak mendukung mentransfer argumen dengan referensi,<ref>[http://www.delorie.com/gnu/docs/octave/octave_105.html GNU Octave].</ref> meskipun argumen fungsi bersifat [[salin saat tulis]] untuk menghindari duplikasi yang tidak diinginkan.


Program Octave berisi daftar pemanggilan fungsi atau [[Bahasa skrip|skrip]]. [[Sintaksis|Sintaks]] yang digunakan berdasarkan [[Pemrograman larik|matriks]] dan memberikan beberapa fungsi untuk operasi matriks. Bahasa ini mendukung berbagai [[struktur data]] dan memperbolehkan [[pemrograman berorientasi objek]]. Sintaks yang digunakan Octave sangat mirip dengan [[MATLAB]]. Maka dari itu, banyak fungsi yang ditulis dengan hati-hati dapat berjalan di Octave maupun MATLAB.
Program Octave berisi daftar pemanggilan fungsi atau [[Bahasa skrip|skrip]]. [[Sintaksis|Sintaks]] yang digunakan berdasarkan [[Pemrograman larik|matriks]] dan memberikan beberapa fungsi untuk operasi matriks. Bahasa ini mendukung berbagai [[struktur data]] dan memperbolehkan [[pemrograman berorientasi objek]].<ref>[https://www.gnu.org/software/octave/NEWS-3.2.html Summary of important user-visible changes for version 3.2].</ref> Sintaks yang digunakan Octave sangat mirip dengan [[MATLAB]]. Maka dari itu, banyak fungsi yang ditulis dengan hati-hati dapat berjalan di Octave maupun MATLAB.<ref>[http://www.octave.org/wiki/index.php?title=FAQ#Porting_programs_from_Matlab_to_Octave FAQ: MATLAB compatibility].</ref>


=== Paket fungsi ===
=== Paket fungsi ===
Baris 40: Baris 69:
Octave menganggap inkompatibilitas dengan MATLAB sebagai [[Kutu (komputer)|kutu]]. Maka dari itu, Octave dianggap sebagai klon perangkat lunak, yang tidak melanggar [[hak cipta]] perangkat lunak.
Octave menganggap inkompatibilitas dengan MATLAB sebagai [[Kutu (komputer)|kutu]]. Maka dari itu, Octave dianggap sebagai klon perangkat lunak, yang tidak melanggar [[hak cipta]] perangkat lunak.


Skrip MATLAB yang ditemukan pada repository ''FileExchange'' milik [[MathWorks]] secara prinsip kompatibel dengan Octave. Namun, ketika skrip tersebut diunggah atau diberikan oleh pengguna di bawah lisensi yang kompatibel dengan [[lisensi BSD]] atau lisensi sumber terbuka, [[EULA|kebijakan penggunaan]] FileExchange melarang penggunaan skrip tersebut di luar [[Perangkat lunak milik perorangan|perankat lunak milik]] MathWorks, MATLAB.
Skrip MATLAB yang ditemukan pada repository ''FileExchange'' milik [[MathWorks]] secara prinsip kompatibel dengan Octave. Namun, ketika skrip tersebut diunggah atau diberikan oleh pengguna di bawah lisensi yang kompatibel dengan [[lisensi BSD]] atau lisensi sumber terbuka, [[EULA|kebijakan penggunaan]] FileExchange melarang penggunaan skrip tersebut di luar [[Perangkat lunak milik perorangan|perankat lunak milik]] MathWorks, MATLAB.<ref>[https://wiki.octave.org/FAQ FAQ - Octave]. ''wiki.octave.org''.</ref><ref>[https://www.mathworks.com/matlabcentral/content/terms-of-use.html MATLAB Central Terms of Use]. ''www.mathworks.com''.</ref><ref>[https://www.mathworks.com/matlabcentral/content/fx/fx-transition-faq.html File Exchange Licensing FAQ]. ''www.mathworks.com''.</ref>


===Kompatibilitas sintaks===
===Kompatibilitas sintaks===
Sintaks dari Octave sebagian besar kompatibel dengan sintaks MATLAB. Namun, terdapat beberapa perbedaan kecil yang dibuat secara sengaja, termasuk:
Sintaks dari Octave sebagian besar kompatibel dengan sintaks MATLAB. Namun, terdapat beberapa perbedaan kecil yang dibuat secara sengaja, termasuk:<ref>[https://wiki.octave.org/Differences_between_Octave_and_Matlab Differences between Octave and MATLAB]. ''Octave Wiki''.</ref>
# Fungsi dapat dibuat melalui antarmuka baris perintah di Octave;
# Fungsi dapat dibuat melalui antarmuka baris perintah di Octave;
# Baris komentar dapat dibuat dengan karakter <code>#</code> maupun <code>%</code>;
# Baris komentar dapat dibuat dengan karakter <code>#</code> maupun <code>%</code>;
Baris 57: Baris 86:


Ketika fungsi yang belum diimplementasikan dipanggil, Octave akan menampilkan pesan galat seperti berikut:
Ketika fungsi yang belum diimplementasikan dipanggil, Octave akan menampilkan pesan galat seperti berikut:
<syntaxhighlight lang="octave">
  octave:1> guide
  warning: the 'guide' function is not yet implemented in Octave


  Please read <http://www.octave.org/missing.html> to learn how you can contribute missing functionality.
  error: 'guide' undefined near line 1 column 1
</syntaxhighlight>


== Aplikasi antarmuka grafis ==
== Aplikasi antarmuka grafis ==
Pengguna dapat membuat aplikasi dengan antarmuka grafis dengan kode Octave. Hal ini dapat dilakukan dengan menggunakan beberapa fungsi bawaan GNU Octave. Di bawah ini beberapa contohnya:
Pengguna dapat membuat aplikasi dengan antarmuka grafis dengan kode Octave. Hal ini dapat dilakukan dengan menggunakan beberapa fungsi bawaan GNU Octave.<ref>[https://docs.octave.org/v9.2.0/GUI-Development.html GUI Development (version 9.2.0)]. ''GNU Octave Documentation''.</ref> Di bawah ini beberapa contohnya:


Elemen antarmuka dasar, seperti tombol, ''slider'', label, ''check-box'', ''radio button'', dan lain sebagainya.
Elemen antarmuka dasar, seperti tombol, ''slider'', label, ''check-box'', ''radio button'', dan lain sebagainya.


<syntaxhighlight lang="octave">
# membuat figure dan panel di dalamnya
f = figure;
# create a button (default style)
button1 = uicontrol (f, "string", "A Button", "position",[10 10 150 40]);
# membuat kontrol edit
e1 = uicontrol (f, "style", "edit", "string", "editable text", "position",[10 60 300 40]);
# membuat kotak cek
c1 = uicontrol (f, "style", "checkbox", "string", "a checkbox", "position",[10 120 150 40]);
# slider
s1 = uicontrol (f, "style", "slider", "position", [10 230, 300, 20]);
# teks
t1 = uicontrol (f, "style", "text", "string", "label / text", "position", [10 260, 300, 20]);
# tombol sakelar
tb1 = uicontrol (f, "style", "togglebutton", "string", "a togglebutton", "position", [10 290, 300, 20]);
# membuat grup tombol
gp = uibuttongroup (f, "Position", [ 0 0.75 1 1]);
# membuat tombol dalam grup
b1 = uicontrol (gp, "style", "radiobutton", "string", "Choice 1", "Position", [ 10 50 100 50 ]);
b2 = uicontrol (gp, "style", "radiobutton", "string", "Choice 2", "Position", [ 10 10 100 50 ]);
# membuat tombol di luar grup
b3 = uicontrol (f, "style", "radiobutton","string", "Not in the group","Position", [ 10 170 200 50 ]);
</syntaxhighlight>


''Textbox'' dengan kemampuan memasukkan data ke ''Workspace''.
''Textbox'' dengan kemampuan memasukkan data ke ''Workspace''.
 
<syntaxhighlight lang="octave">
prompt = {"Width", "Height", "Depth"};
defaults = {"1.10", "2.20", "3.30"};
rowscols = [1,10; 2,20; 3,30];
dims = inputdlg (prompt, "Enter Box Dimensions", rowscols, defaults);
</syntaxhighlight>


''Listbox'' dengan kotak pesan.
''Listbox'' dengan kotak pesan.
 
<syntaxhighlight lang="octave">
my_options = {"An item", "another", "yet another"};
[sel, ok] = listdlg ("ListString", my_options, "SelectionMode", "Multiple");
if (ok == 1)
  msgbox ("You selected:");
  for i = 1:numel (sel)
    msgbox (sprintf ("\t%s", my_options{sel(i)}));
  endfor
else
  msgbox ("You cancelled.");
endif
</syntaxhighlight>


==Perangkat lunak yang mirip==
==Perangkat lunak yang mirip==
Selain MATLAB, perangkat lunak lain yang mirip dengan GNU Octave adalah [[Scilab]] dan [[FreeMat]]. Kedua perangkat lunak tersebut dirilis di bawah lisensi [[perangkat lunak bebas]]. Namun, GNU Octave memiliki kompatibilitas yang lebih tinggi dengan MATLAB jika dibandingkan dengan Scilab, sementara FreeMat belum pernah diperbarui sejak Juni 2013. Selain itu, [[Julia (bahasa pemrograman)|bahasa pemrograman Julia]] dan kemampuan membuat grafiknya mirip dengan GNU Octave.
Selain MATLAB, perangkat lunak lain yang mirip dengan GNU Octave adalah [[Scilab]] dan [[FreeMat]].<ref>Thomas Trappenberg. [https://archive.org/details/fundamentalsofco0000trap Fundamentals of Computational Neuroscience]. Oxford University Press. 2010. hlm. [https://archive.org/details/fundamentalsofco0000trap/page/n388 361]. ISBN 978-0-19-956841-3.</ref><ref>A Muhammad. ''Practical Scientific Computing''. Woodhead Publishing. 2011. hlm. 3. ISBN 978-0-85709-226-7.</ref><ref>Bernard A. Megrey. ''Computers in Fisheries Research''. Springer Science & Business Media. 2008. hlm. 345. ISBN 978-1-4020-8636-6.</ref><ref>Raul Raymond Kapuno. ''Programming for Chemical Engineers Using C, C++, and MATLAB''. Jones & Bartlett Publishers. 2008. hlm. 365. ISBN 978-1-934015-09-4.</ref> Kedua perangkat lunak tersebut dirilis di bawah lisensi [[perangkat lunak bebas]]. Namun, GNU Octave memiliki kompatibilitas yang lebih tinggi dengan MATLAB jika dibandingkan dengan Scilab,<ref>Thomas Trappenberg. [https://archive.org/details/fundamentalsofco0000trap Fundamentals of Computational Neuroscience]. Oxford University Press. 2010. hlm. [https://archive.org/details/fundamentalsofco0000trap/page/n388 361]. ISBN 978-0-19-956841-3.</ref><ref>Russell L. Herman. [https://archive.org/details/courseinmathemat0000herm A Course in Mathematical Methods for Physicists]. CRC Press. 2013. hlm. [https://archive.org/details/courseinmathemat0000herm/page/42 42]. ISBN 978-1-4665-8467-9.</ref><ref>Alain Vande Wouwer. ''Simulation of ODE/PDE Models with MATLAB, Octave and Scilab: Scientific and Engineering Applications''. Springer. 2014. hlm. 114–115. ISBN 978-3-319-06790-2.</ref> sementara FreeMat belum pernah diperbarui sejak Juni 2013.<ref>[http://freemat.sourceforge.net/ FreeMat]. ''freemat.sourceforge.net''.</ref> Selain itu, [[Julia (bahasa pemrograman)|bahasa pemrograman Julia]] dan kemampuan membuat grafiknya mirip dengan GNU Octave.
 
== Referensi ==
 


== Pranala luar ==
== Pranala luar ==
 
*  
 
*
*
*


 
== Referensi ==
<references />


== Sumber dan atribusi ==
== Sumber dan atribusi ==


Konten artikel ini diadaptasi dari [https://id.wikipedia.org/w/index.php?title=GNU+Octave&oldid=29459440 Wikipedia bahasa Indonesia], revisi 29459440 (2026-07-14T23:08:56Z), yang tersedia berdasarkan lisensi Creative Commons Atribusi-BerbagiSerupa (CC BY-SA). Mohon gunakan konten ini secara bijak serta sesuai dengan ketentuan lisensi yang berlaku.
Konten artikel ini diadaptasi dari [https://id.wikipedia.org/w/index.php?title=GNU+Octave&oldid=29459440 Wikipedia bahasa Indonesia], revisi 29459440 (2026-07-14T23:08:56Z), yang tersedia berdasarkan lisensi Creative Commons Atribusi-BerbagiSerupa (CC BY-SA). Mohon gunakan konten ini secara bijak serta sesuai dengan ketentuan lisensi yang berlaku.
<!-- WIKI_UNISSULA_PRESENTATION_V4 -->

Revisi terkini sejak 23 Agustus 2026 13.56

GNU Octave adalah perangkat lunak bebas GNU yang dipakai untuk analisis numerik, dan setara dengan kemampuan perangkat lunak MATLAB. Octave dapat menyelesaikan permasalahan linear dan nonlinear secara numerik dengan menggunakan bahasa yang kompatibel dengan MATLAB. Perangkat lunak ini juga dapat digunakan sebagai bahasa pemrosesan tumpak. Sebagai bagian dari GNU Project, Octave adalah perangkat lunak bebas dengan lisensi Lisensi Publik Umum GNU.

Karena Octave memiliki Lisensi Publik GNU, maka Octave dapat dimodifikasi, disalin, dan digunakan secara bebas.[1] Program ini berjalan di Microsoft Windows dan kebanyakan sistem operasi Unix dan mirip Unix, termasuk Linux, Android, dan macOS.[2][3][4]

GNU Octave biasanya digunakan untuk komputasi ilmiah pribadi, akademis, dan industri. Misalnya, GNU Octave digunakan pada paralel komputer besar di Pittsburgh Supercomputing Center untuk mencari kerentanan yang berhubungan dengan teknik penebakan nomor Jaminan Sosial.[5] Akselerasi dengan OpenCL atau CUDA juga dapat dilakukan dengan penggunaan GPU.[6]

Sejarah

Proyek GNU Octave diawali sekitar tahun 1988.[7] Awalnya, proyek ini dimaksudkan sebagai pendamping mata kuliah desain reaktor kimia. Pengembangan penuh dimulai oleh John W. Eaton pada tahun 1992. Versi alfa pertama dirilis pada 4 Januari 1993 dan versi 1.0 dirilis pada tanggal 17 Februari 1994.

Nama program ini diambil dari Octave Levenspiel, mantan profesor dari pengembang utama. Levenspiel dikenal oleh karena kemampuannya melakukan perhitungan belakang-surat dengan cepat.[8]

Lini waktu pengembangan

Waktu Keterangan
1988/1989 Diskusi pertama (buku dan perangkat lunak)
Februari 1992 Pengembangan dimulai
Januari 1993 Berita di web (version 0.60)
Februari 1994 Publikasi pertama (versi 1.0.0 ke 1.1.1)[9]
Desember 1996 Publikasi kedua (versi 2.0.x) dengan porting ke Windows (Cygwin)[10]
Desember 2007 Publikasi versi 3.0 (Milestone)[11]
29 Mei 2015 Versi 4.0.0 (GUI stabil dan sintaks baru untuk OOP)[12][13][14][15]
1 Maret 2019 Publikasi Octave 5.1.0 (penggunaan minimum Qt 4.8, rekomendasi Qt 5), dukungan hiDpi[16]
26 November 2020 Publikasi Octave 6.1.0 (rekomendasi penggunaan QT5, Qt 4.x ditinggalkan dan akan dihapus pada versi 7)[17]
6 April 2022 Publikasi Octave 7.1.0 (rekomendasi penggunaan QT5), peningkatan backend grafik dan kompatibilitas MATLAB[18]
7 Maret 2023 Publikasi Octave 8.1.0, peningkatan back-end grafik dan kompatibilitas MATLAB.[19]
14 Maret 2024 Publikasi Octave 9.1.0, peningkatan umum, kompatibilitas MATLAB, dan grafik.[20]
7 Juni 2024 Publikasi Octave 9.2.0, perbaikan kutu dan GUI.[21]

Detail teknis

GNU Octave ditulis dari C++ dengan pustaka dasar C++. GNU Octave menggunakan Penerjemah (komputasi) untuk menjalankan bahasa skrip Octave. Perangkat lunak ini juga dapat dikembangkan dengan memuat modul atau paket secara dinamis. GNU Octave dapat digunakan untuk membuat grafika atau plot yang berdasarkan pada OpenGL atau gnuplot. Perangkat lunak ini juga memiliki GUI selain CLI yang lebih tradisional; lihat bagian Antarmuka pengguna grafis di bawah.

Antarmuka pengguna grafis

GNU Octave memiliki antarmuka pengguna grafis (GUI) dan sebuah Lingkungan pengembangan terpadu (; IDE) yang ditulis dengan Qt. GUI ini telah tersedia sejak GNU Octave 3.8,[22] dan menjadi antarmuka bawaan (di atas antarmuka baris perintah) di rilis GNU Octave versi 4.0.[23]

GUI ini mendapatkan respons positif oleh kontributor EDN yang menulis "(GNU Octave) sekarang memiliki GUI yang dapat digunakan" saat meninjau GUI yang saat itu baru pada tahun 2014.[24]

Beberapa grafis bagian depan juga telah dikembangkan, seperti ToolboX untuk pendidikan koding.

Bahasa

Octave adalah bahasa pemrograman terjemahan. Bahasa ini adalah bahasa pemrograman terstruktur (mirip dengan C), mendukung banyak fungsi umum di pustaka dasar C, dan beberapa pemanggilan sistem dan fungsi UNIX.[25] Namun, Octave tidak mendukung mentransfer argumen dengan referensi,[26] meskipun argumen fungsi bersifat salin saat tulis untuk menghindari duplikasi yang tidak diinginkan.

Program Octave berisi daftar pemanggilan fungsi atau skrip. Sintaks yang digunakan berdasarkan matriks dan memberikan beberapa fungsi untuk operasi matriks. Bahasa ini mendukung berbagai struktur data dan memperbolehkan pemrograman berorientasi objek.[27] Sintaks yang digunakan Octave sangat mirip dengan MATLAB. Maka dari itu, banyak fungsi yang ditulis dengan hati-hati dapat berjalan di Octave maupun MATLAB.[28]

Paket fungsi

GNU Octave memiliki banyak paket yang tersedia untuk menambahkan kemampuan dari Octave. Paket tersebut dapat ditemukan pada Github Octave Packages. Paket dapat dibuat dan dipelihara oleh siapa pun.

Kompatibilitas dengan MATLAB

GNU Octave dikembangkan dengan mempertimbangkan kompatibilitas dengan MATLAB dan memiliki fitur yang mirip, termasuk:

  • Matriks adalah tipe data utama.
  • Memiliki dukungan bilangan kompleks bawaan.
  • Fungsi matematika bawaan dan pustaka fungsi yang luas.
  • Dapat dikembangkan dalam bentuk fungsi yang dibuat oleh pengguna.

Octave menganggap inkompatibilitas dengan MATLAB sebagai kutu. Maka dari itu, Octave dianggap sebagai klon perangkat lunak, yang tidak melanggar hak cipta perangkat lunak.

Skrip MATLAB yang ditemukan pada repository FileExchange milik MathWorks secara prinsip kompatibel dengan Octave. Namun, ketika skrip tersebut diunggah atau diberikan oleh pengguna di bawah lisensi yang kompatibel dengan lisensi BSD atau lisensi sumber terbuka, kebijakan penggunaan FileExchange melarang penggunaan skrip tersebut di luar perankat lunak milik MathWorks, MATLAB.[29][30][31]

Kompatibilitas sintaks

Sintaks dari Octave sebagian besar kompatibel dengan sintaks MATLAB. Namun, terdapat beberapa perbedaan kecil yang dibuat secara sengaja, termasuk:[32]

  1. Fungsi dapat dibuat melalui antarmuka baris perintah di Octave;
  2. Baris komentar dapat dibuat dengan karakter # maupun %;
  3. Untaian dapat dibuat dengan karakter kutip dua (") maupun kutip satu (');
  4. Pengguna dapat melanjutkan baris kode dengan karakter garis miring terbalik (\) maupun karakter elipsis (...);
  5. Blok kode dapat ditutup dengan kata kunci yang lebih spesifik, seperti endif, endfor, endwhile, endfunction, dan lain sebagainya;
  6. Octave mendukung operator penambahan atau pengurangan seperti C, termasuk ++, --, +=, *=, /=, dan lain sebagainya;
  7. Octave dapat mengindeks selain variabel, seperti [1:10](3); dan
  8. Octave menggunakan operator ! sebagai negasi, mirip dengan ~.

Kompatibilitas fungsi

Banyak fungsi MATLAB yang telah tersedia di GNU Octave. Beberapa di antaranya dapat diakses melalui paket yang dapat diunduh dan dipasang dari Octave Forge. Beberapa fungsi lain yang belum tersedia dapat dilihat pada fungsi __unimplemented.m__.

Ketika fungsi yang belum diimplementasikan dipanggil, Octave akan menampilkan pesan galat seperti berikut: <syntaxhighlight lang="octave">

 octave:1> guide
 warning: the 'guide' function is not yet implemented in Octave
 Please read <http://www.octave.org/missing.html> to learn how you can contribute missing functionality.
 error: 'guide' undefined near line 1 column 1

</syntaxhighlight>

Aplikasi antarmuka grafis

Pengguna dapat membuat aplikasi dengan antarmuka grafis dengan kode Octave. Hal ini dapat dilakukan dengan menggunakan beberapa fungsi bawaan GNU Octave.[33] Di bawah ini beberapa contohnya:

Elemen antarmuka dasar, seperti tombol, slider, label, check-box, radio button, dan lain sebagainya.

<syntaxhighlight lang="octave">

  1. membuat figure dan panel di dalamnya

f = figure;

  1. create a button (default style)

button1 = uicontrol (f, "string", "A Button", "position",[10 10 150 40]);

  1. membuat kontrol edit

e1 = uicontrol (f, "style", "edit", "string", "editable text", "position",[10 60 300 40]);

  1. membuat kotak cek

c1 = uicontrol (f, "style", "checkbox", "string", "a checkbox", "position",[10 120 150 40]);

  1. slider

s1 = uicontrol (f, "style", "slider", "position", [10 230, 300, 20]);

  1. teks

t1 = uicontrol (f, "style", "text", "string", "label / text", "position", [10 260, 300, 20]);

  1. tombol sakelar

tb1 = uicontrol (f, "style", "togglebutton", "string", "a togglebutton", "position", [10 290, 300, 20]);

  1. membuat grup tombol

gp = uibuttongroup (f, "Position", [ 0 0.75 1 1]);

  1. membuat tombol dalam grup

b1 = uicontrol (gp, "style", "radiobutton", "string", "Choice 1", "Position", [ 10 50 100 50 ]); b2 = uicontrol (gp, "style", "radiobutton", "string", "Choice 2", "Position", [ 10 10 100 50 ]);

  1. membuat tombol di luar grup

b3 = uicontrol (f, "style", "radiobutton","string", "Not in the group","Position", [ 10 170 200 50 ]); </syntaxhighlight>

Textbox dengan kemampuan memasukkan data ke Workspace. <syntaxhighlight lang="octave"> prompt = {"Width", "Height", "Depth"}; defaults = {"1.10", "2.20", "3.30"}; rowscols = [1,10; 2,20; 3,30]; dims = inputdlg (prompt, "Enter Box Dimensions", rowscols, defaults); </syntaxhighlight>

Listbox dengan kotak pesan. <syntaxhighlight lang="octave"> my_options = {"An item", "another", "yet another"}; [sel, ok] = listdlg ("ListString", my_options, "SelectionMode", "Multiple"); if (ok == 1)

 msgbox ("You selected:");
 for i = 1:numel (sel)
   msgbox (sprintf ("\t%s", my_options{sel(i)}));
 endfor

else

 msgbox ("You cancelled.");

endif </syntaxhighlight>

Perangkat lunak yang mirip

Selain MATLAB, perangkat lunak lain yang mirip dengan GNU Octave adalah Scilab dan FreeMat.[34][35][36][37] Kedua perangkat lunak tersebut dirilis di bawah lisensi perangkat lunak bebas. Namun, GNU Octave memiliki kompatibilitas yang lebih tinggi dengan MATLAB jika dibandingkan dengan Scilab,[38][39][40] sementara FreeMat belum pernah diperbarui sejak Juni 2013.[41] Selain itu, bahasa pemrograman Julia dan kemampuan membuat grafiknya mirip dengan GNU Octave.

Pranala luar

Referensi

  1. John W Eaton. About Octave.
  2. FAQ: Getting Octave.
  3. Top (GNU Octave (version 6.3.0)). octave.org.
  4. Octave for Android - Octave. wiki.octave.org.
  5. Social Security Number Vulnerability Findings Relied on Supercomputing.
  6. Drop-in Acceleration of GNU Octave. NVIDIA Developer Blog.
  7. About GNU Octave. www.gnu.org. GNU.
  8. John W Eaton. About Octave.
  9. GNU Octave Version 1. www.gnu.org.
  10. GNU Octave Version 2. www.gnu.org.
  11. GNU Octave Version 3. www.gnu.org.
  12. GNU Octave Version 4.0. www.gnu.org.
  13. GNU Octave 4.0.0 Released. www.gnu.org.
  14. GNU Octave 4.0.1 Released. www.gnu.org.
  15. GNU Octave 4.0.3 Released. www.gnu.org.
  16. GNU Octave Version 5. www.gnu.org.
  17. GNU Octave 6.1.0 Released. www.gnu.org.
  18. GNU Octave 7.1.0 Released. www.gnu.org. 6 April 2022.
  19. GNU Octave 8.1.0 Released. octave.org. 7 Maret 2023.
  20. GNU Octave Version 9. octave.org.
  21. Octave 9.2.0 released. octave.org. 7 Juni 2024.
  22. GNU Octave Version 3.8. www.gnu.org.
  23. GNU Octave Version 4.0. www.gnu.org.
  24. Steve Hageman. GNU Octave hits a high note. EDN.
  25. GNU Octave - Controlling subprocesses.
  26. GNU Octave.
  27. Summary of important user-visible changes for version 3.2.
  28. FAQ: MATLAB compatibility.
  29. FAQ - Octave. wiki.octave.org.
  30. MATLAB Central Terms of Use. www.mathworks.com.
  31. File Exchange Licensing FAQ. www.mathworks.com.
  32. Differences between Octave and MATLAB. Octave Wiki.
  33. GUI Development (version 9.2.0). GNU Octave Documentation.
  34. Thomas Trappenberg. Fundamentals of Computational Neuroscience. Oxford University Press. 2010. hlm. 361. ISBN 978-0-19-956841-3.
  35. A Muhammad. Practical Scientific Computing. Woodhead Publishing. 2011. hlm. 3. ISBN 978-0-85709-226-7.
  36. Bernard A. Megrey. Computers in Fisheries Research. Springer Science & Business Media. 2008. hlm. 345. ISBN 978-1-4020-8636-6.
  37. Raul Raymond Kapuno. Programming for Chemical Engineers Using C, C++, and MATLAB. Jones & Bartlett Publishers. 2008. hlm. 365. ISBN 978-1-934015-09-4.
  38. Thomas Trappenberg. Fundamentals of Computational Neuroscience. Oxford University Press. 2010. hlm. 361. ISBN 978-0-19-956841-3.
  39. Russell L. Herman. A Course in Mathematical Methods for Physicists. CRC Press. 2013. hlm. 42. ISBN 978-1-4665-8467-9.
  40. Alain Vande Wouwer. Simulation of ODE/PDE Models with MATLAB, Octave and Scilab: Scientific and Engineering Applications. Springer. 2014. hlm. 114–115. ISBN 978-3-319-06790-2.
  41. FreeMat. freemat.sourceforge.net.

Sumber dan atribusi

Konten artikel ini diadaptasi dari Wikipedia bahasa Indonesia, revisi 29459440 (2026-07-14T23:08:56Z), yang tersedia berdasarkan lisensi Creative Commons Atribusi-BerbagiSerupa (CC BY-SA). Mohon gunakan konten ini secara bijak serta sesuai dengan ketentuan lisensi yang berlaku.