BAB 2 LANDASAN TEORI Pada landasan teori ini penulis akan menjelaskan mengenai berbagai teori-teori dasar yang berkaitan dan mendukung proses penyusunan skripsi ini antara lain teori-teori yang berhubungan dengan pembuatan program messenger serta bagaimana cara kerja jaringan. 2.1 Teori Dasar / Umum 2.1.1 Pengertian Jaringan Computer Network atau jaringan komputer dapat diartikan sebagai 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 (Norton,1999,p5). Bob Metcalfe, penemu ethernet menyatakan bahwa derajat kekuatan dari jaringan komputer meningkat secara eksponensial seiring dengan penambahan jumlah komputer yang dihubungkan kepadanya. Selain itu, setiap komputer yang dihubungkan ke suatu jaringan dapat menggunakan jaringan tersebut sebagai suatu sumber daya (resource) sekaligus turut menambah derajat kekuatan sumber daya yang tersedia dalam jaringan baik dari segi nilai maupun keragamannya. Dengan demikian apa yang disumbangkan suatu komputer ketika dihubungkan kedalam suatu jaringan sesungguhnya berupa sumber daya (resource) yang dimilikinya. Sumber daya ini dapat berupa kemampuan 7 8 memproses, media penyimpanan, informasi maupun berbagai perangkat pendukung lain seperti printer dan scanner. 2.1.2 Open System Interconnection Model Referensi OSI adalah model jaringan komputer yang paling utama. Meskipun ada beberapa model jaringan komputer lainnya, Model Referensi OSI adalah model jaringan komputer yang paling banyak diadopsi oleh beberapa pembuat peralatan jaringan komunikasi. Model Referensi OSI memungkinkan kita untuk melihat fungsi dari jaringan pada setiap layer-nya. Yang lebih penting lagi, model OSI adalah sebuah framework yang dapat mempermudah mengerti bagaimana perjalanan sebuah informasi ke dalam jaringan. Model Referensi OSI dapat digunakan untuk menvisualisasikan bagaimana informasi atau packet data berjalan di dalam aplikasi atau program melalui media komunikasi menuju ke aplikasi atau program lainnya yang terletak pada komputer yang lain pada satu jaringan meskipun penerima maupun pengirim memiliki media jaringan yang berbeda. Pada Model Referensi OSI, ada 7 buah layer yang pada tiap layernya mengilustrasikan fungsi-fungsi jaringan. Pembagian fungsifungsi jaringan ini disebut layering. Membagi sebuah jaringan ke dalam 7 buah layer memiliki keuntungan sebagai berikut: 9 1. Memecah komunikasi jaringan ke bagian yang lebih kecil atau sederhana, 2. standarisasi komponen-komponen jaringan yang dikembangkan oleh beberapa perusahaan yang berbeda, 3. memungkinkan peralatan jaringan dan software yang berbeda dapat berkomunikasi satu sama lain, 4. mencegah perubahan pada satu layer yang dapat mengganggu kinerja layer yang lain, 5. memecah model komunikasi jaringan ke bentuk yang lebih sederhana untuk lebih mudah dipelajari. Arsitektur OSI dibagi menjadi tujuh lapisan, yaitu: Physical Layer Physical Layer mencakup physical interface di antara devices dan aturan bit-bit dilewatkan dari satu ke yang lain. • Data Link Layer Data Link Layer mengupayakan agar link fisik cukup baik dan menyediakan alat-alat untuk mengaktifkan, mempertahankan, dan menonaktifkan link. Servis pokok yang disediakan oleh layer ini untuk lapisan yang lebih tinggi adalah error detection dan flow control. • Network Layer Network Layer menyediakan transfer informasi diantar ujung sistem melewati beberapa jaringan komunikasi berurutan. Ini mengurangi lapisan tertinggi dari kebutuhan untuk mengetahui 10 apapun mengenai transmisi data yang mendasari dan mengganti teknologi-teknologi yang dipergunakan utuk menghubungkan sistem. Pada lapisan ini, sistem komputer berdialog dengan jaringan untuk menentukan alamat tujuan dan meminta fasilitas jaringan tertentu, misalnya prioritas. • Transport Layer Transport Layer menyediakan suatu mekanisme perubahan data di antara ujung sistem. Layanan Transport berorientasikoneksi menjamin bahwa data yang dikirim bebas dari kesalahan, secara bertahap, dengan tidak mengalami duplikasi data atau hilang. Layer ini juga dikaitkan dengan mengoptimalkan penggunaan layanan jaringan dan menyediakan mutu layanan yang bisa diminta untuk entiti sesi. Sebagai contoh, entiti sesi bisa menentukan laju error yang boleh diterima, maksimum penundaan, prioritas, dan pengamanan. • Session Layer Session Layer menyediakan mekanisme untuk mengonrol dialog diantara aplikasi pada ujung sistem. Pada beberapa kasus, akan ada sedikit atau tidak diperlukan untuk layanan Sesion Layer, namun untuk beberapa aplikasi tertentu saja, servis semacam itu diperlukan. • Presentation Layer Presentation Layer menentukan format data yang dipindahkan antar aplikasi dan menawarkan pada program- 11 program aplikasi serangkaian layanan transformasi data. Presentation Layer menentukan sintaks yang digunakan diantara entiti aplikasi serta menyediakan modifikasi seleksi dan subsekuen dari reprensentasi yang digunakan. Contoh dari layanan khusus yang bisa ditampilkan pada lapisan ini adalah kompresi dan enkripsi data. • Application Layer Application Layer menyediakan cara bagi program-program aplikasi untuk mengakses lingkungan OSI. Lapisan ini berisikan fungsi-fungsi manajemen dan mekanisme-mekanisme yang umumnya berguna untuk mendukung aplikasi-aplikasi yang didistribusikan. Selain itu, aplikasi tujuan umum seperti file transfer, surat elektronik (email), dan terminal access untuk komputerkomputer yang berjauhan ditempatkan pada lapisan ini. 12 Gambar 2.1 Gambar Model Referensi OSI 2.1.3 Socket Pemrograman Pengertian socket dapat dibedakan kedalam dua bagian yaitu client socket yakni suatu point terakhir dari percakapan dan server socket yang serupa dengan operator switchboard. Socket yang terhubung memulai percakapan dengan mengirimkan request atau mungkin dengan memberi tanda On. Server socket tidak mengirim dan menerima data, tetapi hanya menghasilkan client socket. Client socket yang terbentuk menanggapi client socket lain dengan cara connect ke host dan port dimana dia terhubung. Dua klien tersebut bebas untuk melakukan pembicaraan. Pada 13 saat koneksi telah terbentuk, socket dapat mengirimkan request dan membaca ulang lalu kemudian dihancurkan. Client socket hanya digunakan untuk pertukaran atau pertukaran yang sekuensial. Pada saat server membuat server socket berarti kita menggunakan socket itu untuk mendapatkan nama host, sehingga socket tersebut terlihat pada mesin. 2.1.4 Pemrograman Thread 2.1.4.1 Pengertian Thread Pemrograman thread adalah suatu pemrograman dimana aplikasi dapat melakukan beberapa aksi / perintah dalam satu waktu. Suatu thread adalah objek system dimana di dalamnya kode program dijalankan. Jika suatu proses awal dibuat maka thread baru dibuat. Thread dapat melakukan tugas yang berbeda atau juga yang berlainan dan kemudian berhenti. Thread bisa melakukan banyak operasi sekaligus. 14 2.1.5 Multimedia 2.1.5.1 Pengertian Multimedia Ada beberapa pengertian multimedia yang diambil dari berbagai sumber. Menurut Vaughan (2004,p1), multimedia diartikan sebagai sebuah kombinasi dari text, gambar, suara, animasi dan video yang ditampilkan dalam komputer atau peralatan elektronik lainnya. Jika pemakai dapat mengontrol apa dan kapan elemen yang disajikan, maka hal tersebut dikatakan Multimedia Interaktif. Sedangkan menurut Hofstetter (2001 ,p2), multimedia adalah penggunaan komputer untuk menampilkan dan menggabungkan teks, grafik, audio dan video dengan link dan tools yang memungkinkan pengguna melakukan pengendalian, berinteraksi dan berkomunikasi. Pengertian dari Hofstetter ini berisi empat komponen penting dalam multimedia, yaitu : 1. Harus ada komputer multimedia yang mengkoordinasikan apa yang harus dilihat dan didengar. 2. Harus ada link yang menghubungkan dengan informasi. 3. Harus ada alat navigasi yang memantau dan menjelajah jaringan informasi yang saling terhubung. 4. Multimedia menyediakan tempat untuk mengumpulkan, memproses dan mengkomunikasikan informasi dari ide sendiri. 15 Dan menurut Dastbaz (2003,p7), multimedia PC adalah suatu desktop komputer pribadi dengan kemampuan audio, video, grafik, teks, dan animasi. 2.1.5.2 Elemen Multimedia Elemen-elemen multimedia menurut Hofstetter (2001,p16) terbagi dalam enam macam, yaitu : 2.1.5.2.1 Teks Teks merupakan salah satu elemen multimedia yang berbentuk huruf – huruf atau angka – angka. Teks dapat dibagi atas : a. Printed Text Printed text adalah kata – kata atau kalimat yang ditampilkan dalam bentuk paragraph di dalam kertas. b. Scanned Text Scanned text adalah teks yang dapat dibaca oleh suatu mesin setelah diproses oleh suatu alat yaitu scanner. c. Electronic Text Electronic text merupakan teks yang dapat dibaca atau dibuat oleh alat elektronik seperti komputer dengan mengunakan program pengolah data (word-processor) atau text-editor. d. Hypertext 16 Awalan hyper menunjuk kepada proses linking, yang membuat multimedia menjadi interakif. Hypertext merupakan teks yang mempunyai link dengan suatu objek berupa teks, file, gambar, maupun suara. 2.1.5.2.2 Grafik Dalam membuat aplikasi multimedia, elemen grafik banyak mendukung dalam desain. Elemen grafik dapat juga digunakan untuk memberi arti pada suatu objek sehingga arti dari suatu objek dapat diketahui walaupun tidak diberikan keterangan secara tekstual, misalnya seperti disket pada Microsoft Word. Macam - macam bentuk grafik menurut Hofstetter (2001,p20), yaitu : a. Bitmaps Bitmaps adalah gambar yang disimpan sebagai kumpulan pixel yang berhubungan dengan titik pada layar komputer. Untuk memunculkan gambar, komputer mengatur setiap titik pada layer untuk diwarnai. Bitmap dapat dibuat dengan menggunakan editor grafik manapun, seperti program Paint yang telah disediakan oleh Windows, atau program gambar komersil seperti Adobe Photoshop atau CorelDRAW. b. Vector Images Vector images disimpan sebagai sekumpulan persamaan matematika yang disebut sebagai algoritma yang menggambarkan 17 kurva, garis, dan bentuk dari sebuah gambar. Vector images mempunyai dua kelebihan dibandingkan dengan bitmap. Pertama, vector images dapat diskala, yang artinya gambar dapat diperbesar atau diperkecil tanpa mengurangi kualitas gambar. Kedua, ukuran file vector images lebih kecil dibandingkan dengan gambar bitmap. c. Clip Art Clip art adalah gambar dalam bentuk jadi yang digunakan untuk mendukung proses pembuatan suatu kerja, baik itu pembuatan desain objek, pembuatan dokumen maupun untuk pembuatan gambar lainnya. d. Digitized Pictures Digitized picture adalah gambar yang dihasilkan dari media elektronik digital seperti kamera digital dan kamera video. e. Hyperpictures Hyperpicture adalah gambar yang mempunyai link pada suatu objek, sama seperti hypertext. Objek itu dapat berupa teks, gambar atau suatu aplikasi. 2.1.5.2.3 Suara Menurut Hofstetter (2001,p22), ada empat tipe dari objek suara yang dapat dipergunakan dalam pembuatan multimedia, yaitu : a. Waveform Audio 18 Waveform audio digunakan untuk mendeskripsikan frekuensi, amplitude dan harmonisasi dari suatu suara. b. MIDI MIDI singkatan dari Musical Instrument Digital Interface, merupakan cara yang sangat efisien dalam merekam musik. Dalam sebuah suara yang membutuhkan banyak tempat penyimpanan, dibanding waveform, MIDI merekam informasi yang diperlukan sound chip komputer untuk memainkan musik. MIDI merekam informasi yang dibutuhkan sound chip pada komputer untuk memainkan musik. c. Audio CD Audio CD dapat menampung sampai 75 menit rekaman suara dalam kualitas yang baik. Audio CD mempunyai ukuran rata – rata sampling 44.100 hertz per detik, dengan ukuran 16 bit untuk satu sampling dan tingkat kebisingan mencapai 98 dB (desible). Berdasarkan informasi diatas, maka dapat disimpulkan bahwa audio CD membutuhkan ukuran yang besar. d. MP3 MP3 adalah singkatan dari MPEG Audio Layer 3. MP3 dapat mengkompres suara pada CD audio kedalam ukuran yang lebih kecil tanpa mengurangi kualitas suara. e. Hyperaudio Disaat audio digunakan untuk memicu jalannya objek multimedia, maka itu dapat kita sebut dengan hyperaudio. 19 2.1.5.2.4 Animasi Animasi adalah penggunaan komputer untuk menciptakan gerakan pada layar. Ada empat jenis animasi yang dapat digunakan (Hofstetter,2001,p26), yaitu : a. Frame Animation Frame animation membuat objek bergerak dengan menampilkan rangkaian gambar, yang disebut frame, yang dimana objek muncul dalam lokasi yang berbeda – beda pada layer. b. Vector Animation Vector animation menggerakkan objek dengan memvariasikan tiga parameter, yaitu titik awal, arah dan panjang. Salah satu contoh animasi vector adalah animasi menggunakan flash. c. Computational Animation Computational animation menggerakkan objek dengan mengubah koordinat x dan y dari objek tersebut. d. Morphing Morphing berarti transisi dari suatu bentuk ke bentuk lain dengan menampilkan rangkaian frame yang menciptakan pergerakan halus dari transformasi bentuk awal ke bentuk lain. 20 2.1.5.2.5 Software dan Data Keberadaan piranti lunak merupakan salah satu konsep multimedia, yaitu membuat hubungan ke dokumen atau data. Saat user memicu link ke suatu dokumen tertentu, komputer secara otomatis menampilkan aplikasi dan dokumen tersebut. Ini adalah suatu integrasi yang merupakan salah satu konsep multimedia. 2.1.6 Java 2.1.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 2, 2008). 2.1.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. Oak dikembangkan pada awal tahun sembilan puluhan di Sun Microsystems sebagai bahasa platform-independent dengan tujuan memungkinkan peralatan hiburan seperti konsol permainan video dan VCR untuk berkomunikasi. Oak pertama kali tercatat akan muncul di televisi set-top box yang dirancang untuk menyediakan layanan video-on – demand. Proyek ini dimotori oleh Patrick Naughton, Mike Sheridan, James Gosling dan Bill Joy, beserta sembilan pemrogram lainnya dari Sun 21 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,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 22 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 2, 2008). 2.1.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 2, 2008). • java.lang: Peruntukan kelas elemen-elemen dasar. • java.io: Peruntukan kelas input dan output, termasuk penggunaan berkas. • java.util: Peruntukan kelas pelengkap seperti kelas struktur data dan kelas- • kelas penanggalan. • java.net: Peruntukan kelas TCP/IP, yang memungkinkan berkomunikasi dengan komputer lain menggunakan jaringan TCP/IP. 23 • java.awt: Kelas dasar untuk aplikasi antarmuka dengan pengguna (GUI). • java.applet: Kelas dasar aplikasi antar muka untuk diterapkan pada penjelajah web. 2.1.6.4 Kelebihan Java 2.1.6.4.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.1.6.4.2 OOP (Object Oriented Program) 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 basis Java secara cepat, tepat, mudah dan terorganisir. Kelebihan ini 24 menjadikan Java sebagai salah satu bahasa pemograman termudah, bahkan untuk fungsi-fungsi yang advance seperti komunikasi antara komputer sekalipun. 2.1.6.4.3 Library / Perpustakaan Kelas yang lengkap Java terkenal dengan kelengkapan library/perpustakaan (kumpulan program-program pemrograman penggunaan Java) oleh yang para yang sangat pemrogram disertakan dalam memudahkan dalam untuk membangun aplikasinya. 2.1.6.4.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. Universitasuniversitas 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.1.6.5 Kekurangan Java 2.1.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. SWT (Standard Widget Toolkit) adalah open source 25 widget toolkit untuk Java yang dirancang untuk memberikan efisien, portabel akses ke fasilitas antarmuka pengguna dari sistem operasi yang diterapkan. Sedangkan AWT (Abstract Window Toolkit) adalah platform-independen Java asli dari windowing, grafik, dan user interface widget toolkit. AWT sekarang merupakan bagian dari Java Foundation Classes (JFC) - standar API untuk menyediakan Graphic User Interface (GUI) untuk program Java. 2.1.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.1.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.1.6.6 Integrated Development Environment IDE (Integrated Development Enviroment) yang populer untuk Java saat ini (Juli 2006) antara lain (Anonim 2, 2008) : Dr. Java, program gratis yang dikembangkan oleh Universitas Rice, AS. BlueJ, program gratis yang dikembangkan oleh Universitas 26 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 perusahaanperusahaan anggota 'Eclipse Foundation' beserta individu yang lain. Banyak nama besar yang ikut dalam 'Eclipse Foundation', termasuk IBM, BEA, Intel, Nokia, 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 kebanyakan IDE yang lain. 2.1.7 Perancangan User Interface Interface menurut Heller dan Drennan (1997,p50) adalah sarana dimana manusia dapat berinteraksi dengan komputer (mesin). Sistem yang baik harus memperhatikan unsur interface dalam perancangan dan pembuatannya. Sistem harus bersifat user friendly sehingga akan lebih 27 mudah untuk dipelajari, dimengerti, dan tidak membingungkan bagi pengguna yang ingin menggunakan sistem tersebut. Interface yang menarik dapat meningkatkan minat pengguna untuk mencoba menggunakan sistem tersebut. Interface suatu sistem harus dibuat sedemikian rupa sehingga tidak membuat penggunanya merasa frustasi, gagal dan takut. Shneiderman juga menetapkan Eight Golden Rules (Delapan Aturan Emas) (1998, p74-75) yang dapat dijadikan panduan didalam membuat user interface yang baik yaitu: • Konsistensi, hal ini diperlukan dalam penulisan teks, pemilihan warna, dan sebagainya. • Mengijinkan pengguna untuk menggunakan tombol-tombol bantu (shortkeys) untuk memudahkannya dalam berinteraksi dengan komputer. • Supaya tidak membingungkan pengguna, umpan balik yang diberikan komputer harus informatif. • Rancangan komunikasi interaktif dengan pengguna. • Tersedia penanganan kesalahan yang tepat jika pengguna melakukan kesalahan. • Membiarkan pengguna memperbaiki kesalahannya sendiri. • Pengguna dapat mengendalikan sistem secara keseluruhan. • Mengurangi beban ingatan jangka pendek, sehingga pengguna tidak perlu banyak menghapal. 28 2.2 Teori Khusus 2.2.1 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 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 5, 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. 29 Messaging server merupakan suatu program middleware yang menangani pesan yang akan dikirim menggunakan program yang lain dengan menggunakan suatu aplikasi Messaging (Anonim 3, 2007). Dalam pengiriman pesan messaging server memiliki dua model yaitu the pointto-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 6, 2004). 2.2.2 Fitur – fitur yang akan diberikan Pengiriman Multimedia Instant Messenger ini memiliki beberapa fitur, di antaranya: 1. Instant messages Sebuah teknologi Internet yang mengizinkan para pengguna dalam jaringan internet untuk mengirimkan pesanpesan singkat secara langsung pada saat yang bersamaan (real time) menggunakan teks kepada pengguna lainnya yang sedang terhubung ke jaringan yang sama. Konsep yang digunakan oleh teknologi ini muncul pada awal-awal pengembangan sistem operasi UNIX dan jaringan Internet; para pengguna yang sudah masuk log dapat mengirimkan perintah berupa <code>talk</code>, write, dan 30 finger untuk melihat siapa saja yang sudah masuk log dan akhirnya mengirimkan pesan singkat kepada mereka. Istilah pesan instan (instant messaging) saat ini pada umumnya mengacu kepada sebuah teknologi yang dipopulerkan oleh America Online (AOL), yang kemudian diikuti oleh Yahoo! (Yahoo! Messenger), Google, dan Microsoft (Windows Live Messenger) dan perusahaan-perusahaan lainnya. 2. Chat Menciptakan private message dengan beberapa orang dan broadcast message ke semua orang yang sedang online dalam jaringan LAN tersebut. 3. Emoticon Menampilkan emotion icon berupa gambar bergerak atau animasi. 2.2.3 OpenYMSG OpenYMSG didasarkan pada jYMSG (http://jymsg9.sourceforge.net). Pengembangan awal Tujuannya adalah untuk meningkatkan library jymsg9. Selama diskusi tentang bagaimana untuk mencapai hal ini, tujuan proyek yang berbeda muncul. Hal ini menghasilkan sebuah kesepakatan bersama untuk cabang dari 31 pengembangan jYMSG, dan memulai sebuah proyek baru. OpenYMSG lahir. 2.2.4 Eclipse Eclipse adalah sebuah IDE (Integrated Development Environment) untuk mengembangkan perangkat lunak dan dapat dijalankan di semua platform (platform-independent). Berikut ini adalah sifat dari Eclipse: • Multi-platform Target sistem operasi Eclipse adalah Microsoft Windows, Linux, Solaris, AIX, HP-UX dan Mac OS X. • Mulit-language Eclipse dikembangkan dengan bahasa pemrograman Java, akan tetapi Eclipse mendukung pengembangan aplikasi berbasis bahasa pemrograman lainnya, seperti C/C++, Cobol, Python, Perl, PHP, dan lain sebagainya. • Multi-role Selain sebagai IDE untuk pengembangan aplikasi, Eclipse pun bisa digunakan untuk aktivitas dalam siklus pengembangan perangkat 32 lunak, seperti dokumentasi, test perangkat lunak, pengembangan web, dan lain sebagainya. Eclipse pada saat ini merupakan salah satu IDE favorit dikarenakan gratis dan open source, yang berarti setiap orang boleh melihat kode pemrograman perangkat lunak ini. Selain itu, kelebihan dari Eclipse yang membuatnya populer adalah kemampuannya untuk dapat dikembangkan oleh pengguna dengan komponen yang dinamakan plugin.