bab 2 landasan teori 2.1 java™ - thesis.binus.ac.idthesis.binus.ac.id/doc/bab2/2010-1-00264-if-bab...

90
10 BAB 2 LANDASAN TEORI 2.1 JAVA™ JAVA™ merupakan bahasa pemograman yang dikembangkan Sun Microsystem yang dirilis pada tahun 1995 sebagai komponen utama dari Sun Microsystem Lingkungan (Platform) Java. Bahasa ini dikembangkan dengan model yang mirip dengan bahasa C++ dan Smalltalk, namun dirancang agar lebih mudah dipakai dan platform independent, yaitu dapat dijalankan di berbagai jenis sistem operasi dan arsitektur komputer. Bahasa ini juga dirancang untuk pemograman di Internet sehingga dirancang agar aman dan portable. Proyek Java dimulai pada bulan Juni tahun 1991 oleh James Gosling. Pada mulanya bahasa ini disebut Oak yang berasal dari pohon oak yang berada di luar kantor Gosling, selain itu juga pernah berubah menjadi Greendon dan akhirnya dinamakan Java yang berasal dari kumpulan kata acak. Gosling bertujuan untuk mengimplementasikan sebuah mesin virtual dan bahasa yang mirip dengan notasi C / C++. Sun merilis implementasi publik pertamanya Java 1.0 di tahun 1995 yang menjanjikan “Write Once, Run Anywhere” (WORA) dimana dapat dijalankan

Upload: buikhanh

Post on 16-Mar-2019

215 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: BAB 2 LANDASAN TEORI 2.1 JAVA™ - thesis.binus.ac.idthesis.binus.ac.id/doc/Bab2/2010-1-00264-IF-Bab 2.pdf · mengimplementasikan sebuah mesin virtual dan bahasa yang mirip dengan

10

BAB 2

LANDASAN TEORI

2.1 JAVA™

JAVA™ merupakan bahasa pemograman yang dikembangkan Sun

Microsystem yang dirilis pada tahun 1995 sebagai komponen utama dari Sun

Microsystem Lingkungan (Platform) Java. Bahasa ini dikembangkan dengan

model yang mirip dengan bahasa C++ dan Smalltalk, namun dirancang agar lebih

mudah dipakai dan platform independent, yaitu dapat dijalankan di berbagai jenis

sistem operasi dan arsitektur komputer. Bahasa ini juga dirancang untuk

pemograman di Internet sehingga dirancang agar aman dan portable.

Proyek Java dimulai pada bulan Juni tahun 1991 oleh James Gosling. Pada

mulanya bahasa ini disebut Oak yang berasal dari pohon oak yang berada di luar

kantor Gosling, selain itu juga pernah berubah menjadi Greendon dan akhirnya

dinamakan Java yang berasal dari kumpulan kata acak. Gosling bertujuan untuk

mengimplementasikan sebuah mesin virtual dan bahasa yang mirip dengan notasi

C / C++. Sun merilis implementasi publik pertamanya Java 1.0 di tahun 1995 yang

menjanjikan “Write Once, Run Anywhere” (WORA) dimana dapat dijalankan

Page 2: BAB 2 LANDASAN TEORI 2.1 JAVA™ - thesis.binus.ac.idthesis.binus.ac.id/doc/Bab2/2010-1-00264-IF-Bab 2.pdf · mengimplementasikan sebuah mesin virtual dan bahasa yang mirip dengan

11

dengan baik pada platform popular, cukup aman, dan menyediakan fitur keamanan

yang dapat dikonfigurasi.

Berdasarkan white paper resmi dari Sun, Java memiliki karakteristik

sebagai berikut :

1. Sederhana (Simple)

Bahasa pemrograman Java menggunakan sintaks mirip dengan C++,

namun sintaks pada Java merupakan penyederhanaan dari bahasa C++.

Penyederhanaan dilakukaan dengan menambahkan fitur-fitur pendukung

yang belum terdapat dalam C++ dan menghilangkan penggunaan pointer

yang rumit dan multiple inheritance. Java sederhana karena hanya memiliki 3

(tiga) tipe angka data primitive, boolean, dan array. Selebihnya, semua yang

ada di dalam Java adalah kelas. Fitur yang tidak terdapat dalam C++, yang

ditawarkan java, dua diantaranya automatic memori allocation dan memori

garbage collection (pengumpulan sampah). Dengan mekanisme ini, user

tidak perlu membebaskan memori yang dialokasikan, karena semua

dilakukan oleh Mesin Virtual Java. Java juga mendukung penulisan program

multi jalinan, yaitu suatu program yang dapat melakukan lebih dari satu

pekerjaan dalam waktu yang bersamaan.

2. Berorientasi Objek (Object Oriented)

Java mengunakan pemrograman berorientasi objek yang membuat

program dapat dibuat secara modular dan dapat dipergunakan kembali.

Page 3: BAB 2 LANDASAN TEORI 2.1 JAVA™ - thesis.binus.ac.idthesis.binus.ac.id/doc/Bab2/2010-1-00264-IF-Bab 2.pdf · mengimplementasikan sebuah mesin virtual dan bahasa yang mirip dengan

12

Pemrograman berorientasi objek memodelkan dunia nyata kedalam objek

dan melakukan interaksi antar objek-objek tersebut.

3. Terdistribusi (Distributed)

Java dibuat untuk membuat aplikasi terdistribusi secara mudah

dengan adanya libraries networking yang terintegrasi pada Java.

4. Interpreted

Program Java dijalankan menggunakan interpreter yaitu Java Virtual

Machine (JVM). Hal ini menyebabkan source code Java yang telah

dikompilasi menjadi Java bytecodes dapat dijalankan pada platform yang

berbeda-beda.

5. Robust

Java mempuyai reliabilitas yang tinggi. Compiler pada Java

mempunyai kemampuan mendeteksi error secara lebih teliti dibandingkan

bahasa pemrograman lain. Java mempunyai Runtime-Exception handling

untuk membantu mengatasi error pada pemrograman.

6. Secure

Sebagai bahasa pemrograman untuk aplikasi internet dan terdistribusi,

Java memiliki beberapa mekanisme keamanan untuk menjaga aplikasi tidak

digunakan untuk merusak sistem komputer yang menjalankan aplikasi

tersebut.

7. Architecture Neutral

Page 4: BAB 2 LANDASAN TEORI 2.1 JAVA™ - thesis.binus.ac.idthesis.binus.ac.id/doc/Bab2/2010-1-00264-IF-Bab 2.pdf · mengimplementasikan sebuah mesin virtual dan bahasa yang mirip dengan

13

Program Java merupakan platform independent. Program cukup

mempunyai satu buah versi yang dapat dijalankan pada platform berbeda

dengan Java Virtual Machine(JVM).

8. Portabel

Source code maupun program Java dapat dengan mudah dibawa ke

platform yang berbeda-beda tanpa harus dikompilasi ulang.

9. Performance

Performance pada Java sering dikatakan kurang tinggi. Namun

performance Java dapat ditingkatkan menggunakan kompilasi Java lain.

10. Multithreaded

Java mempunyai kemampuan untuk membuat suatu program yang

dapat melakukan beberapa pekerjaan secara sekaligus dan simultan.

11. Dynamic

Java didesain untuk dapat dijalankan pada lingkungan yang dinamis.

Perubahan pada suatu class dengan menambahkan properti ataupun metode

dapat dilakukan tanpa menggangu program yang menggunakan class

tersebut.

Kode Java diproses melalui 2 (dua) tahap, yaitu fase kompilasi dan

interpretasi. Dalam fase kompilasi, source code dari Java (file .java) akan

diterjemahkan menjadi sebuah bahasa penengah (intermediate language) yang

Page 5: BAB 2 LANDASAN TEORI 2.1 JAVA™ - thesis.binus.ac.idthesis.binus.ac.id/doc/Bab2/2010-1-00264-IF-Bab 2.pdf · mengimplementasikan sebuah mesin virtual dan bahasa yang mirip dengan

14

disebut Java Bytecode (file .class). Setelah itu,bytecode siap untuk

diinterpretasikan atau dijalankan dengan menggunakan Java Virtual Machine

(JVM). (http://wikipedia.org).

Gambar 2.1-1 : Proses Kompilasi dan Interpretasi Kode Java

2.1.1 Teknologi Java

Dengan berkembangnya versi terbaru dari Java yang disebut Java

2, teknologi Java dibagi menjadi 3 (tiga) macam edisi, yaitu :

2.1.1.1 Teknologi Java pada perangkat mobile (J2ME)

Micro edition dari platform Java memenuhi permintaan

dari pengembang untuk menciptakan aplikasi guna memenuhi

kebutuhan pasar dan konsumen. J2ME merupakan teknologi

Java yang menyediakan aplikasi robust untuk berbagai tipe dan

ukuran peralatan wireless dan wireline dari mobile phone, PDA

dan sistem telematik pada kendaraan.

Page 6: BAB 2 LANDASAN TEORI 2.1 JAVA™ - thesis.binus.ac.idthesis.binus.ac.id/doc/Bab2/2010-1-00264-IF-Bab 2.pdf · mengimplementasikan sebuah mesin virtual dan bahasa yang mirip dengan

15

2.1.1.2 Teknologi Java pada PC Desktop (J2SE)

Merupakan edisi standar dari platform Java yang

didesain untuk mengembangkan keamanan, kemudahan, dan

aplikasi berperforma tinggi untuk desktop dengan jangkauan

yang luas meliputi sistem operasi seperti Apple Macintosh,

Linux, Microsoft Windows, dan Sun Solaris. Kompatibel

dengan desktop terutama pada lingkungan yang heterogen

sehingga dapat menambah produktifitas pengguna, komunikasi,

dan kolaborasi dengan biaya yang sesuai.

2.1.1.3 Teknologi Java untuk bisnis menengah dan besar (J2EE)

Edisi Enterprise dari Platform Java ini dikhususkan

untuk membantu perkembangan bisnis dengan keperluan

pengembangan yang besar, sebagai contoh server dan aplikasi

desktop dan juga aplikasi wireless mobile dan wireline. Hingga

saat ini telah lebih dari 5 (lima) juta download teknologi Java

Enterprise (J2EE) yang digunakan untuk kepentingan segala

idustri dan tipe aplikasi dari proses manajemen bisnis,

otomatisasi penjualan dan layanan serta produktifitas kantor.

(http://www.sun.com/java)

Page 7: BAB 2 LANDASAN TEORI 2.1 JAVA™ - thesis.binus.ac.idthesis.binus.ac.id/doc/Bab2/2010-1-00264-IF-Bab 2.pdf · mengimplementasikan sebuah mesin virtual dan bahasa yang mirip dengan

16

Gambar 2.1-2 : Setiap Edisi Java untuk Perangkat Platform

yang Berbeda

(http://users.telenet.be/javapda/java%20platform.gif)

Dari gambar di atas dapat dilihat bahwa setiap Virtual

Machine digunakan pada lingkungan yang berbeda. Hotspot VM

merupakan Virtual Machine default yang disediakan oleh Sun

untuk mengeksekusi segala skala versi dari Java. CVM (Compact

Virtual Machine) dan KVM (Kilobyte Virtual Machine)

merupakan Virtual Machine yang lebih kecil yang digunakan

untuk menjalankan perangkat mikro, sedangkan Card VM

merupakan Virtual Machine yang digunakan pada kartu

elektronik, sebagai contoh simcard pada mobile phone.

Page 8: BAB 2 LANDASAN TEORI 2.1 JAVA™ - thesis.binus.ac.idthesis.binus.ac.id/doc/Bab2/2010-1-00264-IF-Bab 2.pdf · mengimplementasikan sebuah mesin virtual dan bahasa yang mirip dengan

17

2.2 J2ME (Java 2 Micro Edition)

J2ME yang didesain oleh Sun Microsystem, merupakan sekumpulan dari

Java API untuk pengembangan software bagi perangkat kecil seperti PDA, Mobile

Phone, dan aplikasi untuk konsumen lainnya. J2ME dibuat sebagai pengganti dari

teknologi sejenis yang bernama Personal Java. J2ME menjadi pilihan populer

dalam membuat aplikasi seperti games, instant messaging, dan aplikasi lainnya

untuk mobile phone, J2ME juga bias diemulasikan pada PC selama tahap

pengembangan dan dapat dengan mudah diaplikasikan di mobile phone.

(http://en.wikipedia.org)

2.2.1 Arsitektur J2ME

Arsitektur J2ME dibagi menjadi 2 (dua) lapisan, yaitu lapisan

konfigurasi dan profile. Hal ini bertujuan untuk meningkatkan fleksibilitas

dari desain. Pada lapisan konfigurasi, J2ME memiliki 2 (dua) lapisan, yaitu

Connected Limited Device Configuration (CLDC) dan Connected Device

Configuration (CDC). Pada lapisan profile, J2ME memiliki beberapa

lapisan, yaitu Mobile Information Device Profile (MIDP), Foundation

Profile (FP), Personal Profile, Personal Digital Assistance (PDA), Game

Profile, Personal Basis Profile, RMI Profile.

Page 9: BAB 2 LANDASAN TEORI 2.1 JAVA™ - thesis.binus.ac.idthesis.binus.ac.id/doc/Bab2/2010-1-00264-IF-Bab 2.pdf · mengimplementasikan sebuah mesin virtual dan bahasa yang mirip dengan

18

Gambar 2.2-1 : Arsitektur J2ME

Dilihat pada Gambar 2.2-1 di atas, J2ME mempunyai lapisan

konfigurasi dan profile yang didukung oleh Java Virtual Machine (C-

Virtual Machine dan K-Virtual Machine).

2.2.1.1 Konfigurasi

Sun memperkenalkan konfigurasi untuk mendukung

jangkauan produk yang luas yang sesuai dengan scope dari

J2ME. Konfigurasi mendefinisikan sebuah Platform Java untuk

perangkat dengan jangkauan yang luas. Konfigurasi terikat erat

dengan Java Virtual Machine. Kenyataannya, konfigurasi

mendefinisikan fitur bahasa Java dan Library Java utama dari

Java Virtual Machine khusus untuk konfigurasi yang berbasis

pada memori, tampilan, konektifitas jaringan, dan kekuatan

proses. Dua konfigurasi yang sudah didefinisikan sekarang ini

Page 10: BAB 2 LANDASAN TEORI 2.1 JAVA™ - thesis.binus.ac.idthesis.binus.ac.id/doc/Bab2/2010-1-00264-IF-Bab 2.pdf · mengimplementasikan sebuah mesin virtual dan bahasa yang mirip dengan

19

adalah Connected Device Configuration (CDC) dan Connected

Limited Device Configuration(CLDC).

2.2.1.1.1 Connected Device Configuration (CDC)

CDC bertujuan untuk mengaplikasikan

kemampuan-kemampuan utama dari tiap jenis device,

dimana target CDC tersebut adalah memiliki minimal

memori 2MB termasuk RAM dan ROM. CDC

menspesifikasikan penggunaan Java 2 Platform

Virtual Machine secara penuh disebut juga Compact

Virtual Machine (CVM).

Walaupun CVM mendukung fitur yang sama

seperti J2SE Virtual Machine, CVM dirancang untuk

konsumen dan embedded device. Ini berarti J2SE VM

telah dikembangkan ulang untuk disesuaikan dengan

batasan-batasan dari device yang memiliki sumber

daya terbatas.

2.2.1.1.2 Connected Limited Device Configuration(CLDC)

Menurut buku “Advanced Java 2 Platform –

HOW TO PROGRAM ” karangan Deitel, Deitel, dan

Santry (2002, p758), Connected Limited Device

Configuration (CLDC) merupakan sekumpulan dari

API yang memungkinkan pengembang untuk

Page 11: BAB 2 LANDASAN TEORI 2.1 JAVA™ - thesis.binus.ac.idthesis.binus.ac.id/doc/Bab2/2010-1-00264-IF-Bab 2.pdf · mengimplementasikan sebuah mesin virtual dan bahasa yang mirip dengan

20

membuat aplikasi pada peralatan yang memiliki

sumber daya terbatas (keterbatasan besar layer,

memori, power, dan bandwith). J2ME CLDC

memiliki virtual machine dan penerjemah (interpreter)

yang menjalankan aplikasi-aplikasi dan sekumpulan

class yang bisa digunakan pengembang untuk

mengembangkan dan menjalankan program pada

peralatan yang memiliki sumber daya terbatas.

Tujuan dari CLDC adalah untuk

menggambarkan suatu Platform Java standart untuk

device dengan spesifikasi memori kurang dari 512

KB. CLDC untuk Kilo VM (KVM), yang merupakan

JVM yang sudah dioptimalisasi untuk battery –

operated devices (perangkat yang beroperasi dengan

baterai) berdasarkan dari 16-bit atau 32-bit

microprocessor dengan 160 s.d 512 KB memori untuk

Java. Kebutuhan minimal sebagai tempat

penyimpanan untuk KVM dan library yang

berhubungan adalah sekitar 128 KB. Karena variasi

sistem perangakat lunak yang luas pada berbagai

personal divice, contoh : sebuah OS mungkin akan

mendukung berbagai proses secara bersamaan

Page 12: BAB 2 LANDASAN TEORI 2.1 JAVA™ - thesis.binus.ac.idthesis.binus.ac.id/doc/Bab2/2010-1-00264-IF-Bab 2.pdf · mengimplementasikan sebuah mesin virtual dan bahasa yang mirip dengan

21

sedangakan OS yang lainnya mungkin atau tidak

mungkin mendukung sistem file.

Berikut persyaratan minimum hardware untuk

menggunakan CLDC :

o Setidaknya terdapat 160 kilobytes dari memorinon-

volatile untuk library virtual machine dan CLDC.

o Setidaknya terdapat 32 kilobytes dari memori

volatile atau heap untuk proses menjalankan

Virtual Machine.

(http://codeidol.com/java/wireless-java/Goals,-

Requirements,-and-Scope/Requirements/)

2.2.1.2 Profile

Lapisan profile merupakan lapisan kedua dari arsitektur

J2ME. Lapisan ini terdiri dari sekumpulan Application

Programming Interface (API). Profile merupakan perpanjangan

dari konfigurasi, yaitu mengatur segala hal yang spesifik untuk

sebuah device. Profile terdiri dari kelas-kelas java yang

menyediakan implementasi dari fitur-fitur untuk small

computing device. Saat ini, terdapat tujuh profile dalam J2ME :

2.2.1.2.1 Mobile Information Device Profile (MIDP)

MIDP digunakan dengan Connected Limited

Device Configuration (CLDC) dan berisi kelas-kelas

Page 13: BAB 2 LANDASAN TEORI 2.1 JAVA™ - thesis.binus.ac.idthesis.binus.ac.id/doc/Bab2/2010-1-00264-IF-Bab 2.pdf · mengimplementasikan sebuah mesin virtual dan bahasa yang mirip dengan

22

yang menyediakan penyimpanan lokal, sebuah user

interface, dan kemampuan jaringan untuk sebuah

aplikasi yang berjalan pada perangkat mobile.

2.2.1.2.2 Foundation Profile (FP)

Foundation Profile (FP) digunakan dengan

Connected Device Configuration (CDC). Terdapat

keseluruhan dari kelas-kelas Java yang utama dan

menjadi dasar hampir pada semua Connected Device

Configuration (CDC) profile lain.

2.2.1.2.3 Personal Profile

Personal profile digunakan dengan Connected

Device Configuration (CDC) dan menambah fungsi

user interface dasar untuk foundation profile. Profile

ini menyediakan class yang mengimplementasikan

user interface muktahir yang mampu menampilkan

banyak windows pada waktu yang bersamaan.

2.2.1.2.4 Personal Digital Assistance (PDA) profile

Personal digital assistance digunakan dengan

Connected Limited Device Configuration (CLDC).

PDA menyediakan user interface library yang lebih

muktahir dan java-based API (Application

Programming Interface) untuk mengakses fitur

Page 14: BAB 2 LANDASAN TEORI 2.1 JAVA™ - thesis.binus.ac.idthesis.binus.ac.id/doc/Bab2/2010-1-00264-IF-Bab 2.pdf · mengimplementasikan sebuah mesin virtual dan bahasa yang mirip dengan

23

penting dari Host Operating Sistem. PDA profile mirip

dengan MIDP (Mobile Information Device Profile),

namun PDA profile mengacu pada PDA yang

memiliki lapisan yang lebih baik dan lebih banyak

memori dari pada mobile phone.

2.2.1.2.5 Game Profile

profile digunakan dengan Connected Device

Configuration (CDC). Pada game profile disediakan

platform untuk mengembangkan aplikasi game pada

perangkat CDC.

2.2.1.2.6 Personal Basis Profile

Profile ini mirip dengan personal profile. Pada

profile ini disediakan RMI (Remote Invocation)

classes untuk kelas-kelas utama yang terdapat pada

Foundation Profile, digunakan dengan Connected

Device Configuration (CDC) dan Foundation Profile

(FP). Tetapi pada personal basis profile disediakan

kelas-kelas untuk mengimplementasikan sebuah user

interface yang sederhana yang mampu menampilkan

sebuah windows pada satu waktu.

Page 15: BAB 2 LANDASAN TEORI 2.1 JAVA™ - thesis.binus.ac.idthesis.binus.ac.id/doc/Bab2/2010-1-00264-IF-Bab 2.pdf · mengimplementasikan sebuah mesin virtual dan bahasa yang mirip dengan

24

2.2.1.2.7 RMI Profile

Profile ini juga digunakan dengan Connected

Device Configuration (CDC).

2.3 Mobile Information Device Profile (MIDP)

MIDP merupakan sekumpulan API (Application Programming Interface)

yang mempermudah pengembang dalam menangani masalah-masalah khusus pada

aplikasi mobile seperti membuat user interface, mengijinkan dalam penyimpanan

lokal, dan mendefinisikan daur hidup dari aplikasi client MIDP (MIDlet). Alat

yang digunakan untuk menjalankan aplikasi menggunakan MIDP disebut MIDP

device. Alat tersebut termasuk mobilephone dan pager.

MIDP merupakan versi dari platform java yang berdasarkan atas CLDC

(Connected Limited Divice Configuration) dan KVM (Kilobyte Virtual Machine)

yang mengacu untuk digunakan pada perangakat informasi mobile dengan

tampilan dan storage (media penyimapanan) yang terbatas, seperti mobile phone

dan beberapa jenis PDA. Oleh karena itu, MIDP menyediakan user interface yang

sederhana dan jaringan. MIDP merupakan profile J2ME yang paling dikenal

karena merupakan dasar bagi wireless java.

Kebutuhan spesifikasi software dan hardware untuk menjalankan MIDP

adalah sebagai berikut :

Page 16: BAB 2 LANDASAN TEORI 2.1 JAVA™ - thesis.binus.ac.idthesis.binus.ac.id/doc/Bab2/2010-1-00264-IF-Bab 2.pdf · mengimplementasikan sebuah mesin virtual dan bahasa yang mirip dengan

25

Syarat minimum spesifikasi hardware :

• Memori

o 256 kilobyte dari non-volatile memori untuk komponen MIDP.

Karena MIDP berjalan di atas CLDC, jadi ukuran statistik dari CLDC

harus dimasukkan juga.

o 8 kilobyte dari non-volatile memori untuk aplikasi data yang tetap.

o 128 kilobyte dari volatile memori/heap untuk run time virtual.

• Display

o Ukuran layar : 96 x 54

o Kedalaman tampilan : 1-bit

o Ukuran pixel (aspect radio) : sekitar 1:1

• Input

o ” One – handed keypad ”

o ” Two – handed keyboard ”

o ” Touch screen ”

• Jaringan

o Koneksi 2 arah (two - way), wireless, intermittent, dengan bandwidth

terbatas.

• Suara

o Kemampuan untuk memainkan nada, baik via hardware atau

algoritma software.

Syarat minimum spesifikasi software :

Page 17: BAB 2 LANDASAN TEORI 2.1 JAVA™ - thesis.binus.ac.idthesis.binus.ac.id/doc/Bab2/2010-1-00264-IF-Bab 2.pdf · mengimplementasikan sebuah mesin virtual dan bahasa yang mirip dengan

26

• Kemampuan untuk menjalankan beberapa proses dalam waktu yang

bersamaan, masing-masing dengan lokasi memori yang berbeda-beda.

• Kernel minimal untuk mendukung hardware (interupt handling, exception,

dan minimal scheduling).

• Mekanisme untuk membaca dan menulis dari non-volatile memori untuk

mendukung MIDP.

• Kemampuan untuk membaca dan menulis akses untuk jaringan perangkat

wireless untu mendukung jaringan MIDP API.

• Mekanisme untuk menyediakan waktu untuk menulis ke media penyimpanan

dan menyediakan timer dasar API (timer support).

• Kemampuan minimal untuk menulis tampilan grafik bitmap.

• Mekanisme untuk menerima input dari pengguna.

2.3.1 MIDlet (MIDP Application)

MIDlet merupakan program yang ditulis untuk dieksekusikan

pada micro information devices. MIDP memungkinkan eksekusi banyak

MIDlet. MIDlet merupakan bagian dari javax.microedition.midlet.

MIDlet yang terdapat pada MIDP, memiliki file descriptor bernama JAD

pada setiap MIDlet-nya, yang memungkinkan software manejemen

aplikasi pada perangkat mengidentifikasi apa yang diperlukan dalam

instalasi terlebih dahulu.

Page 18: BAB 2 LANDASAN TEORI 2.1 JAVA™ - thesis.binus.ac.idthesis.binus.ac.id/doc/Bab2/2010-1-00264-IF-Bab 2.pdf · mengimplementasikan sebuah mesin virtual dan bahasa yang mirip dengan

27

Ada beberapa aturan MIDlet berdasarkan dari run time

environment-nya. Pengatur aplikasi yang ada di dalam perangkat

bertanggung jawab untuk memulai MIDlet. Sebuah aplikasi memiliki

akses sumber daya hanya pada :

• Semua files dalam aplikasi file JAR.

File JAR harus memiliki semua kelas-kelas yang dibutuhkan

untuk menjalankan aplikasi dengan semua sumber daya, seperti file

image dan data pengguna.

• Isi dari MIDlet descriptor file.

• Kelas-kelas yang ada sebagai bagian dari library CLDC dan MIDP.

2.3.2 Siklus hidup MIDlet

Siklus hidup dari sebuah MIDlet ditangani oleh Application

Management Software (AMS). AMS ini adalah sebuah lingkungan

dimana siklus dari sebuah MIDlet mampu diciptakan, dijalankan,

dihentikan, maupun dihilangkan. AMS sering pula dinamakan dengan

Java Application Manager (JAM).

MIDlet memiliki beberapa state atau keadaan yaitu pause, active,

dan destroy. Ketika masing-masing state dipanggil, beberapa metode-

metode standard yang bersesuaian dipanggil. Metode-metode ini

merupakan bawaan dari J2ME.

Page 19: BAB 2 LANDASAN TEORI 2.1 JAVA™ - thesis.binus.ac.idthesis.binus.ac.id/doc/Bab2/2010-1-00264-IF-Bab 2.pdf · mengimplementasikan sebuah mesin virtual dan bahasa yang mirip dengan

28

Gambar 2.3-1 : MIdlet Lifecycle

Urutan eksekusi MIDlet :

1. Ketika MIDlet pertama kali diciptakan dan diinisialisasi, maka MIDlet akan

barada dalam state “pause”.

2. Apabila terjadi kesalahan selama konstruksi MIDlet, maka MIDlet akan

berpindah ke state ”destroy”, dan MIDlet batal diciptakan dengan jalan

memanggil fungsi standar destroyApp().

3. Selanjutnya, ketika MIDlet dijalankan, maka MIDlet akan berada pada state

”active”, dalam hal ini fungsi stnadar yang dipanggil adalah startApp().

4. Akan terjadi jika di tengah jalan MIDlet dihentikan sementara, maka MIDlet

akan berada dalam state ”pause” dengan jalan memanggil fungsi standar

pauseApp(). Pada state ini diperlukan proses cleanup terhadap garbage

collector yang dihasilkan.

Page 20: BAB 2 LANDASAN TEORI 2.1 JAVA™ - thesis.binus.ac.idthesis.binus.ac.id/doc/Bab2/2010-1-00264-IF-Bab 2.pdf · mengimplementasikan sebuah mesin virtual dan bahasa yang mirip dengan

29

2.4 SMSLib

SMSLib adalah pustaka java (java library) yang dapat digunakan untuk

menerima atau mengirim SMS (Short Message Service) dengan menggunakan

modem GSM atau seluler GSM yang sesuai. SMSLib juga mendukunga beberapa

operator SMS besat (hanya untuk pesan outbound ). Secara umum, SMSLib

mempunyai fungsi :

• Mendukung seluler GSM dan modem GSM yang dikoneksikan menggunakan

serial port atau IP

• Bekerja pada PDU atau protokol teks

• Mendukung inbound dan outbound teks pesan sederhana

• Pesan kilat

• Pesan outbound dengan informasi atau alamat port

• Outbound pesan WAP PUSH SI

• Laporan status (pengiriman) pesan

• Informasi dasar GSM yang tersedia : modem, manufaktur, S/W revisi, level

sinyal, dan lain-lain.

SMSLib mempunyai konsep gateway, dimana antarmuka pada perangkat

atau servis dapat mengirim dan atau menerima pesan SMS. Gateway dapat berupa

modem GSM atau SMS provider. SMSLib dapat mengatasi beberapa gateway

dalam waktu yang bersamaan. SMSLib menawarkan tanpa terbatas prioritas setiap

pesan yang dapat digunakan untuk mengirim pesan. Ketika ini mungkin, prioritas

Page 21: BAB 2 LANDASAN TEORI 2.1 JAVA™ - thesis.binus.ac.idthesis.binus.ac.id/doc/Bab2/2010-1-00264-IF-Bab 2.pdf · mengimplementasikan sebuah mesin virtual dan bahasa yang mirip dengan

30

SMSLib dapat dipetakan secara langsung ke fungsi gateway, jika tidak mereka

akan disimulasikan.

SMSLib memberikan dua pilihan untuk menerima pesan :

• Synchronously : kita dapat mengambil tanggung jawab dan secara periode

memanggil metode baca()/read().

• Asynchronously: menunggu SMSLib untuk memanggil sampai pesan

diterima.

SMSLib memberikan dua pilihan untuk mengirim pesan :

• Synchronously : ketika SMSLib dipanggil untk mengirim pesan, thread di

blok sampai pesan diterima atau gagal terkirim.

• Asynchronously: ketika SMSLib dipanggil untuk mengirim pesan, thread

tidak diblok dan SMSLib kembali secepatnya. SMSLib mengurutkan pesan

dan mengirim pesan-pesan tersebut di belakang .

SMSLib memberi pilihan untuk mendefinisikan metode callback dimana

akan dipanggil ketika sesuatu terjadi :

• Inbound voice calls : SMSLib dapat diatur untuk memanggil saat diterima

oleh voice call.

• Inbound message : Setiap pesan diterima, SMSLib dapat mengatur

panggilan dalam metode yang spesifik.

• Outbound: ketika pesan yang dikirim diasynchronomiskan, SMSLib dapat

diatur untuk memanggil metode spesifik dengan pesan dikirim.

Page 22: BAB 2 LANDASAN TEORI 2.1 JAVA™ - thesis.binus.ac.idthesis.binus.ac.id/doc/Bab2/2010-1-00264-IF-Bab 2.pdf · mengimplementasikan sebuah mesin virtual dan bahasa yang mirip dengan

31

• Perubahan status gateway : SMSLib dapat memberitahukan setiap gateway

mengubah status.

• Queque operasi mengirim:SMSLib dapat memberitahukan bahwa setiap

saat untuk siap mengirim pesan dengan urutan background.

2.5 Keamanan (Security)

Aspek-aspek yang berkaitan dengan ancaman keamanan yaitu :

• Interruption

Data atau informasi yang berada pada sistemkomputer rusak atau dibuang

sehingga menjadi tidak ada dan tidak berguna.

• Interception

Orang yang tidak berhak berhasil mendapatkan akses informasi dari dalam

sistem komputer.

• Modification

Orang yang tidak berhak, tidak hanya berhasil mendapatkan akses informasi

dari dalam sistem komputer, tetapi juga dapat melakukan perubahan terhadap

informasi.

• Fabrication

Orang yang tidak berhak, meniru atau memalsukan suatu objek ke dalam

sistem.

Page 23: BAB 2 LANDASAN TEORI 2.1 JAVA™ - thesis.binus.ac.idthesis.binus.ac.id/doc/Bab2/2010-1-00264-IF-Bab 2.pdf · mengimplementasikan sebuah mesin virtual dan bahasa yang mirip dengan

32

Klasifikasi keamanan pada sistem informasi :

• Network Security

Fokus kepada media pembawa informasi / data, seperti jaringan komputer.

• Komputer Security

Fokus kepada komputer (server, workstation, terminal), termasuk masalah di

dalamnya yang berhubungan dengan sistem operasi.

• Application Security

Fokus kepada program aplikasi (software) dan database.

2.6 Kriptografi

Serangan terhadap sistem jaringan komputer dan keamanan data membuat

teknik untuk pengamanan data terhadap serangan tersebut pun semakin

berkembang. Berbagai macam cara dikembangkan untuk menghindari serangan

terhadap keamanan data dan sistem jaringan komputer, cara yang sering digunakan

adalah dengan proses enkripsi dan dekripsi.

Enkripsi adalah pengubahan bentuk dari data asli menjadi data yang tidak

mudah dimengerti, sedangkan deskripsi adalah pengubahan dari data yang tidak

mudah dimengerti dikembalikan menjadi data semula atau data asli. Pesan asli

biasanya disebut plaintext, sedangkan pesan yang sudah disandikan disebut

ciphertext. Proses enkripsi dan deskripsi ini disebut dengan kriptografi.

Page 24: BAB 2 LANDASAN TEORI 2.1 JAVA™ - thesis.binus.ac.idthesis.binus.ac.id/doc/Bab2/2010-1-00264-IF-Bab 2.pdf · mengimplementasikan sebuah mesin virtual dan bahasa yang mirip dengan

33

Gambar 2.6-1 : Proses Enkripsi dan Dekripsi

Kriptografi, secara umum adalah ilmu dan seni untuk menjaga kerahasian

berita (bruce Schneier – Applied Cryptography). Dalam ilmu ini, dipelajari

bagaimana membuat suatu pesan yang dikirim oleh pengirim, dapat

tersampaikan dengan aman pada penerima dengan cara menyamarkan dalam

bentuk sandi yang tidak mempunyai makna. Kriptografi berfungsi untuk

menjamin penerima bahwa data yang dikirim benar-benar dari pihak pengirim

yang sah dan begitu juga sebaliknya menjamin pengirim bahwa data yang

dikirim sampai pada penerima yang sah. Selain itu, kriptografi menjamin bahwa

data yang mengalami modifikasi akan terdeteksi dan antara pengirim dan

penerima masing-masing tidak dapat menyangkal bahwa telah mengirim atau

menerima data.

Dalam mengantisipasi ancaman keamanan terutama interception,

modification, dan fabrication dalam literature telah diperkenalkan 3 jenis

algoritma kriptografi yaitu :

• Algoritma kriptografi kunci rahasia (algoritma simetris)

Algoritma yang menggunakan kunci yang sama pada enkripsi dan

deskripsinya.

Page 25: BAB 2 LANDASAN TEORI 2.1 JAVA™ - thesis.binus.ac.idthesis.binus.ac.id/doc/Bab2/2010-1-00264-IF-Bab 2.pdf · mengimplementasikan sebuah mesin virtual dan bahasa yang mirip dengan

34

Gambar 2.6-2 : Enkripsi dan Deskripsi Kunci Simetris

Berdasarkan jumlah data per proses dan alur pengolahan data di

dalamnya, algoritma kunci simetris ini dibedakan menjadi dua kelas, yaitu block-

cipher dan stream-cipher. Block-cipher adalah algoritma yang akan membagi-

bagi plaintext yang akan dikirim dengan ukuran tertentu (disebut blok) dengan

panjang t, dan setiap blok dienkripsi dengan menggunakan kunci yang sama.

Pada umumnya, block-cipher memproses teks pada plaintext dengan blok yang

relatif panjangnya lebih dari 64 bit. Hal ini dilakukan untuk mempersulit

penggunaan pola-pola serangan yang ada untuk membongkar kunci. Sedangkan,

stream-cipher adalah algoritma yang mengenkripsikan data persatuan data,

seperti bit, byte, nible, atau per lima bit. Setiap mengenkripsikan satu satuan

data, digunakan kunci yang merupakan hasil pembangkitan dari kunci

sebelumnya.

Penggunaan metode algoritma simetris ini membutuhkan persetujuan

antara pengirim dan penerima tentang kunci sebelum mereka saling mengirim

pesan. Keamanan dari kunci simetris tergantung pada kerahasiaan kunci, apabila

Page 26: BAB 2 LANDASAN TEORI 2.1 JAVA™ - thesis.binus.ac.idthesis.binus.ac.id/doc/Bab2/2010-1-00264-IF-Bab 2.pdf · mengimplementasikan sebuah mesin virtual dan bahasa yang mirip dengan

35

seorang penyusup dapat menemukan kunci maka dengan mudah dapat membaca

pesan yang sudah dienkripsi.

Contoh algoritma kriptografi kunci rahasia (algoritma simetris) : DES,

IDEA, AES (blok chiper), OTP, A5, RC4 (stream chiper).

• Algoritma kriptografi kunci publik (algoritma asimetris)

Algoritma yang mempergunakan kunci yang berbeda-beda enkripsi

dan deskripsinya.

Gambar 2.6-3: Enkripsi dan Deskripsi Kunci Asimetris

Pada metode ini, kunci untuk enkripsi boleh disebarluaskan kepada

umum. Sedangkan, kunci untuk mendeskripsikan hanya disimpan oleh orang

yang bersangkutan. Seperti pada gambar 2.6-3, bila seseorang ingin mengirim

pesan kepada orang lain maka orang tersebut mengenkripsi pesan yang kita kirim

kepadanya lalu orang tersebut akan mendeskripsikan pesan tersebut dengan

Page 27: BAB 2 LANDASAN TEORI 2.1 JAVA™ - thesis.binus.ac.idthesis.binus.ac.id/doc/Bab2/2010-1-00264-IF-Bab 2.pdf · mengimplementasikan sebuah mesin virtual dan bahasa yang mirip dengan

36

kunci privat miliknya. Contoh algoritma Asimetris : Knapsack, RSA(Rivert-

Shamir-Adelman), Diffie-Hellman.

Contoh algoritma kunci public (algoritma asimetris) : RSA, DH, ECC,

DSA

• Fungsi hash satu arah

Fungsi ini biasanya digunakan bila kita menginginkan pengambilan

sidik jari suatu pesan. Dinamakan juga sebagai fungsi kompresi karena

biasanya, masukkan dari fungsi satu arah ini selalu lebih besar dari pada

keluarannya. Hal inilah yang menyebabkan terjadinya kompresi. Namun,

kompresi hasil fungsi ini tidak dapat dikembalikan ke asalnya. Hal inilah

yang menyebabkan fungsi ini disebut fungsi satu arah.Contoh algoritma

fungsi hash antara lain, MD4, MD5, SHA-0, SHA-1, SHA-256, SHA-512.

Terdapat empat tujuan dasar dari ilmu kriptografi yang juga

merupakan aspek keamanan data yaitu :

• Authority

Informasi yang berada pada sistem jaringan hanya dapat dimodifikasi

oleh pihak yang memiliki otoritas atau kunci rahasia.

• Non-Repudiation

Usaha untuk mencegah terjadinya penyangkalan terhadap pengiriman

atau terciptanya suatu informasi oleh yang mengirimkan atau membuat.

• Integrity

Page 28: BAB 2 LANDASAN TEORI 2.1 JAVA™ - thesis.binus.ac.idthesis.binus.ac.id/doc/Bab2/2010-1-00264-IF-Bab 2.pdf · mengimplementasikan sebuah mesin virtual dan bahasa yang mirip dengan

37

Berhubungan dengan penjagaan dari perubahan data secara tidak sah.

Sistem dirancang untuk mampu mendeteksi menipulasi data oleh pihak-

pihak yang tidak berhak, antara lain penyisipan, penghapusan, dan

pensubsitusian data lain kedalam data yang sebenarnya.

• Authentication

Berhubungan dengan indentifikasi atau pengenalan, baik secara kesatuan

sistem maupun informasi itu sendiri. Dua pihak yang saling

berkomunikasi harus saling memperkenalkan diri. Informasi yang

dikirimkan melalui kanal harus diautentifikasi keaslian, isi data, waktu

pengiriman, dan lain-lain.

2.7 Algoritma Twofish

Pada tahun 1972 dan 1974, National of Standart (yang sekarang bernama

NIST) mengumumkan adanya standar enkripsi, yaitu DES yang sangat beralasan

karena penggunaannya yang luas dan merupakan algoritma yang sangat sukses di

dunia. Dalam proses perkembangannya ternyata key-key dalam DES dirasa terlalu

pendek bagi keamanan komersial sehingga membuat gusar para kriptografer yang

menginginkan proses algoritma yang “closed door”. Akhirnya, NIST

mengumumkan Advanced Encryption Standard (AES) pada tahun 1997. Salah

satu kandidat AES adalah Twofish.

Page 29: BAB 2 LANDASAN TEORI 2.1 JAVA™ - thesis.binus.ac.idthesis.binus.ac.id/doc/Bab2/2010-1-00264-IF-Bab 2.pdf · mengimplementasikan sebuah mesin virtual dan bahasa yang mirip dengan

38

Twofish merupakan 128-bit block sandi/cipher yang bisa menerima

panjang varibel kunci/key sebesar 256 bit. Cipher tersebut berasal 16-round

jaringan Feitsel dengan fungsi bijektif F yang dilanjutkan dengan empat key-

dependent 8-by-b-bit S-boxes, satu fixed 4-by-4 maximum distance separable

matrix over GF(28), satu pseudo-Hadamard transform, satu rotasi bitwise dan satu

desain key schedule.

2.7.1 Mekanisme Kerja Twofish

Desain Twofish ditekankan pada kinerjanya. Implementasi dari

Twofish sangat efisien pada beragam platform, yaitu CPU 32 bit, smart

card 8 bit, dan perangkat VLSI. Desain twofish memungkinkan kinerja

beberapa layer, tergantung pada kepentingan relative terhadap kecepatan

enkripsi, key setup, penggunaan memori, hardware gate count, dan

parameter implementasi yang lain. Hasilnya adalah algoritma yang sangat

fleksibel yang dapat diimplementasikan secara efisien dalam beragam

aplikasi kriptografi.

Algoritma Twofish telah diimplementasikan empat macam pilihan

keying yang berbeda. Terdapat beberapa pilihan keying yang mungkin,

dimana masing – masing mempunyai perbedaasn tipis dalam hal key setup.

Empat macam keying tersebut adalah :

1. Full Keying

Page 30: BAB 2 LANDASAN TEORI 2.1 JAVA™ - thesis.binus.ac.idthesis.binus.ac.id/doc/Bab2/2010-1-00264-IF-Bab 2.pdf · mengimplementasikan sebuah mesin virtual dan bahasa yang mirip dengan

39

Pilihan ini melakukan parkomputasi terhadap kunci. Dalam

menggunakan pilihan ini, suatu komputasi dari g berisi empat buah

tabel pencarian, dan tiga buah operasi XOR. Sementara itu, kecepatan

enkripsi dan deskripsinya bernilai konstan tanpa menghiraukan ukuran

kunci.

2. Partial Keying

Pada aplikasi yang sebagian kecil blok dienkripsikan dengan

kunci tunggal tidak akan menjadi masalah dalam membangun key

schedule yang lengkap. Pilihan ini melakukan prakomputasi terhadap

empat S-boxes dalam tabel berukuran 8 x 8 bit, dan menggunakan

empat buah tabel MDS 8 x 32 bita untuk melakukan perkalian MDS.

Kecepatan deskripsi dan enkripsi tidak menghiraukan ukuran kunci.

3. Minimal Keying

Pada aplikasi yang mengenkripsikan sangat sedikit bagian dari

blok dengan kunci tunggal, terdapat kemungkinan optimasi yang lebih

jauh. Penggunaan pilihan Minimal Keying ini hanya memerlukan

sebuah tabel 1 Kb untuk menampung S-boxes yang diprakomputasi

secara parsial. Pentingnya byte key dari S yang diprakomputasi adalah

leyaknya mereka diperlukan dalam setiap round.

4. Zero Keying

Pilihan ini tidak melakukan prakomputasi terhadap S-boxes,

dan juga tidak memerlukan tabel ekstra. Sebagai gantinya, setiap entri

di komputasi secara melayang. Waktu key setup secara murni

digunakan untuk melakukan komputasi terhadap nilai Ki dan S. Untuk

Page 31: BAB 2 LANDASAN TEORI 2.1 JAVA™ - thesis.binus.ac.idthesis.binus.ac.id/doc/Bab2/2010-1-00264-IF-Bab 2.pdf · mengimplementasikan sebuah mesin virtual dan bahasa yang mirip dengan

40

aplikasi yang tidak memiliki waktu key setup sama sekali, waktu yang

digunakan untuk mengenkripsikan satu blok adalah penjumlahan dari

waktu key setup dan waktu enkripsi zero keying.

2.7.2 Proses Algoritma Twofish

Gambar 2.7-1 : Struktur Algoritma Twofish

2.7.3 Kriptanalis pada Twofish

Lebih dari seribu jam telah dilakukan kriptanalis terhadap twofish.

Sebuah catatan penting dari attack yang berhasil dilakukan terhadapnya

adalah sebagai berikut:

Page 32: BAB 2 LANDASAN TEORI 2.1 JAVA™ - thesis.binus.ac.idthesis.binus.ac.id/doc/Bab2/2010-1-00264-IF-Bab 2.pdf · mengimplementasikan sebuah mesin virtual dan bahasa yang mirip dengan

41

a. 5- round twofish dengan 2 22,5 pasangan plaintext terpilih dan 251

komputasi fungsi g

b. 10 round twofish dengan sebuah key attack terpilih,memerlukan 232

palintext terpilih dan sekitar 232 plaintext terpilih yang adaptif dan

sekitar 232 usaha.

Fakta bahwa twofish mampu menahan related key attack dengan

baik merupakan fakta yang paling menarik dan beralasan, karena related-

key memberikan kepada attacker hampir semua kontrol terhadap input

cipher. Kriptanalis konvensional memungkinkan suatu attacker

mengontrol input plaintext dan ciphertext didalam cipher, yaitu key-

schedule.

Berdasarkan hasil analisis ini, dapat diterka bahwa tidak lagi

terdapat attack yang efisien terhadap twofish selain brute force yaitu

attack yang paling efisien untuk melawan twofish dengan key 128 bit

harus memiliki kompleksitas 2128, sementara untuk twofish dengan key

192 bit harus menggunakan attack dengan kompleksitas 2192 dan untuk

twofish dengan key 256 bit harus menggunakan attack dengan

kompleksitas 2 256.

Salah satu attack yang dibahas disini adalah adalah Partial Key

Guessing Attack. Sebuah key schedule yang bagus harus memiliki

properti dimana ketika attacker menebak beberapa subset dari bit- bit

key, attacker tidak memahami tentang urutan subkey atau operasi internal

lainnya di dalam cipher tersebut. Dan twofish memiliki tipe key schedule

yang seperti itu.

Page 33: BAB 2 LANDASAN TEORI 2.1 JAVA™ - thesis.binus.ac.idthesis.binus.ac.id/doc/Bab2/2010-1-00264-IF-Bab 2.pdf · mengimplementasikan sebuah mesin virtual dan bahasa yang mirip dengan

42

Misalnya, ada sebuah attacker yang menebak suatu kata genap

dari key Mc. Attacker tidak mempelajari apapun dari key S, untuk tiap

round blok subkey, ia mengetahui Ai. Jika ia menebak dengan suatu Ko, ia

dapat menghitung K1 yang besesuaian. Ia dapat melakukan attack round

subkey sebanyak yang dia suka, tapi tiap tebakan memakan 32 bit. Dapat

dilihat bahwa tidak ada jalan bagi attacker untuk menguji tebakan 96 bit

sekalipun hanya satu round subkey dengan cara ini terhadap full Twofish.

Jalan lainnya adalah dengan menebak input key S terhadap G. Cara ini

hanyalah setengah jalan dari full key M , tapi tidak memberikan informasi

tentang round key AI. Dapat dilihat bahwa dengan cara ini pun tak ada

jalan bagi attacker untuk menguji tebakan s terhadap twofish 16 round

yang penuh sehingga analisis menyarankan bahwa attack terhadap full

Twofish dengan menggunakan diferensial realeted key , adalah suatu

pekerjaan yang sia- sia karena resistensi cipher Twofish yang handal

terhadap attacker sejenis.

2.7.4 Keunggulan Twofish

Keunggulan algoritma kriptografi Twofish adalah sebagai berikut :

• Memiliki varian dengan sebuah nomor variabel dari setiap round.

• Memiliki key schedule yang dapat diprakomputasikanuntuk kecepatan

maksimum dan penggunaan memori manimum.

Page 34: BAB 2 LANDASAN TEORI 2.1 JAVA™ - thesis.binus.ac.idthesis.binus.ac.id/doc/Bab2/2010-1-00264-IF-Bab 2.pdf · mengimplementasikan sebuah mesin virtual dan bahasa yang mirip dengan

43

• Cocok sebagai stream chipper, fungsi hash satu arah, MAC dan

pseudo random number generator, dengan menggunakan metode

konstruksi yang dapat dimengerti.

• Memiliki varian famili-key untuk memungkinkan versi chipper yang

berbeda dan non-interrupterable.

Selain itu, algoritma twofish memenuhi kriteria yang ditetapkan

oleh NIST yaitu :

• Block chiper simetris 128-bit

• Memiliki panjang kunci antara lain : 128 bit, 192 bit, dan 256 bit.

• Tidak terdapat kunci – kunci yang lemah.

• Memiliki efisiensi pada software dan hardware dari platform yang

berbeda.

• Memiliki rancangan yang fleksibel, misalnya menerima panjang

kunci tambahan, dapat diterapkan pada software dan hardware dari

platform berbeda, cocok untuk stream chipper, fungsi hash dan MAC.

• Desain yang sederhana, memudahkan baik untuk analisa maupun

implementasi.

Pemenuhan Twofish terhadap kriteria yang dibutuhkan NIST,

yaitu 128-bit block, 128 bit, dan 192 bit, dan 256 bit membuat Twofish

efisien terhadap platform manapun. Twofish mampu melakukan :

a. Melakukan enkripsi data pada 285 siklus per block di atas Pentium

Pro setelah menjalankan key setup 12700 siklus clock.

Page 35: BAB 2 LANDASAN TEORI 2.1 JAVA™ - thesis.binus.ac.idthesis.binus.ac.id/doc/Bab2/2010-1-00264-IF-Bab 2.pdf · mengimplementasikan sebuah mesin virtual dan bahasa yang mirip dengan

44

b. Melakukan enkripsi data pada 860 siklus per block di atas Pentium

Pro setelah menjalankan key setup 1250 siklus clock.

c. Melakukan enkripsi data pada 26500 siklus per block di atas sebuah

6805 smart card setelah mejalankan key setup 1750 siklus clock.

2.8 MD5 (Message – Digest Algorithm)

MD5 (Message-Digest algorithm) ialah fungsi hash kriptografik yang

digunakan secara luas dengan nilai hash 128-bit. MD5 di desain oleh Ronald

Rivest pada tahun 1991 untuk menggantikan hash function sebelumnya, MD4.

Enkripsi MD5 memang irreversible namun penggunaannya adalah dengan

membandingkan data yang tersimpan (sudah terenkripsi) dengan hasil enkripsi

data yang akan dibandingkan. Sehingga pengujian dapat dilakukan tanpa harus

mengembalikan (dekrip) data.

2.8.1 Algoritma MD5

Terdapat empat langkah pokok dalam proses pembuatan message

digest pada algoritma MD5, yaitu :

1. Penambahan Bit-Bit Pengganjal

Page 36: BAB 2 LANDASAN TEORI 2.1 JAVA™ - thesis.binus.ac.idthesis.binus.ac.id/doc/Bab2/2010-1-00264-IF-Bab 2.pdf · mengimplementasikan sebuah mesin virtual dan bahasa yang mirip dengan

45

Pesan ditambah dengan bit-bit pengganjal hingga panjang

pesan (dalam satuan bit) kongruen dengan 448 modulo 512. Hal ini

berarti bahwa panjang pesan setelah ditambahi bit-bit pengganjal

adalah 64 bit kurang dari kelipatan 512. Angka 512 muncul karena

MD5 memproses pesan dalam blok-blok yang berukuran 512. Pesan

dengan pankang 448 bit pun tetap ditambah dengan bit-bit

pengganjal. Jika panjang pesan 448 bit, maka pesan tersebut

ditambah dengan 512 bit menjadi 960 bit. Jadi, panjang bit-bit

pengganjal adalah antara 1 sampai 512. Bit-bit pengganjal terdiri

dari sebuah bit 1 diikuti dengan sisanya 0 bit.

2. Penambahan Nilai Panjang Pesan Semula

Pesan yang telah diberi bit-bit pengganjal selanjutnya

ditambah lagi dengan 64 bit yang menyatakan panjang pesan

semula. Jika panjang pesan > 264 maka yang diambil adalah

panjangnya dalam modulo 264. Dengan kata lain, jika panjang

pesan semula adalah K bit, maka 64 bit yang ditambahkan

menyatakan K modulo 264. Setelah ditambah dengan 64 bit,

panjang pesan sekarang menjadi kelipatan 512 bit.

3. Inisialisasi Penyangga (Buffer) MD Sebagai Nilai Awal

MD5 membutuhkan 4 buah penyangga (buffer) yang

masing-masing panjangnya 32 bit. Total panjang penyangga adalah

4 x 32 = 128 bit. Keempat penyangga ini menampung hasil antara

dan hasil akhir. Keempat penyangga ini diberi nama A, B, C, D.

Page 37: BAB 2 LANDASAN TEORI 2.1 JAVA™ - thesis.binus.ac.idthesis.binus.ac.id/doc/Bab2/2010-1-00264-IF-Bab 2.pdf · mengimplementasikan sebuah mesin virtual dan bahasa yang mirip dengan

46

Setiap penyangga diinisialisasi dengan nilai-nilai (dalam notasi

HEX) sebagai berikut :

(Catatan : beberapa versi MD5 menggunakan nilai inisialisasi

yang berbeda, yaitu :

A = 67 45 23 01

B = EF CD AB 89

C = 98 BA DC FE

D = 10 32 54 67

4. Pengolahan Pesan dalam Blok Berukuran 512 Bit

Pesan dibagi menjadi L buah blok yang masingmasing

panjangnya 512 bit (Y0 sampai YL-1). Setiap blok 512-bit diproses

bersama dengan penyangga MD menjadi keluaran 128-bit, dan ini

disebut proses HMD5, Gambar proses HMD5 diperlihatkan pada

Gambar 2.8-1.

Page 38: BAB 2 LANDASAN TEORI 2.1 JAVA™ - thesis.binus.ac.idthesis.binus.ac.id/doc/Bab2/2010-1-00264-IF-Bab 2.pdf · mengimplementasikan sebuah mesin virtual dan bahasa yang mirip dengan

47

Gambar 2.8-1 : Proses Manipulasi Blok 512 bit dalam MD5

Page 39: BAB 2 LANDASAN TEORI 2.1 JAVA™ - thesis.binus.ac.idthesis.binus.ac.id/doc/Bab2/2010-1-00264-IF-Bab 2.pdf · mengimplementasikan sebuah mesin virtual dan bahasa yang mirip dengan

48

Proses H terdiri dari 4 putaran, dan masing-masing putaran melakukan

operasi dasar MD5 sebanyak 16 kali dan setiap kali operasi dasar memakai

sebuah elemen T. Jadi setiap putaran memakai 16 elemen tabel T. Pada gambar,

Yq di atas menyatakan blok 512 bit ke-q dari pesan yang telah ditambah bit-bit

pengganjal dan tambahan 64 bit nilai panjang pesan semula. MDq adalah nilai

message digest 128 bit dari proses H ke-q . pada awal proses, MDq berisi nilai

inisialisasi penyangga MD.

Fungsi-fungsi fF, fG, fH, dan fI masing-maisng berisi 16 kali operasi dasar

terhadap masukkan, setiap operasi dasar menggunakan elemen tabel T.

a b c d

g

+

+

+

CLSs

+

X[k]

T[i]

Gambar 2.8-2 : Operasi Dasar MD5

Page 40: BAB 2 LANDASAN TEORI 2.1 JAVA™ - thesis.binus.ac.idthesis.binus.ac.id/doc/Bab2/2010-1-00264-IF-Bab 2.pdf · mengimplementasikan sebuah mesin virtual dan bahasa yang mirip dengan

49

Operasi dasar MD5 ditulis dengan sebuah persamaan sebagai berikut :

a ← b + CLSs(a + g(b,c,d) + X[k] + T[i])

dimana,

• a,b,c,d = empat buah variable penyangga 32 bit (berisi nilai

penyangga A,B,C,D)

• g = salah satu fungsi F,G,H,I

• CLSs = Circular Left Shift sebanyak s bit (notasi : <<<s)

• X[k] = kelompok 32 bit ke-k dari blok 512 bit message ke-q. Nilai

k=0 sampai 15

• T[i] = elemen Tabel T ke-i (32 bit)

• + = operasi penjumlahan modulo 232

Karena ada 16 kali operasi dasar, maka setiap kali selesai satu operasi

dasar, penyangga-penyangga tersebut ke kanan secara sirkuler dengan cara

pertukaran sebagai berikut :

temp ← d

d ← c

c ← b

b ← a

a ← temp

Page 41: BAB 2 LANDASAN TEORI 2.1 JAVA™ - thesis.binus.ac.idthesis.binus.ac.id/doc/Bab2/2010-1-00264-IF-Bab 2.pdf · mengimplementasikan sebuah mesin virtual dan bahasa yang mirip dengan

50

2.8.2 Kelemahan MD5

kekurangan MD5 adalah proses perubahan data asli menjadi MD5

perlu waktu relatif lama, memerlukan hardware komputer yang cukup

besar, semakin besar kemampuan komputer makin cepat kinerjanya.

2.8.3 Kelebihan MD5

Kelebihan dari MD5 adalah sulit untuk dipecahkan walaupun

dengan serangan brute force, tingkat keamanan MD5 adalah salah satu

yang terbaik, tidak bisa diubah kembali menjadi data asli (irreversible),

hasil keluaran MD5 selalu 32 karakter.

2.9 SHA

SHA adalah fungsi hash satu arah yang didesain oleh National Security

Agency (NSA) dan dipublikasikan oleh National Institute of Standarts and

Technology (NIST) sebagai Federal Information Processing Standard (FIPS) pada

tahun 1993. Fungsi hash ini disebut SHA-0 yang pada dua tahun kemudian

dipublikasikan SHA-1 sebagai generasi lanjutan yang juga merupakan revisi dan

perbaikan dari SHA-0. Lalu pada tahun 2002 dipublikasikan empat variasi lainnya,

Page 42: BAB 2 LANDASAN TEORI 2.1 JAVA™ - thesis.binus.ac.idthesis.binus.ac.id/doc/Bab2/2010-1-00264-IF-Bab 2.pdf · mengimplementasikan sebuah mesin virtual dan bahasa yang mirip dengan

51

yaitu : SHA-224, SHA-256, SHA-384, dan SHA-512. Keempat variasi ini

termasuk dalam keluarga SHA-2. Detail struktur dan algoritma keluarga SHA

hampir sama.

Perbedaan pada masing-masing variasi SHA dapat dilihat pada tabel di

bawah ini :

SHA-1 SHA-256 SHA-384 SHA-512

Ukuran

message digest

160 256 384 512

Ukuran pesan <264 <264 <2128 <2128

Ukuran block 512 512 1024 1024

Ukuran huruf 32 32 64 64

Number of

steps

80 80 80 80

Keamanan 80 128 192 256

Catatan : 1. Satuan ukuran dalam bits.

2. Referensi keamanan merupakan fakta dari serangan “birthd ay

attack” terhadap message digets dari ukuran n produces

bertubrukan dengan workfaktor sekitar 2n/2.

Tabel 2.9-1 : Perbandingan SHA

Page 43: BAB 2 LANDASAN TEORI 2.1 JAVA™ - thesis.binus.ac.idthesis.binus.ac.id/doc/Bab2/2010-1-00264-IF-Bab 2.pdf · mengimplementasikan sebuah mesin virtual dan bahasa yang mirip dengan

52

Keamanan SHA dinyatakan karena secara komputasi tidak dapat

ditemukan isi pesan dari message digest yang dihasilkan, dan tidak dapat

dihasilkan dua pesan yang berbeda menghasilkan message digest yang sama.

Setiap perubahan yang terjadi pada pesan akan menghasilkan message digest yang

berbeda.

2.9.1 SHA -1

SHA-1 menerima masukkan berupa pesan dengan ukuran

maksimum adalah 264 bit dan menghasilkan message digest yang

panjangnya 160 bit. Panjang message digest pada SHA-1 pebih panjang

dari pada yang dihasilkan oleh MD5 yang menghasilkan panjang message

digest 128 bit. Proses SHA-1 secara garis besar adalah sebagai berikut :

1. Penambahan bit-bit pengganjal (padding bits)

Pesan ditambah dengan sejumlah bit pengganjal yang

sedemikian sehingga panjang pesan (dalam satuan bit) kongruen

dengan 448 modul 512. Ini berarti, panjang pesan setelah ditambah

dengan bit-bit pengganjal adalah 64 bit kurang sari kelipatan 512.

Pesandengan panjang 448 bit pun tetapditambah dengan bit-

bitpengganjal.Jika panjang pesan 448 bit, maka pesantersebut ditambah

dengan 512 bitmenjadi 960 bit. Jadi, panjang bit-bitpengganjal adalah

Page 44: BAB 2 LANDASAN TEORI 2.1 JAVA™ - thesis.binus.ac.idthesis.binus.ac.id/doc/Bab2/2010-1-00264-IF-Bab 2.pdf · mengimplementasikan sebuah mesin virtual dan bahasa yang mirip dengan

53

antara 1 sam pai 512.Bit-bit pengganjal terdiri dari sebuah bit1 diikuti

dengan sisanya 0.

2. Penambahan nilai panjang pesan semula

Pesan yang telah diberi bit-bit pengganjal, selanjutnya ditambah

lagi dengan 64 bit yang menyatakan panjang pesan semua. Setelah

ditambah dengan 64 bit, panjang pesan sekarang menjadi kelipatan 512

bit.

3. Inisialisasi penyangga (buffer) MD

SHA membutuhkan 5 buah penyangga (buffer) yang masing-

masing panjangnya 32 bit. Total panjang penyangga adalah 5 x 32 bit =

160 bit. Kelima penyangga ini menampung hasil antara dan hasil akhir.

Kelima penyangga tersebut diberi nama A, B, C, D, dan E. Dimana

setiap penyangga diinisialisai dengan nilai-nilai (dalam notasi HEX)

sebagai berikut :

A = 67452301

B = EFCDAB89

C = 98BADCFE

D = 10325476

E = C3D2E1F0

Page 45: BAB 2 LANDASAN TEORI 2.1 JAVA™ - thesis.binus.ac.idthesis.binus.ac.id/doc/Bab2/2010-1-00264-IF-Bab 2.pdf · mengimplementasikan sebuah mesin virtual dan bahasa yang mirip dengan

54

Sebagai 32 bit string, setiap penyangga diinisialisasikan dengan

nilai-nilai (dalam notasi HEX) sebagai berikut :

Word A = 67 45 23 01

Word B = EF CD AB 89

Word C = 98 BA DC FE

Word D = 10 32 54 76

Word E = C3 D2 E1 F0

4. Pengelolaan pesan dalam blok berukuran 512 bit

Pseudocode untuk SHA-1 adalah sebagai berikut :

Note 1: All variables are unsigned 32 bits and wrap modulo 232 when

calculating

Note 2: All constants in this pseudo code are in big endian.

Within each word, the most significant byte is stored in the leftmost

byte position

Initialize variables:

h0 = 0x67452301

h1 = 0xEFCDAB89

h2 = 0x98BADCFE

Page 46: BAB 2 LANDASAN TEORI 2.1 JAVA™ - thesis.binus.ac.idthesis.binus.ac.id/doc/Bab2/2010-1-00264-IF-Bab 2.pdf · mengimplementasikan sebuah mesin virtual dan bahasa yang mirip dengan

55

h3 = 0x10325476

h4 = 0xC3D2E1F0

Pre-processing:

append the bit '1' to the message

append 0 ≤ k < 512 bits '0', so that the resulting message length (in

bits)

is congruent to 448 ≡ −64 (mod 512)

append length of message (before pre-processing), in bits, as 64-bit

big-endian integer

Process the message in successive 512-bit chunks:

break message into 512-bit chunks

for each chunk

break chunk into sixteen 32-bit big-endian words w[i], 0 ≤ i ≤ 15

Extend the sixteen 32-bit words into eighty 32-bit words:

for i from 16 to 79

w[i] = (w[i-3] xor w[i-8] xor w[i-14] xor w[i-16]) leftrotate 1

Initialize hash value for this chunk:

a = h0

b = h1

Page 47: BAB 2 LANDASAN TEORI 2.1 JAVA™ - thesis.binus.ac.idthesis.binus.ac.id/doc/Bab2/2010-1-00264-IF-Bab 2.pdf · mengimplementasikan sebuah mesin virtual dan bahasa yang mirip dengan

56

c = h2

d = h3

e = h4

Main loop:

for i from 0 to 79

if 0 ≤ i ≤ 19 then

f = (b and c) or ((not b) and d)

k = 0x5A827999

else if 20 ≤ i ≤ 39

f = b xor c xor d

k = 0x6ED9EBA1

else if 40 ≤ i ≤ 59

f = (b and c) or (b and d) or (c and d)

k = 0x8F1BBCDC

else if 60 ≤ i ≤ 79

f = b xor c xor d

k = 0xCA62C1D6

temp = (a leftrotate 5) + f + e + k + w[i]

e = d

d = c

c = b leftrotate 30

Page 48: BAB 2 LANDASAN TEORI 2.1 JAVA™ - thesis.binus.ac.idthesis.binus.ac.id/doc/Bab2/2010-1-00264-IF-Bab 2.pdf · mengimplementasikan sebuah mesin virtual dan bahasa yang mirip dengan

57

b = a

a = temp

Add this chunk's hash to result so far:

h0 = h0 + a

h1 = h1 + b

h2 = h2 + c

h3 = h3 + d

h4 = h4 + e

Produce the final hash value (big-endian):

digest = hash = h0 append h1 append h2 append h3 append h4

Tabel 2.9-2 : Psedeucode SHA-1

Contoh (SHA-1) :

• SHA1("The quick brown fox jumps over the lazy dog")

= 2fd4e1c6 7a2d28fc ed849ee1 bb76e739 1b93eb12

• // Efek ketika terdapat perubahan di akhir kata "cog" :

SHA1("The quick brown fox jumps over the lazy cog")

= de9f2c7f d25e1b3a fad3e85a 0bd17d9b 100db4b3

• SHA1("")

Page 49: BAB 2 LANDASAN TEORI 2.1 JAVA™ - thesis.binus.ac.idthesis.binus.ac.id/doc/Bab2/2010-1-00264-IF-Bab 2.pdf · mengimplementasikan sebuah mesin virtual dan bahasa yang mirip dengan

58

= da39a3ee 5e6b4b0d 3255bfef 95601890 afd80709

2.9.2 SHA-256 dan SHA-512

Psedeucode untuk SHA-256 dan SHA-512 adalah sebagai berikut :

Note 2: All constants in this pseudo code are in big endian

Initialize variables

(first 32 bits of the fractional parts of the square roots of the first 8 primes

2..19):

h0 := 0x6a09e667

h1 := 0xbb67ae85

h2 := 0x3c6ef372

h3 := 0xa54ff53a

h4 := 0x510e527f

h5 := 0x9b05688c

h6 := 0x1f83d9ab

h7 := 0x5be0cd19

Initialize tabel of round constants

(first 32 bits of the fractional parts of the cube roots of the first 64 primes

2..311):

Page 50: BAB 2 LANDASAN TEORI 2.1 JAVA™ - thesis.binus.ac.idthesis.binus.ac.id/doc/Bab2/2010-1-00264-IF-Bab 2.pdf · mengimplementasikan sebuah mesin virtual dan bahasa yang mirip dengan

59

k[0..63] :=

0x428a2f98, 0x71374491, 0xb5c0fbcf, 0xe9b5dba5, 0x3956c25b,

0x59f111f1, 0x923f82a4, 0xab1c5ed5,

0xd807aa98, 0x12835b01, 0x243185be, 0x550c7dc3, 0x72be5d74,

0x80deb1fe, 0x9bdc06a7, 0xc19bf174,

0xe49b69c1, 0xefbe4786, 0x0fc19dc6, 0x240ca1cc, 0x2de92c6f,

0x4a7484aa, 0x5cb0a9dc, 0x76f988da,

0x983e5152, 0xa831c66d, 0xb00327c8, 0xbf597fc7, 0xc6e00bf3,

0xd5a79147, 0x06ca6351, 0x14292967,

0x27b70a85, 0x2e1b2138, 0x4d2c6dfc, 0x53380d13, 0x650a7354,

0x766a0abb, 0x81c2c92e, 0x92722c85,

0xa2bfe8a1, 0xa81a664b, 0xc24b8b70, 0xc76c51a3, 0xd192e819,

0xd6990624, 0xf40e3585, 0x106aa070,

0x19a4c116, 0x1e376c08, 0x2748774c, 0x34b0bcb5, 0x391c0cb3,

0x4ed8aa4a, 0x5b9cca4f, 0x682e6ff3,

0x748f82ee, 0x78a5636f, 0x84c87814, 0x8cc70208, 0x90befffa,

0xa4506ceb, 0xbef9a3f7, 0xc67178f2

Pre-processing:

append the bit '1' to the message

append k bits '0', where k is the minimum number >= 0 such that the

resulting message

length (in bits) is congruent to 448 (mod 512)

Page 51: BAB 2 LANDASAN TEORI 2.1 JAVA™ - thesis.binus.ac.idthesis.binus.ac.id/doc/Bab2/2010-1-00264-IF-Bab 2.pdf · mengimplementasikan sebuah mesin virtual dan bahasa yang mirip dengan

60

append length of message (before pre-processing), in bits, as 64-bit big-

endian integer

Process the message in successive 512-bit chunks:

break message into 512-bit chunks

for each chunk

break chunk into sixteen 32-bit big-endian words w[0..15]

Extend the sixteen 32-bit words into sixty-four 32-bit words:

for i from 16 to 63

s0 := (w[i-15] rightrotate 7) xor (w[i-15] rightrotate 18) xor (w[i-

15] rightshift 3)

s1 := (w[i-2] rightrotate 17) xor (w[i-2] rightrotate 19) xor (w[i-2]

rightshift 10)

w[i] := w[i-16] + s0 + w[i-7] + s1

Initialize hash value for this chunk:

a := h0

b := h1

c := h2

d := h3

e := h4

f := h5

Page 52: BAB 2 LANDASAN TEORI 2.1 JAVA™ - thesis.binus.ac.idthesis.binus.ac.id/doc/Bab2/2010-1-00264-IF-Bab 2.pdf · mengimplementasikan sebuah mesin virtual dan bahasa yang mirip dengan

61

g := h6

h := h7

Main loop:

for i from 0 to 63

s0 := (a rightrotate 2) xor (a rightrotate 13) xor (a rightrotate 22)

maj := (a and b) xor (a and c) xor (b and c)

t2 := s0 + maj

s1 := (e rightrotate 6) xor (e rightrotate 11) xor (e rightrotate 25)

ch := (e and f) xor ((not e) and g)

t1 := h + s1 + ch + k[i] + w[i]

h := g

g := f

f := e

e := d + t1

d := c

c := b

b := a

a := t1 + t2

Add this chunk's hash to result so far:

h0 := h0 + a

Page 53: BAB 2 LANDASAN TEORI 2.1 JAVA™ - thesis.binus.ac.idthesis.binus.ac.id/doc/Bab2/2010-1-00264-IF-Bab 2.pdf · mengimplementasikan sebuah mesin virtual dan bahasa yang mirip dengan

62

h1 := h1 + b

h2 := h2 + c

h3 := h3 + d

h4 := h4 + e

h5 := h5 + f

h6 := h6 + g

h7 := h7 + h

Produce the final hash value (big-endian):

digest = hash = h0 append h1 append h2 append h3 append h4 append

h5 append h6 append h7

Tabel 2.9-3 : Psedeucode SHA-256

Psedeucode pada SHA-512 identik dengan psedeucode pada SHA-

256, tetapi :

• Semua angka panjangnya 64-bit

• Terdapat 80 putaran bukan 64 putaran

• Nilai awal dan konstanta aditif diperluas menjadi 64-bit

• Shift dan jumlah putaran yang digunakan berbeda

Perbedaan standar SHA, antara SHA versi 256 (SHA-256) dan

SHA versi 512 (SHA-512) dapat dilihat pada tabel di bawah ini :

Page 54: BAB 2 LANDASAN TEORI 2.1 JAVA™ - thesis.binus.ac.idthesis.binus.ac.id/doc/Bab2/2010-1-00264-IF-Bab 2.pdf · mengimplementasikan sebuah mesin virtual dan bahasa yang mirip dengan

63

SHA-256 SHA-512

Konstanta 32 bit pertama dari

pagian fraksional

cube root dari 64

angka prima pertama

64 bit pertama dari

pagian fraksional cube

root dari 80 angka prima

pertama

Padding 448 mod 512 896 mod 1024

Panjang Panjang pesan asli

ditambah 64 bit

Panjang pesan asli

ditambah 128 bit

Inisialisasi buffer 6A09E667

BB67AE85

3C6EF372

A54FF53A

510E527F

9B05688C

1F83D9AB

5BE0CDI9

6A09E667F3BCC908

BB67AE8584CAA73B

3C6EF372FE94F82B

A54FF53A5F1D36F1

510E527FADE682D1

9B05688C2B3E6C1F

1F83D9ABFB41BD6B

5BE0CDI913E2179

Tabel 2.9-4 : Standar SHA-256 dan SHA-512

(Contoh SHA-256)

• SHA256("The quick brown fox jumps over the lazy dog")

= d7a8fbb3 07d78094 69ca9abc b0082e4f 8d5651e4 6d3cdb76

2d02d0bf 37c9e592

Page 55: BAB 2 LANDASAN TEORI 2.1 JAVA™ - thesis.binus.ac.idthesis.binus.ac.id/doc/Bab2/2010-1-00264-IF-Bab 2.pdf · mengimplementasikan sebuah mesin virtual dan bahasa yang mirip dengan

64

• // Efek ketika terdapat perubahan di akhir kata "cog" :

SHA256("The quick brown fox jumps over the lazy cog")

= e4c4d8f3 bf76b692 de791a17 3e053211 50f7a345 b46484fe 427f6acc

7ecc81be

• SHA256("")

= e3b0c442 98fc1c14 9afbf4c8 996fb924 27ae41e4 649b934c a495991b

7852b855

(Contoh SHA-512 )

• SHA512("The quick brown fox jumps over the lazy dog")

= 07e547d9 586f6a73 f73fbac0 435ed769 51218fb7 d0c8d788 a309d785

436bbb64 2e93a252 a954f239 12547d1e 8a3b5ed6 e1bfd709 7821233f

a0538f3d b854fee6

• // Efek ketika terdapat perubahan di akhir kata "cog" :

SHA512("The quick brown fox jumps over the lazy cog")

= 3eeee1d0 e11733ef 152a6c29 503b3ae2 0c4f1f3c da4cb26f 1bc1a41f

91c7fe4a b3bd8649 4049e201 c4bd5155 f31ecb7a 3c860684 3c4cc8df

cab7da11 c8ae5045

• SHA512("")

Page 56: BAB 2 LANDASAN TEORI 2.1 JAVA™ - thesis.binus.ac.idthesis.binus.ac.id/doc/Bab2/2010-1-00264-IF-Bab 2.pdf · mengimplementasikan sebuah mesin virtual dan bahasa yang mirip dengan

65

= cf83e135 7eefb8bd f1542850 d66d8007 d620e405 0b5715dc 83f4a921

d36ce9ce 47d0d13c 5d85f2b0 ff8318d2 877eec2f 63b931bd 47417a81

a538327a f927da3e

2.10 AES (Advanced Encryption Standard) Rijndael

AES atau Advanced Encryption Standard merupakan Federal Information

Proccess Standard (FIPS) yang baru. AES merupakan pengganti DES yang

diumumkan usaha pembuatan algoritmanya pada tanggal 2 Januari 1997, oleh

NIST yang merupakan badan penelitian milik pemerintah Amerika Serikat. Untuk

menghindari kontoversi dari standar baru ini, NIST mengadakan lomba terbuka

untuk membuat standart algoritma kriptografi yang baru sebagai pengganti DES.

Persyaratan yang diajukan oleh NIST tentang algoritma yang baru tersebut

adalah :

1. Algoritma yang ditawarka termasuk ke dalam kelompok algoritma kriptografi

simetri berbasis chipper blok.

2. Seluruh rancangan algoritma harus bebas dari royalty.

3. Panjang kunci fleksibel : 128, 192, dan 256 bit.

4. Ukuran blok yang dienkripsi adalah 128 bit.

NIST menerima 15 proposal algoritma yang masuk. Berdasarkan aspek

keamanan algoritma, efisiensi, fleksibilitas, dan kebutuhan memori, pada bulan

Page 57: BAB 2 LANDASAN TEORI 2.1 JAVA™ - thesis.binus.ac.idthesis.binus.ac.id/doc/Bab2/2010-1-00264-IF-Bab 2.pdf · mengimplementasikan sebuah mesin virtual dan bahasa yang mirip dengan

66

Agustus 1998, NIST memilih lima finalis yaitu Rijndael, Twofish, Serpent, RC6,

MARS. Dari ke lima finalis ditetapkan Rijndael sebagai AES.

Rijndael termasuk dalam jenis algoritma kriptografi yang sifatnya simetri

dan chipper block. Dengan demikian algoritma ini mempergunakan kunci yang

sama saat enkripsi dan dekripsi serta masukkan dan keluarannya berupa blok

dengan jumlah bit tertentu.

Algoritma Rijndael memiliki operasi dasar matematika yang meliputi

penjumlahan, perkalian, dan perkalian dengan x. Operasi matematika ini berbeda

dengan operasi inter biasa, karena diperasikan dalam operasi finite field.

Rijndael mendukung berbagai variasi ukuran blok dan kunci yang akan

digunakan. Rijndael mendukung panjang kunci 128 bit sampai 256 dengan

kelipatan 32 bit. Namun Rijndael dalam versi AES mempunyai ukuran blok dan

kunci yang tetap sebesar 128, 192, 256 bit. Pemilihan ukuran blok data dan kunci

akan menentukan jumlah proses yang harus dilalui untuk proses enkripsi dan

dekrispsi.

Secara garis besar, operasi algoritma Rijndael pada blok 128-bit dengan

kunci 128-bit adalah sebagai berikut :

1. ArrRoundKey : operasi untuk melakukan XOR antara state awal (plainteks)

dengan chipper key. Tahap ini disebut juga initial round.

2. Putaran sebanyak Nr-1 kali. Proses yang dilakukan pada setiap putaran adalah

:

a. ByteSub : substitusi byte dengan menggunakan tabel substitusi (S-box).

Page 58: BAB 2 LANDASAN TEORI 2.1 JAVA™ - thesis.binus.ac.idthesis.binus.ac.id/doc/Bab2/2010-1-00264-IF-Bab 2.pdf · mengimplementasikan sebuah mesin virtual dan bahasa yang mirip dengan

67

b. ShiftRow : pergeseran baris-baris array state secara wrapping.

c. MixColumn : mengacak data di masing-masing kolom array state.

d. AddRoundKey : melakukan XOR antara state sekarang dengan round key.

3. Final round : proses untuk putaran terakhir adalah ByteSub, ShiftRow,

AddRoundKey.

Algoritma Rijndaelmempunyai 3 parametersebagai berikut:

1. plainteks : array yangberukuran 16 byte, yang berisi datamasukan.

2. cipherteks : array yangberukuran 16 byte, yang berisi hasilenkripsi.

3. key : array yang berukuran 16 byte, yang berisi kunci ciphering

(disebutjuga cipher key).

Page 59: BAB 2 LANDASAN TEORI 2.1 JAVA™ - thesis.binus.ac.idthesis.binus.ac.id/doc/Bab2/2010-1-00264-IF-Bab 2.pdf · mengimplementasikan sebuah mesin virtual dan bahasa yang mirip dengan

68

2.10.1 Proses Enkripsi Algoritma AES Rijndael

Gambar 2.10-1 : Diagram Proses Enkripsi AES

Page 60: BAB 2 LANDASAN TEORI 2.1 JAVA™ - thesis.binus.ac.idthesis.binus.ac.id/doc/Bab2/2010-1-00264-IF-Bab 2.pdf · mengimplementasikan sebuah mesin virtual dan bahasa yang mirip dengan

69

2.10.2 Proses Dekripsi Algoritma AES Rijndael

Gambar 2.10-2 : Diagram Proses Deskripsi AES

Page 61: BAB 2 LANDASAN TEORI 2.1 JAVA™ - thesis.binus.ac.idthesis.binus.ac.id/doc/Bab2/2010-1-00264-IF-Bab 2.pdf · mengimplementasikan sebuah mesin virtual dan bahasa yang mirip dengan

70

2.11 CBC (Chiper Block Chaining)

Pada CBC (Chiper Block Chining), input algoritma enkripsi CBC adalah

XOR dari 64 bit selanjutnya pada plaintext dan 64 bit sebelumnya pada chipertext,

kunci yang sama digunakan pada setiap blok. Operasi yang dilakukan di CBC

adalah operasi umpan balik atau yang dikenal dengan umpan berantai (chaining).

Efeknya, kita mempunyai rantai proses urutan blok plaintext yang sama. Untuk

dekripsi, setiap chiper block telah melalui algoritma deskripsi. Kesimpulannya,

karena mekanisme rantai dari CBC, hal ini sesuai untuk panjang enkripsi pesan

yang lebih dari 64 bit.

2.12 Algoritma Pengkodean Base64

Algoritma base64 dirancang untuk menyandikan data biner manapun, ke

dalam sebuah byte, menjadi byte yang bisa dicetak berformat 64-karakter yang

bisa terbaca melalui pesan singkat atau SMS.

Transformasi Base64 merupakan salah satu algoritma untuk Encoding dan

Decoding suatu data ke dalam format ASCII, yang didasarkan pada bilangan dasar

64 atau bisa dikatakan sebagai salah satu metoda yang digunakan untuk

melakukan encoding (penyandian) terhadap data binari. Karakter yang dihasilkan

pada transformasi Base64 ini terdiri dari A..Z, a..z dan 0..9, serta ditambah dengan

Page 62: BAB 2 LANDASAN TEORI 2.1 JAVA™ - thesis.binus.ac.idthesis.binus.ac.id/doc/Bab2/2010-1-00264-IF-Bab 2.pdf · mengimplementasikan sebuah mesin virtual dan bahasa yang mirip dengan

71

dua karakter terakhir yang bersimbol yaitu + dan / serta satu buah karakter sama

dengan (=) yang digunakan untuk penyesuaian dan menggenapkan data binary

atau istilahnya disebut sebagai pengisi pad. Karakter simbol yang akan dihasilkan

akan tergantung dari proses algoritma yang berjalan.

Untuk lebih mudah membayangkannya, dalam proses enkripsi dekripsi

data menggunakan algortima transformasi Base 64 akan kita gunakan dua buah

tabel, pertama adalah tabel data encoding dengan 64 radix yang berfungsi untuk

proses pengkorversian dari data binary ke karakter base 64 atau sebaliknya dari

karakter base 64 ke data binary. Selain itu, juga diperlukan tabel ASCII (American

Standard Code for Information Interchange), yang merupakan kode standar yang

digunakan di seluruh dunia untuk “menerjemahkan” jenis huruf besar/kecil,

angka-angka atau simbol-simbol yang berfungsi sebagai standard inputan pertama

kali untuk proses encode decode pada algoritma transformasi Base 64.

Dengan memanfaatkan kedua tabel diatas, maka kita dapat melakukan

proses encoding decoding base64 dari suatu data, baik bersifat text maupun file

.txt. Teknik algoritma Encoding decoding transformasi base64 pun dapat dilihat

pada Gambar 2.12-1 dibawah ini.

Page 63: BAB 2 LANDASAN TEORI 2.1 JAVA™ - thesis.binus.ac.idthesis.binus.ac.id/doc/Bab2/2010-1-00264-IF-Bab 2.pdf · mengimplementasikan sebuah mesin virtual dan bahasa yang mirip dengan

72

Gambar 2.12-1 : Algoritma Base64 Encoding

Dari Gambar 2.12-1, terlihat mula-mula data inputan yang sudah berupa

kumpulan binary (hasil ekstrak dari karakter dengan menggunakan tabel ASCII)

dimana satu karakter diwakili 8 bits kemudian kumpulan 8 bits tersebut di ekstrak

menjadi kumpulan per 6 bits yang mewakili satu karakter yang disusun

membentuk 4 bagian per blok (jadi tersusun beberapa blok dimana satu blok

terdapat 24 bit data). Untuk kemungkinan jika terdapat data bit yang tidak

mencapai 6 bits setelah proses ekstrak tadi, solusinya adalah dengan

menambahkan bit 0 pada bit 6 hingga mencapai 6 bit dan bit 1 sisanya hingga

mencapai 24 bit pada blok yang tersisa. Setelah kumpulan bit tersusun menjadi 24

Page 64: BAB 2 LANDASAN TEORI 2.1 JAVA™ - thesis.binus.ac.idthesis.binus.ac.id/doc/Bab2/2010-1-00264-IF-Bab 2.pdf · mengimplementasikan sebuah mesin virtual dan bahasa yang mirip dengan

73

bits dimana setiap blok nya dibagi menjadi 4 bagian, yang terdiri dari susunan-

susunan 6 bits, barulah dari setiap bagian 6 bits tersebut data-data binary dapat

dikonversikan menjadi karakter encoding base64 berdasarkan tabel data encoding

64 radix diatas dimana satu bagian 6 bits mewakili satu karakter encoding base64.

Gambar 2.12-2 : Algoritma Base64 Decoding

Pada proses dekripsi berdasarkan gambar algortima decoding diatas,

terlihat inputan data berupa data karakter base64 hasil encoding pada proses

sebelumnya, pertama-tama dengan menggunakan tabel Data Encoding64 Radix,

data karakter di ubah menjadi binary, dimana satu karakter di wakili oleh 6 bits

Page 65: BAB 2 LANDASAN TEORI 2.1 JAVA™ - thesis.binus.ac.idthesis.binus.ac.id/doc/Bab2/2010-1-00264-IF-Bab 2.pdf · mengimplementasikan sebuah mesin virtual dan bahasa yang mirip dengan

74

data yang dikelompokkkan dalam blok yang berisi 24 bits data, setelah semua

kumpulan bits data tersusun, kumpulan-kumpulan bits tersebut akan diekstrak

menjadi kumpulan 8 bits data, dimana satu blok berisi 24 bits data akan di ekstrak

menjadi 3 karakter ASCII 8 bits. Kemudian barulah dengan menggunakan tabel

ASCII, kumpulan 8 bits data tersebut di ekstrak menjadi karakter plaintext (8 bits

data mewakili satu karakter Plaintext). 64 karakter yang mampu dicetak yang

digunakan oleh Base64 adalah:

0 A 17 R 34 i 51 z

1 B 18 S 35 j 52 0

2 C 19 T 36 k 53 1

3 D 20 U 37 l 54 2

4 E 21 V 38 m 55 3

5 F 22 W 39 n 56 4

6 G 23 X 40 o 57 5

7 H 24 Y 41 p 58 6

8 I 25 Z 42 q 59 7

9 J 26 a 43 r 60 8

10 K 27 b 44 s 61 9

11 L 28 c 45 t 62 +

12 M 29 d 46 u 63 /

13 N 30 e 47 v

14 O 31 f 48 w

15 P 32 g 49 x

Page 66: BAB 2 LANDASAN TEORI 2.1 JAVA™ - thesis.binus.ac.idthesis.binus.ac.id/doc/Bab2/2010-1-00264-IF-Bab 2.pdf · mengimplementasikan sebuah mesin virtual dan bahasa yang mirip dengan

75

16 Q 33 h 50 y

Tabel 2.12-1 : 64 Karakter yang Menggunakan Base64

Proses pengkodean Base64 ini digunakan untuk :

• Membagi byte input stream ke blok dari 3 byte.

• Membagi 24 bit dari sebuah 3-byte blok menjadi 4 kelompok dari 6 bit.

Peta setiap kelompok dari 6 bit ke 1 dicetak karakter, yang didasarkan pada

nilai 6-bit.

• Jika 3-byte terakhir blok memiliki hanya 1 byte dari data input, pad 2 byte dari

nol (\ x0000). Setelah encoding sebagai blok yang normal, menggantikan 2

karakter terakhir dengan 2 tanda sama dengan (==), sehingga proses decoding

tahu 2 bytes dari nol telah di pad.

• Jika 3-byte terakhir blok memiliki hanya 2 byte data input, pad 1 byte nol (\

x00). Setelah encoding sebagai blok yang normal, menimpa 1 terakhir karakter

dengan 1 tanda sama dengan (=), sehingga proses decoding tahu 1 byte dari

nol telah di pad.

• Carriage return (\ r) dan baris baru (\ n) dimasukkan ke dalam karakter output

stream. Mereka akan diabaikan oleh proses decoding.

Page 67: BAB 2 LANDASAN TEORI 2.1 JAVA™ - thesis.binus.ac.idthesis.binus.ac.id/doc/Bab2/2010-1-00264-IF-Bab 2.pdf · mengimplementasikan sebuah mesin virtual dan bahasa yang mirip dengan

76

Contoh 1: Input data, 1 byte, "A". Dikodekan output, 4 karakter, "QQ =="

Input Data A

Input Bits 01000001

Padding 01000001 00000000 00000000

\

Groups bit 010000 010000 000000 000000

Pemetaan T T A A

Override Q Q = =

Contoh 2: Input data, 2 byte, "AB". Dikodekan output, 4 karakter, "qui ="

Input Data A B

Input Bits 01000001 01000010

Padding 01000001 01000010 00000000

\

Groups bit 010000 010100 001000 000000

Pemetaan T U aku A

Override Q U I =

Contoh 3: Input data, 3 byte, "ABC". Dikodekan output, 4 karakter, "QUJD"

Input Data A B C

Page 68: BAB 2 LANDASAN TEORI 2.1 JAVA™ - thesis.binus.ac.idthesis.binus.ac.id/doc/Bab2/2010-1-00264-IF-Bab 2.pdf · mengimplementasikan sebuah mesin virtual dan bahasa yang mirip dengan

77

Bit input 01000001 01000010 01000011

\

Groups bit 010000 010100 001001 000011

Pemetaan Q U J D

2.13 Arsitektur GSM (Global Sistem for Mobile Communication)

Gambar 2.13-1 : Arsitektur GSM (Global System for Mobile Communication)

Keterangan Gambar 2.13-1 :

• MS (Mobile Station) terdiri dari ME (Mobile Equipment) dan SIM (Subcriber

Identification Module).

Page 69: BAB 2 LANDASAN TEORI 2.1 JAVA™ - thesis.binus.ac.idthesis.binus.ac.id/doc/Bab2/2010-1-00264-IF-Bab 2.pdf · mengimplementasikan sebuah mesin virtual dan bahasa yang mirip dengan

78

ME merupakan perangkat keras dan perangkat lunak untuk melakukan

transmisi rasi yang dikenal dengan istilah telepon seluler (ponsel). ME secara

dunik diidentifikasikan dalam format IMEI (International Mobile Equipment).

SIM Card berisi IMSI (International Mobile Subscriber Identity) yang

digunakan untuk menyimpan informasi lainnya seperti phone book atapun

pesan SMS. Walaupun pengguna tidak terotorisasi dengan password ataupun

Personal Identity Number (PIN), SIM card dapat terproteksi.

• BTS (Base Transceiver Station) merupakan alat transceiver (transmitter

receiver) radio pada suatu area. BTS didefinisikan sebagai suatu cell dan

menangani protokol radio-link dengan Mobile Station lewat radio link. BTS

berfungsi sebagai pengirim dan penerima sinyal.

• BSC (Base Station Controller) digunakan untuk mengontrol dan mengatur

bebetara BTS. Selain itu, BSC juga bertanggungjawab untuk memelihara

koneksi saat panggilan dan kepadatan lalu lintas panggilan pada areanya dan

meneruskannya ke network subsystem yang terdiri dari MSC, HLR, VLR,

AUC, dan EIR.

• MSC (Mobile Switch Center) merupakan sebuah network element central dalam

sebuah jaringan GSM. MSC sebagai inti dari jaringan seluler, dimana MSC

berperan untuk interkoneksi hubungan pembicaraan, baik antar selular maupun

dengan jaringan kabel PSTN, ataupun dengan jaringan data.

• OMC (Operation and Management Center) berperan untuk memonitor

operasional jaringan dalam system serta melakukan fungsi konfigurasi remote.

Page 70: BAB 2 LANDASAN TEORI 2.1 JAVA™ - thesis.binus.ac.idthesis.binus.ac.id/doc/Bab2/2010-1-00264-IF-Bab 2.pdf · mengimplementasikan sebuah mesin virtual dan bahasa yang mirip dengan

79

• SMSC (Short Message Service Center) bertanggung jawab dalam penyampaian,

penyimpanan dan pengajuan suatu pesan singkat.

• ISC (International Switching Center)

• EIR (Equipment Identity Register) merupakan database yang berisi suatu daftar

valid mobile equipment pada jaringan.

• AUC (Authentication Center) merupakan database proteksi yang menyimpan

salinan dari kunci rahasi (secret key) yang terdapat pada setiap SIM card

pelanggan. Proteksi ini digunakan untuk autentifikasi dan enkripsi pada

channel radio.

• HLR (Home Location Registry) berisi semua informasi administrasi dari setiap

pelanggan yang tersambung pada jaringan GSM. Semua data dan informasi

tersimpan secara permanen.

• VLR (Visitor Location Registry) berisi informasi administrasi terpilih dari HLR

yang digunakan untuk control panggilan dan provisi dari layanan pelanggan

serta control posisi untuk setiap ponsel pada area geografis.

Page 71: BAB 2 LANDASAN TEORI 2.1 JAVA™ - thesis.binus.ac.idthesis.binus.ac.id/doc/Bab2/2010-1-00264-IF-Bab 2.pdf · mengimplementasikan sebuah mesin virtual dan bahasa yang mirip dengan

80

2.14 Arsitektur CDMA (Code Division Multiple Access)

2.14.1 Generasi CDMA 2G

Gambar 2.14-1 : Arsitektur Jaringan CDMA 2G

Keterangan Gambar 2.14-1:

• BTS (Base Transceiver Station) : Merupakan perangkat yang langsung

berhubungan dengan End User. BTS akan memancarkan gelombang radio

dalam frekuensi dan jumlah kanal yang disesuaikan dengan lisensi dari

operator telekomunikasi.

• BSC (Base Sistem Controller) : Merupakan perangkat yang menghubungkan

beberapa BTS dan MSC, menggunakan protokol klasik yaitu SS7 (TDM).

Page 72: BAB 2 LANDASAN TEORI 2.1 JAVA™ - thesis.binus.ac.idthesis.binus.ac.id/doc/Bab2/2010-1-00264-IF-Bab 2.pdf · mengimplementasikan sebuah mesin virtual dan bahasa yang mirip dengan

81

• MSC (Mobile Switching Center) : Merupakan pusat pengolahan dara pelanggan,

salah satu fungsinya seperti menyambungkan pembicaraan antar pelanggan

dan mencatat data pembicaraan tersebut. MSC juga melakukan koordinasi dan

membangun komunikasi dengan semua perangkat (maupun antar MSC)

dengan mengolah data signalling.

• VLR (Visitor Location Register) : Merupakan tempat penyimpanan semestara

database pelanggan yang berada dalam area layanan dari suatu MSC.

• HLR (Home Location Register) : Merupakan tempat penyimpanan database

pelanggan.

• SMC (Short Message Center) : Merupakan pusat pengolahan layanan pesan

pendek (SMS).

• VMS (Voice Mail Service) : Merupakan tempat penyimpanan pesan suara jika

pelanggan tidak dapat dihubungi (Mailbox).

• PDSN (Packet Data Switching Node) : Merupakan pusat pengendali jaringan

data berbasis paket, yang menghubungkan End User dengan dunia berbasis IP,

contoh: internet.

Page 73: BAB 2 LANDASAN TEORI 2.1 JAVA™ - thesis.binus.ac.idthesis.binus.ac.id/doc/Bab2/2010-1-00264-IF-Bab 2.pdf · mengimplementasikan sebuah mesin virtual dan bahasa yang mirip dengan

82

2.14.2 Generasi CDMA 3G

Gambar 2.14-2 : Arsitektur jaringan CDMA 3G

Perbedaan mendasar antara 2G dan 3G adalah adanya pemisah

antara pengolahan signaling (Media Gateway Controller) dan pengolahan

Voice / Trunk (Media Gateway). Selain itu, interface signaling pada MGC

berbasis SS7 (IOS, IS-41, dan ISUP); IP PRI/IUA, SIP-T, dan MEGACO;

R2.

Jenis Protokol di dalam arsitektur 3G beserta fungsinya adalah

sebagai berikut :

• Protokol Signaling (pengontrol panggilan)

Page 74: BAB 2 LANDASAN TEORI 2.1 JAVA™ - thesis.binus.ac.idthesis.binus.ac.id/doc/Bab2/2010-1-00264-IF-Bab 2.pdf · mengimplementasikan sebuah mesin virtual dan bahasa yang mirip dengan

83

SIP (Session Initiation Protokol), yaitu protokol yang digunakan untuk

membangun koneksi, memodifikasi, dan menterminasi komunikasi

voice, multimedia, dan conference antara MGC.

SIP-T (SIP for Telephony) : Merupakan protokolsignaling standard

SIP yang memiliki kemampuan untuk mendefinisikan payload ISUP

dari PSTN. Protokol ini digunakan untuk membangun hubungan antar

MGC untuk menirukan fungsi sentral local pada PSTN. Selain itu, SIP-

T juga digunakan untuk mengontrol user yang sedang melakukan

roaming di MGC lain.

• Protokol pengontrol Media Gateway (MGW)

MIGC (Media Gateway Controll Part) adalah protokol yang

digunakan oleh MGC untuk mengontrol operasi (routing) voice (trunk),

data, dan video.

Megaco (H.248 ITU-T) merupakan protokol yang digunakan oleh

MGC untuk mengontrol MGW dalam hal panggilan. Protokol ini

merupakan penyempurnaan dari MGCP dan memiliki kelebihan antara

lain dalam hal efisiensi dan perbaikan sintaks serta dukungan terhadap

protokol UDP dan TCP.

• Protokol Transport

RTP (Real-time Transport Protokol) yaitu protokol dengan fungsi

transportend-to-end yang sesuai dengan aplikasi real-time, contohnya :

suara dan video.

• Protokol Signaling Gateway

Page 75: BAB 2 LANDASAN TEORI 2.1 JAVA™ - thesis.binus.ac.idthesis.binus.ac.id/doc/Bab2/2010-1-00264-IF-Bab 2.pdf · mengimplementasikan sebuah mesin virtual dan bahasa yang mirip dengan

84

SIDTRN (Signaling Transport), digunakan oleh MGC sebagai

signaling gateway untuk membawa pesan SS7 ke jaringan yang

berbasis IP.

2.14.3 “Next CDMA” Evolution

Gambar 2.14-3 : Arsitektur Jaringan “Next CDMA” Evolusi

2.15 SMS (Short Message Service)

2.15.1 Definisi SMS

Page 76: BAB 2 LANDASAN TEORI 2.1 JAVA™ - thesis.binus.ac.idthesis.binus.ac.id/doc/Bab2/2010-1-00264-IF-Bab 2.pdf · mengimplementasikan sebuah mesin virtual dan bahasa yang mirip dengan

85

SMS (Short Message Service) adalah sebuah mekanisme

penyampaian pesan pendek dalam jaringan bergerak. SMS saat ini menjadi

sebuah fitur mendasar dari setiap telepon seluler. SMS memungkinkan dua

orang atau lebih yang memiliki telepon seluler dapat saling mengirimkan

pesan teks pendek satu sama lain.

Sebuah pesan SMS maksimal terdiri dari 140-bytes, dengan kata

lain, sebuah pesan bias memuat 140 karakter 8-bit, 160 karakter 7-bit, atau

70 karakter 16-bit untuk Bahasa Jepang, Bahasa Mandarin, dan Bahasa

Korea yang memakai Hanzi (Aksara Kanji/Hanja).

Teknologi yang mendukung SMS antara lain adalah Global System

for Mobile Communication (GSM), Time Division Multiple Access

(TDMA), dan Code Division Multiple Access (CDMA). Dengan dukungan

oleh ketiga teknologi ini, SMS menjadi layanan data bergerak yang bersifat

universal.

SMS terdiri dari 2 layanan dasar, yaitu :

• Short Message Mobile Terminated (SMMT),

Yaitu kemampuan sistem GSM untuk menyampaikan pesan

pendek yang dikirimkan dari Service Center (SC) ke Mobile Station

(MS), dan menghasilkan informasi tentang pengirimanitu baik delivery

report atau status report dengan mekanisme tertentu.

• Short Message Mobile Oriented (SMMO),

Page 77: BAB 2 LANDASAN TEORI 2.1 JAVA™ - thesis.binus.ac.idthesis.binus.ac.id/doc/Bab2/2010-1-00264-IF-Bab 2.pdf · mengimplementasikan sebuah mesin virtual dan bahasa yang mirip dengan

86

Yaitu kemampuan dari sistem GSM untuk menyampaikan

pesan pendek yang dikirimkan dari Mobile Station (MS) ke satu Short

Message Entity (SME) melalui sebuah Service Center (SC), dan

menghasilkan informasi tentang pengiriman itu, baik delivery report

atau failure report.

2.15.2 Karakteristik SMS

Ada beberapa hal yang menjadi karakteristik pada pesan SMS, yaitu :

• Satu pesan SMS pasti sampai atau tidak sama sekali ke ponsel tujuan.

Jika terjadi kegagalan sistem, time-out, atau karena faktor lain yang

menyebabkan pesan SMS tidak dapat dikirim, akan diberikan

informasi (report) yang menyatakan pesan SMS gagal dikirimkan.

• Jika ponsel yang dituju dalam keadaan tidak aktif maka SMS akan

masuk ke antrian dulu dengan status tertunda (pending) selama belum

time-out, jika sudah time-out maka statusnya menjadi gagal (failed),

SMS akan segera dikirimkan jika ponsel tujuan sudah aktif dengan

status terkirim (delivered).

• SMS berbasis teks menggunakan bandwith yang rendah.

2.15.3 Mekanisme Kerja SMS

Page 78: BAB 2 LANDASAN TEORI 2.1 JAVA™ - thesis.binus.ac.idthesis.binus.ac.id/doc/Bab2/2010-1-00264-IF-Bab 2.pdf · mengimplementasikan sebuah mesin virtual dan bahasa yang mirip dengan

87

SMS memiliki prinsip kerja sebagai berikut, ketika pengguna

mengirimkan pesan SMS ke suatu nomor, SMS tersebut tidak akan

langsung dikirimkan ke nomor tujuan, namun akan masuk terlebih dahulu

ke SMSCenter (SMSC) operator telepon yang digunakan oleh pengguna.

SMSCenter sendiri dapat diartikan sebagai sebuah server yang

bertanggung jawab pada proses pengiriman SMS dalam suatu operator.

SMS yang dikirimkan dari suatu ponsel akan masuk dan disimpan ke

dalam SMSC ini, kemudian baru diteruskan ke nomor tujuan SMS

tersebut. Apabila nomor yang dituju sedang mati (offline), SMSC ini akan

menyimpan SMS tersebut untuk sementara waktu hingga nomor tujuan

hidup kembali. Lamanya waktu penyimpanan SMS pada SMSC, sangat

tergantung dari lamanya waktu yang telah ditetapkan oleh operator untuk

menyimpan SMS tersebut. Kemudian nomor yang telah menerima SMS

akan mengirimkan laporan ke SMSC yang menyatakan bahwa SMS telah

diterima. Laporan tersebut kemudian akan diteruskan kembali ke nomor

pengirim SMS.

2.15.4 SMSC (Short Message Service Center)

2.15.4.1 Definisi SMSC

Elemen utama dalam jaringan SMS adalah SMSC.,

dimana di dalamnya terdapat berbagai proses pengolahan pesan

Page 79: BAB 2 LANDASAN TEORI 2.1 JAVA™ - thesis.binus.ac.idthesis.binus.ac.id/doc/Bab2/2010-1-00264-IF-Bab 2.pdf · mengimplementasikan sebuah mesin virtual dan bahasa yang mirip dengan

88

pendek. SMSC merupakan sebuah alat yang berada dalam sebuah

jaringan wireless service provider yang dapat melakukan routing

semua SMS. Seperti sebuah email server. SMSC dapat menangani

banyak pertukaran SMS antara dua telepon seluler ataupun dari

sebuah telepon seluler dengan sebuah aplikasi software.

Program SMSC secara khusus melibatkan pesan-pesan

yang didikte oleh operator. Pesan ini dicatat pada komputer dan

dikirim ke pelanggan. Proses penyimpanan dan pengiriman telah

diatur sedemikian rupa sehingga pelanggan yang mematikan

telepon selulernya atau yang berada di luar wilayah cakupan

masih dapat menerima pesan tersebut dalam jangka waktu

tertentu.

2.15.4.2 Mekanisme Kerja SMSC

Mekanisme kerja sebuah SMSC adalah menyimpan dan

melanjutkan. Dengan mekanisme ini, seluruh pesan yang masuk

akan langsung disimpan tanpa melihat status keberadaan tujuan.

Penyampaian ke tujuan akan dilakukan kemuadian dengan terlebih

dahulu mengidentifikasi tujuan dengan mengurutkan entitas-

entitas yang terlibat. Jika nomor tujuan tidak terjangkau, maka

SMSC akan mengulanginya sampai terkirim selama jangka waktu

yang telah ditetapkan. Apabila telah melebihi jangka waktu, maka

pesan akan dihapus. Lama waktu SMS dapat ditampung di SMSC

Page 80: BAB 2 LANDASAN TEORI 2.1 JAVA™ - thesis.binus.ac.idthesis.binus.ac.id/doc/Bab2/2010-1-00264-IF-Bab 2.pdf · mengimplementasikan sebuah mesin virtual dan bahasa yang mirip dengan

89

sebelum dapat diterima oleh pelanggan merupakan parameter

yang dapat diatur di dalam SMSC.

Sebuah SMSC harus memiliki keterhandalan yang tinggi,

kapasitas yang cukup, dan harus bersifat fleksibel agar dapat

mengakomodasi pertumbuhan layanan SMS. Selain itu, aplikasi

tersebut harus mampu dioperasikan dengan mudah, begitu juga

dengan pemeliharaannya

2.15.4.3 SMS Gateway

SMS Gateway adalah suatu platform yang menyediakan

mekanisme untuk menghantar dan menerima SMS dari peralatan

mobile (HP, PDA phone, dan lain-lain) yang menggunakan

keyword tertentu. SMS Gateway merupakan SMS interaktif yang

memiliki komunikasi dua arah. SMS Gateway juga bisa

dimanfaatkan untuk keperluan lain seperti halnya melakukan

polling, transaksi perbankan, kuis berhadiah, dan sebagainya.

Mekanisme pada SMS Gateway, ketika SMS Gateway

menerima SMS dari user sesuai dengan format SMS (keyword)

yang telah ditentukan sebelumnya kemudian akan melakukan

validasi data serta melakukan pemrosesan terhadap data-data yang

telah dikirimkan oleh user melalui SMS Gateway. Kemudian

selanjutnya sistem akan mengirimkan informasi hasil dari

pemrosesan data tersebut dalam bentuk format pesan singkat

Page 81: BAB 2 LANDASAN TEORI 2.1 JAVA™ - thesis.binus.ac.idthesis.binus.ac.id/doc/Bab2/2010-1-00264-IF-Bab 2.pdf · mengimplementasikan sebuah mesin virtual dan bahasa yang mirip dengan

90

SMSyang berdasarkan keyword sesuai dengan permintaan user

tersebut.

2.16 AT Command

AT Command (Acces Terminal Command) merupakan perintah-perintah

yang dberikan kepada handphone atau GSM/CDMA untuk digunakan dalam

komunikasi telepon dengan Serial Port pada komputer. Dengan perintah AT

Command ini komputer dapat berinteraksi dengan telepon seluler, misalnya

seperti: melihat vendor dari telepon seluler yang digunakan, mengecek koneksi

telepon seluler dengan komputer, membaca pesan yang terdapat pada SIM Card,

mengirim pesan, mendeteksi pesan SMS baru yang masuk secara otomatis,

menghapus pesan dan sebagainya.

Adapun beberapa contoh dalam penggunaan perintah AT Command seperti

tampak pada Tabel 2.16-1.

Perinta Fungsi

AT Mangecek koneksi telepon seluler

AT+CGMI Mengetahui vendor telepon seluler

AT+CNMI Untuk mendeteksi pesan SMS baru

Page 82: BAB 2 LANDASAN TEORI 2.1 JAVA™ - thesis.binus.ac.idthesis.binus.ac.id/doc/Bab2/2010-1-00264-IF-Bab 2.pdf · mengimplementasikan sebuah mesin virtual dan bahasa yang mirip dengan

91

AT+CMGL Membuka daftar SMS

AT+CMGR Membaca pesan SMS

AT+CMGS Mengirim pesan SMS

AT+CMGD Menghapus pesan SMS

Tabel 2.16-1 : Perintahw AT Command

2.17 PDU (Protokol Data Unit)

Dalam proses pengiriman atau penerimaan pesan pendek (SMS), data yang

dikirim maupun diterima oleh stasiun bergerak menggunakan salah satu dari 2

mode yang ada, yaitu : mode teks dan mode PDU (Protokol Data Unit).

Model teks hanya digunakan oleh beberapa model telepon seluler. Cara

teks ini hanya merupakan cara enkripsi arus bit yang diwakili PDU. Jika cara ini

digunakan, aplikasi harus dibatasi dengan menetapkan pilihan enkripsi. Jika cara

PDU, enkripsi apapun dapat digunakan.

Dalam mode PDU, pesan yang dikirim berupa informasi dalam bentuk data

dengan beberapa kepala-kepala informasi. Hal ini akan memberikan kemudahan

apabila dalam pengiriman akan dilakukan kompresi data, atau akan dibentuk

sistem enkripsi data dari karakter dalam bentuk untaian bit-bit biner.

Page 83: BAB 2 LANDASAN TEORI 2.1 JAVA™ - thesis.binus.ac.idthesis.binus.ac.id/doc/Bab2/2010-1-00264-IF-Bab 2.pdf · mengimplementasikan sebuah mesin virtual dan bahasa yang mirip dengan

92

2.17.1 PDU untuk Mengirim SMS

Contoh:

0691261801000001000C91261832547698000005E8329BFD06

Beberapa pasangan di atas harus kita baca secara dibalik-balik,

misalnya 26 adalah 62, dst. Arti dari data PDU di atas adalah sebagai

berikut :

Bagian Arti

06 Jumlah pasangan nomor SMSCenter (6 pasang = 1

pasang jenis penomoran + 5 pasang nomor SMSC)

91 Jenis penomoran SMSCenter (91 = menggunakan

penomoran internasional)

2618010000 Nomor SMSCenter (6281100000 = SMSC Telkomsel)

01 Tipe SMS (01 = SMS kirim)

Page 84: BAB 2 LANDASAN TEORI 2.1 JAVA™ - thesis.binus.ac.idthesis.binus.ac.id/doc/Bab2/2010-1-00264-IF-Bab 2.pdf · mengimplementasikan sebuah mesin virtual dan bahasa yang mirip dengan

93

00 Nomor Referensi SMS (otomatis jadi biarkan 00)

0C Jumlah digit nomor tujuan dalam bilangan heksa (0C =

12 digit)

91 Jenis penomoran pengirim (91 = menggunakan

penomoran internasional)

261832547698 Nomor tujuan pengiriman SMS (628123456789)

00 Bentuk SMS (00 = SMS teks)

00 Skema encoding (00 = skema 7 bit)

05 Jumlah karakter isi pesan dalam heksa (5 karakter)

E8329BFD06 Isi pesan dalam susunan encoding yang dipilih

(E8329BFD06 jika diterjemahkan 7 bit -7 bit adalah

'Hello')

Tabel 2.17-1 : PDU untuk Mengirim SMS

2.17.2 PDU untuk Menerima SMS

Contoh:

Page 85: BAB 2 LANDASAN TEORI 2.1 JAVA™ - thesis.binus.ac.idthesis.binus.ac.id/doc/Bab2/2010-1-00264-IF-Bab 2.pdf · mengimplementasikan sebuah mesin virtual dan bahasa yang mirip dengan

94

06912618010000240C9126183254769800008070605103218005E8329BF

D06

Beberapa pasangan di atas harus kita baca secara dibalik-balik,

misalnya 26 adalah 62, dst. Arti dari data PDU di atas adalah sebagai

berikut.

Bagian Arti

06 Jumlah pasangan nomor SMS Center (6 pasang = 1

pasang jenis penomoran + 5 pasang nomor SMSC)

91 Jenis penomoran SMS Center (91 = menggunakan

penomoran internasional)

2618010000 Nomor SMS Center (6281100000 = SMSC Telkomsel)

24 Tipe SMS (24 = SMS terima)

0C Jumlah digit nomor pengirim dalam bilangan heksa (0C

= 12 digit)

91 Jenis penomoran tujuan (91 = menggunakan penomoran

internasional)

261832547698 Nomor pengirim SMS (628123456789)

Page 86: BAB 2 LANDASAN TEORI 2.1 JAVA™ - thesis.binus.ac.idthesis.binus.ac.id/doc/Bab2/2010-1-00264-IF-Bab 2.pdf · mengimplementasikan sebuah mesin virtual dan bahasa yang mirip dengan

95

00 Bentuk SMS (00 = SMS teks)

00 Skema encoding (00 = skema 7 bit)

807060 Tanggal pengiriman SMS yaitu 6/7/2008

510321 Jam pengiriman SMS yaitu 15:30:12

80 Standar waktu yang digunakan (GMT+7 Indonesia)

05 Jumlah karakter isi pesan dalam heksa (5 karakter)

E8329BFD06 Isi pesan dalam susunan encoding yang dipilih

(E8329BFD06 jika diterjemahkan 7 bit -7 bit adalah

'Hello')

Tabel 2.17-2 : PDU untuk Menerima SMS

2.18 IMEI (International Mobile Equipment Indentity)

IMEI merupakan sejumlah nomor unik yang biasanya terdapat pada

telepon seluler. IMEI dapat dilihat pada bagian bawah baterai atau dengan cara

mengetik *#06# pada telepon seluler, maka akan muncul di layer nomor IMEI

telepon seluler tersebut (contoh : 351234009564585).

Page 87: BAB 2 LANDASAN TEORI 2.1 JAVA™ - thesis.binus.ac.idthesis.binus.ac.id/doc/Bab2/2010-1-00264-IF-Bab 2.pdf · mengimplementasikan sebuah mesin virtual dan bahasa yang mirip dengan

96

Angka-angka inilah yang disebut dengan IMEI (15 digit) atau yang biasa

kita sebut nomor seria. IMEI digunakan pada jaringan GSM untuk

mengidentifikasikan validitas device dan dapat digunakan untuk menghentikan

tindak pencurian akses jaringan telepon.

2.19 Serial Port

Serial port merupakan interface dari komputer yang digunakan untuk

mentransmisikan satu bit data dalam satuan waktu. Secara umum, istilah “serial

port ” mengacu pada port-port tertentu yang menggunakan protokol asinkron.

Serial port ini termasuk port RS-232 pada PC (Personal Komputer) dan serial port

lainnya yang tertanam di dalam sistem.

Serial port ideal digunakan untuk komunikasi antar sistem dengan sistem

atau antar sistem dengan PC. Serial port juga sebuah pilah yang tepat ketika kita

membutuhkan kabel yang panjang atau jaringan dasar antar PC, sistem, atau

kombinasinya.

Satu buah PC dapat memiliki banyak port COM. Untuk memutuskan port

mana yang lebih tepat digunakan, sebuah aplikasi biasanya menyediakan sebuah

combo box, dimana user dapat memilih sendiri port mana yang ingin digunakan.

Aplikasi itu juga dapat menyimpan nama dari port yang terakhir digunakan dan

memilih port tersebut sebagai yang utama jika tersedia. Sebuah aplikasi dapat

Page 88: BAB 2 LANDASAN TEORI 2.1 JAVA™ - thesis.binus.ac.idthesis.binus.ac.id/doc/Bab2/2010-1-00264-IF-Bab 2.pdf · mengimplementasikan sebuah mesin virtual dan bahasa yang mirip dengan

97

menyimpan parameter lain seperti bit rate. Pada setiap port COM, sistem operasi

akan memberikan nama pada setiap link seperti COM1, COM2, dan seterusnya.

2.20 Protokol

Protokol adalah sebuah aturan atau standar yang mengatur atau

mengijinkan terjadinya hubungan, komunikasi, dan perpindahan data antara dua

atau lebih titik komputer. Protokol dapat diterapkan pada perangkat keras,

perangkat lunak atau kombinasi dari keduanya. Pada tingkatan yang terendah,

protokol mendefinisikan koneksi perangkat keras.

Protokol perlu diutamakan pada penggunaan standar teknis, untuk

menspesifikasi bagaimana membangun komputer atau menghubungkan peralatan

perangkat keras. Protokol secara umum digunakan pada komunikasi real-time

dimana standar digunakan untuk mengatur struktur dari informasi untuk

penyimpanan jangka panjang.

Sangat susah untuk menggeneralisir protokol dikarenakan protokol

memiliki banyak variasi didalam tujuan penggunaanya. Kebanyakan protokol

memiliki salah satu atau beberapa dari hal berikut:

• Melakukan deteksi adanya koneksi fisik atau ada tidaknya komputer atau

mesin lainnya.

• Melakukan metode "jabat-tangan" (handshaking).

Page 89: BAB 2 LANDASAN TEORI 2.1 JAVA™ - thesis.binus.ac.idthesis.binus.ac.id/doc/Bab2/2010-1-00264-IF-Bab 2.pdf · mengimplementasikan sebuah mesin virtual dan bahasa yang mirip dengan

98

• Negosiasi berbagai macam karakteristik hubungan.

• Bagaimana mengawali dan mengakhiri suatu pesan.

• Bagaimana format pesan yang digunakan.

• Yang harus dilakukan saat terjadi kerusakan pesan atau pesan yang tidak

sempurna.

• Mendeteksi rugi-rugi pada hubungan jaringan dan langkah-langkah yang

dilakukan selanjutnya

• Mengakhiri suatu koneksi.

Protokol mendefinisikan apa yang dikomunikasikan, bagaimana, dan kapan

terjadinya komunikasi. Elemen-elemen penting daripada protokol adalah : syntax,

semantics dan timing.

• Syntax mengacu pada struktur atau format data, yang mana dalam urutan

tampilannya memiliki makna tersendiri. Sebagai contoh, sebuah protokol

sederhana akan memiliki urutan pada delapan bit pertama adalah alamat

pengirim, delapan bit kedua adalah alamat penerima dan bit stream sisanya

merupakan informasinya sendiri.

• Semantics mengacu pada maksud setiap section bit. Dengan kata lain adalah

bagaimana bit-bit tersebut terpola untuk dapat diterjemahkan.

• Timing mengacu pada 2 karakteristik yakni kapan data harus dikirim dan

seberapa cepat data tersebut dikirim. Sebagai contoh, jika pengirim

Page 90: BAB 2 LANDASAN TEORI 2.1 JAVA™ - thesis.binus.ac.idthesis.binus.ac.id/doc/Bab2/2010-1-00264-IF-Bab 2.pdf · mengimplementasikan sebuah mesin virtual dan bahasa yang mirip dengan

99

memproduksi data sebesar 100 Megabits per detik (Mbps) namun penerima

hanya mampu mengolah data pada kecepatan 1 Mbps, maka transmisi data

akan menjadi overload pada sisi penerima dan akibatnya banyak data yang

akan hilang atau musnah.

Setiap jenis topologi jaringan memiliki protokol tertentu, misalnya pada

topologi Bus dikenal protokol Ethernet, dan pada topologi Cincin dikenal

protokol Token-Ring. Protokol standart komunikasi data yang menjadi acuan

dalam perancangan hardware maupun software jaringan adalah: Model

Referensi OSI (Open System Interconnection) yang ditetapkan oleh organisasi

acuan sedunia ISO (International Standard Organization). Menurut OSI

komunikasi antara dua komponen dalam jaringan memerlukan 7 lapisan, mulai

dari lapisan Aplikasi, dimana pengguna memulai pengiriman datanya, hingga ke

lapisan Fisik, dimana data dalam bentuk sinyal listrik di-transmisikan melalui

media komunikasi.