Mekanisme JNI Java Native Interface

108 Berbagai macam teknik dapat digunakan untuk melindungi kerahasiaan informasi dari orang yang tidak berhak. Salah satu teknik yang populer adalah teknik steganography . Teknik ini sudah dipakai lebih dari 2500 tahun yang lalu untuk menyembunyikan pesan rahasia. Berbeda dengan teknik cryptography , steganography digunakan untuk menyembunyikan pesan rahasia dan orang awam tidak menyadari keberadaan bahwa terdapat pesan yang disembunyikan. Teknik ini sering digunakan untuk menghindari kecurigaan orang dan menghindari keinginan orang untuk mengetahui isi pesan rahasia tersebut. Pada umumnya, teknik steganography dikenakan pada file-file multimedia. Bentuk- bentuk file multimedia yang sering digunakan adalah video, audio dan gambar.

2. Tujuan

Tujuan dari pembuatan artikel ini adalah : 1. Memberikan pandangan bahwa steganography memiliki tingkat keamanan yang cukup tinggi. 2. Menerapkan teknik steganography dalam file audio, video, gambar dan file lainnya seperti exe dan pdf. 3. Memaparkan cara kerja dari aplikasi steganography, serta menunjukkan sebagaimana kuat ketahanan dari file hasil proses steganography.

3. Pembatasan Masalah Aplikasi

Aplikasi yang akan dibuat mempunyai batasan–batasan sebagai berikut: 1. Objek penelitian difokuskan pada kualitas dari file dan besar ukuran file yang telah disisipkan. Dengan kata lain apabila kualitas gambar pada gambar asli adalah 100 dengan ukuran file 65 kb dan file pesan yang akan disisipkan adalah 22,7 kb maka hasil file yang telah disisipkan mengalami kemunduran kualitas kurang lebih menjadi 88.5 dengan ukuran file akan menjadi besar. 2. Kecepatan dalam pemrosesan encoding dan decoding belum menjadi pokok penelitian pada paper ini.

4. Mekanisme JNI Java Native Interface

Dalam framework JNI, fungsi native diimplementasikan secara terpisah .C atau .CPP file. C++ menyediakan antarmuka yang sedikit baik dengan JNI. Berikut adalah contoh JNI: JNIEXPORT void JNICALL Java_ClassName_MethodName JNIEnv env, jobject obj { Implement Native Method Here } Menggunakan Teknik Low Bit Encoding dan Least Significant Bit Hendra Bunyamin, Andrian 109 Env pointer merupakan struktur yang berisi antarmuka ke JVM. Termasuk semua fungsi yang diperlukan untuk berinteraksi dengan JVM dan untuk bekerja dengan objek-objek JAVA. Contoh fungsi-fungsi JNI mengkonversi native array ke JAVA array , mengkonversi native string ke java string, instantiating objects, throwing exceptions , etc. Pada dasarnya, apapun yang dapat dilakukan oleh kode JAVA dapat dilakukan dengan menggunakan JNIEnv, walaupun tidak mudah. Berikut adalah contoh mengkonversi JAVA string ke native string: Perlu diketahui bahwa C++ JNI adalah sintak yang lebih baik daripada C JNI disebabkan lebih cocok pada pemrograman JAVA, C++ menggunakan object method invocation semantics . Dalam C++, yang merupakan parameter env dan parameter adalah mutlak sebagai bagian dari metode obyek invocation semantics. Jenis data native dapat dipetakan dari jenis data JAVA. Untuk jenis kompleks seperti objek array dan string native harus secara eksplisit mengkonversi data dengan memanggil methods pada JNIEnv. Untuk menjalankan mekanisme JNI JAVA Native Interface, terdapat beberapa hal yang harus dilakukan terlebih dahulu. Pada saat instalasi JDK, Netbeans IDE dan Netbeans CC++ pack harus dimasukkan. Selain itu dibutuhkan juga Cygwin C++ code JNIEXPORT void JNICALL Java_ClassName_MethodName JNIEnv env, jobject obj, jstring javaString { Get the native string from javaString const char nativeString = env-GetStringUTFCharsjavaString, 0; Do something with the nativeString env-ReleaseStringUTFCharsjavaString, nativeString; } C code JNIEXPORT void JNICALL Java_ClassName_MethodName JNIEnv env, jobject obj, jstring javaString { Get the native string from javaString const char nativeString = env-GetStringUTFCharsenv, javaString, 0; Do something with the nativeString env-ReleaseStringUTFCharsenv, javaString, nativeString; } 110 sebagai complier dari CC++ tersebut. Setelah perangkat lunak tersebut di-install, diperlukan sebagian kecil perubahan pada konfigurasi sistem harus dilakukan.

5. Pengujian Aplikasi