BAB II
TINJAUAN PUSTAKA
2.1 Chatting
Chatting atau pesan instan (bahasa Inggris: Instan messaging) adalah sebuah teknologi internet yang memungkinkan para pengguna dalam jaringan internet untuk mengirimkan pesan-pesan singkat secara langsung pada saat yang bersamaan (real time) dengan menggunakan teks kepada pengguna lainnya yang sedang terhubung ke jaringan yang sama.
Konsep yang digunakan oleh teknologi ini muncul pada awal-awal pengembanagn sistem operasi UNIX dan jaringan Internet; para pengguna yang sudah masuk log dapat mengirimkan perintah berupa <code>talk</code>, write, dan finger untuk melihat siapa saja yang sudah masuk logdan akhirnya mengirimkan pesan singkat kepada mereka.
Istilah pesan instan (instan 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 lainnnya.
Gambar 2.1 Arsitektur Chatting
(Sumber : Muhammad Syaukani, 2010)
2.2 Java
Java adalah nahasa pemrograman yang berorientasi objek (OOP) yang dapat dijalankan pada berbagai platform sistem operasi. Perkembangan java tidak hanya terfokus dalam satu sistem operasi dan bersifat open source.
Sintaks bahasa yang digunakan dalam java meruapkan pengembangan dari bahasa C/C++. Ini dilakukan karena bahasa C/C++ merupakan bahasa yang telah dikenal oleh banyak programmer sehinaga mempelajari Java seharusnya bukan merupakan sesuatu yang sulit. Selain itu, bahasa C/C++ juga telah dikenal sebagai bahasa yang andal, bahkan dapat dikatakan era pemrograman modern dimulai oleh bahasa C yang kemudian diteruskan oleh paradigma pemrograman berorientasi objeknya yang terkenal. Segala kelebihan bahasa inilah yang dikembangkan lebih lanjut di dalam bahasa Java (Jeni 2010:6-7).
2.3 PHP
PHP (akronim dari PHP: Hypertext Preprocessor) adalah bahasa pemrograman yang berfungsi untuk membuat website dinamis maupun aplikasi web. Berbeda dengan HTML yang hanya bias menampilkan konten statis, PHP bisa berinteraksi dengan database, file dan folder, sehingga membuat PHP bisa menampilkan konten yang dinamis dari sebuah website. Blog, Toko Online, CMS, Forum, dan Website Social Networking adalah contoh aplikasi web yang bisa dibuat oleh PHP. PHP adalah scripting, bukan bahasa tag-based seperti HTML. PHP termasuk bahasa yang cross-platform, ini artinya PHP bias berjalan pada sistem operasi yang berbeda-beda (Windows, Linux, ataupun Mac). Program PHP ditulis dalam file plaint text (teks biasa) dan mempunyai akhiran “.php”. (Triswansyah Yuliano, 2007)
Gambar 2.2 Skema WEB
(Sumber : Triswansyah Yuliano, 2007)
PHP adalah bahasa scripting yang ditempelkan apda sebuah halaman website, artinya PHP disisipkan pada halaman HTML lainnya adalah dengan mengedit atau menambahkan halaman web yang mengandung PHP dengan cara yang sama disaat mengedit halamn HTML.
PHP bekerja sama dengan Web Server, Web Server adalah Software yang akan mengirimkan halaman website ke browser disaat user mengetik sebuah URL (alamat sebuah website) di sebuah browser (seperti Mozilla Firefox, Google Chrome, Safari, Netscape, dan lain-lain), dengan kata lain user sedang mengirimkan sebuah pesan ke Web Server agar menampilkan sebuah file HTML. Disaat yang sama web server akan meresponnya dengan menampilkan file yang diinginkan, Selanjutnya browser akan membaca file HTML tersebut dan menampilkannya dalam bentuk halaman website begitu juga jika sebuah tombol dalam website tersebut ditekan, hal tersebut merupakan proses pengguna sedasng mengirmkan pesan agar browser menampilkan sebuah file kepada user.
Apabila software PHP terinstall di web server, maka web server akan memerintahkan file dengan ekstension tertentu untuk memuat statemen-statemen PHP. Ekstensi file tersebut biasanya .php atau .phtml atau ekstensi lainnya. Saat Web Server mendapatkan perintah untuk menampilkan file-file dengan ekstensi tersebut,
maka ia akan mengirimkan statemen HTML, tetapi sebelumnya statemen-statemen yang ada di dalam file tersebut diproses dulu oleh PHP sebelum dikirimkan ke sang pemberi perintah.
2.4 Android
Menurut Nazrudin Safaat H (2011 :1,“Android adalah sebuah sistem operasi untuk perangkat mobile berbasis linux yang mencakup sistem operasi, middleware, dan aplikasi.”. Android adalah sistem operasi untuk telepon seluler yang berbasis Linux. Android menyediakan platform terbuka bagi para pengembang untuk membuat aplikasi mereka sendiri. Pada awalnya dikembangkan oleh Android Inc, sebuah perusahaan pendatang baru yang membuat perangkat lunak untuk ponsel yang kemudian dibeli oleh Google Inc. Untuk pengembangannya, dibentuklah Open Handset Alliance (OHA), konsorsium dari 34 perusahaan perangkat keras, perangkat lunak, dan telekomunikasi termasuk Google, HTC, Intel, Motorola, Qualcomm, T-Mobile, dan Nvidia
Dalam sub bab ini, kami akan membahas mengenai berbagai macam hal mengenai Android, serta tools apa saja yang akan digunakan untuk mengembangkan aplikasi yang kami rancang ini.
2.4.1 Fitur Android
Adapun beberapa fitur – fitur menurut Safaat (2012 : 5) yang tersedia di Android adalah sebagai berikut ini :
Kerangka aplikasi: memungkinkan penggunaan dan penghapusan komponen yang tersedia.
Dalvik mesin virtual: mesin virtual dioptimalkan untuk perangkat telepon seluler.
Grafik: grafik di 2D dan grafis 3D berdasarkan pustaka OpenGL. SQLite: untuk penyimpanan data.
Mendukung media: audio, video, dan berbagai format gambar (MPEG4, H.264, MP3, AAC, AMR, JPG, PNG, GIF)
GSM, Bluetooth, EDGE, 3G, 4G dan WiFi (tergantung piranti keras) Kamera, Global Positioning System (GPS), kompas, NFC dan
accelerometer (tergantung piranti keras)
2.4.2 Android SDK
Menurut Safaat (2012 : 5), Android SDK adalah tools API (Application Programming Interface) yang diperlukan untuk mengembangkan aplikasi pada platform Android yang menggunakan bahasa pemrograman Java. Android merupakan subset perangkat lunak untuk ponsel yang meliputi sistem operasi, middleware dan aplikasi kunci yang di-release oleh Google. Saat ini disediakan Android SDK (Software Development Kit) sebagai alat bantu dan API untuk mengembangkan aplikasi pada platform Android menggunakan bahasa pemrograman Java. Sebagai platform Android aplikasi – netral, Android memberi Anda kesempatan untuk
membuatAplikasi yang kita butuhkan yang bukan merupakan aplikasi bawaan Handphone/Smartphone.
2.4.3 ADT (Android Development Tools)
Safaat (2012 : 6) juga memaparkan bahwa Android Development Tools (ADT) adalah plug-in yang didesain untuk IDE Eclipse yang memberi kita kemudahan dalam mengembangkan aplikasi Android dengan menggunakan IDE Eclipse. Dengan menggunakan ADT untuk Eclipse, ini akan memudahkan kita dalam membuat aplikasi project Android, membuat GUI aplikasi, dan menambahkan komponen – komponen yang lainnya. Selain itu kita juga dapat melakukan running aplikasi menggunakan Android SDK melalui Eclipse. Dengan ADT kita juga dapat melakukan pembuatan package Android (.apk) yang digunakan untuk distribusi aplikasi Android yang kita rancang.
Mengembangkan aplikasi Android dengan menggunakan ADT di Eclipse sangat mudah dan baik untuk memulai mengembangkan aplikasi Android. Semakin tinggi platform Android yang kita gunakan, maka penggunaan ADT dianjurkan untuk memakai versi yang lebih baru, karena munculnya platform baru diikuti oleh munculnya versi ADT yang terbaru. Versi ADT yang kami gunakan untuk Eclipse dalam pembuatan aplikasi ini adalah versi terbaru ADT yang telah dirilis, yaitu ADT 20.0.3 (Agustus 2012).
2.4.4 AVD (Android Virtual Device)
Menurut Safaat (2012 : 19), AVD merupakan emulator yang digunakan untuk menjalankan program aplikasi Android yang telah dirancang. AVD dapat dikonfigurasi agar dapat menjalankan berbagai macam versi Android yang telah diinstal. Dalam perancangan aplikasi ini, kami menggunakan konfigurasi Android versi 4.0 (Ice Cream Sandwich)
2.4.5 IDE Eclipse
Menurut Fatimah (2011), Eclipse adalah sebuah IDE (Integrated Development Environment) untuk mengembangkan perangkat lunak agar 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++, Java, Cobol, Python, Perl, PHP, dan lain sebagainya.
Multi-role: Selain sebagai IDE untuk pengembangan aplikasi, Eclipse pun dapat digunakan untuk aktivitas dalam siklus pengembangan perangkat lunak, seperti dokumentasi, test perangkat lunak, pengembangan web, dan lain sebagainya. Eclipse pada saat ini merupakan salah satu IDE favorit dikarenakan gratis dan bersifat open source, yang berarti setiap orang boleh melihat kode pemrograman perangkat lunak ini. Selain itu, kelebihan dari Eclipse adalah kemampuannya
untuk dapat dikembangkan oleh user dengan komponen yang dinamakan plug-in. Eclipse yang kami gunakan untuk mengembangkan aplikasi ini adalah Eclipse Classic 4.2.1
2.4.6 JDK (Java Development Kit)
Menurut DeCoster (2012), Java adalah sebuah teknologi yang diperkenalkan oleh Sun Microsysytems pada pertengahan tahun 1990. Menurut definisi Sun, Java adalah nama untuk sekumpulan teknologi untuk membuat dan menjalankan perangkat lunak pada computer standalone ataupun pada lingkungan jaringan. Untuk membuat program Java dibutuhkan kompiler dan interpreter untuk program Java berbentuk Java Development Kit (JDK) yang diproduksi oleh Sun Microsystems. Sebelum memulai instalasi Android SDK, terlebih dahulu kita harus melakukan instalasi JDK di komputer. JDK yang kami gunakan untuk dapat mengompilasi aplikasi android yang kami rancang ini adalah Java SE Development Kit .
2.5 MySQL
MySQL adalah multiuser database yang menggunakan bahasa Structured Query Language (SQL). MySQL dalm operasi client-server melibatkan server daemon MySQL di sisi server dan berbagai macam program serta library yang berjalan disisi client. MySQL mamu menangani data yang cukup besar. Perusahaan yang mengembangkan MySQL yaitu Tex, mengaku mampu menyimpan data lebih
dari 40 database, 10.000 tabel dan sekitar 7 juta baris, totalnya kurang lebih 100 Gigabyte data.
MySQL adalah sebuah database server yang mampu menangani beberapa user didalamnya. Dengan demikian, MySQL juga mampu menangani beberapa instruksi sekaligus dalam setiap waktu akses. Di dalam sistemnya MySQL merekam semua data user dalam table user yang berada pada database yang ebrnama MySQL. Dalam table user tersebut semua akses dan hak akses user mampu ditangani dengan baik.
MySQL mampu menangani beberapa aplikasi lain yang mengakses data yang disimpannya. Aplikasi-aplikasi tersebut dapat berupa program compiler maupun bahasa scripting server lite seperti PHP, perl, CGI, dan java. Karena kebutuhan tersebut server MySQL memerlukan sebuah program lain untuk menghubungkan aplikasi dengan data server yaitu MyODBC untuk program yang bersifat compiler ataupun Personal Web Server (PSW) untuk menangani aplikasi-aplikasi yang berbasis web.
Berikut ini beberapa kemampuan MySQL dalm teknik mengakses data maupun mengola server-nya :
1. Lokal Client, berfungsi sebagai Client yang dijalankan pada komputer lokal dimana MySQL itu berjalan.
2. Remote Client, server MySQL dapat diakses melalui computer jaringan dengan cara meremote. Pada proses remote dapat menggunakan program
client yang berjalan pada aplikasi Unix seperti SSH maupun telnet yang sebelumnya harus login terlebih dahulu pada sistem computer server. 3. Remote Login, MySQL dapat diakses dengan menggunakan program
MySQL yang berada pada computer lain, sehingga computer tersebut berfungsi sebagai client MySQL.
4. Web Browser, dengan menggunakan fungsi-fungsi API yang dimiliki MySQL, database dapat diakses menggunakan program yang dibuat dengan sebuah program yang berbasis web server site yang berjalan di bawah browser.
5. Scripting Language, MySQL juga diakses melalui program aplikasi client yang kita ciptakan sendiri dengan menggunakan pemrograman visual maupun non visual yang berjalan di dalam jaringan. Untuk program client yang berbasis GUI anda dapat menggunakan MySQL manager SQL adalah bahasa standar yang digunakan untuk mengakses database server. Bahasa ini pada awalnya dikembangkan oleh IBM, namun telah diadopsi dan digunakan standar industry. Dengan menggunakan SQL, proses akses database menjadi lebih user-friendly dibandingkan menggunakan database atau Clipper yang masih menggunakan perintah-perintah pemrograman (Sunarfrihantono, 2002).
2.6 Database
Database adalah sekumpulan file data yang saling berhubungan dan diorganisasikan agar memudahkan untuk mendapatkan dan memproses data (Sutabri, 2004). Adapun pemakai bisa melakukan operasi-operasi berikut :
1. Membuat file baru ke basisdata 2. Menambahkan data baru 3. Menampilkan isi file 4. Mengubah data dalam file 5. Menghapus data dalam file 6. Menghapus file
Perbedaan penting antara basis data dengan sistem pengolahan basisdata (SPBD). SPBD merupakan terjemahan dari Database Management System (DBMS). Sebuah DBMS bisa di bandingkan dengan OS. Keduanya adalah mesin semu (virtual machine). Setiap mesin semu mendefinisikan tipe-tipe (data), operasi-operasi (yang terkait dengan tipe-tipe tersebut), nilai-nilai, dan aturan perubahan nilai objek-objek yang sesuai dengan tipe setiap objek (I.Hutabarat, 2004).
2.7 Unified Modelling Language (UML)
Whitten dan Bentley (2007) mengatakan Unified Modelling Language (UML) adalah blueprint dari sistem informasi yang akan dibuat dalam pengembangan software. Setiap UML memiliki fungsi dan tujuan yang berbeda dalam
pengembangan software sesuai dengan jenisnya. Terdapat tiga belas diagram yang dapat dipakai untuk pengembangan software dalam UML 2.0 yaitu:
1. Use Case 2. Activity 3. Class 4. Object 5. State Machine 6. Composite Structure 7. Sequence 8. Communication 9. Interaction Overview 10. Timing 11. Component 12. Deployment 13. Package
Dalam pengembangan software, dari ketiga belas diagram tersebut tidak semua perlu untuk digunakan. UML yang digunakan dipilih sesuai dengan kebutuhan, dengan syarat sudah dapat menggambarkan proses pengembangan sistem secara jelas.
2.7.1 Use Case Diagram
Menurut Whitten dan Bentley (2007), use case diagram merupakan salah satu bagian dari use case modelling. Use case diagram digunakan untuk menggambarkan secara jelas proses yang akan dijalankan oleh sistem. Dalam use case digram terdapat tiga komponen utama yaitu:
1. Use Case
Use case adalah aktivitas yang akan dilakukan dalam sistem berupa interaksi antara sistem dan user untuk mencapai satu tujuan tertentu. Use case digambarkan dalam bentuk elips mendatar yang memiliki keterangan pada bagian atas, bawah, atau dalam dari elips tersebut.
Gambar : Contoh Use Case Diagram 2. Actor
Actor adalah user yang akan berinteraksi dalam sistem dengan melaksanakan use case untuk bertukar informasi. Actor digambarkan dalam bentuk stick figure dengan label peran actor tersebut dalam sistem. Adapun peran actor dapat dibedakan menjadi empat, yaitu primary
business actor, primary system actor, external server actor, dan external receiver actor.
Gambar 2.4 Simbol Actor 3. Relationship
Relationship adalah hubungan dari dua simbol dalam use case diagram yang digambarkan dalam bentuk garis. Arti dari hubungan tersebut berbeda-beda tergantung dari jenis garis dan simbol yang dihubungkan. Berikut adalah hubungan yang ada dalam use case diagram:
a. Associations
Komunikasi antara use case dan actor digambarkan sebagai hubungan associations. Garis associations dapat memiliki anak panah yang berarti actor berperan sebagai pelaku dari use case tersebut, sedangkan garis tanpa anak panah berarti actor hanya berperan sebagai external database atau penerima dari use case tersebut.
b. Extends
Sebuah use case yang cukup kompleks dapat dipisahkan menjadi extension use case yaitu dengan membuat hubungan extends dengan use case lainnya. Pemisahan tersebut berguna untuk membuat use case tetap berjalan sesuai logika, tetapi dengan penulisan yang lebih simpel. Hubungan tersebut dapat digambarkan menggunakan garis solid atau putus-putus dengan anak panah dan label <<extends>> di samping garis tersebut.
Gambar 2.6 Contoh Hubungan Extends c. Uses atau Includes
Dalam use case diagram sistem yang dibuat dapat memiliki banyak use case yang fungsinya secara umum sama tetapi ditulis berulang-ulang sehingga menyebabkan redudansi. Hal tersebut dapat diatasi dengan hubungan uses atau includes kepada suatu use case dengan fungsi umum tersebut yang biasa disebut abstract use case. Hubungan tersebut
dapat digambarkan dengan garis solid atau putus-putus dengan anak panah dan label <<uses>> di samping garis tersebut.
Gambar 2.7 Contoh Hubungan Uses (Includes)
2.7.2 Use Case Narrative
Menurut Whitten dan Bentley (2007), use case narrative merupakan salah satu bagian dari use case modelling yang berisikan rincian dari setiap event dan menerangkan bagaimana user berinteraksi dengan sistem selama event terjadi.
2.7.3 Activity Diagram
Menurut Whitten dan Bentley (2007), activity diagram digunakan untuk menggambarkan proses dari aktivitas dalam suatu sistem. Melalui activity diagram dapat dilihat secara jelas urutan dari use case yang akan dijalankan. Berikut adalah tabel notasi yang akan digunakan dalam menggambarkan activity diagram:\
Tabel 2.1 Tabel Notasi Activity Diagram
Notasi Keterangan
Notasi ini menggambarkan awal proses dari activity
diagram
Notasi ini menggambarkan sebuah aktivitas yang jika disusun secara keseluruhan akan menggambarkan keseluruhan aktivitas dalam activity diagram
Notasi ini menggambarkan jalannya aktivitas dalam
activity diagram. Jika notasi ini keluar dari decision,
maka dibutuhkan kata-kata untuk mengidentifikasikannya
Notasi ini menggambarkan keadaan bersyarat, yaitu
decision dan merge.
1. Decision
Satu flow akan masuk ke dalam decision dan menghasilkan dua atau lebih flow lainnya yang merupakan hasil pilihan dari kondisi yang ada. 2. Merge
Dua atau lebih flow hasil dari decision akan masuk ke dalam merge dan menggabungkannya kembali menjadi satu flow.
Notasi ini menggambarkan keadaan paralel, yaitu fork dan join.
1. Fork
Satu flow akan masuk ke dalam fork dan menghasilkan dua atau lebih flow lainnya, menandakan dua atau
lebih actions berjalan bersamaan. 2. Join
Dua atau lebih flow akan masuk ke dalam join dan menggabungkannya menjadi satu flow.
Notasi ini menggambarkan akhir proses dari activity
Notasi ini menggambarkan bahwa suatu action sudah keluar menuju activity diagram yang lain.
Notasi ini membantu menangani kompleksitas activity
diagram. Sebuah flow yang masuk ke connector akan
dilanjutkan dengan flow yang keluar dari connector dengan huruf yang sama.
2.7.4 Class Diagram
Menurut Whitten dan Bentley (2007), class diagram adalah kumpulan dari objek-objek beserta hubungannya dalam suatu sistem yang biasanya disebut sebagai class. Dalam class diagram terdapat tiga aspek utama, yaitu:
1. Object instance 2. Attribute 3. Behavior