Saturday, June 18, 2016

Menggunakan Java Standard Library dari Matlab

Dalam tulisan kali ini saya ingin memberikan sedikit pemahaman kepada pembaca mengenai bagaimana caranya menggunakan fitur-fitur yang tersedia pada bahasa Java standard oracle (Java Standard Library) untuk keperluan komputasi di MATLAB. 

Sebenarnya tulisan ini hanya merupakan rangkuman tentang tulisan yang tertera di blog ini. Di mana dalam blog tersebut saya mendapatkan sebuah ilmu yang sangat bermanfaat yakni tentang bagaimana memanggil java standard library dari program MATLAB selama runtime.

Saya kurang tahu bagaimana implementasi behind the scene nya. Namun yang pasti kita bisa memanggil hampir semua class java  yang tersedia pada java standard library dari program MATLAB kita. Contohnya coba jalankan script berikut pada program MATLAB Anda:

clc ;               % bersihkan command window nya
m = java.util.ArrayList;  % panggil fitur array list pada java dan tampung pada variabel m 
a = m.methods;            % panggil semua nama method dari java arrayList
disp(a);   % tampilkan...  

Nanti output yang ditampilkan adalah sebagai berikut:

 
    'iterator'
    'lastIndexOf'
    'listIterator'
    'notify'
    'notifyAll'
    'remove'
    'removeAll'
    'retainAll'
    'set'
    'size'
    'subList'
    'toArray'
    'toString'
    'trimToSize'
    'wait'

Sementara jika Anda menjalankan program Java berikut:

import java.lang.reflect.Method;
import java.util.ArrayList;

public class PrintAllMethodsInArrayList {

	public static void main(String[] args) throws Exception{
		
		ArrayList m = new ArrayList(); 
		
		Method[] listMethodsName = m.getClass().getMethods();
		
		for(Method name : listMethodsName){
			System.out.println(name.getName()); 
		}
	}
	
}

Maka hasilnya akan seperti berikut:

add
add
remove
remove
get
clone
indexOf
clear
contains
isEmpty
iterator
lastIndexOf
replaceAll
size
subList
toArray
toArray
spliterator
addAll
addAll
forEach
set
ensureCapacity
trimToSize
listIterator
listIterator
removeAll
removeIf
retainAll
sort
equals
hashCode
toString
containsAll
wait
wait
wait
getClass
notify
notifyAll
stream
parallelStream

Secara umum ada kemiripan antara output yang diberikan oleh program MATLAB dengan java dalam mencari tahu method yang tersedia pada ArrayList.

Jadi bisa disimpulkan bahwa implementasi java standard library untuk class ArrayList di MATLAB sudah menyerupai implementasi sesungguhnya di Java. Perbedaan ini mungkin disebabkan oleh versi java yang terinstall di komputer saya dengan versi java bawaan MATLAB (karena MATLAB menggunakan java miliknya sendiri).

Keuntungannya adalah MATLAB tidak perlu melakukan implementasi sendiri hal-hal yang sudah dijumpai pada Java. Misalnya seperti List atau HashMap atau model-model struktur data lainnya. Karena seperti kita ketahui sendiri bahwa MATLAB ini adalah bahasa dynamic bukan static.

Kelemahan implementasi java ini adalah tidak semua fitur fundamental yang dijumpai pada bahasa static bisa digunakan di MATLAB, misalnya interface dan anonymous class sehingga event listener yang di Java di implementasikan dengan anonymous class di MATLAB agak berbeda. Ini bisa dilihat di posting saya sebelumnya: http://fjr66.blogspot.co.id/2015/05/menggunakan-komponen-java-swing-dari.html.

No comments: