GNU Octave
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] SejarahProyek 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.[1] Lini waktu pengembangan
Detail teknisGNU 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 grafisGNU Octave memiliki antarmuka pengguna grafis (GUI) dan sebuah Lingkungan pengembangan terpadu (bahasa Inggris: integrated development environment; IDE) yang ditulis dengan Qt. GUI ini telah tersedia sejak GNU Octave 3.8,[21] dan menjadi antarmuka bawaan (di atas antarmuka baris perintah) di rilis GNU Octave versi 4.0.[11] 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.[22] Beberapa grafis bagian depan juga telah dikembangkan, seperti ToolboX untuk pendidikan koding. BahasaOctave 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.[23] Namun, Octave tidak mendukung mentransfer argumen dengan referensi,[24] 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.[25] Sintaks yang digunakan Octave sangat mirip dengan MATLAB. Maka dari itu, banyak fungsi yang ditulis dengan hati-hati dapat berjalan di Octave maupun MATLAB.[26] Paket fungsiGNU 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 MATLABGNU Octave dikembangkan dengan mempertimbangkan kompatibilitas dengan MATLAB dan memiliki fitur yang mirip, termasuk:
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.[27][28][29] Kompatibilitas sintaksSintaks dari Octave sebagian besar kompatibel dengan sintaks MATLAB. Namun, terdapat beberapa perbedaan kecil yang dibuat secara sengaja, termasuk:[30]
Kompatibilitas fungsiBanyak 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 Ketika fungsi yang belum diimplementasikan dipanggil, Octave akan menampilkan pesan galat seperti berikut: 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
Aplikasi antarmuka grafisPengguna dapat membuat aplikasi dengan antarmuka grafis dengan kode Octave. Hal ini dapat dilakukan dengan menggunakan beberapa fungsi bawaan GNU Octave.[31] Di bawah ini beberapa contohnya: Elemen antarmuka dasar, seperti tombol, slider, label, check-box, radio button, dan lain sebagainya. # 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 ]);
Textbox dengan kemampuan memasukkan data ke Workspace. 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);
Listbox dengan kotak pesan. 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
Perangkat lunak yang miripSelain MATLAB, perangkat lunak lain yang mirip dengan GNU Octave adalah Scilab dan FreeMat.[32][33][34][35] 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,[32][36][37] sementara FreeMat belum pernah diperbarui sejak Juni 2013.[38] Selain itu, bahasa pemrograman Julia dan kemampuan membuat grafiknya mirip dengan GNU Octave. Referensi
Pranala luarWikimedia Commons memiliki media mengenai GNU Octave. |
Portal di Ensiklopedia Dunia