BAB 2
LANDASAN TEORI
2.1
Global Sistem for Mobile communications (GSM)
Berikut ini akan dijelaskan sejarah dan arsitektur dari GSM.
2.1.1 Sejarah
Sejarah GSM tidak terlepas dari perkembangan teknologi komunikasi di Eropa. Pada awal tahun 1980, sistem komunikasi selular berkembang dengan pesat dibeberapa negara Eropa. Beberapa diantaranya yaitu sistem C-NET yang dikembangkan di Jerman dan Portugal oleh Siemens, sistem RC-2000 yang dikembangkan di Prancis, sistem NMT yang dikembangkan di Belanda dan Skandinavia oleh Ericsson, serta TACS yang beroprasi di Inggris. Setiap Negara mempunyai sistem komunikasi sendiri yang tidak kompatibel dengan sistem komunikasi di negara lain. Hal ini menyebabkan mobilitas pengguna terbatas pada suatu area sistem teknologi tertentu saja (Fernandez Yogara, 2008).
Pada tahun 1982 dibentuklah sebuah lembaga yang bernama Groupe Special Mobile (GSM) yang mengembangkan sistem komunikasi mobile untuk masyarakat Eropa secara terpadu. Sistem yang dikembangkan memiliki kualitas suara yang baik, memiliki dukungan jelajah (roaming) internasional antar negara Eropa, memiliki dukungan perangkat genggam, dapat dikembangkan untuk layanan fasilitas baru dan memiliki biaya operasional yang murah. Lembaga ini yang mempelopori munculnya teknologi digital selular yang kemudian dikenal dengan nama Global System for Mobile Communication (GSM). Lembaga GSM tersebut menyerahkan hasil kerjanya kepada lembaga ETSI (European Telecommunication Standards Institute) pada tahun 1989. Hingga saat ini lembaga GSM tersebut lebih populer dengan kepanjangan Global System for Mobile Communications.
Universitas Sumatera Utara
2.1.2 Arsitektur GSM
Karakteristiknya yang open standard interface (memungkinkan vendor-vendor untuk ikut mengembangkan instrumennya pada sisi jaringan network), jangkauan luas (roaming access), interoperabilitas serta kemudahan penggunaan SIM card pada handset yang berbeda tanpa mengurangi fungsi konektivitasnya ini merupakan beberapa faktor yang menyebabkan perkembangan jaringan GSM sedemikian pesat pada kurun waktu beberapa tahun terakhir (Zacharias J.M., 2005). Unsur-unsur utama GSM arsitektur ditunjukkan pada Gambar 2.1
Gambar 2.1 Layout generic dari jaringan GSM
Arsitektur jaringan GSM terdiri dari 3 komponen utama yaitu: 1. Mobile Station 2. Base Station Subsystem (BSS) 3. Network Subsystem (NSS) Berikut ini akan dijelaskan mengenai arsitektur GSM yang merupakan gabungan dari perangkat-perangkat yang saling berkaitan dalam mendukung jaringan GSM.
Universitas Sumatera Utara
Entitas Mobile Station terdiri dari Mobile Equipment (ME) yakni perangkat keras dan perangkat lunak untuk transmisi radio yang dikenal dengan istilah telepon seluler (ponsel) dan Subscriber Identification Module (SIM).
Mobile Equipment secara unik diidentifikasikan dalam format International Mobile Equipment Identity (IMEI). SIM card berisi International Mobile Subscriber Identity (IMSI) yang digunakan untuk mengidentifikasi pelanggan ke sistem, kunci rahasia (untuk autentifikasi) serta menyimpan informasi lainnya seperti phonebook atau pesan SMS. SIM card dapat diproteksi dari penggunaan yang tidak terotorisasi dengan password atau Personal Identity Number (PIN).
Base Station Subsytem (BSS) terdiri dari Base Tranciever System (BTS) dan Base Station Controler (BSC). BST merupakan perangkat pemancar dan penerima yang memberikan pelayanan radio kepada Mobile Station (MS). Dalam BTS terdapat kanal trafik yang digunakan untuk komunikasi. BSC membawahi satu atau lebih BTS serta mengatur trafik yang datang dan pergi dari BSC menuju MSC atau BTS. BSC memenejemen sumber radio dalam pemberian frekuensi untuk setiap BTS dan mengatur handover ketika mobile station melewati batas antar sel.
Network Subsystem terdiri dari Mobile Switching Centres (MSC) dan beberapa database yang terhubung dengannya seperti Home Location Register (HLR), Visitor Location Register (VLR), Authentication Center (AuC) serta Equipment Identity Register (EIR). MSC berfungsi untuk switching suatu panggilan telepon dari jaringan internal atau jaringan lain (eksternal), call routing untuk pelanggan yang melakukan roaming, menyimpan informasi billing serta database lain yang berisi informasi subscriber ID, nomor ponsel pelanggan, beberapa layanan atau larangan yang berkaitan dengan pelanggan, autentifikasi serta informasi lokasi pelanggan. HLR merupakan database yang berisi data pelanggan yang tetap. Data tersebut antara lain, layanan pelanggan, service tambahan serta informasi mengenai lokasi pelanggan yang paling akhir (update). VLR merupakan database yang berisi informasi sementara mengenai pelanggan, terutama mengenai lokasi dari pelanggan pada cakupan area jaringan. AuC berisi database informasi rahasia yang disimpan dalam bentuk format kode. AuC digunakan untuk mengontrol penggunaan jaringan yang sah dan mencegah
Universitas Sumatera Utara
semua pelanggan yang melakukan kecurangan. EIR merupakan database yang berisi suatu daftar valid mobile equipment pada jaringan. Setiap mobile station diindentifikasikan dengan International Mobile Equipment Identity (IMEI). Pada kasus khusus sebuah IMEI ditandai/didaftarkan invalid bila ponsel dilaporkan dicuri/dirampas dari pemiliknya.
2.2 Short Messaging Service (SMS) Berikut ini akan dijelaskan sejarah, defenisi, arsitektur dan sistem kerja SMS.
2.2.1 Sejarah
Isu SMS pertama kali muncul di belahan Eropa pada sekitar tahun 1991 bersama sebuah teknologi komunikasi wireless yang saat ini cukup banyak penggunannya, yaitu Global System for Mobile Communication (GSM). Dipercaya bahwa message pertama yang dikirimkan menggunakan SMS dilakukan pada bulan desember 1992, dikirimkan dari sebuah Personal Computer (PC) ke telepon mobile (bergerak) dalam jaringan GSM milik Vodafone Inggris. Perkembangannya kemudian merambah ke benua Amerika, dipelopori oleh beberapa operator komunikasi bergerak berbasis digital seperti BellSouth Mobility, PrimeCo, Nextel, dan beberapa operator lain (Rozidi Imron, 2004, hal: 1).
2.2.2 Definisi
SMS merupakan salah satu fitur teknologi seluler berupa layanan pengirim pesan teks pendek antar telepon seluler. SMS menjadi salah satu media komunikasi antar individu yang berkembang dengan pesat. Punet Gupta mendefinisikan SMS sebagai mekanisme pengiriman pesan pendek melalui jaringan mobile (Gupta Punet, 2000).
Universitas Sumatera Utara
Layanan yang dapat di nikmati melalu SMS antara lain adalah pengiriman pesan pendek, pemberitahuan operator kepada pelanggan bahwa ada voice mail atau fax yang masuk, download ringtone atau game, mobile banking, dan chatting.
Mekanisme utama yang dilakukan dalam sistem SMS adalah melakukan pengiriman short message dari satu terminal pelanggan ke terminal yang lain. Hal ini dapat dilakukan berkat adanya sebuah entitas dalam sistem SMS yang bernama Short Message Service Center (SMSC), disebut juga Message Center (MC). SMSC merupakan sebuah perangkat yang melakukan tugas store and forward. Didalamnya termasuk penentuan atau pencarian rute tujuan akhir dari short message. Sebuah SMSC biasanya didesain untuk dapat menangani short message dari berbagai sumber seperti Voice Mail System (VMS), Web-based messaging, Email Integration, External Short Messaging Entities (ESME), dan lain-lain.
Layanan SMS merupakan sebuah layanan yang bersifat nonreal time dimana sebuah short message dapat di-submit ke suatu tujuan, tidak perduli apakah tujuan tersebut aktif atau tidak. Bila dideteksi bahwa tujuan tidak aktif, maka sistem akan menunda pengiriman ke tujuan hingga tujuan aktif kembali. Pada dasarnya sistem SMS akan menjamin delivery dari suatu short message hingga sampai ke tujuan. Kegagalan pengiriman yang bersifat sementara seperti tujuan tidak aktif akan selalu teridentifikasi sehingga pengiriman ulang short message akan selalu dilakukan kecuali bila diberlakukan aturan bahwa short message yang telah melampaui batas waktu tertentu harus dihapus dan dinyatakan gagal terkirim.
Ada tiga jenis encoding untuk menerjemahkan pesan pada SMS (Netsize, 2003), yaitu: a. Mode 7 bit, digunakan untuk karakter latin. Dengan mode ini sebuah pesan bisa terdiri maksimal 160 karakter. Dengan jumlah bit maksimal 1120 bit (1 karakter = 7 bit, 7 x 160 = 1120 bit). b. Mode 8 bit, digunakan untuk pesan gambar dan suara. c. Mode 16 bit, digunakan untuk karakter Unicode (UCS2), misal karakter cina. Panjang pesan maksimal adalah 70 karakter (70 = 1120/16).
Universitas Sumatera Utara
Berdasarkan dari pesan yang disampaikan, SMS dapat dibagi menjadi enam jenis: a. SMS-DELIVER, membawa SMS dari SMSC ke perangkat mobile (telepon seluler). b. SMS-DELIVER-REPORT, membawa status pesan yang diterima dari SMSC. c. SMS-SUBMIT, membawa SMS dari perangkat mobile (telepon seluler) ke SMSC. d. SMS-SUBMIT-REPORT, membawa status pesan yang dikirim ke SMSC. e. SMS-STATUS-REPORT, membawa pesan (laporan) status dari SMSC ke perangkat mobile (telepon seluler). f. SMS-COMMAND, membawa pesan perintah dari perangkat mobile (telepon seluler) ke SMSC.
SMS dapat dikirimkan dengan dua metode, yaitu: a. Siaran (Broadcast) Metode ini mirip dengan model siaran radio dan bersifat satu arah. Pesan akan dikirimkan ke seluruh perangkat mobile (telepon seluler) yang sedang aktif dan berada dalam jangkauan siaran. Perangkat penerima tidak dapat membalas pesan yang dikirimkan oleh pengirim.
Gambar 2.2 Metode Siaran (Broadcast)
b. Point to Point Pada metode ini, pesan yang dikirimkan oleh perangkat mobile akan dikirimkan ke satu perangkat mobile tujuan. Perangkat penerima dapat membalas pesan yang diterima ke perangkat pengirim.
Gambar 2.3 Metode Point to Point
Universitas Sumatera Utara
2.2.3 Arsitektur Layanan SMS pada Jaringan GSM Suatu jaringan GSM terdiri dari sejumlah komponen entitas fungsional untuk layanan SMS. Komponen-komponen pada jaringan GSM yang berhubungan SMS yaitu Short Message Entitias (SME), SMS-Center (SMSC), Mobile Switching Center (MSC), SMS Gateway-MSC (SMC-GMSC), Home Location Register (HLR), Visitor Location Register (VLR), Base Station Sistem (BSS) dan Mobile Station (MS). Gambar 2.4 menunjukkan hubungan komponen-komponen tersebut (Gupta Punet, 2000).
Gambar 2.4 Arsitektur Layanan SMS (Gupta Punet, 2000)
1. MS Mobile Station (MS) merupakan bagian/tingkatan terendah dalam sistem GSM. MS berada di tingkat pelanggan dan bersifat portabel. MS terdiri dari terminal (Mobile Equipment) dan kartu SIM (SIM-card). Terminal merupakan peralatan mobile yang digunakan pelanggan untuk mendapatkan layanan (service) dari jaringan. Terminal dapat berupa telepon seluler, PDA, laptop, dan sebagainya. Kartu SIM (Subscriber Identitas Module) adalah kartu yang memberikan mobilitas secara personal sehingga pengguna mempunyai akses ke layanan jaringan yang digunakannya. Kartu SIM untuk jaringan GSM hanya dapat digunakan pada terminal-terminal yang bekerja untuk jaringan GSM saja. Dengan bantuan kartu SIM, terminal dapat digunakan untuk menerima layanan operator jaringan, seperti membuat dan menerima panggilan, mengirim dan menerima SMS, atau menerima layanan yang disediakan layanan lain yang disediakan operator. Kartu SIM akan melindungi baik terminal maupun kartu SIM itu sendiri dari pengguna yang tidak bertanggung jawab dengan suatu PIN (password) dan nomor personal.
Universitas Sumatera Utara
2. BSS Base Station System (BSS) melakukan pengiriman dan penerimaan panggilan atau pesan dari suatu MS. BSS bertugas untuk melaksanakan fungsi-fungsi yang berhubungan dengan relay radio, yaitu mengirimkan dan menerima informasi (suara atau pesan teks) melalui gelombang radio dari dan ke MS. BSS terdiri atas Base Station Controller (BSC) dan Base Transceiver Station (BTS). a. BSC Base Station Controller (BSC) terdiri dari beberapa BTS dan setiap BTS mempunyai sel area (jangkauan) pancar gelombang radio yang berbeda. tidak jarang terjadi area yang over lapping antara BTS satu dengan BTS di dekatnya. Walaupun demikian kontinuitas komunikasi MS dengan infrastruktur jaringan seluler selalu terjaga. BSC digunakan untuk mengatur kepindahan MS dari satu sel area yang dijangkau BTS satu ke sel area lain yang dijangkau BTS lain. b. BTS Base Transceiver Station (BTS) yaitu untuk mengatur interkoneksi antara infrastruktur sistem seluler dengan MS. BTS selalu memonitor MS yang masuk/keluar jangkauan sel BTS. Luas jangkauan BTS dipengaruhi antara lain oleh lingkungan, topografi, adanya bangunan-bangunan tinggi dan sebagainya.
3. Network Switching System (NSS) Network Switching System (NSS) bertanggung jawab atas pemanggilan dan pengiriman pesan. BSS menyediakan semua fungsionalitas yang diperlukan untuk melayani pengguna bergerak seperti registrasi, otentifikasi, pembaruan lokasi (location
updater),
pindah
tangan
(handover),
perutean
(routing)
panggilan/pengiriman ke pengguna yang sedang berada di luar jangkauan area. NSS terdiri dari beberapa unit fungsional, yaitu: a. HLR Home Location Register (HLR) adalah basis data tempat data dan informasi pelanggan disimpan secara permanen/tetap (tidak tergantung pada posisi pelanggan). Dalam proses pengiriman pesan, HLR juga dapat memberikan informasi ke SMSC bahwa jaringan mobile yang dituju telah dikenali dan dapat
Universitas Sumatera Utara
dilakukan pengaksesan, sehingga pesan dapat segera dikirim ke tujuan. Dalam hal ini, HLR bertidak sebagai pusat infromasi pelanggan. b. MSC Mobile Switching Center (MSC) bertugas melakukan switching ke sistem, selain itu MSC berperan sebagai interkoneksi hubungan pembicaraan, baik antar pelanggan seluler maupun antar pelanggan seluler dengan jaringan tetap telepon kabel (PTSN). MSC mengendalikan panggilan dari atau ke sistem telepon. Dalam kaitannya dengan pengiriman short message, MSC akan mengirimkan short message kepada pelanggan yang dituju dengan memilih stasiun utama (base station) yang tepat. c. VLR Visitor Location Register (VLR) berfungsi untuk menyimpan data dan informasi dimulai pada saat pelanggan memasuki area yang berada dalam wilayah suatu MSC VLR tersebut. Adanya informasi tentang pelanggan dalam VLR memungkinkan MSC melakukan hubungan baik panggilan masuk maupun panggilan keluar. Berbeda dengan HLR, VLR bertindak sebagai basis data pelanggan yang bersifat dinamis karena selalu berubah setiap waktu menyesuaikan dengan pelanggan yang masuk atau berpindah wilayah suatu MSC. Data yang tersimpan dalam VLR akan selalu berubah mengikuti pergerakan pelanggan. Dengan adanya informasi yang di ambil dari VLR, MSC dapat mengalihkan pesan pendek ke BSS yang berhubungan. d. GMSC Gateway MSC (GMSC) merupakan pintu gerbang jaringan bergerak yang dapat berhubungan dengan jaringan lain. Dalam pengiriman pesan, GMSC melakukan pengambilan data dari HLR untuk mengetahui informasi perjalanan pesan ke alamat yang dituju dan melakukan pengiriman pesan ke MSC yang tepat. e. SME Short Message Entitas (SME) merupakan entitas dari pengguna SMS, SME berupa MS atau jaringan tetap yang melakukan aktivitas pengiriman dan penerimaan SMS. f. AuC Authentication Center (AuC) menyimpan semua informasi yang diperlukan untuk memeriksa keabsahan pelanggan, sehingga usaha untuk mengandakan
Universitas Sumatera Utara
hubungan pembicaraan dengan pelanggan yang tidak sah dapat dihindarkan. Selain itu AuC juga berfungsi untuk menghindari adanya pihak ketiga yang secara tidak sah mencoba untuk menyadap pembicaraan pelanggan. g. EIR Equipment Identitas Register (EIR) adalah basis data yang berisi informasi tentang identitas peralatan bergerak yang valid. Setiap peralatan bergerak dilengkapi dengan IMEI (International Mobile Equipment Identitas). EIR memuat data-data peralatan pelanggan yang dibagi atas tiga kategori yaitu, 1. peralatan bergerak bebas mengadakan hubungan pembicaraan ke manapun 2. peralatan bergerak hanya boleh mengadakan hubungan pembicaraan ke tujuan tertentu 3. peralatan bergerak sama sekali tidak diizinkan untuk mengadakan hubungan (komunikasi). h. SMSC SMS Center (SMSC) merupakan pengelola dan pentransmisi SMS. SMSC berupa hardware dan software yang berfungsi sebagai kantor pos dalam mengatur lalu lintas surat. Setiap jaringan GSM memiliki satu atau lebih SMSC untuk menyortir dan melakukan perutean (routing) pesan. SMSC bertugas melakukan pengecekan, pengaturan, dan pengiriman pesan kepada operator. Selain itu SMSC dapat juga mengirim dan menerima pesan antar jaringan GSM. Dalam pengiriman pesan terdapat dua metode, yang tergantung dari interface yang didukung oleh SMSC dalam jaringan GSM, yaitu secara langsung dan tidak langsung. Pengiriman pesan secara langsung dapat dilakukan oleh terminal yang telah terhubung dengan jaringan GSM melalui modem GSM. Hal ini berbeda dengan pengiriman pesan secara tidak langsung. Pengguna harus melakukan pemanggilan operator terlebih dahulu untuk meminta bantuan pengiriman pesan ke nomor yang dituju. SMS Center harus mamapu melakukan 1. Menerima SMS (pesan) dan mengirimkan SMS ke ponsel (Mobile Station) secara langsung jika ponsel (nomor) tujuan aktif (telah terdeteksi). 2. Menyimpan SMS tersebut sampai Validity-Period berakhir jika nomor tujuan tidak terdeteksi (tidak aktif). 3. Mengirimkan status pengiriman pesan ke nomor pengirim.
Universitas Sumatera Utara
Kebutuhan fungsionalitas dari SMS Center tidak akan di bahas secara detail karena hal tersebut berbeda untuk masing-masing operator. Kebutuhan fungsionalitas dari SMS Center secara umum adalah: 1. Mengidentifiksi setiap SMS-SUBMIT dan SMS-DELIVER yang dikirim ke ponsel (MS). 2. Memberikan stamp yaitu waktu kedatangan SMS-SUBMIT di SMS Center dengan ketelitian waktu sampai satuan detik. Jika terdapat dua pesan atau lebih, untuk nomor tujuan yang sama, tiba di SMS Center dengan selisih waktu kedatangan yang kurang dari satu detik, maka SMS Center harus dapat mengatur agar semua pesan untuk nomor tujuan yang sama tapi memiliki waktu stamp yang berbeda. 3. SMS Center hanya mengirimkan satu SMS-DELIVER ke nomor tujuan pada jangka waktu tertentu. Dengan kata lain sebuah ponsel (MS) tidak akan menerima dua pesan atau lebih secara bersamaan dari SMS Center.
2.2.4 Sistem Kerja SMS
Sebagai bagian dari sistem GSM., SMS adalah layanan yang sebenarnya merupakan bearer service atau paket pengiriman dari data GSM. Bearer service ini bekerja pada layer fisik yang merupakan layer terbawah dari protokol aplikasi data GSM. SMS adalah tipe asynchoronous message yang pengiriman datanya dilakukan dengan mekanisme protokol store and forward. Hal ini berarti bahwa pengirim dan penerima SMS tidak perlu berada dalam status berhubungan (connected/online) satu sama lain ketika akan saling bertukar pesan SMS. Pengiriman pesan SMS secara store and forward berarti pengirim pesan SMS menuliskan pesan dan nomor telepon tujuan dan kemudian mengirimkannya (store) ke server SMS (SMS Center) yang kemudian bertanggung jawab untuk mengirimkan pesan tersebut (forward) ke nomor telepon tujuan.
Keuntungan mekanisme store and forward pada SMS adalah, penerima tidak perlu berstatus online ketika ada pengirim yang bermaksud mengirimkan pesan kepadanya, karena pesan akan dikirim oleh pengirim ke SMSC yang kemudian dapat
Universitas Sumatera Utara
menunggu untuk meneruskan pesan tersebut ke penerima ketika penerima telah siap dan dalam status online di waktu lain. Ketika pesan SMS telah dikirim dan diterima oleh SMSC, pengirim akan menerima pesan singkat (konfirmasi) bahwa pesan telah terkirim (message sent). Hal-hal inilah yang menjadi kelebihan SMS dan populer sebagai layanan praktis dari sistem telekomunikasi bergerak.
Gambar 2.5 Store and Forward
Keterbatasan SMS adalah pada ukuran pesan yang dapat dikirimkan, yaitu maksimal 160 byte. Kerterbatasan ini disebabkan karena mekanisme transmisi SMS itu sendiri. SMS pada awalnya adalah layanan yang ditambahkan pada sistem GSM yang digunakan untuk mengirimkan dan mengenai konfigurasi dari handset pelanggan.
2.3 Pemampatan Data Berikut ini akan dijelaskan sejarah, definisi, dan algoritma Huffman
2.3.1 Sejarah
Salah satu ide yang populer dalam pemampatan data adalah apabila frekuensi kemunculan karakter atau simbol pada suatu pesan diketahui, maka terdapat cara mengkodekan karakter, sehingga membutuhkan ruang yang lebih kecil. Ide ini tidaklah baru, salah satu contoh awal pemampatan data adalah kode Morse yang dikembangkan oleh Samuel Morse pada pertengahan abad ke 19. Huruf-huruf yang
Universitas Sumatera Utara
dikirim oleh telegraf disandikan dengan titik dan garis. Morse mencatat bahwa huruf tertentu terjadi lebih sering dibandingkan yang lain. Untuk mengurangi rata-rata waktu yang diperlukan dalam mengirimkan pesan, Morse membuat urutan yang lebih pendek untuk huruf-huruf yang terjadi lebih sering seperti e (.), a(.-) dan urutan yang lebih panjang untuk huruf-huruf yang terjadi agak jarang seperti q (--.-) dan j (.---).
Ide penggunaan kode yang lebih pendek untuk karakter yang lebih sering terjadi dan kode yang lebih panjang untuk karakter yang jarang terjadi diambil ke dalam bidang komputasi oleh Claude Elwood Shannon dan Robert M. Fano tahun 1950an, ketika keduannya mengembangkan algoritma pemampatan Shannon-Fano. Beberapa tahun kemudian, David A. Huffman menerbitkan suatu paper tahun 1952 yang meningkatkan kinerja algoritma dengan menamainnya Huffman Coding.
Saat ini terdapat berbagai tipe algoritma pemampatan antara lain Huffman, LIFO, LZ77, Dynamic Markov Compression, Block Sorting Lossless, Run Length, Shannon-Fano, Arithmetic dan lain-lain.
2.3.2 Definisi
Pemampatan data adalah proses pengubahan sekumpulan data menjadi suatu bentuk kode untuk menghemat kebutuhan ruang penyimpanan dan waktu untuk transmisi data. Pemampatan merupakan salah satu dari teori informasi yang diperkenalkan oleh Shannon yang bertujuan untuk menghilangkan redudansi dari sumber. Pemampatan bermanfaat dalam membantu mengurangi konsumsi sumber daya yang mahal, seperti ruang harddisk atau perpindahan data melalui internet. Pemampatan data memiliki beberapa aplikasi, diantaranya 1. Pangiriman data (data transmission) pada saluran komunikasi data Data yang telah dimampatkan membutuhkan waktu pengiriman yang lebih singkat dibandingkan data yang tidak dimampatkan. 2. Penyimpanan data (data storing) di dalam media sekunder (storage) Data yang telah dimampatkan membutuhkan ruang pada media penyimpanan yang lebih sedikit dibandingkan dengan data yang tidak dimampatkan.
Universitas Sumatera Utara
2.4 Agoritma Huffman Algoritma Huffman diperkenalkan oleh David A. Huffman seorang mahasiswa MIT dalam papernya yang berjudul “A Method for the Construction of Minimum Redudancy Codes” dan diterbitkan pada tahun 1952. Prinsip kode Huffman adalah karakter yang paling sering muncul di dalam data dikodekan dengan kode yang jumlah bitnya lebih sedikit, sedangkan karakter yang jarang mucul dikodekan dengan kode yang jumlah bitnya lebih panjang. Algoritma Huffman menggunakan tabel frekuensi kemunculan karakter untuk menggambarkan setiap karakter menjadi kode atau string biner. Kode atau string biner yang digunakan untuk mengkodekan setiap karakter dinamakan kode Huffman.
Dasar pemikiran algoritma ini adalah bahwa setiap karakter ASCII biasanya diwakili oleh 8 bits. Jadi misalnya suatu file berisi deretan karakter “ABACAD” maka ukuran file tersebut adalah 6 x 8 bits = 48 bit atau 6 bytes. Jika setiap karakter tersebut di beri kode lain misalnya A=1, B=00, C=010, dan D=011, berarti kita hanya perlu file dengan ukuran 11 bits (10010101011), yang perlu diperhatikan ialah bahwa kodekode tersebut harus unik atau dengan kata lain suatu kode tidak dapat dibentuk dari kode-kode yang lain. Pada contoh diatas jika kode D kita ganti dengan 001, maka kode tersebut dapat dibentuk dari kode B ditambah dengan kode A yaitu 00 dan 1, tapi kode 011 tidak dapat dibentuk dari kode-kode yang lain. Selain itu karakter yang paling sering muncul, kodenya diusahakan lebih kecil jumlah bitnya dibandingkan dengan karakter yang jarang muncul. Pada contoh di atas karakter A lebih sering muncul (3 kali), jadi kodenya dibuat lebih kecil jumlah bitnya dibanding karakter lain. Untuk menetukan kode-kode dengan kriteria bahwa kode harus unik dan karakter yang sering muncul dibuat kecil jumlah bitnya, dapat digunakan algoritma Huffman.
Contoh sebuah file yang akan dimampatkan berisi karakter-karakter “PERKARA”. Dalam kode ASCII masing-masing karakter dikodekan sebagai : P = 50H E = 45H R = 52H K = 4BH A = 41H
= = = = =
01010000B 01000101B 01010010B 01001011B 01000001B
Universitas Sumatera Utara
Maka jika diubah dalam rangkaian bit, “PERKARA” menjadi : 01010000010001010101001001001011010000010101001001000001 P E R K A R A yang berukuran 56 bit.
Langkah pertama adalah menghitung frekuensi kemunculan masing-masing karakter, jika dihitung ternyata P muncul sebanyak 1 kali, E sebanyak 1 kali, R sebanyak 2 kali, K sebanyak 1 kali dan A sebanyak 2 kali. Jika disusun dari yang kecil: E=1 K=1 P=1 A=2 R=2
Untuk karakter yang memiliki frekuensi kemunculan sama seperti E, K dan P disusun menurut kode ASCII-nya, begitu pula untuk A dan R. Selanjutnya adalah membuat node masing-masing karakter beserta frekuensinya sebagai berikut :
E,1
K,1
P,1
A,2
R,2
Gambar 2.6 Pembentukan pohon Huffman 1
Selanjutnya adalah ambil 2 node yang paling kiri (K dan E), lalu membuat node baru yang merupakan gabungan dua node tersebut, node gabungan ini akan memiliki cabang masing-masing 2 node yang digabungkan tersebut. Frekuensi dari node gabungan ini adalah jumlah frekuensi cabang-cabangnya. Jika digambarkan akan menjadi seperti berikut ini:
P,1
EK,2
E,1
A,2
R,2
K,1
Universitas Sumatera Utara
Gambar 2.7 Pembentukan pohon Huffman 2 Jika dilihat frekuensi tiap node pada level paling atas, EK=2, P=1, A=2, dan R=2. Node-node tersebut harus diurutkan lagi dari yang paling kecil, jadi node EK harus digeser ke sebelah kanan node P dan ingat jika menggeser suatu node yang memiliki cabang, maka seluruh cabangnya harus diikutkan juga. Setelah diurutkan hasilnya akan menjadi sebagai berikut:
P,1
A,2
EK,2
E,1
R,2
K,1
Gambar 2.8 Pembentukan pohon Huffman 3
Setelah node pada level paling atas diurutkan (level berikutnya tidak perlu diurutkan), berikutnya gabungkan kembali 2 node paling kiri seperti yang pernah dikerjakan sebelumnya. Node P digabung dengan node EK menjadi node PEK dengan frekuensi 3 dan gambarnya akan menjadi seperti berikut ini:
PEK,3
P,1
A,2
R,2
EK,2
E,1
K,1
Gambar 2.9 Pembentukan pohon Huffman 4
Universitas Sumatera Utara
Kemudian diurutkan lagi menjadi :
A,2
R,2
PEK,3
P,1
EK,2
E,1
K,1
Gambar 2.10 Pembentukan pohon Huffman 5
Demikian seterusnya sampai diperoleh pohon Huffman seperti gambar berikut ini :
PEKAR,7
PEK,3
P,1
AR,4
EK,2
E,1
A,2
R,2
K,1
Gambar 2.11 Pembentukan pohon Huffman 6
Setelah pohon Huffman terbentuk, berikan tanda bit 0 untuk setiap cabang ke kiri dan bit 1 untuk setiap cabang ke kanan seperti gambar berikut:
Universitas Sumatera Utara
PEKAR,7 1
0
AR,4
PEK,3 0
1
P,1
1
EK,2
A,2
0
1
E,1
K,1
R,2
Gambar 2.12 Pembentukan pohon Huffman 7
Untuk mendapatkan kode Huffman masing-masing karakter, telusuri karakter tersebut dari node yang paling atas (PEKAR) sampai ke node karakter tersebut dan susunlah bit-bit yang dilaluinya.
Untuk mendapatkan kode Karakter E, dari node PEKAR, harus menuju ke node PEK melalui bit 0 dan selanjutnya menuju ke node EK melalui bit 1, dilanjutkan ke node E melalui bit 0, jadi kode dari karakter E adalah 010.
Untuk mendapatkan kode Karakter K, dari node PEKAR, harus menuju ke node PEK melalui bit 0 dan selanjutnya menuju ke node EK melalui bit 1, dilanjutkan ke node K melalui bit 1, jadi kode dari karakter K adalah 011.
Untuk mendapatkan kode Karakter P, dari node PEKAR, harus menuju ke node PEK melalui bit 0 dan selanjutnya menuju ke node P melalui bit 0, jadi kode dari karakter P adalah 00.
Untuk mendapatkan kode Karakter A, dari node PEKAR, harus menuju ke node AR melalui bit 1 dan selanjutnya menuju ke node A melalui bit 0, jadi kode dari karakter A adalah 10.
Universitas Sumatera Utara
Untuk mendapatkan kode Karakter R, dari node PEKAR, harus menuju ke node AR melalui bit 1 dan selanjutnya menuju ke node R melalui bit 1, jadi kode dari karakter R adalah 11.
Hasil akhir kode Huffman dari file di atas adalah : E = 010 K = 011 P = 00 A = 10 R = 11
Dengan kode ini, file yang berisi karakter-karakter “PERKARA” akan menjadi lebih kecil, yaitu:
00 010 11 011 10 11 10 = 16 bit P E R K A R A
Dengan Algoritma Huffman berarti file ini dapat kita hemat sebanyak 56-16 = 40 bit. Untuk proses pengembalian ke file aslinya, harus mengacu kembali kepada kode Huffman yang telah dihasilkan, seperti contoh di atas hasil pemampatan adalah: 0001011011001110 dengan Kode Huffman : E= K= P= A= R=
010 011 00 10 11
Ambil satu-persatu bit hasil pemampatan mulai dari kiri, jika bit tersebut termasuk dalam daftar kode, lakukan pengembalian, jika tidak ambil kembali bit selanjutnya dan jumlahkan bit tersebut. Bit pertama dari hasil pemampatan di atas adalah 0, karena 0 tidak termasuk dalam daftar kode, ambil lagi bit kedua yaitu 0, lalu digabungkan menjadi 00, jika dilihat daftar kode 00 adalah kode dari karakter P.
Universitas Sumatera Utara
Selanjutnya bit ketiga diambil yaitu 0, karena 0 tidak terdapat dalam daftar kode, ambil lagi bit keempat yaitu 1 dan kita gabungkan menjadi 01. 01 juga tidak terdapat dalam daftar, jadi ambil kembali bit selanjutnya yaitu 0 dan digabungkan menjadi 010. 010 terdapat dalam daftar kode yaitu karakter E. Demikian selanjutnya dikerjakan sampai bit terakhir sehingga akan didapatkan hasil pengembalian yaitu PERKARA.
2.5 Kriptografi Klasik Berikut ini akan dijelaskan sejarah dan algoritma kriptografi klasik
2.5.1 Sejarah
Kriptografi mempunyai sejarah yang panjang. Informasi yang lengkap mengenai sejarah kriptografi dapat ditemukan di dalam buku David Kahn yang berjudul The Codebreakers. Dalam bukunya David Kahn menulis penggunaan kriptografi oleh Bangsa Mesir 4000 tahun yang lalu (berupa hieroglyph yang tidak standard pada pyramid) hingga penggunaan kriptografi pada abad ke-20. Kalangan gereja pada awal agama Kristen menggunakan kriptografi untuk menjaga tulisan religius dari ganguan otoritas politik atau budaya yang dominan saat itu yang sangat terkenal adalah “Angka si Buruk Rupa” (Number of the Beast) di dalam Kitab Perjanjian Baru.
Sejarah kriptografi sebagian besar merupakan sejarah kriptografi klasik yaitu metode enkripsi yang menggunakan kertas dan pensil atau mungkin dengan bantuan alat mekanik sederhana. Secara umum algoritma kriptografi klasik dikelompokkan menjadi dua kategori, yaitu algoritma transposisi (transposition cipher) dan algoritma substitusi (substitution cipher). Cipher transposisi mengubah susunan huruf-huruf di dalam pesan, sedangkan cipher substitusi mengganti setiap huruf atau kelompok huruf dengan sebuah huruf atau kelompok huruf lain.
Kriptografi modern dipicu oleh perkembangan peralatan komputer digital. Tidak seperti kriptografi klasik yang mengenkripsi karakter per karakter (dengan
Universitas Sumatera Utara
menggunakan alfabet tradisionil), kriptografi modern beroperasi pada string biner. Kriptografi modern tidak hanya memberikan aspek keamanan confidentially, tetapi juga aspek keamanan lain seperti otentikasi, integritas data dan nirpenyangkalan.
2.5.2 Definisi dan Terminologi
Kriptografi (cryptography) berasal dari bahasa Yunani: “cryptos” artinya “secret” (rahasia), sedangkan “graphein” artinya “writing” (tulisan). Jadi, kriptografi berarti “secret writing” (tulisan rahasia). Definisi yang dipakai di dalam buku-buku yang lama (sebelum tahun 1980-an) menyatakan bahwa kriptografi adalah ilmu dan seni untuk menjaga kerahasiaan pesan dengan cara menyandikannya ke dalam bentuk yang tidak dapat di mengerti lagi maknanya. Definisi ini mungkin cocok pada masa lalu di mana kriptografi digunakan untuk keamanan komunikasi penting seperti komunikasi kalangan militer, diplomat, dan mata-mata. Namun saat ini kriptografi lebih dari sekedar privacy, tetapi juga untuk tujuan data integrity, authentication, dan nonrepudiation (Munir Rinaldi, 2006: 2).
Kriptografi adalah ilmu dan seni untuk menjaga keamanan pesan. Kriptografi adalah ilmu yang mempelajari teknik-teknik matematika yang berhubungan dengan aspek keamanan informasi seperti kerahasiaan, integritas data, serta otentikasi. Konsep kriptografi sendiri telah lama digunakan oleh manusia misalnya pada peradaban Mesir dan Romawi walau masih sangat sederhana. Prinsip-prinsip yang mendasari kriptografi yakni: •
Confidentiality (kerahasiaan) yaitu layanan agar isi pesan yang dikirimkan tetap rahasia dan tidak diketahui oleh pihak lain (kecuali pihak pengirim, pihak penerima / pihak-pihak memiliki izin). Umumnya hal ini dilakukan dengan cara membuat suatu algoritma matematis yang mampu mengubah data hingga menjadi sulit untuk dibaca dan dipahami.
•
Data integrity (keutuhan data) yaitu layanan yang mampu mengenali/mendeteksi adanya manipulasi (penghapusan, pengubahan atau penambahan) data yang tidak sah (oleh pihak lain).
Universitas Sumatera Utara
•
Authentication (keotentikan) yaitu layanan yang berhubungan dengan identifikasi. Baik otentikasi pihak-pihak yang terlibat dalam pengiriman data maupun otentikasi keaslian data/informasi.
•
Non-repudiation (anti-penyangkalan) yaitu layanan yang dapat mencegah suatu pihak untuk menyangkal aksi yang dilakukan sebelumnya (menyangkal bahwa pesan tersebut berasal dirinya).
Beberapa istilah dalam kriptografi diataranya: a. Pesan, Plainteks, dan Chipherteks Pesan (message) adalah data atau informasi yang dapat dibaca dan dimengerti maknanya. Nama lain dari pesan adalah plainteks (plaintext). Agar pesan tidak bisa dimengerti maknanya oleh pihak lain, maka pesan perlu disandikan ke bentuk lain yang tidak dapat dipahami. Bentuk pesan yang tersandi disebut cipherteks (chiphertext). b. Pengirim dan penerima Pengirim adalah entitas yang mengirim pesan kepada entitas lainnya. Penerima adalah entitas yang menerima pesan. Entitas di sini dapat berupa orang, mesin (komputer), kartu kredit dan sebagainya. c. Enkripsi dan dekripsi Proses menyandikan plainteks menjadi cipherteks disebut enkripsi. Sedangkan proses mengembalikan cipherteks menjadi plainteks semula dinamakan dekripsi. d. Cipher dan kunci Algoritma kriptografi disebut juga cipher yaitu aturan untuk enciphering dan deciphering, atau fungsi matematika yang digunakan untuk enkripsi dan dekripsi. Konsep matematis yang mendasari algoritma kriptografi adalah relasi antara dua buah himpunan yaitu himpunan yang berisi elemen-elemen plainteks dan himpunan yang berisi cipherteks. Enkripsi dan dekripsi adalah fungsi yang memetakan elemen-elemen antara kedua himpunan tersebut. e. Sistem kriptografi Sistem kriptografi merupakan kumpulan yang terdiri dari algoritma kriptografi, semua plainteks dan cipherteks yang mungkin dan kunci. f. Penyadap Penyadap adalah orang yang berusaha mencoba menangkap pesan selama ditransmisikan dengan tujuan mendapatkan informasi sebanyak-banyaknya
Universitas Sumatera Utara
mengenai sistem kriptografi yang digunakan untuk berkomunikasi dengan maksud untuk memecahkan cipherteks. g. Kriptanalisis dan kriptologi Kriptanalisis (cryptanalysis) adalah ilmu dan seni untuk memecahkan cipherteks menjadi plainteks tanpa mengetahui kunci yang digunakan. Pelakunya disebut kriptanalis. Kriptologi adalah studi mengenai kriptografi dan kriptanalisis.
Algoritma kriptografi klasik dapat dikelompokkan ke dalam dua macam cipher: 1. Cipher Substitusi (Substitution Ciphers) 2. Cipher Transposisi (Transposition Ciphers)
2.5.2.1 Cipher Substitusi
Algoritma substitusi tertua yang diketahui adalah Caesar cipher yang digunakan oleh kaisar Romawi, Julius Caesar (sehingga dinamakan juga caesar cipher), untuk menyandikan pesan yang ia kirim kepada gubernurnya.
Caranya kerjanya adalah dengan mengganti (menyulih atau mensubstitusi) setiap karakter dengan karakter lain dalam susunan abjad (alfabet). Misalnya, tiap huruf disubstitusi dengan huruf ketiga berikutnya dari susunan abjad. Dalam hal ini kuncinya adalah jumlah pergeseran huruf (yaitu k = 3). Tabel substitusi: Tabel 2.1 Substitusi Plainteks
A B C D E F G H I J K L M N O P Q R S T UVW X Y Z
Cipherteks
D E F G H I J K LMNO P Q R S T UVWXY Z A B C
Contoh 4.1 Misalkan Plainteks adalah AWASI ASTERIX DAN TEMANNYA OBELIX di-enkripsi menjadi DZDVL DVWHULA GDQ WHPDQQBA REHOLA
Universitas Sumatera Utara
Penerima pesan men-dekripsi chiperteks dengan menggunakan tabel substitusi, sehingga chiperteks DZDVL DVWHULA GDQ WHPDQQBA REHOLA
dapat dikembalikan menjadi plainteks semula: AWASI ASTERIX DAN TEMANNYA OBELIX
Dengan mengkodekan setiap huruf abjad dengan integer sebagai berikut: A = 0, B = 1, …, Z = 25, maka secara matematis caesar cipher menyandikan plainteks pi menjadi ci dengan aturan: ci = E(pi) = (pi + 3) mod 26
(1)
dan dekripsi cipherteks ci menjadi pi dengan aturan: pi = D(ci) = (ci – 3) mod 26
(2)
Karena hanya ada 26 huruf abjad, maka pergeseran huruf yang mungkin dilakukan adalah dari 0 sampai 25. Secara umum, untuk pergeseran huruf sejauh k (dalam hal ini k adalah kunci enkripsi dan deksripsi), fungsi enkripsi adalah ci = E(pi) = (pi + k) mod 26
(3)
dan fungsi dekripsi adalah pi = D(ci) = (ci – k) mod 26
(4)
Catatan: 1. Pergeseran 0 sama dengan pergeseran 26 (susunan huruf tidak berubah) 2. Pergeseran lain untuk k > 25 dapat juga dilakuka namun hasilnya akan kongruen dengan bilangan bulat dalam modulo 26. Misalnya k = 37 kongruen dengan 11 dalam modulo 26, atau 37 º 11 (mod 26) 3. Karena ada operasi penjumlahan dalam persamaan (3) dan (4), maka caesar cipher kadang kadang dinamakan juga additive cipher Untuk mengenkripsi/dekripsi pesan yang disusun oleh karakter-karakter teks (ASCII, 256 karakter), maka persamaan 3 dan 4 ditulis ci = E(pi) = (pi + k) mod 256
(5)
pi = D(ci) = (ci – k) mod 256
(6)
Universitas Sumatera Utara
2.5.2.2 Chipher Transposisi Pada cipher transposisi, plainteks tetap sama, tetapi urutannya diubah. Dengan kata lain, algoritma ini melakukan transpose terhadap rangkaian karakter di dalam teks. Nama lain untuk metode ini adalah permutasi, karena transpose setiap karakter di dalam teks sama dengan mempermutasikan karakter-karakter tersebut. Contoh 4.2 Misalkan Plainteks adalah PROGRAM STUDI S-1 ILMU KOMPUTER USU Untuk meng-enkripsi pesan, plainteks ditulis secara horizontal dengan lebar kolom tetap, misal selebar 6 karakter (kunci k = 6): PROGRA MSTUDI S-1ILM UKOMPU TERUSU
maka cipherteksnya dibaca secara vertikal menjadi PMSUTRS-KEOT1ORGUIMURDLPSAIMUU Untuk mendekripsi pesan, kita membagi panjang cipherteks dengan kunci. Pada contoh ini, kita membagi 30 dengan 6 untuk mendapatkan 5. Algoritma dekripsi identik dengan algoritma enkripsi. Jadi, untuk contoh ini, kita menulis cipherteks dalam baris-baris selebar 5 karakter menjadi: PMSUT RS-KE OT1OR GUIMU RDLPS AIMUU
Dengan membaca setiap kolom kita memperoleh pesan semula: PROGRAM STUDI S-1 ILMU KOMPUTER USU
Universitas Sumatera Utara
2.6 Java 2 Micro Edition Berikut ini akan dijelaskan sejarah, definisi, dan arsitektur dari J2ME
2.6.1 Sejarah
Java, dalam ilmu komputer merupakan bahasa pemrograman berorientasi objek yang diperkenalkan pada tahun 1995 oleh Sun Microsystems, Inc., yang saat Java diciptakan, dipimpin oleh James Gosling. Nama Java diambil karena beberapa pemrogram terkesan oleh keidahan pulau Jawa di Indonesia serta kenikmatan kopinya. Java memfasilitasi penyebaran baik data maupun program aplikasi kecil, yang dinamakan applet, lewat internet. Aplikasi-aplikasi Java tidak berinteraksi langsung dengan CPU (Central Processing Unit) atau sistem operasi komputer yang digunakan sehingga ia bersifat mandiri terhadap platform komputer, baik platform perangkat lunak maupun perangkat keras. Ini berarti aplikasi Java secara teori seharusnya dapat berjalan baik di komputer mikro, mini maupun besar (mainframe) yang dijalankan menggunakan berbagai sistem operasi.
Java adalah bahasa pemrograman yang mirip dengan C/C++. Java terutama adalah bahasa pemrograman yang umum digunakan untuk pemrograman Web. Salah satu keunggulan dari Java adalah dapat berjalan di banyak platform perangkat keras dan perangkat lunak sehingga pengembang aplikasi dan pemrogram dapat menuliskan program dengan Java (sekali dan hanya sekali saja) kemudian dengan relatif mudah bisa menjalankannya dimana saja; di platform sistem operasi apapun serta di kebanyakan komputer yang aktif saat ini. Istilah populernya adalah, “Write Once, Run Anywhere” (Nugroho Adi, 2008: 4).
Sun Microsystem telah mendefenisikan tiga buah edisi dari Java 2, yaitu sebagai berikut: •
Java 2 Standard Edition (J2SE), yang digunakan untuk mengembangkan aplikasi-aplikasi desktop dan applet (aplikasi Java yang dapat di dalam browser web).
Universitas Sumatera Utara
•
Java 2 Enterprise Edition (J2EE), merupakan superset dari J2SE yang memperbolehkan kita mengembangkan aplikasi-aplikasi berskala besar (enterprise), yaitu dengan melakukan pembuatan aplikasi-aplikasi di sisi server dengan menggunakan EJBs (Enterprise JavaBeans), aplikasi web dengan menggunakan Servlet dan JSP (JavaServer Pages) dan teknologi lainnya seperti COBRA (Common Object Request Broker Architecture) dan XML (Extensible Markup Language).
•
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 J2SE secara penuh.
2.6.2 Definisi
J2ME merupakan sebuah kombinasi yang terbentuk antara sekumpulan interface Java yang sering disebut juga dengan Java API (Application Programming Interface) dengan JVM (Java Virtual Machine) yang didesain khusus untuk alat, yaitu JVM dengan ruang yang terbatas. Kombinasi tersebut kemudian digunakan untuk melakukan pembuatan aplikasi-aplikasi yang dapat berjalan di atas alat (dalam hal ini mobile device).
Pengembang aplikasi (developer/programmer) tidak harus melakukan instalasi JVM ke dalam alat yang digunakan karena masing-masing perusahaan alat tersebut telah menyediakan JVM (dan sekumpulan Java API yang diperlukan) di dalam alat bersangkutan. Hal ini membuat developer, hanya perlu berkonsentrasi dalam pengembangan aplikasinya dan memasukkannya ke dalam alat tersebut.
2.6.3 Arsitektur J2ME
Java sendiri pada dasarnya terdiri dari tiga buah bagian, yaitu konfigurasi, profil, dan paket-paket opsional, seperti yang ditunjukkan oleh gambar 2.13
Universitas Sumatera Utara
Gambar 2.13 Bagian-bagian di dalam platform J2ME (Raharjo Budi et al, 2007)
Konfigurasi merupakan Java library minimum dan kapabilitas yang dipunya oleh para pengembang J2ME, yang maksudnya sebuah mobile device dengan kemampuan Java akan dioptimalkan untuk menjadi sesuai. Konfigurasi hanyalah mengatur hal-hal tentang kesamaan sehingga dapat dijadikan ukuran kesesuaian antardevice. Misalnya sebuah lampu sepeda dirancang sedemikian rupa sehingga dapat digunakan oleh berjenis-jenis sepeda. Dalam J2ME telah didefenisikan dua buah konfigurasi yaitu CLDC (Connected Limited Device Configuration) untuk perangkat kecil dan CDC (Connected Device Configuration) untuk perangkat yang lebih besar. Lingkup CLDC dan CDC dapat dilihat pada gambar 2.14
Gambar 2.14 Lingkup Configuration
CLDC adalah perangkat dasar dari J2ME, spesifikasi dasar yang berupa library dan API yang diimplementasikan pada J2ME, seperti yang digunakan pada telepon selular, pager, dan PDA. Perangkat tersebut dibatasi dengan keterbatasan memori, sumber daya, dan kemampuan memproses. Spesifikasi CLDC pada J2ME adalah spesifikasi minimal dari package, kelas, dan sebagian fungsi Java Virtual
Universitas Sumatera Utara
Machine yang dikurangi agar dapat diimplementasikan dengan keterbatasan sumber daya pada alat-alat tersebut, JVM yang digunakan disebut KVM (Kilobyte Virtual Machine).
CDC adalah spesifikasi dari konfigurasi J2ME. CDC merupakan komunitas proses pada Java yang mimiliki standarisasi. CDC terdiri dari virtual machine dan kumpulan library dasar untuk dipergunakan pada profile industri. Implementasi CDC pada J2ME adalah source code yang menyediakan sambungan dengan macam-macam platform.
Tabel 2.2 adalah perbandingan antara CLDC dan CDC: Tabel 2.2 Perbandingan CLCD dan CDC (Shalahuddin M. et al, 2008: 7) CLDC Mengimplementasikan sebagian dari J2SE JVM yang digunakan adalah KVM Digunakan pada perangkat genggam (handphone, PDA, twoway pager) dengan memori terbatas (160-512) Prosesor : 16/32 bit
CDC Mengimplementasikan seluruh fitur J2SE JVM yang digunakan adalah CVM Digunakan pada perangkat genggam (internet TV, Nokia Communicator, car TV) dengan memori minimal 2MB) Prosesor : 32 bit
Profil merupakan bagian perluasan dari konfigurasi. Artinya, selain sekumpulan kelas yang terdapat pada konfigurasi, terdapat juga kelas-kelas spesifik yang didefinisikan lagi di dalam profil. Dengan kata lain, profil akan membantu secara fungsional yaitu dengan menyediakan kelas-kelas yang tidak terdapat di level konfigurasi. Profil yang sangat populer penggunaannya adalah profile yang disediakan oleh Sun Microsystems, yaitu MIDP (Mobile Information Device Profile).
MIDP adalah spesifikasi untuk sebuah profil J2ME. MIDP memiliki lapisan di atas CLDC, API tambahan untuk daur hidup aplikasi, antarmuka, jaringan, dan penyimpanan persisten.
Paket-paket operasional merupakan paket-paket tambahan yang dibutuhkan oleh aplikasi sehingga pada saat proses deployment paket-paket tersebut perlu
Universitas Sumatera Utara
didistribusikan juga sebagai bagian dari aplikasi bersangkutan. Paket-paket oprasional ini bukan merupakan paket yang dibuat oleh perusahaan alat yang digunakan.
MIDlet adalah sebutan untuk aplikasi-aplikasi yang dibuat dalam handphone dengan menggunakan profil MIDP. MIDlet berupa sebuah kelas abstrak yang merupakan subkelas dari bentuk dasar aplikasi sehingga antarmuka antara aplikasi J2ME dan aplikasi manajemen pada perangkat dapat terbentuk.
2.6.4 Siklus Hidup Aplikasi J2ME
AMS (Application Management Software) merupakan lingkungan tempat sebauh MIDlet dapat di-install, dijalankan, dihentikan maupun di-unistall. AMS juga kadang disebut dengan nama JAM (Java Application Manager). AMS akan membuat setiap instance baru dari MIDlet dapat mengontrol keadaannya, yaitu dengan cara menjalankan (start), mengistirahatkan (pause) maupun menghentikannya (destroy) secara langsung oleh dirinya sendiri.
Seperti yang sempat dikemukan sebelumnya, terdapat tiga buah method yang harus diimplementasikan oleh setiap MIDlet. Dengan kata lain, setiap MIDlet yang dibuat harus memiliki ketiga buah method tersebut. Adapun method-method tersebut adalah sebagai berikut: 1. startApp () 2. pauseApp () 3. destroyApp ()
Setiap MIDlet dapat berada dalam salah satu keadaan (state) berikut: paused, active, maupun destroyed. Gambar 2.15 akan mengilustrasikan ketiga buah keadaan tersebut dan pada saat kapan MIDlet akan berada dalam keadaan tertentu.
Universitas Sumatera Utara
Gambar 2.15 Siklus hidup MIDlet (Budi Raharjo et al, 2007: 23)
Tampak pada gambar 2.15 bahwa pada saat pembuatan MIDlet baru, mulamula MIDlet akan berada dalam keadaan paused. Apabila proses pembuatan MIDlet gagal akan mengakibatkan kesalahan (menimbulkan eksepsi), maka MIDlet akan langsung berada dalam keadaan destroyed. Namum apabila proses pembuatan MIDlet berjalan dengan baik, maka setelah MIDlet dijalankan, maka AMS secara otomatis akan mengeksekusi method startApp() dan hal ini akan mengubah MIDlet untuk berada dalam keadaan active. MIDlet yang berada dalam keadaan active dapat diubah kembali menjadi keadaan paused melalui pemanggilan method pauseApp() atau diubah menjadi keadaan destroyed melalui pemanggilan method destroyApp(). Sebagai contoh, pada saat MIDlet dijalankan dan kemudian dihentikan oleh user, maka MIDlet akan mengalami perubahan keadaan, yaitu dari active menjadi destroyed.
2.6.5 Aplikasi SMS pada J2ME
WMA (Wireless Messaging API) adalah paket opsional yang terdapat pada J2ME, yang mengizinkan untuk mengembangkan aplikasi-aplikasi yang mampu melakukan pengiriman dan penerimaan pesan (baik yang berupa pesan teks maupun dalam bentuk
Universitas Sumatera Utara
gambar) melalui SMSC (Short Messaging Service Center) maupun MMSC (Multimedia Messaging Service Center). WMA menyediakan API (Application Programming Interface) dasar untuk mengirim dan menerima pesan SMS. Dalam proses pengiriman dan penerimaan SMS, terdapat tiga buah interface yang perlu kita ketahui kegunaannya. Adapun ketiga interface tersebut adalah TextMessage, BinaryMessage, dan MessageConnection.
Interface TextMessage adalah interface yang merepresentasikan pesan berupa teks, Interface tersebut menambahkan dua buah method untuk mengakses teks-teks yang bersangkutan. String getPayloadText() // untuk mendapatkan isi dari pesan Void setPayloadText(String body) // untuk mengeset isi pesan
Interface BinaryMessage adalah interface yang merepresentasikan pesan biner. Interface tersebut menambahkan dua buah method untuk mengakses pesan biner yang terdapat di dalamnya. Isi dari pesan biner adalah berupa array byte. String getPayloadText() // untuk mendapatkan isi dari pesan Void setPayloadText(String body) // untuk mengeset isi pesan
Inti dari paket WMA berada pada interface MessageConnection, yang merepresentasikan sebuah koneksi jaringan untuk melakukan proses pengiriman maupun penerimaan pesan. Kita dapat memperoleh instance dari MessageConnection dengan cara melewatkan URL tertentu ke dalam method Connector.open(). Berikut ini aturan penulisan URL yang diizinkan WMA. 1. sms://no_telepon. MessageConnection akan mengirimkan pesan ke nomor telepon tujuan. Pesan akan terkirim ke inbox SMS dari device tujuan. Dengan demikian, pesan secara otomatis akan diterima oleh aplikasi yang telah disediakan oleh device bersangkutan, bukan oleh aplikasi penerima SMS yang kita kembangkan sendiri. 2. sms://no_telepon:port. MessageConnection akan mengirimkan pesan ke nomor telepon tujuan untuk port yang ditentukan. Di sini, pesan tidak akan terkirim ke inbox SMS dari device bersangkutan melainkan akan dikirimkan ke suatu MIDlet pada device penerima yang bertugas mendengarkan port tersebut.
Universitas Sumatera Utara
3. sms://:port. MessagConnection akan mendengarkan port yang ditentukan. Di sini, MIDlet SMS yang berada di client berperan sebagai server pada port tertentu. Pesan akan terkirim melalui port tersebut. Koneksi jenis ini dinamakan dengan koneksi mode server (server mode connection). 4. cbs://:port. MessageConnection akan mendengerkan pada port tertentu yang ditetapkan untuk pesan CBS (Cell Broadcast Service).
BAB 3
Universitas Sumatera Utara