BAB 2 LANDASAN TEORI
2.1 CRM 2.1.1
Pengertian CRM Definisi dari CRM (Customer Relationship Management) adalah proses dari beberapa tahapan yang terdiri dari identifikasi, akuisisi, retensi dan pengembangan customer yang memberikan kontribusi yang besar kepada perusahaan dengan cara memfokuskan strateginya yaitu dengan cara menjaga hubungan dengan customer secara efektif dan efisien sehingga hubungan tersebut menjadi hubungan seumur hidup (“lifetime”) yang menguntungkan. (www.ciptamaya.com, 2005) Menurut Kalakota dan Robinson (2001, p172), CRM didefinisikan sebagai integrasi dari penjualan, pemasaran dan strategi pelayanan yang membantu perusahaan agar lebih baik dalam menangani hubungan dengan pelanggan dengan melakukan interaksi dengan mereka dalam berbagai cara. Menurut Danardatu (2003, p2), CRM dalam perkembangannya juga bisa didefinisikan sebagai berikut: 1. CRM adalah sebuah istilah industri TI untuk metodologi, strategi, perangkat lunak (software) dan atau aplikasi berbasis web lainnya yang mampu membantu sebuah perusahaan (enterprise, kalau besar ukurannya) untuk mengelola hubungannya dengan para pelanggan.
7
8 2. CRM adalah usaha sebuah perusahaan untuk berkonsentrasi menjaga pelanggan (supaya tidak lari ke pesaing) dengan mengumpulkan segala bentuk interaksi pelanggan baik itu lewat telepon, email, masukan di situs atau hasil pembicaraan dengan staf sales dan marketing. 3. CRM adalah sebuah strategi bisnis menyeluruh dari suatu perusahaan yang memungkinkan perusahaan tersebut secara efektif bisa mengelola hubungan dengan para pelanggan. 2.1.2
Tujuan dari CRM CRM sendiri menurut Kalakota dan Robinson (2001, p173) memiliki tujuan-tujuan sebagai berikut: 1. Menggunakan hubungan yang sudah ada untuk meningkatkan pendapatan. Hal ini berarti mempersiapkan pandangan yang komprehensif dari pelanggan
untuk
memaksimalkan
hubungan
mereka
dengan
perusahaan baik melalui up-selling atau cross-selling dan pada saat yang sama, meningkatkan profit dengan identifikasi, menarik perhatian, dan mempertahankan pelanggan terbaik. 2. Menggunakan informasi yang terintegrasi untuk pelayanan yang memuaskan. Dengan menggunakan informasi dari pelanggan untuk meningkatkan pelayanan yang lebih baik berdasarkan kebutuhan mereka, perusahaan dapat menghemat waktu pelanggan dan menyingkirkan segala kekecewaan dari pelanggan. Sebagai contoh, pelanggan seharusnya tidak perlu untuk mengulangi informasi yang sama ke berbagai
9 departemen perusahaan secara terus-menerus. Pelanggan akan senang jika pihak perusahaan tahu banyak tentang apa yang mereka inginkan. 3. Menciptakan saluran proses dan prosedur komunikasi yang konsisten dan berulang. Dengan banyaknya saluran komunikasi dengan pelanggan, semakin banyak pula karyawan yang terlibat di dalam transaksi penjualan. Tanpa memperhatikan ukuran atau kompleksitas, perusahaan harus meningkatkan konsistensi proses dan prosedural di dalam pengaturan terhadap pelayanan, pemasaran dan penjualan. 2.1.3
Tahapan dari CRM Menurut Kalakota dan Robinson (2001, p174), ada tiga tahapan yang dilalui oleh perusahaan dalam menerapkan CRM: 1. Acquiring new customers. Perusahaan berusaha untuk mendapatkan pelanggan baru dengan melakukan promosi produk dan pelayanan kepada pelanggan. Dalam hal ini, perusahaan akan berusaha untuk memberikan penawaran terbaik bagi pelanggan. 2. Enhancing the profitability of existing customers. Perusahaan dapat meningkatkan hubungan yang telah terjalin dengan pelanggan antara lain dengan cara melakukan cross-selling dan upselling, yang dapat memperdalam hubungan di antara mereka. Dengan demikian, pelanggan bisa mendapatkan penawaran dengan penggunaan waktu yang sebaik-baiknya dengan biaya rendah (one stop shopping).
10 3. Retaining profitable customers for life. Penting bagi perusahaan bahwa mereka dapat memberikan bukan saja apa yang diinginkan pasar, tetapi apa yang diinginkan oleh pelangan. Dewasa ini, perusahaan maju berfokus pada loyalitas pelanggan lama dibandingkan upaya untuk menarik konsumen baru. Alasan di balik strategi ini sederhana: jika ingin menghasilkan uang, tetaplah selalu pada pelanggan terbaik. 2.1.4
Peranan Teknologi di dalam CRM Untuk mengimplementasikan sebuah strategi CRM, diperlukan paling tidak 3 (tiga) faktor kunci yaitu (1) orang-orang yang profesional (kualifikasi memadai), (2) proses yang didesain dengan baik dan (3) teknologi yang memadai (leading-edge technology). Tenaga yang profesional tidak saja mengerti bagaimana menghadapi pelanggan tetapi juga mengerti cara menggunakan teknologi (untuk CRM). Apapun tanpa desain yang baik akan gagal, begitu juga CRM. Perusahaan pengguna CRM harus sudah mengetahui tujuan (business objectives) dan tuntutan bisnis (business requirements) yang diinginkan dari implementasi CRM ini. (Danardatu, 2003, p3) Demikian juga menurut Kalakota dan Robinson (2001, p173-174), teknologi hanyalah salah satu aspek dari kesuksesan pelaksanaan CRM. Mengimplementasikan CRM juga berarti melakukan desain ulang aturanaturan fungsional, reeengineering proses kerja, memotivasi pekerja di dalam perusahaan unuk mendukung pendekatan yang baru, dan juga mengimplemetansikan teknologi yang dipakai di dalam CRM.
11 Aplikasi CRM juga menjadi tumpuan bagi perusahaan kecil dan skala menengah. Teknologi memungkinkan organisasi ini untuk menikmati kemampuan untuk berhubungan dengan pelanggan, di mana sampai beberapa tahun lalu, hanya perusahaan besar dengan dana besar yang bisa melakukannya. 2.1.5
Jenis-jenis Aplikasi CRM CRM diimplementasikan oleh aplikasi yang menerapkan tiga proses, yaitu penjualan, pemasaran dan pelayanan, dan banyak proses bisnis lain yang juga mendukungnya. Aplikasi-aplikasi itu secara umum dapat terbagi menjadi: 1. Customer Facing Application Aplikasi Customer-facing CRM menyangkut contact center, sales force automation dan field service. Disebut sebagai customer-facing karena perwakilan penjualan, servis lapangan, dan contact center biasanya berinteraksi dengan pelanggan secara langsung. 2. Customer Touching Application Kunci dari customer-touching CRM applications adalah campaign management, e-commerce dan self-service customer support. Disebut sebagai customer-touching karena pelanggan berinteraksi secara langsung dengan aplikasi dibandingkan dengan berinteraksi terhadap perwakilan dari perusahaan. Contoh dari layanan ini adalah layanan informasi melalui web.
12 3. Customer Centric Intelligence Application Customer-centric
intelligence
applications
merupakan
analytic
applications yang menganalisis hasil dari pemrosesan secara operasional. Hasilnya bisa digunakan untuk meningkatkan efisiensi dan efektivitas operasional dari aplikasi CRM. Fungsi-fungsi yang didukung antara lain adalah datawarehousing, reporting, dan analytic applications. Dalam proses kerjanya, CRM harus mendukung semua touchpoints yang dibutuhkan dalam berinteraksi dengan pelanggan. Touchpoints sendiri dapat meliputi: telepon, face-to-face, web site dan sebagainya. Dalam kaitannya dengan aplikasi CRM, maka terdapat berbagai jenis customer-touching applications yang menggunakan berbagai jenis touchpoints: 1. Campaign Management Application Campaign management applications melakukan otomatisasi terhadap kampanye pemasaran. Perusahaan menawarkan penawaran tehadap target, prospektus dan pelanggan yang diinginkan, sesuai jadwal maupun sebagai respon atas event bisnis melalui direct mail, email, contact center, field sales dan web touchpoints. Idealnya, aplikasiaplikasi ini hendaknya dapat merekam respon terhadap penawaran. 2. E-commerce Application Electronic commerce applications mengimplementasikan pemasaran, penjualan, dan fungsi servis melalui online touchpoints, yang biasanya
13 lewat web. Aplikasi ini membuat penjual memasarkan produknya lewat katalog online dan mengasosiasikan web content. Pelanggan dapat berbelanja untuk produk melalui metafora virtual shopping cart. Pelanggan dapat juga melakukan self-service support tasks seperti mengetahui status pemesanan, sejarah transaksi, proses pengembalian dan manajemen informasi pelanggan. 3. Self-Service Customer Support. Self-service customer support applications membuat pelanggan dapat memenuhi kebutuhannya sendiri dalam mendapatkan informasi yang mereka inginkan melalui permintaan layanan informasi. Dari sana, pelanggan dapat mengetahui informasi tentang diri mereka sendiri, membuat permintaan layanan ataupun mengatur order yang dimiliki. (Seybold, 2005, pp 3-7)
2.2 Teknologi Seluler Telah banyak menjadi pembicaraan saat ini bahwa telah terjadi revolusi dalam perkembangan teknologi informasi. Bahkan dikatakan pada saat ini telah terjadi evolusi teknologi informasi seiring dengan berkembang pesatnya teknologi dan layanan komunikasi bergerak di dunia (mobile evolutions). Hal ini ditunjukkan dengan terus bertambahnya ribuan subscriber baru ke dalam jaringan wireless di dunia. Para ahli, pengembang aplikasi, dan pelaku bisnis utama di bidang ini kemudian membentuk forum studi dan diskusi untuk merumuskan standar teknologi jaringan dan aplikasi yang mendukung perkembangan teknologi ini.
14 2.2.1
Sejarah Jaringan Telepon Seluler Sejarah perkembangan teknologi jaringan wireless hingga saat ini dibagi menjadi 3 generasi yang masing-masing disebut generasi-1 (1G), generasi-2 (2G) dan generasi-3 (3G). Generasi-1 dimulai pada akhir tahun 1970-an di Amerika (di Eropa pada awal tahun 1980-an). Advanced Mobile Phone Service (AMPS) pertama kali diperkenalkan di New Jersey dan Chicago pada tahun 1978. AMPS merupakan sistem telepon wireless analog yang, untuk ukuran waktu itu, cukup sukses di Amerika. AMPS berhasil memberikan pelayanan telepon bergerak yang dapat menjangkau sebagian besar daratan Amerika Serikat. Namun AMPS masih banyak memiliki kelemahan, yaitu antara lain dalam hal mobilitas pengguna yang sangat terbatas karena belum adanya kemampuan handover yang menyebabkan pembicaraan dari pengguna akan segera terputus apabila dia berada di luar jangkauan area, efisiensi yang sangat kecil karena keterbatasan kapasitas spektrum yang menyebabkan hanya sedikit pengguna saja yang dapat berbicara dalam waktu bersamaan, dan sistem ini tidak dapat dioptimasi lebih lanjut karena keterbatasan kemampuan kompresi dan coding data. Selain dari hal-hal tersebut, sistem ini harus mempergunakan perangkat dan peralatan yang berat dan tidak praktis serta masih sangat mahal untuk ukuran waktu itu. Generasi-1 telepon wireless untuk kawasan Eropa ditandai dengan diluncurkannya paling tidak 9 standar sistem analog di awal tahun 1980-an, seperti Nordic Mobile Telephony (NMT) di Skandinavia, Total Access Communications System (TACS) di Inggris, C450 di Jerman, dll., dimana satu sama lain tidak
15 saling berinterkoneksi. Banyaknya standar jaringan yang muncul menjadikan kemampuan jelajah dari masing-masing jaringan yang sangat terbatas disamping efisiensi dari sistem sendiri yang masih sangat kecil. Generasi-2 (2G) telepon wireless dipelopori dari kawasan Eropa yang diawali pada kebutuhan bersama terhadap satu sistem jaringan baru yang dapat menjadi standar jaringan yang berlaku dan dapat diterapkan di seluruh kawasan Eropa. Dalam sistem baru juga harus terdapat kemampuan yang dapat mengantisipasi mobilitas pengguna serta kemampuan melayani lebih banyak pengguna untuk menampung penambahan jumlah subscriber baru. Karena hal ini tidak dapat dilakukan dengan mempertahankan sistem analog, maka kemudian diputuskan untuk merombak sistem dan menggantinya dengan sistem digital. Standar baru diperkenalkan dengan nama Global Standard for Mobile Communications (GSM). GSM pada awalnya adalah kepanjangan dari Groupe Speciale Mobile, sebuah badan gabungan dari para ahli yang melakukan studi bersama untuk menciptakan standar GSM tersebut. Generasi-2 (2G) di Amerika Serikat ditandai dengan diluncurkannya standar jaringan baru yang juga bersistem digital yang diberi nama Digital AMPS (D-AMPS) (disebut juga TDMA – Time Division Multiple Access). Sistem digital lainnya yang muncul di Amerika adalah IS-95 atau cdma-One, yang merupakan sistem digital yang berbasis teknologi CDMA (Code Division Multiple Access) dan diperkenalkan oleh Qualcomm pada pertengahan 1990-an. Untuk negara-negara di benua Asia, pertama kali mereka mengadopsi sistem telepon wireless digital dengan menerapkan teknologi
16 jaringan GSM. Khusus di negara Jepang, berkembang sistem Personal Digital Cellular (PDC) yang mereka kembangkan sendiri dan hanya berlaku di negeri itu. Jepang sendiri hingga saat ini telah mengembangkan sendiri sistem digital selulernya hingga meninggalkan negara-negara di kawasan
lainnya
ditandai
dengan
kemajuan
layanan
dan
terus
bertambahnya jumlah subscriber di jaringan mereka, namun demikian sistem yang mereka kembangkan tetaplah sistem yang eksklusif dan hanya berlaku di Jepang saja. Diperkenalkannya sistem telepon wireless/seluler digital memberikan beberapa kelebihan, yaitu antara lain suara yang dihasilkan menjadi lebih jernih, efisiensi spektrum/frekuensi yang menjadi meningkat, serta kemampuan optimasi sistem yang ditunjukkan dengan kemampuan kompresi dan coding data digital. Handset yang diperlukan untuk sistem ini juga menjadi sangat simpel, kecil, dan ringan, karena digunakannya chip digital untuk SIM (Subscriber Identification Module). Teknologi chip digital juga memungkinkan penambahan fitur-fitur baru sebagai layanan tambahan, seperti voice mail, call waiting dan short message service (SMS). Teknologi wireless generasi-3 (3G) dikembangkan oleh suatu kelompok yang diakui dan merupakan kumpulan para ahli dan pelaku bisnis yang berkompeten dalam bidang teknologi wireless di dunia. Kesepakatan 3G tertuang dalam International Mobile Telecommunications 2000 (IMT 2000) dan antara lain memutuskan bahwa standar 3G akan bercabang menjadi 3 standar sistem yang akan diberlakukan di dunia, yaitu
17 Enhanced Datarates for GSM Evolution (EDGE), Wideband-CDMA (WCDMA) dan CDMA2000. Teknologi 3G diperkenalkan pada awalnya adalah untuk tujuan sebagai berikut: •
Menambah efisiensi dan kapasitas jaringan.
•
Menambah kemampuan jelajah (roaming).
•
Untuk mencapai kecepatan transfer data yang lebih tinggi.
•
Peningkatan kualitas layanan (Quality of Service – QOS).
•
Mendukung kebutuhan internet bergerak (mobile internet).
(Satriyantono, 2001) 2.2.2
Teknologi SMS Tidak dapat dipungkiri bahwa SMS merupakan salah satu aplikasi yang sangat penting dalam perkembangan teknologi seluler. Aplikasi SMS telah diakui merupakan aplikasi messaging yang paling populer di dunia. Menurut situs Wikipedia (www.wikipedia.org, 2005), hingga pertengahan 2004 terhitung rata-rata terdapat 500 milyar kiriman SMS per tahunnya. SMS telah menjadi lahan yang menjanjikan untuk meraih peluang bisnis di pasar konsumen maupun industri di dunia. Dari jumlah kiriman SMS di dunia 90% masih merupakan kiriman jenis person to person. Namun demikian, SMS sangat potensial untuk dikembangkan menjadi aplikasi berbasis industri dengan berbagai macam layanan, seperti m-commerce, location-based service, periklanan, voting, games, entertainment, dsb.
18 SMS merupakan layanan messaging yang pada umumnya terdapat pada setiap sistem jaringan wireless digital. SMS adalah layanan untuk mengirim dan menerima pesan tertulis (teks) dari maupun kepada perangkat bergerak (mobile device). Pesan teks yang dimaksud tersusun dari huruf, angka atau karakter alfanumerik. Pesan teks dikemas dalam satu paket/frame yang berkapasitas maksimal 160 byte yang dapat direpresentasikan berupa 160 karakter huruf latin atau 70 karakter alfabet non-latin seperti alfabet Arab atau Cina. SMS pada awalnya tidak terhitung sebagai layanan penting dalam jaringan GSM karena SMS dikembangkan terutama sebagai alat pengirim informasi data konfigurasi dari handset GSM dan tidak lebih dari sekedar layanan tambahan daripada sebagai bagian dari protokol jaringan. Penambahan fungsi SMS sebagai alat pengirim pesan singkat dari pengguna ke pengguna lainnya secara tak terduga menjadikannya sebagai layanan messaging paling populer di dunia. Hal ini tentunya memberikan pendapatan ekstra bagi operator jaringan yang akan memperoleh bayaran untuk tiap kiriman SMS melalui jaringannya. Keberhasilan dan popularitas SMS antara lain disebabkan oleh: 1. Harga per kiriman tetap/konstan. Apabila beban biaya telepon bervariasi maka beban biaya kiriman SMS tetap/konstan.
19 2. Keamanan dan kesopanan. Berbicara melalui telepon seluler di tempat umum seringkali dirasakan tidak sopan dan kurang aman, namun sebaliknya berkirim pesan menggunakan SMS adalah lebih sopan dan privacy lebih terjaga. 3. Tidak mengganggu penerima. Seperti halnya e-mail, SMS sebagai alat komunikasi tidak mengganggu penerima, karena penerima bisa memutuskan kemudian kapan dan dimana dia akan menjawab pesan tersebut. 4. Handal (reliable). Jaringan GSM secara umum diakui kehandalannya dalam mengirimkan data, dan SMS mewarisi kehandalan tersebut. Tidak seperti pager, ketika pesan SMS terkirim dan masuk ke gateway dan gateway berhasil mengirimkannya ke nomor tujuan, gateway kemudian mengirim pesan acknowledgement ke pengirim bahwa pesan telah terkirim. 2.2.3
Arsitektur SMS SMS atau Short Message Service pada awal diciptakan adalah bagian dari layanan pada sistem GSM. SMS semula hanyalah merupakan layanan yang bersifat komplementer terhadap dua layanan utama sistem GSM (atau sistem 2G pada umumnya) yaitu layanan voice dan switched data. Namun karena keberhasilan SMS yang tidak terduga, dengan ledakan pelanggan yang mempergunakannya, menjadikan SMS sebagai bagian integral dari layanan sistem. Dalam forum studi dan diskusi dan pembicaraan mengenai standar 3G, SMS (atau disebut layanan messaging) tetap disebut sebagai
20 layanan penting yang diperlukan dan menjadi bagian dari standar 3G. Dalam standar 3G - IMT 2000, tersebut 4 layanan utama 3G, yaitu: 1. Voice Layanan voice tetap merupakan layanan utama 3G, yang diharapkan akan menyamai kualitas layanan voice pada jaringan PSTN. 2. Messaging Layanan messaging SMS pada 3G akan dikembangkan menjadi EMS (Enhanced Messaging Service) yang mampu melakukan e-mail attachment serta merupakan bagian dari layanan Unified Messaging, dan kemudian MMS (Multimedia Messaging Service) yang merupakan messaging dengan kemampuan image attachment. 3. Packet Data Teknologi switched data pada 2G akan ditinggalkan dan diganti menjadi teknologi paket data yang lebih cepat dan efisien. Teknologi paket data ini menjadi dipercaya menjadi teknologi yang akan menjadi pembuka perkembangan internet bergerak (mobile internet). 4. Streaming Multimedia Seiring dengan diperkenalkannya standar 3G mengenai teknologi paket data dan peningkatan efisiensi jaringan, maka kecepatan data (data rate) pada jaringan wireless dapat mencapai 2 Mbps yang akan memungkinkan streaming data multimedia yang akan menjadi bagian dari layanan videoconferencing/videophones dan telepresence.
21 Sebagai bagian dari sistem GSM, SMS adalah layanan yang sebenarnya merupakan bearer sevice atau packet pengirim dari data GSM. Bearer service ini bekerja pada layer fisik yang merupakan layer terbawah dari protokol aplikasi data GSM. SMS adalah data tipe asynchoronous message yang pengiriman datanya dilakukan dengan mekanisme protokol store and forward. Hal ini berarti bahwa pengirim dan penerima SMS tidak perlu berada dalam status berhubungan (connected/online) satu sama lain ketika akan saling bertukar pesan SMS. Pengiriman pesan SMS secara store and forward berarti pengirim pesan SMS menuliskan pesan dan nomor telepon tujuan dan kemudian mengirimkannya (store) ke server SMS
(SMS-Center)
yang
kemudian
bertanggung
jawab
untuk
mengirimkan pesan tersebut (forward) ke nomor telepon tujuan. Keuntungan mekanisme store and forward pada SMS adalah, penerima tidak perlu dalam status online ketika ada pengirim yang bermaksud mengirimkan pesan kepadanya, karena pesan akan dikirim oleh pengirim ke SMSC yang kemudian dapat menunggu untuk meneruskan pesan tersebut ke penerima ketika ia siap dan dalam status online di lain waktu. Ketika pesan SMS telah terkirim dan diterima oleh SMSC, pengirim akan menerima pesan singkat (konfirmasi) bahwa pesan telah terkirim (message sent). Hal-hal inilah yang menjadi kelebihan SMS dan populer sebagai layanan praktis dari sistem telekomunikasi bergerak.
22
Gambar 2.1 Mekanisme store and forward pada pengiriman pesan SMS
Keterbatasan SMS adalah pada ukuran pesan yang dapat dikirimkan, yaitu maksimal sebesar 160 byte. Keterbatasan ini disebabkan karena mekanisme transmisi SMS itu sendiri. SMS pada awalnya adalah layanan yang ditambahkan pada sistem GSM yang digunakan untuk mengirimkan data mengenai konfigurasi dari handset pelanggan GSM. SMS dikirimkan menggunakan signalling frame pada kanal frekuensi atau time slot frame GSM yang biasanya digunakan untuk mengirimkan pesan untuk kontrol dan sinyal setup panggilan telepon, seperti pesan singkat tentang kesibukan jaringan atau pesan CLI (Caller Line indentification). Frame ini bersifat khusus dan ada pada setiap panggilan telepon serta tidak dapat digunakan untuk membawa voice atau data dari pelanggan. Ukuran frame pada sistem GSM sendiri adalah sebesar 1250 bit (kurang lebih sama dengan 160 byte). Karena hanya menggunakan satu frame inilah pengiriman pesan SMS menjadi sangat murah, karena beban biaya hanya dihitung dari penggunaan satu frame melalui kanal frekuensi. Pengiriman SMS menggunakan frame pada kanal frekuensi adalah berarti SMS dikirim oleh pengirim ke nomor telepon tertentu yang bertindak sebagai SMSC (SMS-Center) dan kemudian SMSC bertugas untuk meneruskannya ke penerima. Pengiriman SMS berlangsung cepat karena, SMSC selain terhubung ke LAN aplikasi
23 juga terhubung ke MSC (Mobile Switching Network) melalui SS7 (Signaling System 7) yang merupakan jaringan khusus untuk menangkap frame kontrol dan sinyal. Mekanisme pengiriman pesan singkat SMS yang serupa juga ditemukan dalam sistem jaringan lain seperti TDMA, PDC dan cdmaOne. Beda antara sistem jaringan satu dengan yang lainnya adalah ukuran dari pesan SMS itu sendiri yang bergantung pada ukuran frame yang digunakan pada masing-masing sistem. Pada sistem TDMA dan PDC ukuran pesan SMS sama dengan sistem GSM, yaitu 160 byte, dan pada cdma-One ukuran pesan SMS sebesar 256 byte.
Gambar 2.2 Struktur time slot dan frame pada sistem GSM
(Satriyantono, 2001) 2.2.4
Format PDU dalam Pengiriman dan Penerimaan SMS SMS, seperti yang dispesifikasikan pada dokumen GSM 03.04 dan GSM 03.38, dapat memuat sampai 160 karakter, dimana setiap karakter merupakan 7 bit menurut 7 bit default alphabet (lihat di L1). Pesan 8 bit (maksimal 140 karakter) biasanya tidak dapat dilihat melalui telepon sebagai pesan teks, karena digunakan untuk keperluan khusus, seperti smart messaging (gambar dan ring tones) and OTA provisioning of WAP
24 settings. Pesan 16-bit (maksimal 70 karakter) digunakan untuk pesan teks Unicode (UCS2) dengan format karakter internasional, dan dapat dilihat pada kebanyakan telepon. Pesan teks 16 bit dari class 0 pada beberapa telepon akan terlihat sebagai Flash SMS (SMS berkelip atau peringatan). Terdapat 2 cara untuk menerima dan mengirim pesan SMS: dengan mode teks dan mode PDU (Protocol Description Unit). Mode teks (tidak terdapat pada sebagian telepon) hanya merupakan encoding dari bit stream yang direpresentasikan oleh mode PDU. Alphabet dapat saja berbeda dan ada beberapa alternatif encoding ketika menampilkan pesan SMS. Opsi yang paling umum adalah "PCCP437", "PCDN", "8859-1", "IRA" dan "GSM". Pengaturan ini diset dengan menggunakan at command AT+CSCS, ketika pesan dibaca dengan menggunakan aplikasi komputer. Jika pesan dibaca melalui telepon, telepon akan memilih encoding yang tepat. Aplikasi yang dapat membaca pesan yang masuk, dapat menggunakan baik mode teks maupun mode PDU. Jika mode teks digunakan, aplikasi akan dibatasi oleh kumpulan encoding yang telah ditetapkan. Jika mode PDU digunakan, semua tipe encoding dapat digunakan. 2.2.4.1
Menerima Pesan dalam Mode PDU String PDU tidak hanya mengandung pesan, tapi juga mengandung banyak informasi meta tentang pengirim, SMS service center pengirim, waktu dan sebagainya. Kesemuanya dalam bentuk heksadesimal oktet atau desimal semi oktet.
25 Berikut adalah string yang diperoleh pada Nokia 6110 ketika mengirim pesan dengan isi “hellohello” dari www.mtn.co.za. Tabel 2.1 Contoh string PDU yang diterima 07 917283010010F5 040BC87238880900F10000993092516195800AE8329BFD4697D9EC37
Urutan oktet-oktet ini terdiri atas 3 bagian: Oktet awal yang mengindikasikan panjang informasi SMSC (“07”), informasi SMSC
itu
sendiri
("917283010010F5"),
dan
SMS_DELIVER (spesifikasi ETSI pada GSM 03.40). Tabel 2.2 Deskripsi oktet PDU yang diterima Oktet
Deskripsi
07
Panjang informasi SMSC dalam oktet (pada kasus ini 7 oktet).
91
Tipe alamat SMSC. (91 berarti no telepon format internasional, 81 berarti format nasional/unknown format)
72 83 01 00 10 F5
Service center number (dalam desimal semi-oktet). Panjang no telepon adalah ganjil (11), jadi F ditambahkan diakhir untuk membentuk oktet yang sesuai. No dari service center ini adalah "+27381000015".
04
Oktet pertama dari pesan SMS yang diterima.
0B
Panjang Alamat. Panjang no pengirim (0B hex = 11 dec).
C8
Tipe alamat no pengirim (pada kasus ini C8 berarti no berlangganan).
72 38 88 09 00 F1
No pengirim (desimal semi-oktet), dengan akhiran F.
00
PID. Protocol identifier. (00 berarti teks standar)
00
DCS. Data coding scheme. (00 berarti pesan teks standar)
99 30 92 51 61 95 80
SCTS. Time stamp (desimal semi-oktet).
0A
UDL. User Data Length. Panjangnya user data, yaitu panjang pesan. DCS mengindikasikan data 7 bit, jadi panjang disini adalah jumlah septet (10). Jika DCS diset untuk mengindikasikan bahwa data merupakan data 8 bit atau Unicode, panjang akan berupa jumlah oktet (9).
E8329BFD4697D9EC37
UD. User Data. Pesan “hellohello” Oktet-oktet 8 bit yang merepresentasikan data 7 bit.
bagian
26 Semua oktet diatas adalah heksa desimal 8 bit oktet, kecuali no service center, no pengirim dan waktu yang dalam bentuk desimal semi oktet. Pesan yang ada pada bagian akhir string PDU terdiri dari heksa desimal 8 bit oktet, namun oktet ini merepresentasikan data 7 bit. Semi oktet adalah dalam bentuk desimal, nilainya, sebagai contoh no pengirim, dapat diperoleh dengan melakukan pertukaran internal antar semi oktet ini, dari "72 38 88 09 00 F1" menjadi "27 83 88 90 00 1F". Panjang no telepon adalah ganjil, sehingga oktet yang sesuai tidak dapat dibentuk oleh no ini. Inilah alasan penambahan F diakhir oktet. Waktu, ketika ditelusuri, setara dengan "99 03 29 15 16 59 08", dimana 6 karakter pertama merepresentasikan tanggal, 6 berikutnya merepresentasikan jam, dan 2 yang terakhir merepresentasikan zona waktu dalam hubungan dengan GMT. 2.2.4.2
Interpretasi oktet 8 bit sebagai pesan 7 bit Transformasi ini, secara detil dideskripsikan pada dokumen GSM 03.38 dan dengan bantuan 7 bit default alphabet. Berikut ini adalah contoh transformasi dari “hellohello”. Pesan "hellohello" terdiri dari 10 karakter, disebut septet ketika masing-masing karakter direpresentasikan dengan 7 bit. Septet-septet ini memerlukan transformasi menjadi oktet untuk pengiriman SMS dalam mode PDU.
27 Tabel 2.3 Septet hellohello h
e
L
l
o
h
e
l
l
o
104
101
108
108
111
104
101
108
108
111
1101000
1100101
1101100
1101100
1101111
1101000
1100101
1101100
1101100
1101111
1101000
110010 1
11011 00
1101 100
110 1111
11 01000
1 100101
1101100
1101100
110111 1
Septet
pertama
(h)
diubah
menjadi
oktet
dengan
menambahkan bit paling kanan dari septet kedua. Bit ini dimasukkan pada kiri sehingga membentuk 1 + 1101000 = 11101000 ("E8"). Bit paling kanan dari karakter kedua selanjutnya tidak digunakan lagi, sehingga karakter kedua (septet) memerlukan tambahan dua bit (kuning) dari karater ketiga untuk membentuk oktet 8 bit. Proses ini terus berlangsung sehingga membentuk oktet-oktet sebagai berikut: Tabel 2.4 Oktet hellohello 1 1101000
00 110010
100 11011
1111 1101
01000 110
100101 11
1101100 1
1 1101100
110111
E8
32
9B
FD
46
97
D9
EC
37
Kesembilan oktet dari "hellohello" adalah E8 32 9B FD 46 97 D9 EC 37 2.2.4.3
Mengirim Pesan dalam Mode PDU Contoh
berikut
menunjukkan
cara
pengiriman
pesan
“hellohello” dalam mode PDU menggunakan Nokia 6610 dengan aplikasi komputer. AT+CMGF=0 //Set ke mode PDU AT+CSMS=0 //Cek apakah modem mendukung mode PDU AT+CMGS=23//Kirim pesan 23 oktet (dua nol pertama tidak termasuk) >0011000B916407281553F80000AA0AE8329BFD4697D9EC37
28 Terdapat 23 oktet dalam pesan ini (46 ‘karakter'). Oktet pertama ("00") tidak dihitung karena merupakan indikator dari panjang SMSC yang tersedia. String PDU ini terdiri atas: Tabel 2.5 Deskripsi oktet PDU yang dikirim Oktet
Deskripsi
00
Panjang dari informasi SMSC. Dalam kasus ini 0, yang berarti SMSC yang tersimpan di telepon akan digunakan. Catatan: Oktet ini adalah optional. Pada beberapa telepon, oktet ini harus diabaikan (penggunaan secara implisit SMSC yang disimpan di telepon).
11
Oktet pertama dari pesan SMS yang akan dikirim (11 hex adalah nilai default).
00
Message Reference. Nilai "00" value membiarkan tujuan mengatur message reference number.
0B
Panjang alamat. Panjang no telepon tujuan (11).
91
Tipe alamat. (91 mengindikasikan format nomor telepon internasional).
6407281553F8
Nomor telepon dalam semi oktet (46708251358). Panjang no ini adalah ganjil (11), penambahan F di akhir diperlukan, sehingga no telepon akan menjadi "46708251358F". Jika menggunakan format nasional (Tipe alamat 81, bukan 91) akan menghasilkan urutan oktet 7080523185 (0708251358). Perhatikan bahwa panjangnya adalah 10 (A), yang berarti genap.
00
Protocol identifier
00
Data Coding Scheme. Pesan ini dikode menurut 7 bit default alphabet. Penggunan "04" yang menggantikan "00" disini, akan mengindikasikan User Data dari pesan ini harus diintrepretasikan sebagai 8 bit (digunakan pada smart messaging, OTA provisioning, dll).
AA
Validity Period. "AA" berarti 4 hari. Catatan: Oktet ini adalah optional.
0A
User Data Length. Panjangnya pesan. DCS mengindikasikan 7-bit data, jadi panjang disini adalah jumlah septet (10). Jika DCS mengindikasikan penggunaan data 8-bit atau Unicode, panjang akan merupakan jumlah oktet.
E8329BFD4697D9 User Data. Oktet ini merepresentasikan pesan "hellohello". EC37
(Petterson, 2005; Ekkebus, 2004)
29 2.2.5
Perintah-perintah AT Command untuk Komunikasi CPU dengan GSM Modem AT Command adalah perintah-perintah yang digunakan dalam komunikasi dengan Serial Port. Dengan AT Command, kita dapat mengetahui vendor dari handphone yang digunakan, kekuatan sinyal, membaca pesan yang ada pada SIM Card, mengirim pesan, mendeteksi pesan SMS baru yang masuk secara otomatis, menghapus pesan pada SIM Card, dan masih banyak lagi. Berikut adalah beberapa perintah AT: Tabel 2.6 Beberapa perintah AT Command ATCommand AT AT+CMGF AT+CSCS AT+CMGL AT+CMGS AT+CMGR AT+CMGD
Keterangan Mengecek apakah handphone telah terhubung Menetapkan format mode dari terminal Menetapkan jenis encoding Membuka daftar SMS yang ada pada SIM Card Mengirim pesan SMS Membaca pesan SMS Menghapus pesan SMS
(Tim Penelitian dan Pengembangan Wahana Komputer, 2005, pp 12-34) 2.2.6
Pengembangan dan Layanan Aplikasi SMS Aplikasi SMS berkembang seiring dengan kepopuleran SMS itu sendiri. Aplikasi SMS dikembangkan pertama kali oleh operator network sebagai bagian dari layanan aplikasi jaringan. Namun demikian dengan tersedianya API (Application Programming Interface) untuk pemrograman aplikasi SMS membuat berkembangnya aplikasi-aplikasi SMS dari pengembang pihak ketiga.
30 Layanan aplikasi SMS pada dasarnya memiliki karakteristik yang berbeda dengan aplikasi internet dan internet bergerak pada umumnya, yaitu: layar monitor yang berukuran kecil, keterbatasan jumlah karakter yang dapat dikirimkan, serta keterbatasan tombol pada handset yang hanya berjumlah 12 untuk pengoperasian aplikasi. Tiga karakteristik tersebut selalu menjadi fokus yang mendasari pada pengembangan aplikasi ini, sehingga informasi yang disediakan pun singkat dan jelas dengan pengoperasian aplikasi mudah dan sederhana yang meminimalisir penggunaan tombol pada handset. Dengan mengetahui ketiga karakteristik tersebut, maka akan dapat dikenali aplikasi yang cocok untuk dikembangkan menjadi aplikasi berbasis SMS. Berdasarkan mekanisme disitribusi pesan SMS oleh aplikasi SMS, terdapat empat macam mekanisme penghantaran pesan, yaitu: 1. Pull, yaitu pesan yang dikirimkan ke pengguna berdasarkan permintaan pengguna. 2. Push - Event Based, yaitu pesan yang diaktivasi oleh aplikasi berdasarkan kejadian yang berlangsung. 3. Push - Scheduled, yaitu pesan yang diaktivasi oleh aplikasi berdasarkan waktu yang telah terjadwal. 4. Push - Personal Profile, yaitu pesan yang diaktivasi oleh aplikasi berdasarkan profil dan preference dari pengguna. Telah terdapat banyak sekali layanan dan aplikasi berbasis SMS pada saat ini. Aplikasi SMS yang ada di pasaran pada dasarnya dapat dibagi
31 menjadi 2 macam, yaitu aplikasi untuk konsumen personal dan aplikasi untuk korporat. 2.2.6.1
Aplikasi SMS untuk Personal Aplikasi untuk konsumen personal hingga saat ini masih mendominasi penggunaan, yaitu hingga 90% pengguna yang memakai aplikasi ini. Aplikasi ini antara lain: 1. Pesan SMS antar Pengguna (Person to Person Messaging) Merupakan layanan yang paling banyak digunakan hingga saat ini di mana pengguna dapat berkirim pesan SMS satu sama lain (dua arah) menggunakan handset mereka masingmasing. 2. Notifikasi Voice dan Fax Mail Adalah pesan singkat yang memberitahukan datangnya voicemail dan fax-mail ke mailbox pengguna. Pemberitahuan berisikan identitas pengirim dan waktu datangnya pesan ke dalam mailbox. 3. Notifikasi e-mail Internet Adalah pesan singkat yang memberitahukan datangnya e-mail ke account e-mail pengguna. Aplikasi ini terhubung ke e-mail server dimana terdapat account e-mail dari pengguna yang bersangkutan, sehingga datangnya e-mail dapat segera dideteksi oleh aplikasi yang kemudian meneruskan pesan pemberitahuan ke pengguna lewat SMS. Pesan akan berisi nama pengirim, waktu datangnya e-mail dan subjek e-mail.
32 Aplikasi dapat pula melakukan seleksi terhadap e-mail yang dapat diteruskan ke pesan SMS dengan permintaan dari pengguna yang bersangkutan. 4. Unified Messaging Merupakan aplikasi yang dilandasi ide untuk menggabungkan tiga macam messaging, yaitu voicemail, faxmail dan e-mail, dalam satu account unified messaging box. Dengan demikian hal ini akan memudahkan pengguna dalam menangani berbagai pesan yang ditujukan kepadanya, dan pesan yang masuk ke dalam box akan diteruskan melalui pesan SMS berikut jenis pesan yang masuk, apakah voice-mail, fax-mail ataupun e-mail. 5. Pusat Informasi Merupakan layanan yang menyediakan informasi umum dan penting bagi pengguna. Informasi disajikan melalui dua mekanisme, yaitu push-based dimana infomasi diaktivasi oleh aplikasi dan pull-based dimana informasi diminta (di-request) oleh pengguna. Aplikasi informasi yang digemari terutama aplikasi yang memperhatikan kemudahan penggunaan, waktu yang tepat, serta personalisasi dan lokasi di mana pengguna berada. Aplikasi yang populer dan paling digemari antara lain adalah aplikasi informasi nomor telepon, ringtones dan logo, chatting, pesan bergambar, humor, horoscope, stock quotes,
33 info TV, info musik, info cuaca, info bank, berita hangat, dan berita olahraga. 2.2.6.2
Aplikasi SMS untuk Korporat Aplikasi SMS untuk korporat adalah aplikasi SMS yang dikustomisasi
berdasarkan
kebutuhan
terhadap
pelayanan
informasi dan komunikasi dalam sebuah perusahaan atau kelompok orang. Aplikasi ini dapat dikembangkan berdasarkan kreatifitas pengembang berdasarkan manfaat sepenuhnya yang dapat
diberikan
kepada
pelanggan
perusahaan
yang
membutuhkannya. Aplikasi yang dapat dikembangkan tersebut antara lain: 1. E-mail Korporat Adalah layanan bagi karyawan perusahaan yang memiliki account di e-mail server perusahaan untuk dapat memantau datangnya e-mail melalui pesan SMS. 2. Program Affinity Merupakan jenis layanan yang pada awalnya merupakan kerja sama dari operator network dengan perusahaan-perusahaan yang memiliki pelanggan cukup besar, seperti perusahaan TV,
radio,
klub
eksekutif,
supermarket,
perusahaan
penerbangan atau bank. Aplikasi SMS dapat dikembangkan untuk memberikan pelayanan pelanggan dengan kiriman pesan seperti informasi layanan perusahaan, undangan pertemuan, status pembelian barang, status peminjaman
34 video,
pemberitahuan
jadwal
periksa
kesehatan,
pemberitahuan pengambilan obat, dan sebagainya. Layanan ini pada dasarnya merupakan bagian dari pelayanan (khusus) terhadap konsumen atau pelanggan yang nantinya diharapkan dapat lebih menumbuhkan loyalitas pelanggan kepada perusahaan yang bersangkutan. 3. Mobile Banking Merupakan salah satu jenis program affinity untuk layanan perusahaan perbankan. Layanan ini memberikan kemudahan kepada pelanggan nasabah sebuah bank dalam bertransaksi melalui rekeningnya. Melalui layanan ini maka pekerjaanpekerjaan seperti, transfer uang, pengecekan status rekening, pemberitahuan masuknya sejumlah uang dapat dilakukan melalui pengiriman pesan SMS. 4. E-Commerce Merupakan
perdagangan
elektronik
dimana
transaksi
perdagangannya dapat dilakukan melalui pesan SMS. Layanan ini serupa dengan layanan mobile banking karena pembayaran dalam suatu transaksi biasanya dilakukan melalui transfer rekening pengguna ke rekening penjual. 5. Pelayanan Pelanggan (Customer Service) Pesan melalui SMS akan sangat mengurangi waktu dan biaya untuk pekerjaan customer service. Pemberitahuan mengenai pelayanan baru, status pelayanan, dll, yang selama ini
35 dilakukan melalui hubungan telepon dapat dilakukan menggunakan pesan SMS. 6. Penentuan Lokasi (Positioning) Aplikasi
ini
mengintegrasikan
aplikasi
GPS
(Global
Positioning System) yang berbasis satelit dengan pesan melalui SMS yang dapat memberitahukan kepada orang lain mengenai keberadaan seseorang. 7. Pemantauan Pekerjaan (Job Dispatch) Layanan
ini
akan
menggunakan
pesan
SMS
untuk
komunikasi antara staf yang bekerja di kantor dengan staf yang bekerja di lapangan. Staf pekerja di kantor dapat memantau status suatu pekerjaan di lapangan dengan berkomunikasi lewat SMS melalui aplikasi yang interaktif pekerja di lapangan. Layanan ini akan sangat memudahkan serta menambah efisiensi pekerjaan. 8. Remote Monitoring Layanan ini dibangun untuk memantau kinerja suatu perangkat atau mesin yang dapat secara otomatis melaporkan kejadian dimana kinerja suatu alat mencapai titik kritis tertentu, maka pada saat itu juga aplikasi akan secara elektronis segera mengirim pesan pemberitahuan melalui SMS ke handset administrator atau penanggung jawab alat tersebut. 9. Pelelangan
36 Pelelangan suatu barang pada saat ini dapat dilakukan dengan menggunakan aplikasi berbasis SMS. Dengan layanan ini pengguna dapat berada di tempat manapun untuk dapat berpartisipasi dalam event pelelangan barang. Mekanisme aplikasi ini mirip dengan chatting, karena pesan yang dikirimkan pengguna akan di-broadcast ke pengguna yang lain yang mengikuti lelang. Pengguna sebelumnya harus melalui
prosedur
pendaftaran
tertentu
sebelum
dapat
mengikuti lelang. 10. Jajak Pendapat Jajak pendapat yang diadakan oleh suatu media atau organisasi terhadap suatu permasalahan tertentu dapat dilakukan menggunakan aplikasi SMS. Di sini aplikasi akan menampung pesan SMS yang masuk berdasarkan pendapat yang diberikan pengguna. Aplikasi juga melakukan kontrol terhadap kemungkinan terdapatnya 2 suara yang sama yang memberikan pendapatnya dengan menolak suara yang kedua. (Satriyantono, 2001)
2.3 Software Engineering Menurut Fritz Bauer, Software Engineering adalah pembentukan dan penggunaan prinsip-prinsip engineering di dalam upaya untuk menghasilkan software yang ekonomis dan berdaya tahan baik serta bekerja secara efisien dalam kenyataannya. (Pressman, 2001, p20)
37
2.4 Software Engineering Paradigm dan Prototyping Model Sofware Engineering Paradigm seringkali disebut sebagai process model, di mana process model untuk Software Engineering dipilih berdasarkan sifat alamiah dari proyek dan aplikasi, metode dan tools yang digunakan, serta kontrol dan deliverable yang diperlukan. Software Process Model merupakan strategi yang mencakup process, method dan tools yang digunakan untuk memecahkan permasalahan aktual, yang biasa dilakukan oleh seorang software engineer atau team engineer. (Pressman, 2001, p26) Seringkali, seorang pelanggan mendefinisikan sekumpulan tujuan umum atas software yang ingin dibuat, tetapi tidak mengidentifikasikan input yang mendetail, proses, ataupun requirement hasil yang diinginkan. Dalam hal lain, pengembang dapat saja merasa tidak yakin atas efisiensi dari algoritma, kemampuan adaptasi dari operating system atau bentuk interaksi yang diinginkan antara manusia dengan mesin. Dalam situasi ini, prototyping paradigm adalah pilihan terbaik. Prototyping paradigm dimulai dengan requirements gathering. Developer dan pelanggan bertemu dan mendefinisikan tujuan umum untuk software yang ingin dibuat, identifikasi requirement yang diketahui, menggaris bawahi kondisi di mana definisi lebih lanjut memungkinkan. Desain dibuat dengan cepat dan memfokuskan diri sebagai gambaran dari aspek software yang dapat dilihat oleh customer/user (seperti format input dan output). Prototype ini dievaluasi oleh customer/user dan digunakan untuk memperhalus requirements untuk software yang akan dikembangkan. Iterasi terjadi di mana prototype digunakan untuk memberikan kepuasan yang dibutuhkan
38 customer, sementara pada saat yang sama, memungkinkan developer untuk lebih mengerti tentang apa yang harus diselesaikan. Yang terpenting di dalam prototyping adlaha mendefinsikan rules of the game pada permulaan, di mana customer dan developer haruse menyetujui bahwa prototype dibuat sebagai upaya untuk memenuhi requirements. (Pressman, 2001, pp30-32)
listen to customer
build/revise mock-up
customer test-drives mock-up Gambar 2.3 Siklus Prototyping
2.5 Object-Oriented Paradigm Object-Oriented Paradigm adalah pendekatan untuk mendapatkan solusi dari masalah-masalah di mana semua perhitungan disajikan dalam konteks objects. Objects merupakan instances dari konsep pemrograman, yang biasa disebut dengan class, di mana terdapat data abstractions dan mengandung abstraksi prosedural yang mengoperasikan objects. (Lethbridge dan Laganiere, 2002, p29) Kelebihan menggunakan paradigma Object-Oriented antara lain adalah adanya kemampuan untuk reuse (dari komponen program) yang mengarah pada
39 pengembangan software secara cepat dan program berkualitas tinggi. Software Object-Oriented menjadi lebih mudah dipelihara karena secara struktural tidak menyatu. Hal ini menghasilkan side effects dalam jumlah minim saat perubaan harus dilakukan. Sebagai tambahan, sistem Object-Oriented mudah untuk diadaptasi dan untuk diskala (misalnya sistem yang besar bisa dikreasi dengan merangkai subsystem yang reusable). (Pressman, 2001, p542) 2.5.1
Karakteristik dari Object-Oriented Karakteristik utama dari Object-Oriented adalah: 1. Data Abstraction Merupakan suatu ide untuk mengelompokkan berbagai hal di dalam suatu class, sehingga dapat mengurangi kompleksitas dari sistem. 2. Encapsulation dan Information Hiding Encapsulation berarti pemaketan data dan behaviour ke dalam suatu object. Information hiding berarti pemisahan aspek-aspek eksternal dari objek, yang dapat diakses dari objek lainnya. Aspek-aspek internal dari suatu objek, tidak dapat diakses (tersembunyi) dari objek lainnya. 3. Polymorphism dan Inheritance Polymorphism adalah kemampuan menyembunyikan implementasi yang berbeda di balik interface yang sama. Inheritance adalah mekanisme untuk mendefinisikan suatu class yang didefinisikan dari class yang sudah ada. (Britton dan Doake, 2000, p14)
40 2.5.2
Beberapa Konsep Tentang Object-Oriented Beberapa konsep tentang Object Oriented menurut Whiten et al. (2004, pp431-440) adalah: 1. Object, sesuatu yang dapat dilihat, disentuh, atau dirasakan dan di dalamnya tersimpan data dan behaviour. 2. Attribute, data yang merepresentasikan karakteristik dari object. 3. Behaviour, sekumpulan hal yang bisa dilakukan oleh object dan berhubungan dengan fungsi yang ada pada data object (atau attributes). Behaviour dapat berupa method, operation ataupun service. 4. Object instances, merupakan objek secara spesifik yang merujuk pada suatu nilai tertentu dari atributnya. 5. Inheritance, suatu konsep di mana methods dan/atau attributes didefinisikan di dalam suatu object class dan dapat diturunkan atau direuse oleh object dari class yang lain. 6. Generalization/specialization, sebuah teknik di mana attributes dan behaviours yang sama dimiliki oleh beberapa tipe dari object class dikelompokkan (atau diabstraksi) ke dalam masing-masing class mereka, disebut juga dengan supertype. Attributes dan behaviours dari object supertype kemudian diturunkan oleh setiap object class. 7. Supertype, sebuah entitas yang mengandung attributes dan behaviours yang sama bagi satu atau lebih bagi class subtypes. Disebut juga dengan parent class.
41 8. Subtype, sebuah object class yang mewarisi attributes dan behaviours dari supertype class dan kemudian class itu sendiri dapat memiliki attributes dan behaviours sendiri yang unik. 9. Multiplicity, jumlah minimum dan maksimum dari hubungan yang terjadi antar object. 10. Aggregation, suatu hubungan di mana suatu class yang utuh (whole class) mengandung satu atau lebih class-class yang merupakan bagian dari whole class. 11. Composition, sebuah hubungan aggregation di mana whole class bertanggungjawab penuh atas ada dan tiadanya part class. Jika whole class tiada, maka part class pun juga ikut tiada. 12. Message, komunikasi yang terjadi saat sebuah object meminta behaviour yang dimilikinya untuk mendapatkan informasi atau aksi lain. 13. Polymorphism, sebuah konsep tentang bagaimana object-object yang berbeda dapat menanggapi suatu message yang sama dengan cara yang berbeda. 14. Override, suatu kondisi di mana subclass (subtype) menggunakan attributes atau behaviours dari diriya sendiri, daripada attributes atau behaviours yang diturunkan dari superclass (supertype).
2.6 Object-Oriented Analysis and Design (OOAD) Object-Oriented Analysis (OOA) dimaksudkan untuk mendefinisikan semua class yang relevan terhadap masalah yang akan dipecahkan, beserta operations
42 dan attributes yang berhubungan dengan mereka, hubungan di antara mereka, dan behaviours yang mereka tunjukkan. Untuk melakukan semua ini, maka diperlukan: 1. User requirement mendasar haruslah dikomunikasikan di antara customer dan software engineer. 2. Classes harus diidentifikasikan (seperti identifikasi attributes dan methods). 3. Hirarki class harus spesifik. 4. Hubungan antar object (relationship) haruslah direpresentasikan. 5. Object behaviours haruslah dimodelkan. 6. Tugas 1 sampai dengan 5 diterapkan secara iterative sampai modelnya selesai. Tujuan dari OOA sendiri untuk mengembangkan satu model yang dapat menggambarkan computer software sebagai usaha untuk memenuhi kebutuhan tertentu dari customer. (Pressman, 2001, p 572) Dalam implementasinya, berbagai metodologi OOA untuk melakukan modelling muncul di akhir 80-an dan awal 90-an. Meskipun secara terminologi dan langkah-langkah yang diberikan oleh setiap metodologi tersebut berbeda, secara umum proses-proses di dalam OOA cukup mirip satu sama lainnya. Untuk menggambarkan suatu Object-Oriented analysis, seorang software engineer seharusnya melakukan beberapa langkah tersebut: 1. Mendapatkan customer requirement untuk system tersebut. 2. Identifikasi scenario atau use-cases. 3. Memilih classes dan objects dengan menggunakan requirement yang ada sebagai panduan.
43 4. Identifikasi attributes dan operations untuk setiap object dari system. 5. Mendefinisikan struktur dan hirarki yang menggorganisasikan classes. 6. Membangun model untuk object- relationships. 7. Membangun model untuk object-behaviours. 8. Melakukan review terhadap model yang dibuat terhadap use case atau scenario. (Pressman, 2001, p575) Salah satu metodologi OOA yang telah luas penggunaannya di dunia industri adalah UML (Unified Modelling Language). Setelah kita melakukan Object-Oriented Analysis, maka dapat dilakukan Object-Oriented Design yang bertujuan untuk mendesain model yang telah dikembangkan yang berfungsi sebagai cetak biru untuk membangun software. (Pressman, 2001, p603)
2.7 UML 2.7.1
Sejarah UML UML merupakan hasil pemikiran dari Grady Booch, James Rumbaugh, dan Ivar Jacobson. Belakangan sering dijuluki “Three Amigos”, mereka bekerja di organsisasi terpisah di era 80-an dan awal 90-an, yang masingmasing merancang metodologinya sendiri untuk melakukan analisis dan desain yang berorientasi objek. Metodologi mereka mencapai keunggulan di antara kompetitor mereka. Di pertengahan 90-an, saat mereka mulai untuk saling membawakan ide-ide mereka satu sama lain, mereka pun
44 memutuskan untuk mengembangkan pekerjaan mereka secara bersamasama. Di tahun 1994, Rumbaugh masuk ke dalam Rational Software Corporation, di mana Booch telah bekerja di sana. Setahun kemudian, Jacobson masuk. Seperti yang mereka katakan, pada akhirnya adalah sebuah sejarah. Versi draf dari UML mulai beredar di dalam industri software dan umpan balik yang ada menghasilkan perubahan-perubahan yang substansial. Sebagaimana perusahaan-perusahaan banyak merasakan bahwa UML dapat menjalankan tujuan-tujuan strategis mereka, sebuah konsorsium UML pun dibangun. Anggota-anggota dari konsorsium ini termasuk DEC, Hewlett-Packard, Intellicorp, Microsoft, Oracle, Texas Instruments, Rational, dan yang lainnya. Di tahun 1997, konsorsium itu mengeluarkan versi 1.0 dari UML dan dikoordinasikan kepada Object Management Group (OMG) sebagai respon dari permintaan OMG untuk proposal dari bahasa pemodelan standar. Konsorsium pun semakin berkembang, dan mengeluarkan versi 1.1 yang kemudian diadopsi OMG di tahun 1997. OMG pun terus mengembangkan UML dan menghasilkan revisi yang lebih banyak di tahun 1998. UML kini telah menjadi standar secara de facto di dunia industri software dan akan terus-menerus berkembang. (Schmuller, 1999, pp7-8)
45 2.7.2
Pengertian UML UML merupakan sekumpulan konvensi tentang pemodelan yang digunakan untuk menspesifikasi atau menggambarkan sistem software di dalam hal-hal tentang objek. (Whitten et al., 2004, p430) UML terdiri dari sejumlah elemen-elemen grafikal yang digunakan untuk membentuk diagram-diagram. Tujuan dari diagram-diagram ini adalah untuk merepresentasikan berbagai pandangan terhadap sistem, dan sekumpulan pandangan ini yang disebut dengan model. Model dari UML berfungsi untuk menggambarkan apa yang dilakukan oleh sistem, tetapi tidak menggambarkan tentang bagaimana untuk mengimplementasikan sistem tersebut. (Schmuller, 1999, p8)
2.7.3
Diagram-diagram UML UML menyajikan 9 (sembilan) diagram yang dapat dikategorikan dalam 5 (lima) perspektif yang berbeda dalam memodelkan sistem (Whitten et.al., 2004, pp441-442). Penjelasan diagram-diagram UML dan tujuannya digambarkan di bawah ini: 1. Use Case Model Diagrams Diagram ini menggambarkan interaksi antara sistem dan sistem di luar (eksternal sistem) dan user. Dengan kata lain, diagram ini menggambarkan secara grafikal siapa saja yang akan menggunakan sistem dan dalam hal apa saja user dapat berhubungan dengan sistem tersebut. Narasi use case digunakan sebagai tambahan untuk penggambaran secara tekstual terhadap urutan langkah-langkah dari setiap interaksi.
46 2. Static Structure Diagrams UML menyajikan dua diagram untuk memodelkan struktur statis dari sebuah sistem informasi. Keduanya adalah: a. Class Diagram, menggambarkan struktur objek dari sistem. Diagram ini menggambarkan object-object class yang menyusun sistem dan juga relasi yang terjalin di antara object-object class itu. b. Object Diagram, merupakan diagram yang mirip dengan class diagram, tetapi jika class diagram menggambarkan object classes, maka object diagram memodelkan object instances yang aktual, yang menunjukkan nilai aktual dari atribut instances. 3. Interaction Diagrams Interaction Diagram memodelkan interaksi, terdiri dari sekumpulan objek, relasi di antaranya dan pesan yang terkirim di antaranya. Diagram ini memodelkan sifat-sifat dinamis dari sebuah sistem dan UML menggambarkan dua diagram tersebut sebagai berikut: a. Sequence Diagram, secara grafis menggambarkan bagaimana objek-objek berinteraksi satu sama lain lewat pesan dalam mengeksekusi sebuah use case atau sebuah operasi. b. Collaboration Diagram, hampir sama dengan sequence diagram, tapi ia tidak memfokuskan pada waktu atau urutan pengiriman pesan. 4. State Diagram State Diagram juga memodelkan sifat-sifat dinamis dari sebuah sistem. Diagram UML ini menggambarkan sifat-sifat kompleks dari sebuah
47 objek tertentu (statechart diagram) dan memodelkan sifat dari use case atau method. a. Statecahart Diagram, digunakan untuk memodelkan sifat dinamis dari objek tertentu. Diagram ini menggambarkan siklus objek (object's life cycle) yang menyebabkan objek bertransisi dari satu state ke state lainnya. b. Activity Diagram, digunakan dalam menggambarkan urutan aliran kegiatan (activities) secara grafis dari proses bisnis atau sebuah use case. Dan juga memodelkan kegiatan-kegiatan yang dilakukan ketika sebuah operasi dieksekusi dan hasil dari eksekusi kegiatan tersebut. 5. Implementation Diagram Implementation Diagram memodelkan struktur dari sebuah sistem informasi. a. Component Diagram, digunakan secara grafis dalam menjelaskan organisasi dan ketergantungan dari komponen-komponen software dari sebuah sistem. Dan diagram ini juga menunjukkan bagaimana kode-kode program dipecah menjadi modul-modul yang lebih sederhana. b. Deployment diagram, menjelaskan arsitektur fisik dari node komponen perangkat keras dan piranti lunak sistem. Penggambaran konfigurasi dari komponen software, processor dan peralatan yang membangun sebuah arsitektur sistem.
48 Penjelasan lebih lanjut mengenai beberapa model diagram akan diberikan dalam subbab-subbab berikut ini. 2.7.3.1
Use Case Diagram Unsur-unsur pokok dari Use Case Diagram antara lain: 1. Actor Actor merupakan segala sesuatu yang dibutuhkan dalam berinteraksi dengan sistem untuk pertukaran informasi. Dalam hal ini, actor tidak harus selalu berupa manusia. Actor dapat berupa suatu organisasi, sistem informasi lainnya, external device seperti sensor panas, atau bahkan konsep waktu. 2. Use Case Use Case merupakan hasil dari dekomposisi dari ruang lingkup fungsionalitas sistem ke dalam bentuk yang lebih kecil. Use Case merepresentasikan tujuan tunggal dari sistem dan menggambarkan sekumpulan aktivitas dan interaksi user dalam upaya untuk mencapai tujuan tersebut. Use Case adalah sekumpulan langkah-langkah (scenario) yang saling terhubung, baik secara otomatis maupun manual, yang bertujuan untuk menyelesaikan suatu proses bisnis.
49
Gambar 2.4 Actor dan Use Case pada Use Case Diagram
3. Hubungan antar Use Case Ada beberapa hubungan antara use case,antara lain adalah: a. Uses Hubungan
uses
(sering
juga
disebut
includes)
digambarkan dari suatu use case X ke suatu use case Y yang mengindikasikan bahwa proses untuk melakukan X selalu melibatkan Y, paling sedikit sekali. Singkatnya, bisa dikatakan bahwa menggunakan uses dalam bentuk X uses Y berarti X has a Y (proses X mengandung proses Y yang harus dikerjakan) sebagai bagian dari proses X.
Gambar 2.5 Contoh uses
50 b. Extends Hubungan extends digambarkan dengan use case X ke use case Y yang mengindikasikan bahwa proses X merupakan case dengan behaviour spesial dari proses yang lebih umum dari use case Y. Extends dapat digunakan dalam situasi di mana sistem yang ada memiliki use cases (proses) di mana ia memiliki beberapa sub proses yang memiliki kesamaan, tetapi setiap sub proses memiliki sesuatu yang berbeda yang tidak memungkinkan untuk mengelompokkan mereka di dalam use case yang sama. (Whitten,
et
al.,
2004,
pp272-273;
http://
www.andrew.cmu.edu/ course/90-754/umlucdfaq.html)
Gambar 2.6 Contoh extends
2.7.3.2
Class Diagram Class Diagram menggambarkan data yang ada di dalam sistem software. Berbagai simbol penting yang hadir di dalam class diagram antara lain adalah: 1. Classes, yang berfungsi untuk merepresentasikan tipe dari data yang dimilikinya. Class diagram dapat ditampilkan
51 dengan
menunjukkan
attributes
dan
operations
yang
dimilikinya, atau hanya menunjukkan nama class-nya saja. Dapat juga kita tuliskan nama class dengan attribute-nya saja atau nama class dengan operation-nya.
Gambar 2.7 Beberapa bentuk penyajian Class Diagram
2. Attributes, merupakan data yang terdapat di dalam classes dan instancenya. 3. Operations, yang berfungsi untuk merepresentasikan fungsifungsi yang ditampilkan oleh classes dan instancenya. 4. Associations, digunakan untuk menunjukkan bagaimana dua classes berhubungan satu sama lainnya. Associations ditunjukkan dengan sebuah garis yang terletak di antara dua classes. Di dalam setiap associations terdapat multiplicity, yaitu simbol yang mengindikasikan berapa banyak instances dari class pada ujung associations yang satu dengan instances class di ujung associations yang lainnya.
52
Gambar 2.8 Contoh hubungan antar class dengan berbagai jenis multiplicity
5. Generalizations, yang berfungsi untuk mengelompokkan classes ke dalam hirarki inheritance. Account
SavingsAccount
CheckingAccount
MortgageAccount
Gambar 2.9 Contoh Generalization
Dalam gambar ini ditunjukkan bahwa class Account mewariskan data dan behaviour-nya ke tiga class di bawahnya. 6. Aggregation, merupakan bentuk khusus dari association yang merepresentasikan hubungan ‘part-whole’. Bagian ‘whole’ dari hubungan ini sering disebut dengan assembly atau aggregate. Class yang satu dapat dikatakan merupakan bagian dari class yang lain yang ikut membentuk class tersebut.
53
Gambar 2.10 Hubungan aggregation di antara dua class
7. Composition, merupakan jenis aggregation yang lebih kuat di antara dua class yang memiliki association di mana jika whole ditiadakan, maka partnya juga ikut ditiadakan. Berbeda dengan aggregation, part akan tetap bisa berdiri sendiri meskipun bagian wholenya ditiadakan.
Gambar 2.11 Hubungan composition di antara dua class
(Letbridge dan Laganiere, 2002, pp37, pp154-170). 2.7.3.3
Sequence Diagram Sequence diagram menggambarkan serangkaian messages yang mengalami pertukaran yang dilakukan oleh object (dapat juga berupa actor) yang melakukan tugas tertentu. Sequence diagram antara lain tersusun atas sekumpulan object-object yang akan dipergunakan untuk interaksi, activation box (suatu kotak yang menyatakan lifeline (daur hidup) dari suatu tugas yang sedang dilakukan. Pesan yang dikirimkan dimulai dari suatu actor atau object, dan kita dapat memberikan label pada pesan yang dilakukan. (Lethbridge dan Laganiere, 2002, pp270-271)
54
Gambar 2.12 Contoh sequence diagram
2.7.3.4
State Chart Diagram State
chart
diagram
merupakan
cara
lain
untuk
mengekspresikan informasi dinamik tentang sistem di mana state chart diagram digunakan untuk menggambarkan behaviour yang terlihat dari luar pada sebuah sistem atau objek individual. Pada suatu titik di suatu masa, sistem atau objek berada di dalam suatu state. Sistem atau objek tersebut akan tetap berada pada state tersebut sampai sebuah event lain terjadi yang berakibat pada berubahnya state yang ditempati saat itu. Di dalam state diagram ini, selain state, dibutuhkan transitions yang berfungsi untuk mengubah state sebagai respon terhadap event yang terjadi. Dapat pula ditambahkan label di transition ini untuk merepresentasikan event apa yang membuat perubahan pada state.
55 Selain itu, ada dua simbol lain yang dipergunakan, yaitu: 1. Start state, yang berupa lingkaran hitam, berfungsi saat sistem atau objek memulai prosesnya. Dari start state, akan memunculkan transisi tak berlabel yang langsung mengarah pada state lain yang ditunjuknya. Di dalam setiap state chart diagram hanya terdapat satu start state. 2. End State, berupa lingkaran hitam yang dikelillingi lingkaran yang lebih besar yang berwarna putih. End state menandakan sistem atau objek telah menyelesaikan proses kerjanya. End state dapat berjumlah lebih dari satu. (Lethbridge dan Laganiere, 2002, pp276-277)
Gambar 2.13 Contoh state chart diagram
2.7.3.5
Activity Diagram Activity Diagram digunakan untuk memahami proses kerja yang dilakukan oleh object maupun komponennya. Dapat juga digunakan untuk memvisualisasikan interaksi di antara use cases yang berbeda.
56 Transisi yang terjadi di dalam activity diagram kebanyakan disebabkan oleh internal events, seperti selesainya suatu activity yang dijalankan. Salah satu kekuatan dari activity diagram adalah melakukan representasi dari concurrent activities atau activities yang dilakukan secara bersama-sama. Activity diagram memiliki kemiripan dengan state chart diagram, kecuali activity diagram memiliki beberapa simbol tambahan seperti yang digunakan untuk menggambarkan concurrency. menggunakan
Concurrency forks,
joins
dapat dan
digambarkan rendezvous,
dengan yang
direpresentasikan dengan garis-garis pendek, yang menunjukkan transisi-transisi mana yang dapat dimulai dan diakhiri. 1. Fork, memiliki satu transisi yang masuk dan banyak transisi yang keluar. 2. Join, memiliki banyak transisi yang masuk dan satu transisi keluar. Transisi keluar akan dijalankan setelah semua transisi yang masuk telah dijalankan. 3. Rendezvous, memiliki banyak transisi yang masuk dan banyak transisi yang keluar. Saat semua transisi yang masuk dijalankan, sistem akan menjalankan semua transisi yang keluar pada masing-masing bagian.
57 Activity Diagram sering diasosiasikan dengan beberapa classes. Partisi dari activities di antara class-class tersebut secara eksplisit digambarkan dengan kotak berkolom yang disebut dengan swimlanes.
Gambar 2.14 Contoh activity diagram
(Lethbridge dan Laganiere, 2002, pp284-285)
2.8 Interaksi Manusia dan Komputer (IMK) Menurut definisi dari ACM SIGCHI (http://sigchi.org/cdg/cdg2.html), Interaksi Manusia dan Komputer (IMK) atau Human-Computer Interaction (HCI) adalah disiplin ilmu yang berhubungan dengan perancangan, evaluasi, dan implementasi sistem komputer interaktif untuk digunakan oleh manusia, serta studi fenomena-fenomena besar yang berhubungan dengannya.
58 Antarmuka merupakan unsur pokok dalam setiap pengembangan sistem yang ada. Oleh karena itu, penting untuk mengetahui faktor-faktor apa saja yang menentukan di dalam merancang suatu antarmuka. Menurut Sneiderman (1998, p15), ada lima faktor manusia terukur yang dapat dijadikan sebagai pusat evaluasi, yaitu: 1. Waktu belajar, berapa lama waktu yang dibutuhkan oleh user untuk mempelajari cara relevan untuk melakukan suatu tugas? 2. Kecepatan kinerja, berapa lama waktu yang diperlukan untuk mengerjakan suatu tugas? 3. Tingkat kesalahan, berapa banyak kesalahan dan kesalahan-kesalahan seperti apa yang bisa terjadi saat user mengerjakan tugas-tugas tersebut? 4. Daya
ingat,
bagaimana
kemampuan
pemakai
mempertahankan
pengetahuannya setelah jangka waktu tertentu? 5. Kepuasan subjektif, bagaimana kepuasan user terhadap berbagai aspek dari sistem? Selain itu, menurut Sneiderman (1998, p74-75), disebutkan pula bahwa ada delapan aturan emas yang digunakan di dalam merancang antarmuka, yaitu: 1. Berusaha untuk konsisten, seperti dalam penggunaan warna, layout, jenis huruf yang konsisten. 2. Memungkinkan frequent user menggunakan shortcuts, karena dengan adanya shortcuts dapat meningkatkan interaksi dengann user. 3. Memberikan umpan balik yang informatif yang memberikan kejelasan dari setiap aksi yang dilakukan oleh user.
59 4. Merancang dialog yang memberikan penutupan (keadaan akhir). 5. Memberikan pencegahan kesalahan dan penanganan kesalahan yang sederhana. 6. Memungkinkan pembalikan aksi yang sederhana (bersifat reversible). 7. Mendukung pusat kendali internal, di mana sistem hendaknya mampu membuat user sebagai bagian dari sistem itu sendiri dan memiliki kebebasan tersendiri. 8. Mengurangi beban ingatan jangka pendek di mana user hendaknya mudah dalam menjelajahi situs dengan petunjuk-petunjuk yang sederhana dan gampang diingat.
2.9 Basis Data Basis Data adalah sekumpulan data-data yang dapat digunakan secara bersama-sama yang berhubungan secara logika, dan deskripsi dari data tersebut dirancang untuk mendapatkan informasi yang dibutuhkan oleh organisasi. (Connolly dan Begg, 2002, p14)
2.10 DBMS DBMS (Database Management System) adalah suatu sistem perangkat lunak yang memungkinkan pengguna untuk mendefinisikan, menciptakan, memelihara dan mengontrol akses ke database. (Connolly dan Begg, 2002, p16)
60 2.11 Normalisasi Normalisasi merupakan suatu teknik yang digunakan untuk menghasilkan sekumpulan relasi dengan properties yang diinginkan dari data-data yang ada. Normalisasi juga merupakan teknik formal untuk menganalis relasi berdasarkan primary key (atau candidate key) dan functional dependencies. Normalisasi sering dipergunakan untuk melakukan tes terhadap suatu relasi untuk menentukan apakah relasi tersebut memenuhi atau tidak memenuhi persyaratan dari bentuk normal. Untuk melakukan normalisasi, maka dibutuhkan sebuah tabel yang berada dalam bentuk UNF (Unnormalized form), yaitu sebuah tabel yang mengandung satu atau lebih repeating groups (sekelompok nilai yang berulang yang menimbulkan redudansi pada data). Proses-proses normalisasi adalah sebagai berikut: 1. First Normal Form (1NF) Menghasilkan suatu relasi di mana interseksi dari setiap baris dan kolom mengandung satu dan hanya satu nilai. Untuk itu, di dalam 1NF, dihilangkan repeating groups yang ada, salah satunya dengan cara memasukkan data yang tepat di dalam kolom yang kosong dari baris-baris yang mengandung repeating data. Hasilnya adalah relasi satu-satu di antara atribut yang satu dengan yang lain. 2. Second Normal Form (2NF) Menghasilkan suatu relasi yang telah memenuhi 1NF dan setiap atribut dari non-primary-key bersifat fully functionally dependent terhadap candidate key. Fully functionally dependent merupakan suatu istilah bahwa kelompok atribut yang satu harus tergantung secara penuh terhadap kelompok atribut lainnya
61 (bukan subsetnya saja). Fully functionally dependent di sini juga berarti setiap hubungan yang hanya bersifat partially dependent atau bergantung sebagian terhadap key yang lain, harus dihilangkan. 3. Third Normal Form (3NF) Menghasilkan sebuah relasi yang telah memenuhi 1NF dan 2NF dan tidak ada satu pun atribut dari non-primary-key yang bersifat transitively dependent terhadap candidate key. Transitively dependent berarti menghilangkan atribut yang tidak tergantung pada primary key, melainkan tergantung pada atribut lainnya. (Connolly dan Begg, 2002, pp376-396)
2.12 MySQL MySQL merupakan database open-source yang banyak digunakan dewasa ini. Menurut perusahaan pengembangnya, MySQL telah terpasang di sekitar 3 juta komputer. MySQL dikembangkan oleh sebuah perusahaan Swedia bernama MySQL AB, yang kala itu bernama TcX DataKonsult AB, sejak sekitar 1994–1995, meski cikal bakal kodenya bisa disebut sudah ada sejak 1979. Tujuan mula-mula TcX membuat MySQL pada waktu itu juga memang untuk mengembangkan aplikasi Web untuk klien. TcX adalah perusahaan pengembang software dan konsultan database. Nama MySQL (baca: mai és kju él) diperkirakan diambil dari nama pengembangnya, yaitu Michael Widenius, yang sering dipanggil Monty. MySQL versi 1.0 dirilis Mei 1996 secara terbatas kepada empat orang. Baru di bulan
62 Oktober versi 3.11.0 dilepas ke publik. Namun mula-mula kode ini tidak diberikan di bawah lisensi General Public License, melainkan lisensi khusus yang intinya menyatakan bahwa source code MySQL dapat dilihat dan gratis, serta server MySQL dapat dipakai tanpa biaya tapi hanya untuk kebutuhan non komersial. Untuk kebutuhan komersial seperti mengemas dan menjual atau menyertakan MySQL dalam program komersial lain, harus membayar lisensi. Sementara distribusi Windows MySQL sendiri dirilis secara shareware. Barulah pada Juni 2000 MySQL AB mengumumkan bahwa sejak versi 3.23.19, MySQL adalah software bebas berlisensi GPL, sehingga source code MySQL dapat dilihat dan gratis, serta server MySQL dapat dipakai tanpa biaya untuk kebutuhan apa pun. Barulah di versi-versi akhir 3.22, sepanjang 1998–1999, MySQL menjadi semakin popular dan dilirik orang. Stabilitasnya sudah baik. Kecepatannya meningkat. Sudah tersedia di berbagai platform, termasuk Windows. Seri 3.22 ini banyak dipakai di berbagai instalasi, mungkin hingga sekarang, sehingga MySQL AB tetap memberikan dukungan technical support untuk seri ini. Setelah itu, MySQL semakin berkembang dan ditambahkan fitur-fitur tertentu, sehingga saat ini telah dikembangkan versi 4 dan 5 nya. (http://www.master.web.id/mwmag/issue/04/content/fokus/fokus.html, 2002)
2.13 Java Java adalah suatu bahasa pemrograman yang dikembangkan oleh Sun Microsystems pada Agustus 1991, dengan nama semula Oak. Konon Oak adalah pohon semacam Jati yang terlihat dari jendela tempat pembuatnya, James Gosling, bekerja. Ada yang mengatakan bahwa Oak adalah singkatan dari “Object
63 Application Kernel”, tetapi ada yang menyatakan hal itu muncul setelah nama Oak diberikan. Pada Januari 1995, karena nama Oak dianggap kurang komersial, maka diganti menjadi Java. Beberapa keuntungan yang dimiliki oleh Java adalah dalam hal portabilitas, artinya Java tidak bergantung pada platform. Java memiliki source code khusus yang berbentuk biner yang disebut bytecode yang memungkinkan hasil kompilasi bisa ditampilkan di setiap platform yang berbeda. Java adalah bahasa pemrograman yang berorientasi objek, karena itu konsepkonsep tentang Object-Oriented pun diterapkan di dalam Java. (Kadir, 2004, pp24).
2.14 NetBeans NetBeans merupakan integrated development environment (IDE) yang bersifat open-source dan dibuat menggunakan Java. Pada awalnya, NetBeans dimulai dari sebuah proyek siswa sekolah di Republik Ceska di tahun 1996. Proyek yang awalnya disebut dengan Xelfi itu merupakan IDE pertama Java yang ditulis di dalam bahasa Java, yang dimulai dengan pra-rilisnya di tahun 1997. Salah seorang entrepreneur Ceska yang bernama Roman Stanek, tertarik dalam pengembangan
Xelfi,
dan
akhirnya
menginvestasikan
dananya
untuk
pengembangan Xelfi. Sejak itulah Xelfi pun memasuki dunia bisnis. Rencana awal untuk bisnis tersebut adalah dengan mengembangkan komponen JavaBeans yang dapat terhubung dengan jaringan. Dari sanalah para developer mengembangkan IDE tersebut dan akhirnya menamai pekerjaan mereka NetBeans.
64 Di tahun 1999, Sun Microsystem tertarik dengan Netbeans dalam upaya pengembangan Java-nya. Dan akhirnya NetBeans pun bekerja sama dengan Java dengan mengembangkan NetBeans sebagai IDEnya. Saat ini versi terbaru adalah Netbeans IDE 4.1 yang dirilis pada tanggal 11 Mei 2005, termasuk dengan kemampuan pengembangan Java 2 Platform Enterprise Edition (J2EE). Rilis ini memungkinkan developer untuk tidak hanya mengembangkan aplikasi di dalam web tier, tetapi juga dapat memasukkan Enterprise JavaBeans (EJBs) dan kemampuan pengembangan web service. (http://www.netbeans.org/about/history.html, 2005)