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