proses dekompresi atau decoding. Karena tiap-tiap kode huffman yang dihasilkan unik, maka proses decoding dapat dilakukan dengan mudah. Contoh: saat membaca
kode bit pertama dalam rangkaian bit “011001010110”, yaitu bit ”0” merupakan pemetaan dari simbol “A”. Kemudian dibaca kode bit selanjutnya, sehingga
menjadi “11”. Tidak ada juga kode huffman “11” lalu baca lagi kode bit berikutnya, sehingga menjadi “110” adalah pemetaan dari simbol “B”.
2.2.2. Algorima Run-Length-Encoding RLE
Kompresi data teks dilakukan jika ada beberapa huruf yang sama yang ditampilkan berturut-turut.
Contoh: Data : ABCCCCCCCCDEFGGGG = 17 Karakter
RLE tipe 1 min. 4 huruf sama : ABC8DEFG4 = 14 Karakter
RLE ada yang menggunakan suatu karakter yang tidak digunakan dalam teks tersebut, seperti misalnya ‘’ untuk menandai. Kelemahan RLE jika ada
karakter angka, membedakan mana tanda mulai dan akhir menjadi rancu. Contoh: Data : ABCCCCCCCCDEFGGGG
= 14 Karakter RLE tipe 2
: -2AB8C-3DEF4G = 12 Karakter
Contoh: Data : AB12CCCCDEEEF = 13 Karakter
RLE tipe 2 : -4AB124CD3EF
= 12 Karakter RLE ada yang menggunakan flag bilangan negatif untuk menandai batas
sebanyak jumlah karakter tersebut. Berguna untuk data yang memiliki kesamaan, misal teks yang memiliki banyak kesamaan pola. Kondisi terbaik untuk RLE tipe 2
adalah ketika terdapat 127 karakter yang sama sehingga akan dikompres menjadi 2
byte saja. Dan kondisi terburuk untuk RLE tipe 2 adalah ketika terdapat 127 karakter yang bebeda semua, maka terdapat 1 byte tambahan sebagai tanda jumlah
karakter yang tidak sama tersebut.
2.2.3. Algoritma Lempel-Ziv-Welch LZW
Menurut Linawati 2007, Algoritma LZW dikembangkan dari metode kompresi yang dibuat oleh Ziv dan Lempel pada tahun 1977. Algoritma ini
melakukan kompresi dengan menggunakan dictionary, di mana fragmen-fragmen teks digantikan dengan indeks yang diperoleh dari sebuah “kamus”. Pendekatan ini
bersifat adaptif dan efektif kaena banyak karakter dapat dikodekan dengan mengacu pada string yang telah muncul sebelumnya dalam teks. Prinsip kompresi
tercapai dalam bentuk pointer dapat disimpan dalam jumlah bit yang lebih sedikit dibandingkan string aslinya.
Sebagai contoh,
string “ABBABABAC” akan dikompresi dengan LZW. Isi dictionary pada awal proses diset dengan tiga karakter dasar yang ada: “A”, “B”,
“C”. Tahapan proses kompresi ditunjukkan pada tabel 2.3.
Tabel 2.3. Tahapan Proses Kompresi LZW
Kolom posisi menyatakan posisi sekarang dari stream karakter dan kolom karakter menyatakan karakter yang terdapat pada posisi tersebut. Kolom dictionary
menyatakan string baru yang sudah ditambahkan ke dalam dictionary dan nomor indeks untuk string tersebut ditulis dalam kurung siku. Kolom output menyatakan
kode output yang dihasilkan oleh langkah kompresi. Hasil proses kompresi ditunjukkan pada gambar 2.5
Gambar 2.5. Hasil Proses Kompresi LZW String ”ABBABABAC” 2.3. Java 2 Micro Edition J2ME
Menurut Raharjo dan Heryanto 2007, Java adalah bahasa pemrograman yang disusun oleh James Gosling dan dibantu oleh rekan-rekannya seperti Patrick
Naughton, Chris Warth, Ed Frank, dan Mike Sheridan pada tahun 1991 di suatu perusahaan perangkat lunak bernama Sun Microsystems. Bahasa pemrograman ini
mula-mula diinisialisasi dengan nama “Oak”, namun pada tahun 1995 diganti namanya menjadi “Java”.
Alasan utama pembentukan bahasa Java adalah untuk membuat aplikasi- aplikasi yang dapat diletakkan di berbagai macam perangkat elektronik, seperti
microwave oven dan remote control, sehingga Java harus bersifat portable atau yang sering disebut dengan platform-independent tidak tergantung pada platform.
Itulah yang menyebabkan dalam dunia pemrograman java, dikenal adanya istilah ‘write once, run everywhere’, yang berarti kode program hanya ditulis sekali,
namun dapat dijalankan di bawah platform manapun, tanpa harus melakukan
perubahan kode program. Sun Microsystems telah mendefinisikan tiga buah edisi dari Java 2, yaitu sebagai berikut:
1. Java 2 Standard Edition J2SE, yang digunakan untuk mengembangkan
aplikasi-aplikasi desktop dan applet aplikasi Java yang dapat dijalankan di dalam browser web.
2. Java 2 Enterprise Edition J2EE, Merupakan superset dari J2SE yang
memperbolehkan untuk mengembangkan aplikasi-aplikasi berskala besar, yaitu dengan pembuatan aplikasi-aplikasi di sisi server dengan mengunakan EJBs
Enterprise JavaBeans, aplikasi web dengan menggunakan Servlet dan JSP Java Server Pages dan teknologi lainnya seperti CORBRA Common Object
Request Broker Architecture dan XML Extensible Markup Language. 3.
Java 2 Micro Edition J2ME, merupakan subset dari J2SE yang digunakan untuk menangani pemrograman di dalam perangkat-perangkat kecil, yang tidak
memungkinkan untuk mendukung implementasi dari J2SE secara penuh. J2ME merupakan sebuah kombinasi yang terbentuk antara sekumpulan
interface Java yang sering disebut dengan Java API Application Programming Interface dengan JVM Java Virtual Machine yang didesain khusus untuk
perangkat dengan ruang memori terbatas. Kombinasi tersebut kemudian digunakan untuk melakukan pembuatan aplikasi-aplikasi yang dapat berjalan pada mobile
device. Masing-masing dari perusahaan perangkat telah menyediakan JVM dan
sekumpulan API yang diperlukan, sehingga tidak perlu dilakukan installasi JVM dan Java API ke dalam perangkat sehingga programmer hanya berkonsentrasi
dalam pengembangan aplikasinya dan memasukkannya kedalam perangkat tersebut.
J2ME sendiri pada dasarnya terdiri dari tiga buah bagian, yaitu: konfigurasi, profil, dan paket-paket opsional, seperti yang ditunjukkan pada gambar 2.6:
Gambar 2.6. Arsitektur J2ME
2.3.1. Siklus Hidup Aplikasi J2ME