BAB II - potensi utama repository

advertisement
BAB II
TINJAUAN PUSTAKA
II.1. Perancangan
Perancangan adalah suatu tahapan yang memiliki tujuan untuk mendesign
sistem baru yang dapat menyelesaikan masalah masalah yang dihadapi perusahaan
yang diperoleh dari pemilihan alternatif sistem yang terbaik. Kegiatan yang
dilakukan dalam tahap perancangan ini meliputi perancangan output, input dan
file Al-Bahra (2005:39).
Sebagai tahapan setelah analisa siklus pengembangan sistem, pendefinisian
dari kebutuhan-kebutuhan fungsional dan persiapan untuk rancang bangun
implementasi, serta menggambarkan bagaimana suatu sistem dibentuk. Dalam
buku yang berjudul Analisis dan Desain Sistem Informasi. Jogiyanto Hartono
(2005:196).
Berdasarkan penjelasan di atas penulis dapat mengambil kesimpulan bahwa
perancangan merupakan kegiatan mendesain sistem baru yang bertujuan untuk
menyelesaikan masalah yang dihadapi perusahaan atau suatu kegiatan yang
memiliki tujuan untuk mendesain sistem baru yang dapat menyelesaikan masalahmasalah yang dihadapi perusahaan yang diperoleh dari pemilihan alternatif sistem
yang terbaik.
11
12
II.2. Aplikasi
Aplikasi berasal dari kata application yang artinya penerapan, lamaran,
penggunaan. Secara istilah aplikasi adalah program siap pakai yang direka untuk
melaksanakan suatu fungsi bagi pengguna atau aplikasi yang lain dan dapat
digunakan oleh sasaran yang dituju. (Sobri : 2013)
Perangkat lunak aplikasi adalah suatu sub kelas perangkat lunak komputer
yang memanfaatkan kemampuan komputer langsung untuk melakukan tugas yang
diinginkan pengguna. Biasanya dibandingkan dengan perangkat lunak sistem
yang mengintegrasikan berbagai kemampuan komputer, tapi tidak secara langsung
menerapkan kemampuan tersebut untuk mengerjakan suatu tugas yang
menguntungkan pengguna. Contoh utama perangkat lunak aplikasi adalah
pengolah kata, lembar kerja, dan pemutar media. Biasanya dibandingkan dengan
perangkat lunak sistem yang mengintegrasikan berbagai kemampuan komputer,
tapi tidak secara langsung menerapkan kemampuan tersebut untuk mengerjakan
suatu tugas yang menguntungkan pengguna. (Prajna Deshanta Ibnugraha : 2008)
Aplikasi (application) adalah software yang dibuat oleh suatu perusahaan
komputer untuk mengerjakan tugas-tugas tertentu, misalnya Microsoft Word,
Microsoft Excel Menurut Dhanta (2009 : 32).
Dari definisi aplikasi di atas dapat penulis simpulkan pengertian aplikasi
adalah suatu program (software) yang ditulis atau dirancang untuk menangani
masalah tertentu.
13
II.3. Short Message Service (SMS)
Short Message Service (SMS) merupakan sebuah layanan yang banyak
diaplikasikan pada sistem komunikasi tanpa kabel, memungkinkan dilakukannya
pengiriman pesan dalam bentuk teks. SMS didukung oleh GSM (Global System
For Mobile Communication), TDMA (Time Division Multiple Access), CDMA
(Code Division Multiple Access) yang berbasis pada telepon seluler yang saat ini
banyak digunakan. (Yudi : 2011)
SMS merupakan suatu fasilitas untuk mengirim dan menerima suatu pesan
singkat berupa teks melalui perangkat komunikasi telepon selular. Pada proses
pengiriman SMS, SMS tersebut tidak langsung dikirimkan dari mobile phone
pengirim ke mobile phone tujuan, akan tetapi terlebih dahulu dikirim ke Short
Message Service Center (SMSC), kemudian dengan system store and forward
SMS tersebut dikirimkan ke mobile phone tujuan. (Evi : 2012)
SMS berkembang menjadi salah satu layanan yang cukup diminati oleh
penggunanya. Berbagai keunggulan yang mendukung hal tersebut, yaitu :
a. Deliver Oriented Service, pesan akan selalu diusahakan untuk dikirimkan ke
tujuan. Jika suatu tujuan sedang tidak aktif, pesan akan disimpan di SMSC
(short message service centre) sebagai server dan akan dikirim sesegera
setelah nomor tujuan aktif. Pesan juga akan tetap terkirim walaupun pengguna
sedang melakukan telepon karena transmisi SMS menggunakan kanal
signaling bukan kanal suara.
b. Dapat dikirim ke berbagai tujuan / penerima pada saat bersamaan.
14
c. Dapat dikirim ke berbagai jenis penerima, seperti email, IP, maupun berbagai
aplikasi lain.
d. Memiliki beberapa macam kegunaan bila dilakukan integrasi dengan berbagai
aplikasi, seperti chatting, voting, kuis, reservasi, informasi tertentu, dan
sebagainya. (Nadhira : 2007)
SMS merupakan salah satu layanan yang populer dan praktis pada telepon
bergerak. Layanan ini digunakan oleh berbagai kalangan, baik hanya sekedar
untuk pertukaran pesan pribadi maupun oleh institusi bisnis untuk kegiatan seperti
konfirmasi pemesanan barang, konfirmasi pengiriman, sampai kepada konfirmasi
rekening pembayaran. Layanan SMS juga digunakan pada transaksi perbankan
yaitu digunakan untuk pengiriman informasi saldo dan PIN untuk transaksi eBanking. (Hendra : 2013)
Struktur pesan pada sebuah paket SMS dapat dilihat pada Gambar II.1.
berikut ini :
Header
Massege Body
Intructions to SIM ( option )
Intructions to Handset
Intructions to SMSC
Intructions to air interface
Gambar II.1. Struktur Pesan SMS
Sumber : http://developers.sun.com/mobility/midp/articles/sms/
15
Pada Gambar II.1. dapat terlihat bahwa pada sebuah paket pesan SMS
terdiri dari header dan body. Header pesan terdiri dari instruksi-instruksi kepada
komponen- komponen yang bekerja dalam jaringan SMS. Pada instruksi-instruksi
tersebut, terdapat informasi yang diperlukan selama pengiriman pesan seperti
informasi validitas pesan, dan informasi-informasi lainnya. Pada bagian message
body, terdapat isi dari pengirim pesan yang akan dikirimkan.
Panjang isi pesan pada sebuah paket SMS berukuran maksimal 160
karakter, di mana setiap karakter memiliki panjang 7 bit. Beberapa aplikasi
standar telepon selular dapat mendukung panjang pesan dengan karakter
sepanjang 8 bit (panjang pesan maksimum 140 karakter) dan karakter yang lebih
panjang lainnya seperti 16 bit, namun karakter sepanjang 8 bit dan 16 bit ini tidak
didukung oleh semua aplikasi standar telepon selular. Pada umumnya karakter
sepanjang 8 bit dan 7 bit digunakan untuk menampilkan data seperti gambar dan
symbol Pettersson, Lars, SMS Message and The PDU Format.
Secara umum sebuah telepon selular hanya dapat melakukan pengiriman
satu buah paket SMS dalam satu pesan, namun dengan kemajuan teknologi yang
ada sekarang, beberapa telepon selular mampu mengirimkan beberapa paket SMS
dalam satu pesan. Yang dilakukan telepon selular agar dapat melakukan
pengiriman beberapa paket dalam satu kali pengiriman pesan adalah melakukan
konkatinasi, jadi sebenarnya hal yang dilakukan sama dengan mengirimkan
beberapa pesan hanya saja dengan melakukan konkatinasi, beberapa pesan yang
disatukan tersebut dapat terlihat menjadi satu buah pesan. Dengan adanya fitur
konkatinasi, sebuah SMS seolah-olah dapat mengirim pesan dengan panjang lebih
16
dari 160 karakter (7 bit karakter) dalam satu buah pesan, namun pada fitur
konkatinasi ini dibutuhkan sebuah informasi tambahan pada pesan untuk
menyambungkan beberapa pesan menjadi satu buah pesan, oleh karena itu
panjang satu buah pesan akan menjadi lebih kecil.
Pada sebuah aplikasi penerimaan SMS pada telepon selular dikenal nomor
port, nomor port ini digunakan sebagai pengenal apabila terdapat dua buah atau
lebih aplikasi penerimaan SMS pada sebuah telepon selular. Aplikasi penerimaan
SMS tersebut akan menunggu pesan yang ditujukan pada nomor port tersebut.
Untuk mengirimkan pesan pada port yang spesifik, pengirim harus menyertakan
nomor port pada pesan yang dikirimkannya. Jika pengirim tidak menyertakan
nomor port, seperti halnya yang dilakukan oleh aplikasi standar setiap telepon
selular, maka pesan akan ditujukan ke aplikasi standar yang dimiliki oleh telepon
selular atau aplikasi yang memiliki nomor port 0. Informasi nomor port tersebut
dibawa bersama paket pesan yang dikirimkan oleh pengirim, oleh karena itu jika
pengirim menyertakan informasi nomor port tujuan, maka panjang maksimal
pesan yang dapat dikirimkan akan berkurang karena sebagian terpakai oleh
informasi nomor port.
II.4. Kriptografi
Keamanan data adalah suatu hal yang sangat penting dan harus
diperhatikan jika kita akan melakukan pengiriman data dari satu pihak ke pihak
lainnya. Hal tersebut dilakukan karena mungkin saja data yang dikirimkan
tersebut dicuri oleh pihak lain sebelum data tersebut sampai ke pihak yang dituju,
17
ataupun salah kirim secara tidak sengaja ke tujuan yang salah. Oleh sebab itu, data
harus diamankan terlebih dahulu sebelum dikirimkan agar data terlindungi dari
pihak yang tidak memiliki izin untuk membaca dan mengetahui isi dari data yang
dikirimkan tersebut. Salah satu teknik pengamanan data yang umum dilakukan
adalah pengamanan dengan cara mengubah data asli ke dalam bentuk yang tidak
terbaca dengan menggunakan seperangkat aturan tertentu yang hanya diketahui
oleh pihak pengirim dan penerima, sehingga pihak lain yang tidak berhak atas
data tersebut akan menemui kesulitan untuk mengetahui isi dari data yang sudah
diamankan tersebut. (Hartono : 2010)
Kriptografi (cryptography) berasal dari bahasa Yunani ”cryptos” artinya
”secret” (rahasia), sedangkan ”graphein” artinya ”writing” (tulisan). Jadi
kriptografi berarti ”secret writing” (tulisan rahasia). Kriptografi adalah ilmu dan
seni untuk menjaga keamanan pesan. (Inayatullah : 2007)
Kriptografi adalah ilmu dan seni untuk menjaga keamanan pesan yang
bertujuan untuk menjaga kerahasiaan informasi yang terkandung dalam data
sehingga informasi tersebut tidak dapat diketahui oleh pihak yang tidak
bertanggung jawab. (Charisma : 2009)
Kriptologi (Cryptology) adalah salah satu ilmu pengetahuan yang
mempelajari suatu cara komunikasi yang aman, yang meliputi kriptografi
(Cryptography) dan kriptoanalisis (Cryptanalysis). Kriptografi adalah cabang dari
kriptologi yang mengenai desain algoritma untuk proses enkripsi dan dekripsi,
yang dimaksudkan untuk memastikan kerahasiaan dan atau keautentikan dari
suatu pesan. Kriptografi tidak berarti hanya memberikan keamanan informasi saja,
18
namun lebih ke arah teknik-tekniknya atau secara garis besar kriptografi dapat
diartikan sebagai suatu seni dan ilmu untuk menjaga keamanan dari suatu pesan.
Kriptoanalisis adalah cabang dari kriptologi yang membahas tentang cara
menguraikan pesan terenkripsi (Ciphertext) untuk mendapatkan informasi, atau
menempa ulang informasi terenkripsi sehingga informasi itu dianggap autentik.
Ada tiga tujuan mendasar dari ilmu kriptografi ini yaitu :
1. Kerahasiaan (Confidentiality) adalah ketentuan yang digunakan untuk
mengamankan isi informasi dari siapapun kecuali yang memiliki otoritas
untuk memilikinya.
2. Integritas Data (Data Integrity) adalah ketentuan yang berhubungan dengan
pengamanan dari perubahan data secara tidak sah. Untuk menjaga integritas
data, sistem harus memiliki kemampuan untuk mendeteksi suatu keadaan
percobaan manipulasi data oleh pihak-pihak yang tidak berhak, antara lain
penyisipan, penghapusan, dan pensubsitusian data lain ke dalam data yang
sebenarnya.
3. Autentikasi (Authentication) adalah ketentuan yang berhubungan dengan
identifikasi
dimana
informasi
yang
dikirimkan
harus
diautentikasi
keasliannya.
Sistem kriptografi terbagi menjadi 3 dimensi yang berbeda, antara lain :
1. Tipe metoda yang digunakan dalam transformasi plaintext menjadi ciphertext.
Semua algoritma enkripsi berdasarkan pada 2 prinsip dasar, yaitu subtitusi,
dimana setiap elemen dalam plaintext dipetakan dengan elemen yang lain, dan
tranposisi, dimana elemen dalam plaintext disusun ulang. Kebutuhan
19
fundamentalnya adalah tidak adanya informasi yang hilang. Kebanyakan
sistem yang ada melibatkan tingkatan yang berjenjang dalam subtitusi dan
transposisi.
2. Kunci yang digunakan. Jika pengirim dan penerima menggunakan kunci yang
sama, sistem ini disebut simetrik, kunci tunggal, kunci rahasia, atau enkripsi
konvensional. Jika pengirim dan penerima menggunakan kunci yang berbeda,
sistem ini disebut asimetrik, kunci ganda, atau enkripsi kunci publik.
3. Metoda pemrosesan plaintext. Cipher block memproses masukan satu blok
dalam satu waktu, menghasilkan keluaran satu blok dari input satu blok.
Stream cipher memroses elemen masukan secara terus menerus, menghasilkan
keluaran satu elemen pada satu waktu.
Dalam kriptografi suatu pesan yang akan dirahasiakan akan disandikan
dengan menggunakan suatu algoritma. Pesan yang telah disandikan disebut
plaintext dan pesan yang sudah diacak atau disandikan disebut ciphertext. Proses
untuk mengkonversi plaintext menjadi ciphertext disebut enkripsi (encrypt) dan
proses untuk mengembalikan plaintext dari ciphertext disebut dekripsi (decrypt).
Enkripsi dan dekripsi merupakan fungsi transformasi antara himpunanhimpunan tersebut. Apabila elemen-elemen plaintext dinotasikan dengan M,
elemen-elemen ciphertext dinotasikan dengan C, sedang untuk proses enkripsi
dinotasikan dengan E, dekripsi dengan notasi D. Notasi matematika dari proses ini
adalah :
1. Enkripsi : E(M) = C
2. Dekripsi : D(C) = D(E(M)) = M
20
Dengan diagram blok, proses enkripsi dan dekripsi dapat digambarkan
sebagai berikut :
Gambar II.2. Diagram Blok Proses Enkripsi dan Dekripsi
Sumber : Semuil, Jurnal Seminar Nasional Informatika : 2009
Pada operasi enkripsi dan dekripsi dibutuhkan suatu kunci yang gunanya
untuk menjaga kerahasiaan cara kerja dari algoritma enkripsi dan dekripsi.
Algoritma enkripsi yang didasarkan pada kunci digolongkan menjadi dua bagian :
1. Algoritma Simetrik (Symmetric Algorithms), dimana kunci yang dipakai untuk
proses enkripsi maupun proses dekripsi sama. Algoritma ini dapat disebut juga
secret-key algorithms atau one-key algorithms.
2. Algoritma Asimetrik (Asymmetric Algorithms), dimana menggunakan kunci
yang berbeda yaitu kunci publik (public key) untuk melakukan proses enkripsi
dan kunci pribadi (private key) untuk melakukan proses dekripsi. (Semuil :
2009)
II.5. Mobile Device
Mobile Device merupakan piranti yang berfungsi sebagai alat bantu (tool)
bagi pengguna untuk meminta informasi. Hasil dari informasi yang diminta dapat
berupa teks, suara, gambar dan lain sebagainya. Piranti mobile yang dapat
digunakan bisa berupa PDA, smartphone, laptop. Selain itu, piranti mobile dapat
juga berfungsi sebagai alat navigasi di kendaraan seperti halnya alat navigasi
21
berbasis GPS. Informasi yang diinginkan dapat dicari melalui fasilitas untuk
mengakses internet seperti GPRS atau wireless. Pada umumnya perangkat mobile
atau Mobile Device lebih praktis karena bersifat mudah dibawa (portable) dari
pada perangkat teknologi lainnya (Jeni, 2009).
Mobile Device merupakan suatu alat yang digunakan oleh user untuk
meminta informasi yang dibutuhkan, dimana informasi dapat diberikan dalam
bentuk suara, gambar, dan teks. Informasi yang diinginkan dapat dicari melalui
fasilitas untuk mengakses internet seperti GPRS atau wireless. Pada umumnya
perangkat mobile atau mobile device lebih praktis karena bersifat mudah dibawa
(portable) dari pada perangkat teknologi lainnya.
Perkembangan ilmu pengetahuan dan teknologi dewasa ini telah
membawa manusia kepada peradaban yang lebih baik. Banyak sekali manfaat dan
kemudahan yang telah dihasilkan dengan adanya perkembangan teknologi,
terlebih lagi dengan lahirnya komputer, yang meningkatkan kualitas dan
efektifitas dalam bekerja. Faktanya manusia tidak mungkin lagi bisa terlepas dari
perangkat
yang
satu
ini,
sebab
komputer
membantu
manusia
dalam
menyelesaikan berbagai pekerjaan, misalnya dalam perhitungan matematis, basis
data, pengolahan data statistik dan lain sebagainya.
Dengan semakin berkembangnya teknologi informasi yang sangat cepat,
dibutuhkan pula media yang fleksibel dan dapat mengakses informasi secara
efektif, cepat dan akurat. Lingkungan pekerjaan sudah mengalami revolusi dari
kantor tradisional menjadi kantor yang mobile. Perkembangan teknologi piranti
mobile yang didukung oleh internet, menciptakan akses di setiap waktu dan
22
tempat. Piranti mobile menjadi semakin pintar, dengan terciptanya microprocessor
yang kecil, efektif, dan mempunyai kecepatan yang tinggi.
Banyaknya pemakai piranti mobile telah merevolusikan kantor tradisional
menjadi kantor mobile. Piranti mobile sekarang tidak hanya berfungsi sebagai
pencatat jadwal dan buku alamat saja tetapi sudah berkembang pesat dan siap
menggantikan dokumen bisnis berbasis kertas.
Vendor-vendor piranti mobile telah menanam teknologi penangkap data
(data acquisition) ke dalam produknya. Hal ini menciptakan peningkatan
produktivitas, proses pelaporan yang lebih cepat, dan pengurangan biaya
operasional. Secara umum aplikasi piranti mobile terbagi atas :
1. Personal Information Managenent (PIM)
Menyediakan fungsi kalender, buku alamat, jadwal, memo, pengirim email
dan tugas yang harus dilakukan.
2. Dokumen
Menyediakan fungsi word processing dan spread sheet. Fungsi yang lebih
maju antara lain : akses web, e-book, multimedia, dan presentasi.
3. Aplikasi Mobile Business (mBusiness)
Menyediakan fungsi penangkapan, pemrosesan, dan pengiriman data.
Komunikasi yang umum antara server dan aplikasi adalah melalui sistem
messaging seperti SMS dan sebagainya. Namun sekarang aplikasi business
sudah dapat terhubung langsung dengan server melalui HTTP secara
prorietary atau melalui web service. Dengan J2ME piranti mobile yang
23
menggunakan CDC bisa melakukan koneksi berbobot melalui RME, JDBC dan
sebagainya.
4. Games dan Hiburan
Menyediakan fungsi permainan, musik, video dan sebagainya. J2ME
menyediakan library-library untuk membangun aplikasi games dan hiburan.
Meningkatnya pemakaian piranti mobile (Mobile Device) telah merevolusi
kegiatan-kegiatan yang bersifat tradisional menjadi lebih sederhana dan mudah
dengan penggunaan perangkat mobile. Mobilitas yang tinggi tidak menjadi
penghalang lagi, karena saat ini piranti mobile sudah dapat mengakses server di
pusat data. Piranti mobile sekarang tidak hanya berfungsi sebagai pencatat jadwal
dan buku alamat. Fungsi piranti mobile sudah berkembang pesat dan idealnya siap
mengganti dokumen berbasis kertas (Arif, 2007).
II.6. Algoritma RC6
II.6.1. Deskripsi
Algoritma enkripsi RC6 adalah suatu algoritma yang menggunakan kunci
private, mampu bekerja dengan panjang kunci yang beragam dan mengunakan
prinsip intered chiper. Algoritma RC6 merupakan salah satu kandidat Advanced
Encryption Standard (AES) yang diajukan oleh RSA Security Laboratories
kepada NIST. Dirancang oleh Ronald L Rivest, M.J.B. Robshaw, R. Sidney dan
Y.L. Yin, algoritma ini merupakan pengembangan dari algoritma sebelumnya
yaitu RC5 dan telah memenuhi semua kriteria yang diajukan oleh NIST.
24
RC6 adalah algoritma yang menggunakan ukuran blok hingga 128 bit,
dengan ukuran kunci yang digunakan bervariasi antara 128, 192 dan 256 bit.
Algoritma RC6 dilengkapi dengan beberapa parameter, sehingga dituliskan
sebagai RC6-w/r/b. Parameter w merupakan ukuran kata dalam satuan bit,
parameter r merupakan bilangan bukan negatif yang menunjukan banyaknya
iterasi selama proses enkripsi dan parameter b menunjukan ukuran kunci enkripsi
dalam byte. Setelah algoritma ini masuk dalam kandidat AES, maka ditetapkan
bahwa nilai w = 32, r = 20 dan b bervariasi antara 16, 24 dan 32 byte. (Defni,
2014)
RC6 ini berhasil menjadi finalis dan menjadi kandidat kuat untuk menjadi
AES walaupun pada akhirnya algoritma ini tidak terpilih menjadi AES melainkan
algoritma rinjdael. Versi 1.1 dari RC6 mulai dipublikasikan pada tahun 1998.
Dasar desain dari algoritma RC6 ini didasarkan pada pendahulunya yaitu
algoritma RC5. Desain algoritma RC5 mengutamakan kesederhanaan agar mudah
untuk diimplementasikan, selain itu juga kecepatan dan penggunaan memori yang
rendah menjadi faktor utama perancangan algoritma RC5. Algoritma RC5
dirancang agar dapat beradaptasi dengan prosesor yang beragam dan juga didesain
dengan struktur yang iteratif dengan jumlah iterasi yang dapat beragam, sehingga
algoritma RC5 memiliki parameter agar dapat bekerja dengan jumlah iterasi dan
blok yang beragam. Algoritma RC5 bekerja dengan dua buah register A dan B
sebesar panjang blok dibagi dua, proses enkripsi dari algoritma RC5 dengan S
adalah array yang berisi kunci internal dan r adalah jumlah iterasi adalah sebagai
berikut :
25
A A + S[0]
B B + S[1]
for i 1 to r do
A ((A⊕B)<<<B)+S[2*i]
B ((B⊕A)<<<A)+S[2*i+1] endfor
Proses dekripsi algoritma RC5 adalah sebagai berikut:
for i r downto r do
B ((B-S[2*i+1])>>>A)⊕A
A ((A-S[2*i])>>>B)⊕B
endfor
B B-S[1]
A A-S[0]
Seperti halnya algoritma RC5, algoritma RC6 merupakan algoritma
dengan parameter penuh, algoritma RC6 dispesifikasikan dengan notasi RC6w/r/b. Dimana w adalah ukuran dari word dalam bit, karena pada RC6
menggunakan 4 buah register maka word adalah ukuran blok dibagi 4. r adalah
jumlah iterasi, dimana r tidak boleh negatif. Dan b adalah panjang kunci dalam
bytes. Dalam rancangan untuk menjadi kandidat AES algoritma RC6 yang
digunakan menggunakan ukuran w sebesar 32 bit dan jumlah iterasi r sebesar 20
kali putaran.
Cara kerja dari algoritma RC6 adalah menggunakan 4 buah register dan
menggunakan prinsip Iterated Block Cipher yang mengunakan iterasi, dalam
algoritma ini tidak digunakan S-box.
26
II.6.2. Pembentukan Kunci Internal
Untuk membangkitkan urutan kunci internal yang akan digunakan selama
proses enkripsi, algoritma RC6 melakukan proses pembangunan kunci yang
identik dengan algoritma RC5, yang membedakan hanyalah pada algoritma RC6,
jumlah word yang diambil dari kunci yang dimasukan oleh pengguna ketika
melakukan enkripsi ataupun dekripsi lebih banyak. Tujuan dari proses
pembangunan kunci tersebut adalah untuk membangun suatu array S yang
berukuran 2r+4 dari kunci masukan pengguna sepanjang b bytes (0 ≤
b ≤ 255),
array tersebut akan digunakan baik dalam proses enkripsi maupun dekripsi.
Proses untuk membangun kunci-kunci internal menggunakan dua buah
konstanta yang disebut dengan “magic constant”. Dua buah magic constant Pw
dan Qw tersebut didefinisikan sebagai berikut :
w
Pw= Odd((e-2)2 )
Qw= Odd(( -1)2w)
Di mana :
e
= 2.7182818284859 ....................... (basis dari logaritma natural)
= 1.618022988749 ......................... (golden ratio)
Odd (x) adalah integer ganjil terdekat dari x, jika x genap maka diambil
integer ganjil setelah x.
Berikut adalah daftar magic constant pada beberapa panjang blok dalam
heksadesimal :
P16 = b7e1
Q16 = 9e37
P32 = b7e15163
27
Q32 = 9e3779b9
P64 = b7e151628aed2a6b
Q64 = 9e3779b97f4a7c15
Dengan menggunakan dua buah magic constant tersebut, pembangunan
kunci terdiri dari tiga tahap :
1. Konversi kunci rahasia dari bytes ke words Langkah pertama adalah menyalin
kunci rahasia K[0..b-1] kedalam sebuah array L[0..c-1], di mana c =
pembulatan ke atas (b/u) dan u = w/8, penyalinan tersebut dilakukan secara
little endian. Untuk semua posisi byte pada L yang kosong diberi nilai nol.
Untuk kasus dimana b = 0, maka c = 1 dan L[0] = 0. Langkah ini dapat
dilakukan dengan cara berikut :
if c=0 then
c
1
endif
for i b-1 downto 0 do
L[i/u]
(L[i/u]<<<8) + K[i]
Endfor
Inisialisasi array S Langkah kedua adalah melakukan inisialisasi array S agar
memiliki pola pseudo-random bit tertentu menggunakan progresi aritmatika
w
modulo 2 yang ditentukan dengan Pw dan Qw. Berikut langkah kedua dalam
pseudo code :
S[0] Pw
for i 0 to 2r+3 do
S[i] S[i-1]+ Qw
endfor
28
2. Mencampurkan L dan S Langkah terakhir adalah mencampurkan kunci rahasia
dari pengguna yang sudah tersimpan dalam L dengan S sebanyak 3 kali iterasi.
Berikut adalah langkah pencampuran tersebut :
i
0
j
0
A
0
B
0
V
3*max (c,2r+4)
for index
1 to v do
S[i] (S[i]+A+B) <<< 3
A
S[i]
L[j] (L[j]+A+B) <<< (A+B)
B
L[j]
i
(i+1)mod(2r+4)
j
(j+1)mod c
endfor
Pembentukan kunci yang dilakukan, mengubah kunci dari user yang
panjangnya beragam (0-255) menjadi suatu rangkaian kunci dengan sepanjang
word sebanyak 2r +3 buah. Hal ini menjadikan RC6 dapat bekerja dengan kunci
masukkan pengguna yang beragam.
Kunci yang dihasilkan oleh proses pembentukian kunci ini memiliki sifat
satu arah, sehingga proses pembentukan kunci ini dapat digunakan sebagai fungsi
hash satu arah. Dengan sifat satu arah tersebut, maka kunci internal akan sangat
berbeda dengan kunci yang dimasukkan oleh pengguna, hal ini akan membuat
hubungan statistik antara kunci yang dimasukan oleh pengguna dengan plaintext
dan ciphertext menjadi lebih rumit karena dalam melakukan enkripsi, kunci yang
29
dipakai adalah kunci internal.
Pada pembentukan kunci internal digunakan iterasi yang cukup banyak baik
pada tahap satu, di mana untuk melakukan ekspansi kunci dibutuhkan iterasi, dan
pada tahap dua, dimana dibutuhkan iterasi untuk melakukan inisialisai array serta
pada tahap terakhir yang dibutuhkan untuk menggabungkan dua buah array, yang
bahkan dilakukan selama tiga kali. Iterasi-iterasi ini membutuhkan waktu yang
cukup besar untuk dilakukan.
II.6.3. Proses Enkripsi dan Dekripsi
Algoritma RC6 bekerja dengan empat buah register A,B,C,D yang masingmasing berukuran w-bit, register-register tersebut akan diisi oleh plainteks yang
kemudian akan digunakan selama proses enkripsi dan setelah proses enkripsi
berakhir isi dari register-register tersebut merupakan cipherteks. Byte pertama
dari plainteks atau cipherteks akan disimpan pada least significant byte dari A dan
byte terakhir dari plainteks atau cipherteks disimpan pada most significant byte
dari D. Proses enkripsi dan dekripsi algoritma RC6 menggunakan enam buah
operasi dasar :
a. a + b = penjumlahan integer modulo 2w
b. a - b = pengurangan integer modulo 2w
c. a ⊕ b = operasi bitwise exclusive-or sebesar w-bit words
d. a * b = perkalian integer modulo 2w
e. a<<<b = rotasi sejumlah w-bit word ke kiri sebanyak jumlah yang diberikan
oleh least sifnificant lg w bit dari b
30
f. a>>>b = rotasi sejumlah w-bit word ke kanan sebanyak jumlah yang diberikan
oleh least sifnificant lg w bit dari b.
Di mana lg w adalah logaritma basis dua dari w. Proses enkripsi dapat
dilihat pada :
Prosedure Enkripsi ( Input : Plainteks dalam A,B,C,D )
r : integer (jumlah rotasi)
S[0..2r+3] : kunci internal
Output :
Cipherteks dalam A,B,C,D)
Kamus
u : integer
t : integer
Algoritma
B
B + S[0]
D
D + S[1]
for i
1 to r do
t
(B * (2B + 1))<<<lg w
u
(D * (2D + 1))<<<lg w
A
((A ⊕ t)<<<u) + S[2i]
C
((C ⊕ u)<<<t) + S[2i+ 1]
(A,B,C,D) (B,C,D,A)
endfor
A
A + S[2r + 2]
C
C + S[2r + 3]
Proses dekripsi dapat dilihat berikut ini :
31
Prosedure Dekripsi ( Input : Cipherteks dalam A,B,C,D )
r : integer (jumlah rotasi)
S[0..2r+3] : kunci internal
Output :
Plainteks dalam A,B,C,D)
Kamus
u : integer
t : integer
Algoritma
C
C - S[2r + 3]
A
A - S[2r + 2]
for i r downto 1 do
(A,B,C,D)
(D,A,B,C)
u
(D * (2D + 1))<<<lg w
t
(B * (2B + 1))<<<lg w
C
((C - S[2i+ 1])>>>t) ⊕ u
A
((A - S[2i])>>>u) ⊕ t
endfor
D
D - S[1]
B
B - S[0]
Langkah-langkah enkripsi algoritma RC6 secara detil adalah sebagai
berikut :
1. Blok plainteks dibagi menjadi 4 bagian A, B, C dan D yang masing-masing
memiliki panjang w bit atau panjang blok dibagi 4. Kemudian B dan D
dijumlahkan (dalam modulo 2w) dengan kunci internal S[0] dan S[1].
B
B + S[0]
D
D + S[1]
32
2. Selanjutnya pada setiap putaran dari 1 sampai r, lakukan XOR dan pergeseran
ke kiri terhadap A dengan f(x) yang di geser ke kiri sebanyak lg w, di mana
f(x) = x* (2x+1) dan x = B. Setelah itu melakukan penjumlahan (dalam
modulo 2w) dengan kunci internal. Hal serupa dilakukan pula terhadap C
dengan x = D. Kemudian melakukan swapping A B, B C, C
for i
D dan D A
1 to r do
t (B * (2B + 1))<<<lg w
u (D * (2D + 1))<<<lg w
A ((A ⊕ t)<<<u) + S[2i]
C ((C ⊕ u)<<<t) + S[2i+ 1]
(A,B,C,D) = (B,C,D,A)
Endfor
Fungsi f(x) = x * (2x+1) memiliki keistimewaan dalam diterapkan pada
iterated cipher, kesitimewaannya adalah fungsi ini memiliki sifat satu ke satu
w
pada aritmatik modulo 2 dan cenderung merubah bit yang high-. Sifat satu
arah tersebut dapat terlihat sebagai berikut :
Misalkan A dan B adalah bilangan bulat positif dan A B,
jika A * (2A + 1)
w
B * (2B + 1) (mod 2 ), maka:
2
2
2A +A = 2B + B (mod 2 w)
2
2
2A – 2B + A – B = 0 (mod 2 w)
w
(A - B) (2A + 2B + 1) = 0 (mod 2 )
Namun, A B, jadi (A - B) 0 kemudian, 2A dan 2B merupakan genap sehingga
33
(2A + 2B + 1) merupakan bilangan ganjil dan tidak mungkin nol, maka tidak
w
ada A dan B yang memenuhi A* (2A + 1) = B * (2B + 1) (mod 2 ) atau f(x)
w
bersifat satu ke satu pada modulo 2 . Sifat satu ke satu ini cenderung berbeda
pada bit yang high-order atau menuju MSB, hal ini dikarenakan fungsi f(x) =
x * (2x + 1) merupakan fungsi kuadratik dimana pada perkalian dua buah
bilangan akan cenderung menambah digit didepan. Apabila x pada f(x) yang
terdiri dari i bit mengalami perubahan bit pada posisi ke j maka f(x) akan
berubah pada bit posisi ke j dan cenderung pada posisi > j. Dengan sifat satu
ke satu pada fungsi f(x) tersebut, maka kemungkinan hasil f(x) yang berulang
dalam iterasi-iterasi yang terjadi akan sangat kecil, sehingga semakin banyak
jumlah iterasi, maka keamanan akan semakin terjaga, hal ini diperkuat dengan
kemungkinan perubahan yang terjadi pada high-order bit sehingga pengaruh
perbuatan lebih besar. Jika tidak terdapat sifat satu ke satu tersebut, algoritma
enkripsi akan menjadi tidak baik, karena pada algoritma ini terdapat XOR dan
apabila suatu bilangan di XOR-kan 2 kali maka bilangan tersebut akan muncul
kembali.
3. Setelah iterasi selesai langkah terakhir adalah melakukan penjumlahan (dalam
w
modulo 2 ) terhadap A dan C dengan dua kunci internal terakhir. Setelah
semua selesai blok yang terbagi menjadi 4 bagian disatukan kembali.
A
A + S[2r + 2]
C
C + S[2r + 3]
Algoritma RC6 termasuk kedalam iterated cipher, kekuatan utama
algoritma ini terletak pada iterasi yang dilakukannya. Dengan dilakukannya iterasi
34
yang berulang ulang dengan menggunakan kunci yang berbeda-beda, maka
prinsip confusion dan diffusion dilakukan secara berulang-ulang pula, sehingga
keamanan akan semakin baik.
Serangan yang paling baik untuk memecahkan algoritma RC6 adalah
serangan dengan menggunakan exhaustive search yang ditujukan kepada kunci
yang dimasukkan oleh pengguna atau kunci internal. Untuk serangan yang lebih
rumit seperti kriptanalisis differensial dan linier, dapat digunakan untuk
memecahkan algoritma RC6 yang menggunakan jumlah rotasi yang kecil, untuk
jumlah rotasi 20 keatas, serangan ini tidak dapat bekerja dengan baik karena
sulitnya menemukan karakteristik iteratif yang baik atau perkiraan linier.
II.7. Sekilas Tentang Bahasa Pemrograman Java
Java menurut definisi dari Sun adalah nama untuk sekumpulan teknologi
untuk membuat dan menjalankan perangkat lunak pada komputer standalone
ataupun pada lingkungan jaringan Java2 adalah generasi kedua dari java platform
(generasi awalnya adalah JDK atau Java Development Kit). Java inilah yang
berdiri diatas mesin interpreter yang diberi nama Java Virtual Machine (JVM).
JVM inilah yang akan membaca bytecode dalam file .class dari suatu program
sebagai representasi langsung program yang berisi bahasa mesin. Oleh karena itu
bahasa java disebut juga sebagai bahasa pemrograman yang portable karena dapat
dijalankan sebagai sistem operasi, asalkan pada sistem operasi tersebut terdapat
JVM.
35
Sun Microsystems telah mendefinisikan tiga platform java yang masing –
masing diarahkan untuk tujuan tertentu dan untuk lingkungan komputasi yang
berbeda – beda :
a. Java Standard Edition (J2SE), adalah inti dari bahasa pemrograman java. JDK
adalah salah satu tool dari J2SE untuk mengkompilasi program java pada JRE.
b. Java Enterprise Edition(J2EE), dengan built-in mendukung untuk servlets,
JSP, dan XML, edisi ini ditujukan untuk aplikasi berbasis server.
c. Java Micro Edition(J2ME), didesain untuk meletakkan perangkat lunak java
pada barang elektronik beserta perangkat pendukungnya.
Teknologi Java mencangkup 2 elemen penting yaitu bahasa pemrograman
(programming language) dan lingkungan aplikasi (application environment). Java
sebagai bahasa pemrograman dapat diartikan bahwa java sebanding dengan
bahasa pemrograman seperti C++, Pascal, Visual Basic, dan lainya, sedangkan
Java sebagai lingkungan aplikasi berarti bahwa java dapat berjalan pada berbagai
lingkungan seperti browser (Applets), server (servlets dan JSP) dan pada mobile
device (midlet dan WAP).
Java dalam hal ini mengungguli bahasa lainnya yang pernah ada jika
dilihat dari sisi teknologi mobile. Hal ini dibuktikan dengan banyaknya jenis
telepon genggam yang menggunakan java sebagai fitur utamanya. Microsoft.NET
mobile pun kelihatannya belum dapat menyaingi keunggulan Java dalam bidang
aplikasi mobile. Perlu diketahui bahwa Microsoft hanya mengandalkan solusi
WAP yang mengembangkan ASP.NET untuk kebutuhan mobile device,
sedangkan Java memiliki 2 solusi yaitu WAP dan MIDP (Mobile Information
36
Device Profile). Solusi pertama adalah dengan mengandalkan J2EE (Java 2
Enterprise Edition) dengan produknya yang bernama JSP (Java Server Pages)
dan Java Servlets. JSP dan Servlets ini digunakan untuk membentuk halaman
WAP. Solusi kedua dengan menggunakan J2ME (Java 2 Micro Edition) MIDP
dengan produknya yang bernama Midlets. Midlets inilah yang menjadi fitur
andalan oleh beberapa jenis telepon genggam terbaru.
Teknologi WAP yang dikembangkan oleh WAP forum dapat diaplikasikan
pada telepon genggam kita karena tidak membutuhkan memory yang banyak,
tidak membutuhkan CPU yang kuat dan bisa berjalan dilayar telepon genggam
yang kecil. Pembuatan halaman WAP mirip seperti adalah pembuatan halaman
web yang diakses lewat browser. Pada WAP bahasa utamanya adalah WML dan
WML script sedangkan pada web bahasa utamanya adalah HTML dan Javascript.
Tetapi belum lama ini telah dikembangkan sebuah bahasa baru dengan nama
XHTML (Extensible Hypertext Markup Language). XHTML ini dapat digunakan
untuk membuat halaman WAP dan juga halaman web.
II.7.1. J2ME (Java 2 Micro Edition)
Java Micro Editon atau yang biasa disebut J2ME adalah bagian dari J2SE,
karena itu banyak pustaka yang ada pada J2SE dapat digunakan pada J2ME.
Tetapi J2ME mempunyai beberapa pustaka khusus yang tidak dimiliki J2SE.
Kelahiran platform J2ME timbul karena dibutuhkan adanya sebuah
platform komputasi yang mengakomodasi piranti komputer elektronik dan
embedded. Piranti ini dikelompokkan menjadi dua kategori, yaitu :
37
a. Personal, piranti mobile yang dapat digunakan untuk komunikasi melalui
jaringan tertentu misalkan ponsel, Personal Digital Assistant (PDA), Palm,
Pocket PC dan organizer.
b. Piranti informasi yang digunakan bersama dengan jaringan tetap, koneksi
jaringan yang tidak putus-putus misalnya TV, internet dan sistem navigasi.
Kategori pertama mengarahkan piranti untuk tujuan khusus atau fungsifungsi tertentu yang terbatas dan tidak digunakan untuk mesin komputasi yang
serba guna. Kategori kedua diarahkan untuk piranti yang mempunyai kapabilitas
yang lebih besar dengan fasilitas user interface yang lebih baik, kemampuan
komputasi yang lebih besar.
Salah satu kelebihan Java yang paling signifikan adalah run everywhere.
Dengan kelebihan ini, para pengembang yang sudah terbiasa mengembangkan
aplikasi dalam bingkai kerja J2ME dan J2EE akan mampu bermigrasi dengan
mudah untuk mengembangkan aplikasi J2ME. Selain itu, Java juga merupakan
platform yang memiliki banyak keunggulan lain, keunggulan Java secara umum
adalah :
1. Multiplatform, aplikasi J2ME bisa berjalan diatas banyak platform yang
didalamnya terdapat JVM. Beberapa platform yang tersedia didalamnya
terdapat JVM antara lain Windows CR, Symbian, Embedded Linux dan
sebagainya.
2. Robust, kode – kode Java adalah kode - kode robust, karena virtual machine
mengatur keamanan proses eksekusi aplikasi. Java virtual machine
menyediakan garbage collector yang berfungsi mencegah kebocoran memory.
38
3. Terintegrasi dengan baik, J2ME bisa terhubung dengan back-end J2EE server
dan web services dengan mudah, karena menyediakan pustaka – pustaka API
RMI dan web services.
4. Berorientasi obyek, Java merupakan salah satu bahasa pemrograman yang
murni berorientasi obyek. Hal ini mempermudah dan mempercepat
pengembangan sistem yang dikembangkan dengan metode analisa dan desain
berorientasi obyek.
Banyaknya jenis dan tipe piranti mobile membuat sulit pencapaian standar
kinerja dan portabilitas. Meskipun J2ME merupakan konsep run everywhere
pengembang J2ME menspesifikasikan beberapa arsitektur yang terbagi atas
konfigurasi, profil, dan paket opsi (optional package). Tujuan dari spesifikasi
J2ME itu demi mencapai kinerja dengan memanfaatkan kelebihan piranti
sekaligus mencapai portabilitas.
Konfigurasi adalah virtual machine yang menyediakan beberapa pustaka
kelas. Konfigurasi menyediakan fungsi dasar dengan karakteristik yang sama.
Contohnya fungsi koneksi jaringan dan manajemen memory. Sementara itu,
profile menyediakan lingkungan pustaka API untuk membangun aplikasi mobile.
Paket opsi dibuat untuk menyediakan fungsi-fungsi pada piranti mobile yang lebih
spesifik.
Contohnya piranti yang memiliki akses Bluetooth merupakan API
Bluetooth adalah :
39
1. Connected Limited Device Configuration (CLDC), bertujuan untuk didesain
untuk piranti mobile yang kecil dengan 160-512 KB memory, prosessor 16-32
bit. Profil dasar yang berjalan diatas CLDC adalah MIDP.
2. Connected Device Configuration (CDC) adalah konfigurasi high-end yang
membutuhkan memory minimum 2MB dan prosesor 32 bit. Profil dasar yang
berjalan diatas CDC adalah foundation profile(FP). (Utomo Budiyanto, Jurnal
Telematika Mkom : 2011 )
Tabel II.1. Arsitektur J2ME
Sumber : Yusni Nyura, Jurnal Informatika Mulawarman : 2010
Konfigurasi merupakan bagian yang berisi JVM dan beberapa library
kelas lainnya. Terdapat dua buah konfigurasi yang disediakan oleh Sun
Microsystems, yaitu CLDC (Connected Limited Device Configuration) dan CDC
(ConnectedDevice Configuration). CLDC adalah perangkat dasar dari J2ME,
spesifikasi dasar yang berupa library dan API yang diimplementasikan pada
40
J2ME, seperti yang digunakan pada telepon seluler, pager dan PDA. CDC adalah
spesifikasi dari konfigurasi J2ME. CDC merupakan komunitas proses pada JAVA
yang memiliki standardisasi. CDC terdiri dari virtual machine dan kumpulan
library dasar untuk dipergunakan pada profile industri.
Perbandingan antara CLDC dan CDC dapat dilihat pada tabel di bawah
ini :
Tabel II.2. Perbandingan antara CLDC dan CDC
Sumber : Yusni Nyura, Jurnal Informatika Mulawarman : 2010
MIDlet adalah aplikasi yang ditulis untuk MIDP. Aplikasi MIDlet adalah
bagian dari kelas javax.microedition.midlet. MIDlet yang didefinisikan pada
MIDP. MIDlet berupa kelas abstrak yang merupakan sub kelas dari bentuk dasar
aplikasi sehingga antar muka antar aplikasi J2ME dan aplikasi manajemen pada
perangkat dapat terbentuk.
MIDlet terdiri dari beberapa metode yang harus ada, yaitu Constructor,
protected void startApp ( ) throws MIDletStateChangeException, protectedvoid
pauseApp ( ), protected void destroyApp(boolean unconditional) throws MIDlet
41
StateChange Exception. Ketika MIDlet dijalankan maka akan diinisialisasi dengan
kondisi pause dan dijalankan pauseApp ( ). Kondisi berikutnya adalah fungsi
MIDlet dijalankan, yaitu pada startApp (). Metode yang ada tersebut
diimplementasikan sebagai protected, hal ini dimaksudkan agar MIDlet lain tidak
dapat memanggil metode tersebut. Pada saat pemakai keluar dari MIDlet, maka
metode destroyApp ( ) akan dijalankan sebelum MIDlet benar-benar tidak berjalan
lagi. Metode notifyDestroyed ( ) akan dipanggil sebelum MIDlet benar-benar tidak
berjalan lagi,
destroyApp () akan memanggil
notifyDestroyed
() dan
notifyDestroyed () akan memberitahu platform untuk menterminasi MIDlet dan
membersihkan semua sumber daya yang mengacu pada MIDlet. Dalam
implementasinya, MIDlet memiliki struktur direktori sebagai berikut:
1. Src, menyimpan source code untuk MIDlet dan kelas lain yang diperlukan.
2. Res, menyimpan sumber daya yang dibutuhkan oleh MIDlet, seperti misalnya
gambar icon.
3. Lib, menyimpan file JAR atau ZIP yang berisi library tambahan yang
dibutuhkan MIDlet.
4. Bin, menyimpan file JAR, JAD dan file manifest yang berisi muatan
komponen MIDlet. (Yusni Nyura, Jurnal Informatika Mulawarman : 2010)
Untuk memudahkan penulis mengetikan program Java maka penulis
menggunakan JCreator. JCreator merupakan perangkat lunak editor untuk Java,
dengan JCreator memudahkan kita dalam mengetik program Java. JCreator
merupakan Interactive Development Environment (IDE) yang powerful untuk
42
teknologi Java yang menyediakan lebih banyak inovasi dari skill coding Anda
daripada semua gabungan IDE biasa.
Tampilan menu utama JCreator dapat dilihat pada gambar II.1. berikut :
Gambar II.3. Menu Utama JCreator
Sumber : http://www.informatika.unsyiah.ac.id/zahnur/DIK020/Modul%20Praktikum%20Pemr%20Berorientasi%20Objek%2001.pdf
Untuk menjalankan program Java yang telah diketikan pada JCreator,
penulis menggunakan Sun Java Wireless Toolkit 2.5.2 for CLDC dan
SjBoyExtreme sebagai emulator-nya. Sun Java WTK (Wireless Toolkit)
merupakan perangkat lunak atau tool emulator menyimulasikan kerja handphone,
sehingga pada waktu membuat program handphone, pemogram tidak perlu
mencoba langsung atau mengkoneksikan ke internet.
43
Berikut ini tampilan menu utama Sun Java Wireless Toolkit 2.5.2 for
CLDC :
Gambar II.4. Menu Utama Sun Java Wireless Toolkit 2.5.2 for CLDC
Sumber : http://docs.oracle.com/javame/dev-tools/wtk-cldc-2.5.201/UserGuide.pdf
Aplikasi akan diuji dengan menggunakan emulator Sun Java(TM)
Wireless Toolkit 2.5.2 for CLDC dan SjBoyExtreme for MIDP. Hal ini bertujuan
untuk memperoleh data-data yang akurat mengenai aplikasi baik pada tahap
pengkodean maupun uji coba sebelum digunakan pada telepon genggam yang
sebenarnya.
44
Gambar II.5. Emulator +5550000
Sumber : http://docs.oracle.com/javame/dev-tools/wtk-cldc-2.5.201/UserGuide.pdf
II.7.2. Symbian OS
Symbian OS pada intinya terdapat lapisan dasar (microkernel dan device
driver), lapisan middleware (sistem server, keamanan, framework aplikasi) dan
lapisan komunikasi (telepon, pesan, dan personal area networking). Tiga bagian
lapisan utama yaitu sebagai berikut :
1. Lapisan Dasar
Lapisan Dasar (Base Layer) merupakan lapisan paling dasar dalam
struktur sistem operasi Symbian OS. Bagian ini terdiri atas Mikrokernel,
45
Device Driver dan Pustaka Pengguna (user library). Mikrokernel berhubungan
langsung dengan processor dan bertanggung jawab pada manajemen daya dan
memori. Device Driver adalah antarmuka antara perangkat keras dan
perangkat lunak yang dibutuhkan untuk mengakses berbagai keperluan
misalnya yang berhubungan dengan gambar dan suara serta menangani jalur
komunikasi. Pustaka Pengguna menyediakan bermacam fungsionalitas seperti
penanganan kesalahan (error handling), manajemen memori yang digunakan
oleh program, serta menangani bermacam proses dan interupsi (interupt).
2. Lapisan Perangkat Tengah
Middleware terdiri dari sistem server, sistem keamanan dan framework
aplikasi. Sistem server menyediakan fungsi untuk manajemen window. Sistem
keamanan menyediakan pustaka keamanan dasar seperti enkripsi data.
Framework aplikasi adalah sekumpulan pustaka yang digunakan untuk
menangani tampilan antar muka user, proses starting suatu aplikasi dan grafis.
3. Lapisan Komunikasi
Lapisan Komunikasi (Communication Layer) terdiri dari Platform
Telepon (telephony) dan sistem pesan (messaging system). Lapisan ini
menyediakan arsitektur dan protokol untuk melakukan komunikasi baik
berupa suara maupun data, misalkan untuk penanganan panggilan telepon,
pengiriman pesan teks, email dan konektivitas ke Internet. (M. Dani Budiman
: 2007)
Sama seperti Microsoft Windows sebagai sistem operasi yang paling
banyak digunakan untuk komputer, demikian juga dengan Symbian yang
46
merupakan sistem operasi yang paling banyak digunakan untuk ponsel. Sampai
saat ini versi Symbian yang terbaru adalah Symbian OS v8.0s, dan sedang
dikembangkan Symbian OS v9.0s. Sedangkan ponsel yang paling banyak beredar
saat ini adalah Symbian OS v6.1s dan v7.0s.
Pada developer platform pada Seri 60, Nokia membedakan ponsel-ponsel
Symbian seri 60-nya menjadi 2 macam platform, yaitu:
1. Platform 1.x :
a. Seri 60 Platform 0.9 – Symbian versi 6.1, seperti: Nokia 7650.
b. Seri 60 Platform 1.0 – Symbian versi 6.1, seperti: Nokia 3650, Nokia
3600.
c. Seri 60 Platform 1.2 – Symbian versi 6.1, seperti: Nokia 3660, Nokia NGage.
2. Platform 2.x :
a. Seri 60 Platform 2.0 – Symbian versi 7.0s, seperti : Nokia 6600
b. Seri 60 Platform 2.1 (dengan Feature Pack 1) – Symbian versi 7.0s, seperti
: Nokia 6620, Nokia 7610, Nokia 6260. (Lintang Y. Banowosari : 2007)
II.8. Alat Bantu Perancangan Sistem
Adapun alat bantu yang digunakan dalam perancangan atau pembangunan
sistem yang digunakan dalam penelitian umumnya berupa gambaran atau diagram
yang tertera dan dijelaskan di bawah ini.
47
II.8.1. Unified Modelling Language (UML)
Unified Modelling Language (UML) adalah sebuah “bahasa” yang telah
menjadi standar dalam industri untuk visualisasi, piranti lunak. UML menawarkan
sebuah standar untuk merancang model sebuah sistem. Dengan menggunakan
UML dapat dibuat model untuk semua jenis aplikasi piranti lunak, dimana
aplikasi tersebut dapat berjalan pada piranti keras, sistem operasi dan jaringan
apapun, serta ditulis dalam bahasa pemrograman apapun. Tetapi karena UML juga
menggunakan class dan operation dalam konsep dasarnya, maka lebih cocok
untuk penulisan piranti lunak dalam bahasa berorientasi objek seperti C++, Java,
atau VB. NET ( Prastuti Sulistyorini : 2009).
Use Case adalah deskripsi dari sebuah sistem dari perspektif pengguna.
Use Case bekerja dengan cara mendeskripsikan tipikal interaksi antar user
(pengguna) sebuah sistem dengan sistemnya sendiri melalui sebuah cerita
bagaimana sebuah sistem dipakai”. Use Case Diagram menggambarkan
fungsionalitas yang diharapkan dari sebuah sistem. Yang ditekankan adalah “apa”
yang diperbuat sistem, dan bukan “bagaimana”.
Sebuah Use Case merepresentasikan sebuah interaksi antara aktor dengan
sistem. Use Case merupakan sebuah pekerjaan tertentu, misalnya login ke sistem,
meng-create sebuah daftar belanja, dan sebagainya. Seorang/sebuah aktor adalah
sebuah entitas manusia atau mesin yang berinteraksi dengan sistem untuk
melakukan pekerjaan-pekerjaan tertentu. Use Case Diagram dapat sangat
membantu
apabila
kita
sedang
menyusun
requirement
sebuah
sistem,
48
mengkomunikasikan rancangan dengan client, dan merancang test case untuk
semua feature yang ada pada system.
Untuk menggambarkan analisa dan desain diagram, UML memiliki
seperangkat notasi yang akan digunakan ke dalam tiga kategori diatas yaitu
struktur diagram, behaviour diagram dan interaction diagram. Berikut beberapa
notasi dalam UML diantaranya :
1. Actor, menentukan peran yang dimainkan oleh user atau sistem lain yang
berinteraksi dengan subjek. Actor adalah segala sesuatu yang berinteraksi
langsung dengan sistem aplikasi komputer, seperti orang, benda atau lainnya.
Tugas actor adalah memberikan informasi kepada sistem dan dapat
memerintahkan sistem untuk melakukan sesuatu tugas.
Gambar II.4. Notasi Actor
Sumber : Haviluddin, Jurnal Informatika Mulawarman, 2011
2. Class diagram, notasi utama dan yang paling mendasar pada diagram UML
adalah notasi untuk mempresentasikan suatu class beserta dengan atribut dan
operasinya. Class adalah pembentuk utama dari sistem berorientasi objek.
Gambar II.5. Notasi Class
(Sumber : Haviluddin, Jurnal Informatika Mulawarman, 2011)
49
3. Use Case dan use case specification, use case adalah deskripsi fungsi dari
sebuah sistem perspektif pengguna. Use case bekerja dengan cara
mendeskripsikan tipikal interaksi antara user (pengguna) sebuah sistem
dengan sistemnya sendiri melalui sebuah cerita bagaimana sebuah sistem
dipakai. Urutan langkah-langkah yang menerangkan antara pengguna dan
sistem disebut skenario. Use case merupakan awal yang sangat baik untuk
setiap fase pengembangan berbasis objek, design, testing, dan dokumentasi
yang menggambarkan kebutuhan sistem dari sudut pandang di luar sistem.
Perlu diingat bahwa use case hanya menetapkan apa yang seharusnya
dikerjakan oleh sistem, yaitu kebutuhan fungsional sistem dan tidak untuk
menentukan kebutuhan non-fungsional, misalnya: sasaran kinerja, bahasa
pemrograman dan lain sebagainya.
Gambar II.6. Notasi Use Case
Sumber : Haviluddin, Jurnal Informatika Mulawarman, 2011
4. Realization, menunjukkan hubungan bahwa elemen yang ada di bagian tanpa
panah akan merealisasikan apa yang dinyatakan oleh elemen yang ada di
bagian dengan panah.
Gambar II.7. Notasi Relaization
Sumber : Haviluddin, Jurnal Informatika Mulawarman, 2011
50
5. Interaction, digunakan untuk menunjukkan baik aliran pesan atau informasi
antar obyek maupun hubungan antar obyek.
Gambar II.8. Notasi Interaction
Sumber : Haviluddin, Jurnal Informatika Mulawarman, 2011
6. Dependency, merupakan relasi yang menunjukan bahwa perubahan pada salah
satu elemen memberi pengaruh pada elemen lain. Terdapat 2 stereotype dari
dependency, yaitu include dan extend. Include menunjukkan bahwa suatu
bagian dari elemen (yang ada digaris tanpa panah) memicu eksekusi bagian
dari elemen lain (yang ada di garis dengan panah). Extend menunjukkan
bahwa suatu bagian dari elemen di garis tanpa panah bisa disisipkan ke dalam
elemen yang ada di garis dengan panah.
Gambar II.9. Notasi Dependancy
Sumber : Haviluddin, Jurnal Informatika Mulawarman, 2011
7. Note, digunakan untuk memberikan keterangan atau komentar tambahan dari
suatu elemen sehingga bisa langsung terlampir dalam model. Note ini bisa
disertakan ke semua elemen notasi yang lain.
51
Gambar II.10. Notasi Interaction
Sumber : Haviluddin, Jurnal Informatika Mulawarman, 2011
8. Association, menggambarkan navigasi antar class (navigation), berapa banyak
obyek lain yang bisa berhubungan dengan satu obyek (multiplicity antar class)
dan apakah suatu class menjadi bagian dari class lainnya (aggregation).
Gambar II.11. Notasi Association
Sumber : Haviluddin, Jurnal Informatika Mulawarman, 2011
9. Generalization, menunjukkan hubungan antara elemen yang lebih umum ke
elemen yang lebih spesifik.
Gambar II.12. Notasi Generalization
Sumber : Haviluddin, Jurnal Informatika Mulawarman, 2011
52
10. Package, adalah mekanisme pengelompokkan yang dgunakan untuk
menandakan pengelompokkan elemen-elemen model.
Gambar II.13. Notasi Package
Sumber : Haviluddin, Jurnal Informatika Mulawarman, 2011
11. Interface, merupakan kumpulan operasi berupa implementasi dari suatu class.
Atau dengan kata lain implementasi operasi dalam interface dijabarkan oleh
operasi di dalam class.
Gambar II.14. Notasi Interface
Sumber : Haviluddin, Jurnal Informatika Mulawarman, 2011
II.8.2. Activity Diagram
Activity Diagram adalah teknik untuk mendiskripsikan logika prosedural,
proses bisnis dan aliran kerja dalam banyak kasus. Activity Diagram mempunyai
peran seperti halnya flowchart, akan tetapi perbedaannya dengan flowchart adalah
activity diagram bisa mendukung perilaku paralel sedangkan flowchart tidak bisa
(Prastuti Sulistyorini : 2009).
Berikut adalah simbol-simbol yang sering digunakan pada saat pembuatan
activity diagram yaitu :
53
Gambar II.15. Simbol Activity Diagram
Sumber : http://kk.mercubuana.ac.id/files/15024-5-600173869778.pdf
Download