BAB 2 LANDASAN TEORI 2.1 Jaringan Menurut Norton (1999, p5) jaringan adalah kumpulan dua atau lebih komputer beserta perangkat-perangkat lain yang dihubungkan agar dapat saling berkomunikasi dan bertukar informasi sehingga membantu menciptakan efisiensi, dan optimasi dalam kerja. Jaringan komputer (Turban, 2003, p178) merupakan rangkaian yang terdiri dari media komunikasi, peralatan, dan perangkat lunak yang dibutuhkan untuk menghubungkan dua atau lebih sistem komputer. Jaringan komputer diperlukan organisasi atau perusahaan maju untuk banyak alasan, antara lain untuk berbagi perangkat keras, aplikasi komputer, dan database dalam perusahaan. 2.2 Model Referensi Jaringan Model referensi adalah suatu konsep cetak-biru dari bagaimana seharusnya komunikasi berlangsung, menjelaskan semua proses yang diperlukan oleh komunikasi yang efektif, dan membagi proses-proses tersebut menjadi kelompok logis yang bernama layer (Lammle, 2004, p8). Terdapat dua model jaringan yaitu : model OSI dan model TCP/ IP. 7 8 Gambar 2.2 Model Referensi Jaringan (Lammle, 2004, p9) 2.2.1 OSI Model ini diciptakan berdasarkan sebuah proposal yang dibuat oleh The International Standards Organization (ISO) pada tahun 1977 sebagai langkah awal menuju standardisasi protokol internasional. Model ini disebut OSI (Open System Interconnection) Reference Model karena model ini ditujukan bagi pengkoneksian open system (Tanenbaum, 2003, p37). Open system dapat diartikan sebagai suatu sistem yang terbuka untuk berkomunikasi dengan sistem-sistem lainnya. Masing-masing tugas dari 7 OSI Layer : 1. Application Layer: Menyediakan jasa untuk aplikasi pengguna. Layer ini bertanggungjawab atas pertukaran informasi antara program komputer, seperti program e-mail, dan service lain yang jalan di jaringan, seperti server printer atau aplikasi komputer lainnya. 9 2. Presentation Layer: Bertanggung jawab bagaimana data dikonversi dan di-format untuk perpindahan data. Contoh konversi format text ASCII untuk dokumen, .gif dan JPG untuk gambar. Layer ini membentuk kode konversi, translasi data, enkripsi dan konversi. 3. Session Layer: Menentukan bagaimana dua terminal menjaga, memelihara dan mengatur koneksi, bagaimana mereka saling berhubungan satu sama lain. Koneksi di layer ini disebut “session”. 4. Transport Layer: Bertanggung jawab membagi data menjadi segmen, menjaga koneksi logika “end-to-end” antar terminal, dan menyediakan penanganan error (error handling). 5. Network Layer: Bertanggung jawab menentukan alamat jaringan, menentukan rute yang harus diambil selama perjalanan, dan menjaga antrian trafik di jaringan. Data pada layer ini berbentuk paket. 6. Data Link Layer: Menyediakan link untuk data, memaketkannya menjadi frame yang berhubungan dengan “hardware” kemudian diangkut melalui media. komunikasinya dengan kartu jaringan, mengatur komunikasi layer physical antara sistem koneksi dan penanganan error. 7. Physical Layer: Bertanggung jawab atas proses data menjadi bit dan mentransfer-nya melalui media, seperti kabel, dan menjaga koneksi fisik antar sistem. 2.2.2 TCP/IP Transmission Control Protocol/Internet Protocol (TCP/IP) dibuat oleh Department of Defence (DoD) untuk memastikan dan menjaga integritas data 10 (Lammle, 2004, p67). TCP/IP yang merupakan hasil pengembangan dari ARPAnet adalah sekumpulan protokol yang dapat digunakan untuk mengatur komputer dalam berbagai sumber melalui jaringan (Charles L. Hendrick, 1987). Komputer-komputer yang terhubung ke internet berkomunikasi dengan protokol TCP/IP sehingga perbedaan akan jenis komputer maupun sistem operasi tidak menjadi masalah dalam berkomunikasi. Dengan desain dan implementasi yang benar, network TCP/IP bisa menjadi sangat fleksibel dan bisa diandalkan. Pada dasarnya model TCP/IP adalah versi pemadatan model OSI yang terdiri atas empat layer, yaitu : Tabel 2.1 TCP/IP Model Layer Tugas Application Mengintegrasikan berbagai macam aktivitas dan tugas, mendefinisikan protokol untuk komunikasi aplikasi node-node dan juga mengontrol spesifikasi user interface. Transport Mendefinisikan protokol untuk mengatur level service transmisi untuk aplikasi, menciptakan komunikasi end-to-end, menangani packet sequencing, dan menjaga integritas data. Internet Menjaga pengalamatan host dengan memberikan alamat IP dan menangani routing dari paket yang melalui beberapa jaringan. 11 Network Memonitor pertukaran data antara host dan Access jaringan. Tabel 2.2 Protokol TCP/IP 2.2.2.1. TCP Menurut H. Gilbert (1995), TCP adalah protokol yang digunakan bersama dengan IP untuk mengirim data dalam bentuk unit-unit pesan antara komputer ke internet. Pengiriman data ini dapat terjamin karena pada TCP terdapat dua proses data acknowledgment, retransimisi dan sequencing. Dimana TCP selalu meminta konfirmasi setiap kali selesai mengirim data, apakah data telah sampai ke tempat tujuan, kemudian TCP akan mengirim data urutan berikutnya atau melakukan retransimisi, yaitu pengiriman ulang data tersebut. Data yang dikirim dan diterima diatur berdasarkan nomor urut, TCP juga mengawasi paket dimana pesan-pesan dibagi untuk efisiensi routing melewati internet. 12 TCP merupakan protokol yang menyediakan pelayanan seperti (Cormer, 2005, p177) : a. Connection Oriented Dua aplikasi pengguna TCP harus melakukan pembentukan hubungan untuk dapat melakukan pertukaran data. b. Reliable TCP menerapkan proses deteksi kesalahan paket dan retransmisi. c. Byte Stream Service Paket yang dikirim akan sampai pada tujuan secara berurutan. Selain TCP, dikenal juga protokol transport UDP (User Datagram Protocol). UDP memiliki sifat : a. Connectionless Dalam mengirim paket dari tempat asal ke tempat tujuan, masingmasing tidak mengadakan handshake terlebih dahulu. b. Unrealiable Protokol tidak menjamin datagram yang dikirim sampai ke tempat tujuan tetapi berusaha sebaik-baiknya agar paket yang dikirim sampai pada tempat tujuan. 2.2.2.2 Internet Protocol (IP) IP adalah suatu metode atau protokol yang mengatur bagaimana suatu data dikirim dari suatu komputer ke komputer lain dalam suatu network. Setiap hardware (host) yang ada dalam jaringan internet 13 setidaknya memiliki satu alamat IP yang bersifat unik yang berbeda dengan host lainnya. IP mempunyai 3 fungsi utama dalam jaringan TCP/IP internet : a. IP merupakan bagian dasar dalam pengiriman data di internet, mendefinisikan format data yang tepat untuk dikirimkan ke internet. b. IP mendefinisikan fungsi routing dan mendefinisikan pengalamatan dari komputer. c. IP mendefinisikan bagaimana suatu paket data harus diproses, mendefiniskan kapan pesan kesalahan harus disampaikan dan mendefinisikan kapan kondisi suatu paket data harus diabaikan. 2.3 Klasifikasi Jaringan Berdasarkan ukuran, jarak yang dapat dijangkau, dan arsitektur fisiknya, jaringan dapat dibagi menjadi tiga kategori umum yaitu LAN, MAN, dan WAN (Forouzan, 2004, p13). 2.3.1 Local Area Network (LAN) / Jaringan Area Lokal LAN adalah sejumlah komputer yang saling terhubung satu sama lain didalam suatu areal tertentu yang tidak begitu luas, seperti didalam satu kantor, gedung, atau kampus (Forouzan, 2004, p13). Secara tradisional, LAN mempunyai kecepatan transfer data dari 4 sampai 16 Mbps, namun dalam perkembangannya, kecepatan transfer data meningkat dan dapat mencapai 100Mbps. LAN menyediakan koneksi yang sifatnya full-time. Jaringan yang 14 sifatnya lokal menyediakan kontrol jaringan secara private di bawah kendali administrasi lokal. Beberapa model konfigurasi LAN, satu komputer biasanya di jadikan sebuah file server. Yang mana digunakan untuk menyimpan perangkat lunak yang mengatur aktifitas jaringan, ataupun sebagai perangkat lunak yang dapat digunakan oleh komputer-komputer yang terhubung ke dalam network. Komputer-komputer yang terhubung ke dalam jaringan (network) itu biasanya disebut dengan workstation. Biasanya kemampuan workstation lebih di bawah dari file server dan mempunyai aplikasi lain di dalam harddisknya selain aplikasi untuk jaringan. Kebanyakan LAN menggunakan media kabel untuk menghubungkan antara satu komputer dengan komputer lainnya. Gambar 2.3.1 Local Area Network (LAN) 2.3.2 Metropolitan Area Network (MAN) / Jaringan Area Metropolitan Sebuah MAN (Metropolitan Area Network), biasanya mencakup area yang lebih besar dari LAN, misalnya antar wilayah dalam satu propinsi atau MAN ditujukan untuk menghubungkan jaringan komputer dalam satu kota. MAN bisa berupa satu jaringan tunggal seperti jaringan televisi kabel, atau bisa berupa penggabungan sejumlah LAN menjadi jaringan yang lebih besar. MAN biasanya dimiliki dan dioperasikan oleh sebuah perusahaan tertentu, 15 seperti perusahaan publik atau perusahaan telepon lokal (Forouzan, 2004, p14), sebagai contoh yaitu : jaringan bank dimana beberapa kantor cabang sebuah bank di dalam sebuah kota besar dihubungkan antara satu dengan lainnya. Misalnya BANK BNI yang ada di seluruh wilayah Ujung Pandang atau Surabaya. Gambar 2.3.2 Metropolitan Area Network (MAN) 2.3.3 Wide Area Network (WAN) / Jaringan area Skala Besar Wide Area Networks (WAN) adalah jaringan komputer yang mencakup area yang besar sebagai contoh yaitu jaringan komputer antar wilayah, kota atau bahkan negara, atau dapat didefinisikan juga sebagai jaringan komputer yang membutuhkan router dan saluran komunikasi publik. WAN digunakan untuk menghubungkan jaringan lokal yang satu dengan jaringan lokal yang lain, sehingga pengguna atau komputer di lokasi yang satu dapat berkomunikasi dengan pengguna dan komputer di lokasi yang lain. 2.4 VoIP Voice Over Internet Protocol (VoIP) adalah teknologi yang mampu melewatkan trafik suara, video, dan data yang berbentuk paket melalui jaringan IP (Anonim 5, 16 2005). Dalam komunikasi VoIP, pemakai melakukan hubungan telepon melalui terminal yang berupa PC atau telepon. Terminal akan berkomunikasi dengan gateway melalui telepon lokal. Hubungan antar gateway dilakukan melalui network IP. Network IP dapat berupa network paket apapun, termasuk ATM, FR, internet, intranet, atau line E1. VoIP menawarkan transportasi sinyal yang lebih murah, features tambahan, dan transparansi terhadap data komputer. Hambatan VoIP saat ini adalah kehandalannya yang di bawah telepon biasa, dan soal standarisasi yang akan menyangkut masalah interoperabilitas. Komunikasi suara tak terbatas hanya di internet, melainkan juga dapat melalui jaringan intranet, LAN (Local Area Networks) pribadi dan WAN (Wide Area Networks). Selain itu, panggilan dapat dilakukan dari beragam pasangan perangkat, misalnya dari komputer PC-ke-PC, atau dari PC-ke-telepon, atau dari telepon-ketelepon melalui penyedia layanan telepon internet (Internet Telephony Service Provider-ITSP). Dengan bertelepon menggunakan VoIP, banyak keuntungan yang dapat diambil. Diantaranya adalah dari segi biaya, jelas lebih murah dari tarif telepon tradisional, karena jaringan IP bersifat global sehingga untuk hubungan internasional dapat ditekan hingga 70%. Selain itu, biaya maintenance dapat di tekan karena voice dan data network terpisah, sehingga IP Phone dapat ditambah, dipindah dan diubah. Hal ini karena VoIP dapat dipasang di sembarang ethernet dan IP address, tidak seperti telepon tradisional yang harus mempunyai port tersendiri di sentral atau PBX. Secara umum, dapat dikatakan bahwa VoIP merupakan suatu komunikasi pengiriman informasi suara dalam bentuk digital berupa paket-paket data, yang 17 berbeda jika dibandingkan dengan komunikasi suara tradisional melalui PSTN (Public Switched Telephone Network), sebagaimana yang kita lakukan saat ini (Anonim 10, 2005). Komunikasi suara dilakukan melalui jalur komunikasi umum (internet) dan bukannya melalui jaringan kabel milik perusahaan telekomunikasi. Meski begitu, VoIP sebenarnya dapat dilakukan, baik sebagiannya melalui jaringan PSTN maupun sepenuhnya menggunakan jaringan internet. 2.4.1 Tiga jenis metode/cara yang paling sering digunakan untuk melakukan layanan VoIP antara lain (Anonim 5, 2005) : 2.4.1.1 ATA (Analog Telephone Adaptor) ATA adalah alat pengubah sinyal dari analog menjadi digital (Anonim 5, 2005). Cara kerjanya adalah mengubah sinyal analog dari telepon dan mengubahnya menjadi data digital untuk di transmisikan melalui internet. Cara yang paling sederhana dan paling umum adalah dengan menggunakan suatu alat yang disebut ATA. ATA memungkinkan kita untuk menghubungkan pesawat telepon biasa ke komputer atau disambungkan ke internet untuk dipakai VoIP. 2.4.1.2 IP Phones IP Phones merupakan pesawat telepon khusus yang terlihat seperti telepon biasa. Tetapi selain mempunyai konektor RJ-11 standar, IP Phones juga mempunyai konektor RJ-45. IP Phones menghubungkan koneksi secara langsung dari telepon ke router, dan di dalam IP 18 Phones telah tedapat semua perangkat keras maupun lunak yang sudah terpasang di dalamnya untuk menunjang melakukan pemanggilan IP. 2.4.1.3 PC-ke-PC Penggunaan VoIP dengan cara PC-ke-PC dianggap merupakan cara yang paling mudah dan murah untuk melakukan panggilan VoIP, yaitu dengan menyediakan sebuah program (software), mikrofon, speaker, soundcard dan koneksi internet yang relatif cepat seperti koneksi kabel atau DSL. 2.4.2 Kelebihan fitur-fitur VoIP Sebagaimana kita ketahui bahwa dengan menggunakan VoIP, banyak sekali keuntungan-keuntungan yang akan didapatkan seperti pada tabel dibawah ini (Anonim 10, 2005) : Tabel 2.3 Fitur-fitur VoIP (Anonim 10, 2005) Fitur Kelebihan Voice mail Fungsionalitas mesin penjawab dasar (basic). Audioconferencing Menyediakan kemampuan audioconference sambil mengurangi biaya layanan per-menitnya, karena perusahaan dapat memasukkan semua kebutuhan audioconference internalnya ke dalam IP WAN. Unified messaging (voice mail, email, fax) Menyediakan akses voice mail melalui suatu text interface, dan sebaliknya, baik mendorong voice mail ke suatu client, atau mengintegrasikannya ke dalam aplikasi e-mail. Hal itu 19 memungkinkan para pengguna menjadi lebih efisien, mendengarkan e-mail sambil roaming atau sebaliknya dari sebuah komputer. Pengguna juga dapat memindai (scan) membuat prioritas, atau mem-foward atau mendengarkan voice mails melalui suatu PC interface yang boleh jadi lebih mudah dan cepat. Directory services Memungkinkan nomor telepon disimpan dan diakses secara cepat oleh karyawan. Terintegrasi secara baik dengan click-to-dial. Contact centre- Menyediakan fitur-fitur VoIP directory ke contact centre, based directory sehingga memungkinkan dilakukannya rapid dialing, predictive dialing dan berbagai fungsi call centre lainnya. Presence Berbasis model yang digunakan untuk Instant Messenger (IM), memungkinkan para pengguna tak hanya melihat apakah lawan bicaranya sudah logged on, tetapi juga status ketercapaiannya (reachability status) melalui berbagai media (telepon, e-mail, dll). Dapat diintegrasikan dengan penerusan panggilan "find me/follow me" guna menentukan dimana panggilan-panggilan individual harus diteruskan (delivered). Videoconferencing Sama dengan audioconference, tetapi memungkinkan kolaborasi yang lebih dalam melalui berbagai fitur, seperti document sharing, whiteboarding, dan Web co-browsing. Click-to-dial Secara otomatis menghubungi nomor telepon manapun yang disimpan dalam logs atau address book. Menghemat waktu dalam mencari nomor telepon dan memastikan ketepatan dalam 20 membuat panggilan (dialing). Dial plans memetakan nomor-nomor telepon ke alamat tujuan (IP Dial plans addresses). Memungkinkan penggunaan singkatan nomor telepon di antara para pengguna VoIP, sehingga akan lebih mempercepat dan efisien penerusan panggilan telepon. Aplikasi berbasis PC, yang memungkinkan panggilan IP melalui Soft client PC. Memungkinkan layanan-layanan bernilai tambah, seperti videoconferencing. Juga menyediakan kemampuan mobile telephony melalui laptop dan (biasanya) konektivitas Wi-Fi. One-way video Memungkinkan transmisi video Web casts dan konten streaming lainnya, bersamaan dengan panggilan telepon 2.5 XMPP 2.5.1 Pengertian XMPP XMPP (The Extensible Messanging and Presence Protocol) adalah teknologi yang terbuka untuk komunikasi real-time, kekuasaan yang beragam termasuk aplikasi pesan instan, keberadaan multi-pihak obrolan, panggilan voice dan video, kolaborasi, middleware ringan, konten sindikasi, routing atas data XML secara umum. (Anonim 9, 1999). 2.5.2 Sejarah XMPP XMPP pada awalnya dikembangkan community, yang merupakan sebuah oleh komunitas Jabber Open-source Programmer untuk memberikan suatu layanan piranti lunak yang terbuka, aman, bebas spam, 21 desentralisasi alternatif ke layanan pesan instan yang tertutup pada waktu itu. (Anonim 9, 1999). 2.5.3 Kelebihan Layanan XMPP (Anonim 9, 1999) adalah: 2.5.3.1 Open/Terbuka Protokol XMPP yang bebas, terbuka, publik, dan mudah dimengerti; di samping itu, ada beberapa implementasi dalam bentuk klien, server, server komponen, dan kode perpustakaan. 2.5.3.2 Standard Internet Engineering Task Force (IETF) telah memformalisasikan inti dari protokol streaming XML sebagai pesan instan yang telah disetujui dan sebagai teknologi masa kini. Spesifikasi XMPP yang diterbitkan sebagai RFC 3920 dan RFC 3921 pada tahun 2004, dan XMPP Standard Foundation akan terus melanjutkan untuk mempublikasikan berbagai macam seri XEP. 2.5.3.3 Proven/Terbukti Teknologi XMPP/Jabber yang pertama kali dikembangkan oleh Jeremie Miller pada tahun 1998 dan sekarang sudah cukup stabil, ratusan pengembang bekerja pada teknologi ini, terdapat puluhan ribu server Jabber telah dioperasikan di internet saat ini, dan jutaan orang menggunakan XMPP untuk pesan instan melalui pelayanan publik seperti Google Talk dan organisasi XMPP lainnya di seluruh dunia. 2.5.3.4 Decentralized/Desentralisasi Arsitektur dari jaringan XMPP sama dengan email, siapapun dapat menjalankan server XMPP sendiri, memungkinkan individu dan 22 organisasi untuk mengambil kontrol dari pengalaman komunikasi mereka. 2.5.3.5 Secure/Aman Beberapa server XMPP mungkin terisolasi dari jaringan public (misalnya, pada perusahaan intranet), kekuatan keamanan menggunakan SASL dan TLS telah dibangun menjadi spesifikasi inti XMPP, dan jaringan XMPP hampir bebas spam. Selain itu, pengembang XMPP secara aktif bekerja pada enkripsi end-to-end untuk meningkatkan bar keamanan bahkan lebih lanjut. 2.5.3.6 Extensible Dengan menggunakan kelebihan XML, siapa saja dapat membangun beberapa fungsionalitas di bagian atas inti protokol, untuk menjaga interoperabilitas, ekstensi umum diterbitkan dalam serangkaian XEP, tidak membutuhkan publikasi dan jika menghendaki beberapa organisasi dapat memelihara ekstensitas pribadinya sendiri. 2.5.3.7 Flexible/Fleksibel Aplikasi XMPP diluar IM termasuk dalam manajemen jaringan, sindikasi konten, alat-alat kolaborasi, file-sharing, gaming, remote systems monitoring, web services, lightweight middleware, cloud computing, dan lain-lain. 2.5.3.8 Diverse/Beraneka ragam Beberapa perusahan dan proyek open-source menggunakan XMPP untuk membangun dan menyebarkan aplikasi yang real-time 23 dan layanannya. Anda tidak akan pernah get "locked in" ketika menggunakan teknologi XMPP. 2.6 Java 2.6.1 Pengertian Java Java adalah bahasa pemrograman yang dapat dijalankan di berbagai komputer termasuk telepon genggam. Dikembangkan oleh Sun Microsystems dan diterbitkan tahun 1995. (Anonim 3, 2008). 2.6.2 Sejarah Pemrograman Java Bahasa pemrograman Java pertama lahir dari The Green Project, yang berjalan selama 18 bulan, dari awal tahun 1991 hingga musim panas 1992. Proyek tersebut belum menggunakan versi yang dinamakan Oak. Proyek ini dimotori oleh Patrick Naughton, Mike Sheridan, James Gosling dan Bill Joy, beserta sembilan pemrogram lainnya dari Sun Microsystems. Salah satu hasil proyek ini adalah maskot Duke yang dibuat oleh Joe Palrang. Pertemuan proyek berlangsung di sebuah gedung perkantoran Sand Hill Road di Menlo Park. Sekitar musim panas 1992 proyek ini ditutup dengan menghasilkan sebuah program Java Oak pertama, yang ditujukan sebagai pengendali sebuah peralatan dengan teknologi layar sentuh (touch screen), seperti pada PDA sekarang ini. Teknologi baru ini dinamai "*7" (Star Seven). Setelah era Star Seven selesai, sebuah anak perusahaan TV kabel tertarik ditambah beberapa orang dari proyek The Green Project. Mereka memusatkan kegiatannya pada sebuah ruangan kantor di 100 Hamilton Avenue, Palo Alto. Perusahaan baru ini bertambah maju dengan jumlah karyawan meningkat dalam waktu singkat dari 13 menjadi 70 orang. Pada awal tahun 1990-an, 24 internet masih merupakan rintisan, yang hanya dipakai dikalangan akademisi dan militer sudah diterapkan di perusahaan tersebut. Mereka menjadikan perambah (browser) Mosaic sebagai landasan awal untuk membuat perambah Java pertama yang dinamai Web Runner, terinsipirasi dari film 1980-an, Blade Runner. Pada perkembangan rilis pertama, Web Runner berganti nama menjadi Hot Java. Pada sekitar bulan Maret 1995, untuk pertama kali kode sumber Java versi 1.0a2 dibuka. Suatu hari pada pukul 04.00 di sebuah ruangan hotel Sheraton Palace terjadi perpecahan diantara mereka, tiga dari pimpinan utama proyek, Eric Schmidt dan George Paolini dari Sun Microsystems bersama Marc Andreessen, membentuk Netscape. Nama Oak, diambil dari pohon oak yang tumbuh di depan jendela ruangan kerja "bapak java", James Gosling. Nama Oak ini tidak dipakai untuk versi release Java karena sebuah perangkat lunak sudah terdaftar dengan merek dagang tersebut, sehingga diambil nama penggantinya menjadi "Java". Nama ini diambil dari kopi murni yang digiling langsung dari biji (kopi tubruk) kesukaan Gosling. (Anonim 3, 2008). 2.6.3 Versi Awal Java Versi awal Java ditahun 1996 sudah merupakan versi release sehingga dinamakan Java Versi 1.0. Java versi ini menyertakan banyak paket standar awal yang terus dikembangkan pada versi selanjutnya : (Anonim 3, 2008). java.lang: Peruntukan kelas elemen-elemen dasar. 25 java.io: Peruntukan kelas input dan output, termasuk penggunaan berkas. java.util: Peruntukan kelas pelengkap seperti kelas struktur data dan kelaskelas penanggalan. java.net: Peruntukan kelas TCP/IP, yang memungkinkan berkomunikasi dengan komputer lain menggunakan jaringan TCP/IP. java.awt: Kelas dasar untuk aplikasi antarmuka dengan pengguna (GUI). java.applet: Kelas dasar aplikasi antar muka untuk diterapkan pada penjelajah web. 2.6.4 Kelebihan Java (Anonim 3, 2008). 2.6.5.1 Multiplatform Pemrogram cukup menulis sebuah program Java dan dikompilasi (diubah, dari bahasa yang dimengerti manusia menjadi bahasa mesin/bytecode) sekali, lalu hasilnya dapat dijalankan di atas beberapa platform tanpa perubahan. Kelebihan ini memungkinkan sebuah program berbasis java dikerjakan diatas operating system Linux tetapi dijalankan dengan baik di atas Microsoft Windows. Platform yang didukung sampai saat ini adalah Microsoft Windows, Linux, Mac OS dan Sun Solaris. 2.6.5.2 OOP (Object Oriented Programming) Semua aspek yang terdapat di Java adalah obyek. Java merupakan salah satu bahasa pemrograman berbasis obyek secara murni. Semua tipe data diturunkan dari kelas dasar yang disebut Object. Hal ini sangat memudahkan pemrogram untuk mendesain, membuat, mengembangkan dan mengalokasi kesalahan sebuah program dengan 26 basis Java secara cepat, tepat, mudah dan terorganisir. Kelebihan ini menjadikan Java sebagai salah satu bahasa pemograman termudah, bahkan untuk fungsi-fungsi yang advance seperti komunikasi antara komputer sekalipun. 2.6.5.3 Library/Perpustakaan Kelas yang lengkap Java terkenal dengan kelengkapan library/perpustakaan (kumpulan program-program yang disertakan dalam pemrograman Java) yang sangat memudahkan dalam penggunaan oleh para pemrogram untuk membangun aplikasinya. 2.6.5.4 Bergaya C++ Java memiliki sintaks seperti bahasa pemrograman [C++] sehingga menarik banyak pemrogram C++ untuk pindah ke Java. Saat ini pengguna Java sangat banyak, sebagian besar adalah pemrogram C++ yang pindah ke Java. Universitas-universitas di Amerika juga mulai berpindah dengan mengajarkan Java kepada murid-murid yang baru karena lebih mudah dipahami oleh murid dan dapat berguna juga bagi mereka yang tidak mengambil jurusan komputer. 2.6.5 Kekurangan Java (Anonim 3, 2008). 2.6.5.1 Tulis sekali, perbaiki di mana saja Masih ada beberapa hal yang tidak kompatibel antara platform satu dengan platform lain. Untuk J2SE, misalnya untuk SWT-AWT bridge yang tidak berfungsi pada software Mac OS. 27 2.6.5.2 Mudah didekompilasi Dekompilasi adalah proses membalikkan dari kode jadi menjadi kode sumber. Ini dimungkinkan karena kode jadi yang sama juga terjadi pada Microsoft .NET Platform. Dengan demikian, algoritma yang digunakan program akan lebih sulit disembunyikan dan mudah dibajak/diverseengineer. 2.6.5.3 Penggunaan memori yang banyak Penggunaan memori untuk program berbasis Java jauh lebih besar dibandingkan dengan bahasa tingkat tinggi generasi sebelumnya seperti C/C++ dan Pascal. 2.6.6 Integrated Development Environment IDE (Integrated Development Enviroment) yang populer untuk Java saat ini (Juli 2006) antara lain (Anonim 3, 2008) : Dr. Java, program gratis yang dikembangkan oleh Universitas Rice, AS. BlueJ, program gratis yang dikembangkan oleh Universitas Monash, Australia. NetBeans (Common Development and Distribution License (CDDL)), sebuah open source IDE. NetBeans disponsori Sun Microsystems, dan versi terkininya memiliki Matisse, sebuah GUI Editor. Eclipse JDT (Eclipse Public License), sebuah open source IDE. Eclipse dibuat dari kerja sama antara perusahaan-perusahaan anggota 'Eclipse Foundation' beserta individu yang lain. Banyak nama besar yang ikut dalam 'Eclipse Foundation', termasuk IBM, BEA, Intel, Nokia, 28 Borland. Eclipse bersaing langsung dengan NetBeans IDE. Plugin tambahan pada Eclipse jauh lebih banyak dan bervariasi dibandingkan IDE lainnya. IntelliJ IDEA, program yang diperuntukkan untuk komersial, gratis 30 hari trial. Oracle JDeveloper, sebuah program gratis. Xinox JCreator, terdapat versi berbayar maupun gratis. JCreator ditulis dalam C/C++ sehingga lebih cepat dan menggunakan memori lebih sedikit dari kebanykan IDE yang lain. 2.6.7 Contoh program sederhana dalam Java Membuat program HaloDunia : class HaloDunia { public static void main(String[] argumen) { System.out.printlm("Halo Dunia"); } } 2.7 Konsep Messaging Dalam perkembangan teknologi pada saat ini sering terjadi berbagai macam penemuan-penemuan terbaru dari developers guna mempermudah aktivitas dan kegiatan yang dilakukan oleh manusia. Salah satunya messaging yang merupakan alat komunikasi antara komputer satu dengan komputer lain dengan mengirim pesan (message) kepada komputer yang dituju dengan melalui media internet. Dengan 29 demikian dapat diartikan pula messaging sebagai media komunikasi yang mengandalkan internet sebagai media pengiriman pesan (message). Messaging termasuk berbagai spektrum dari email, pesan yang berupa text yang terdapat pada handphone yang biasa disebut SMS (Short Message Service), instant messaging, sampai dengan Voice-Over-IP (VoIP) merupakan teknologi yang sangat diminati pada saat ini karena kemampuannya yang mampu mengirim pesan secara cepat dan dapat diterima secara langsung setelah beberapa detik dikirim oleh pengirim (Anonim 8, 2005). Namun dalam proses pengiriman pesan yang sebenarnya tidak dilakukan secara mudah karena melibatkan client dan server. Client yang ingin mengirim pesan harus melakukan identifikasi terlebih dahulu agar client dapat dikenali oleh server. Pada saat client ingin mengirim pesan maka client harus memberikan alamat tujuan pengiriman pesan tersebut kepada messaging server sehingga ketika pesan tersebut akan diterima oleh messaging server yang akan mengecek alamat yang dituju dan kemudian dikirimkan ke alamat tersebut. Messaging server merupakan suatu program middleware yang menangani pesan yang akan dikirim menggunakan program yang lain dengan menggunakan suatu aplikasi Messaging (Anonim 6, 2007). Dalam pengiriman pesan messaging server memiliki dua model yaitu the point-to-point model dan the publish/subscribe model. Pada the point-to-point model digunakan pada saat pengiriman pesan secara langsung melalui instant messaging sedangkan the publish/subscribe model digunakan pada email (Anonim 7, 2004). 30 2.8 Unified Modeling Language (UML) Unified Modeling Language adalah suatu bahasa yang digunakan untuk memvisualisasi, menspesifikasi, mengkonstruksi dan mendokumentasikan artifak dari perangkat lunak (Booch et al, 1999, p14). Dengan menggunakan UML kita dapat membuat 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 ia lebih cocok untuk penulisan piranti lunak dalam bahasa berorientasi objek seperti C++, Java, C# atau VB.NET. Walaupun demikian, UML tetap dapat digunakan untuk modeling aplikasi prosedural dalam VB atau C. Dalam pemodelan sistem UML memiliki bentuk-bentuk diagram antara lain : 1. Class Diagram Class diagram adalah sebuah diagram yang menggambarkan struktur dan deskripsi class, package dan objek beserta hubungan satu sama lain seperti pewarisan, asosiasi, dan lain-lain. (Booch et al, 1999, p107). Class adalah sebuah mendeskripsikan sebuah objek yang menggambarkan keadaan (atribut/properti) suatu sistem, sekaligus menawarkan layanan untuk memanipulasi keadaan tersebut (metoda/fungsi). Class memiliki 3 area pokok, yaitu nama class, atribut, dan operasi. Hubungan antar class antara lain : Association, yaitu hubungan statis antar class. Umumnya menggambarkan class yang memiliki atribut berupa class lain, atau class yang harus 31 mengetahui eksistensi class lain. Panah navigability menunjukkan arah query antar class. Aggregation, yaitu hubungan yang menyatakan bagian (“terdiri atas..”). Dapat digambarkan dengan wajik tidak terisi Composition, yaitu hubungan yang menyatakan bagian (“berhubungan dengan…”). Dapat digambarkan dengan wajik terisi. Multiplicity, yaitu jumlah objek yang berpastisipasi dalam hubungan antar class. Generalization, yaitu suatu kelas dapat lebih general atau lebih spesifik dari kelas lainnya. Contoh class diagram : Gambar 2.8.1 Class Diagram (Jürgen, 2004, p19) 32 2. Use Case Diagram Use case diagram menggambarkan fungsionalitas dari sebuah sistem. Yang ditekankan dalam use case ini adalah menggambarkan set dari use case dan aktor serta hubungannya dalam sistem suatu aplikasi (Booch et al, 1999, p234). Sebuah use case merepresentasikan sebuah interaksi antara aktor dengan sistem. Use case diagram dapat sangat membantu dalam menyusun requirement sebuah sistem, mengkomunikasikan rancangan dengan client, dan merancang test case untuk semua feature yang ada pada sistem. Hubungan use case diagram antara lain: Actor berperan sebagai pengguna sistem yang berinteraksi dengan use case. Use case berperan aksi-aksi yang ditampilkan dalam sistem. Association berperan sebagai penghubung relasi antara actor dan use case. Extend menunjukkan target dari use case mewarisi tingkah laku extend use case sumber. Include menunjukkan sumber dari use case memasukkan tingkah laku dari use case tujuan secara eksplisit. System Boundary menunjukkan batasan dari sistem yang dibuat untuk mengelilingi use case. Contoh use case: 33 Gambar 2.8.2 Use Case Diagram (Booch et al, 1999, p106) 3. Activity Diagram Activity diagrams menggambarkan berbagai aliran aktivitas dalam sistem yang sedang dirancang dari aliran awal, decision yang mungkin terjadi, dan sampai aliran sistem berakhir (Booch et al, 1999, p258). Activity diagram juga dapat menggambarkan proses paralel yang mungkin terjadi pada beberapa eksekusi. Hubungan activity diagram antara lain: Initial State : menggambarkan titik awal suatu aktifitas suatu sistem. Final State: menggambarkan titik akhir suatu aktifitas suatu sistem. Transition: menggambarkan suatu objek dari state pertama yang akan melakukan suatu aksi tertentu dan memasuki state kedua ketika state sebelumnya telah memenuhi kondisi tertentu. Branch: menggambarkan jalur alternatif yang membutuhkan transisi masukan dan 2 atau lebih transisi keluaran. 34 Concurrent Fork: menggambarkan pemecahan dari aliran kontrol tunggal menjadi 2 atau lebih aliran kontrol yang bersamaan. Concurrent Join: menggambarkan penggabungan dari 2 atau lebih aliran kontrol menjadi 1 aliran kontrol. Action State: sebuah state yang menggambarkan eksekusi dari aksi atomic. Activity State : sebuah state yang menggambarkan eksekusi dari aksi aksi nonatomic dimana state tersebut dapat direpresentasikan oleh aktivitas diagram lainnya. Contoh activity diagram : Gambar 2.8.3 Activity Diagram (Booch et al,1999,p247) 4. Sequence Diagram Sequence diagram menggambarkan interaksi antar objek di dalam dan di sekitar sistem (termasuk pengguna, display, dan sebagainya) berupa message 35 yang digambarkan terhadap waktu. Sequence diagram terdiri antara dimensi vertikal (waktu) dan dimensi horizontal (objek-objek yang terkait) (Booch et al, 1999, p245) Hubungan sequence diagram antara lain : Object Lifeline : sebuah garis yang menggambarkan adanya objek dalam jangka waktu tertentu. Lifeline : menentukan periode waktu ketika pemrosesan terjadi dalam objek tersebut. Message, return, callback message : penyampaian pesan dari satu objek ke objek lain atau ke diri sendiri. Contoh sequence diagram : Gambar 2.8.4 Sequence Diagram (Booch et al,1999,87)