BAB 2 LANDASAN TEORI 2.1 Jaringan Komputer Jaringan komputer adalah kumpulan beberapa komputer dan perangkat lain yang saling terhubung satu sama lain melalui sambungan komunikasi (Forouzan, B. A., 2007, p8). Tujuan dari dibangunnya suatu jaringan komputer adalah : - membagi fungsi sumber daya seperti CPU, printer, RAM, harddisk - untuk tujuan komunikasi, contohnya surat elektronik dan instant messaging - akses informasi, contohnya web browsing Agar dapat mencapai tujuan yang sama, setiap bagian dari jaringan komputer meminta dan memberikan layanan (service). Pihak yang meminta layanan disebut klien (client) dan yang memberikan layanan disebut pelayan (server). Arsitektur ini disebut dengan sistem client-server, dan digunakan pada hampir seluruh aplikasi jaringan komputer (Sulaeman, D, 2012). 5 6 2.1.1 Klasifikasi Jaringan Komputer Jaringan komputer terbagi dalam beberapa klasifikasi, yaitu: 1. Berdasarkan Skala - Local Area Network Local Area Network atau yang biasa disebut LAN adalah jaringan komputer yang jaringannya dimiliki secara pribadi. Seperti jaringan komputer kampus, kantor, ataupun di rumah. Ukuran LAN dibatasi hanya dalam hitungan beberapa kilometer (Forouzan, B. A., 2007, p13). - Metropolitan Area Network Metropolitan Area Network adalah sebuah jaringan yang memiliki besar antara LAN dan WAN. Biasanya meliputi area didalam perkotaan. MAN biasanya dirancang untuk konsumen yang membutuhkan koneksi internet yang cepat (Forouzan, B. A., 2007, p15). - Wide Area Network WAN atau Wide Area Network adalah sebuah jaringan yang menyediakan transmisi data jarak jauh yang mencakup area geografis yang besar . Seperti negara, benua, atau bahkan seluruh dunia (Forouzan, B. A., 2007, p14). 7 2. Berdasarkan Fungsi - Client-Server Yaitu jaringan komputer dengan menggunakan komputer yang didedikasikan khusus sebagai server. Sebuah service bisa diberikan oleh sebuah komputer atau lebih. Atau bisa juga banyak service yang diberikan oleh satu komputer. - Peer-to-peer Peer to peer adalah konsep jaringan yang menghubungkan user yang satu dengan user yang lain secara langsung tanpa harus melalui server. Setiap host komputer dapat menjadi server atau client secara bersamaan. Sehingga setiap komputer dapat menerima sekaligus memberikan akses pada komputer lain. walaupun konsep peer to peer ini bisa diterapkan pada MAN atau WAN, peer to peer lebih banyak digunakan pada LAN. Alasan utamanya adalah masalah security. Mengingat akan cukup sulit mengawasi keamanan jaringan yang luas (Henderson,H.2009). 3. Berdasarkan Media Transmisi Data - Jaringan Berkabel (wired network) Jaringan berkabel yaitu jaringan yang menggunakan kabel sebagai media penghantar yang menghubungkan peralatan pada jaringan. Telepon dan cable TV merupakan beberapa contoh jaringan berkabel (Parson, J.J., Oja,D. 2011, p256). 8 - Jaringan Nirkabel (wireless network) Jaringan nirkabel atau Wi-Fi (wireless fidelity) atau disebut juga WLAN yaitu jaringan yang menggunakan gelombang radio atau cahaya (laser, infrared) sebagai media penghantar (Henderson,H, 2009, p513). Keuntungan dari jaringan nirkabel adalah digantikannya peranan kabel sebagai penghantar yang dapat memudahkan pengguna berpindah posisi tanpa terganggu masalah konektivitas apabila menggunakan perangkat mobile (laptop atau smartphone). 2.1.2 Server Server merupakan komputer dengan memory dan kapasitas hard disk yang besar yang menjadi pusat dari sebuah jaringan komputer. Server bertugas untuk menyediakan informasi dan layanan yang di request oleh user (Henderson, H.2009, p507). 2.1.3 Access Point Access point adalah peralatan yang digunakan pada wireless local area network (WLAN). Access point bertugas mengatur dan menghubungkan beberapa peralatan Wi-Fi. Access point dapat dianalogikan sebagai hub, hanya saja digunakan pada wireless LAN. Access point juga bisa menggabungkan jaringan wireless dengan wired dan dapat memperbesar jangkauan WLAN. (Sofana,I. 2008, 350) 2.2 Instant Messaging Instant messaging atau IM adalah aplikasi berbasis internet yang menyediakan komunikasi real-time antar penggunanya.( Chau, P.Y.K.,li, D., Lou, H. 2005) 9 Sebagian instant messaging dibuat untuk dapat berjalan di berbagai device baik komputer desktop, komputer tablet, dan juga smartphone. Sebagian lainnya hanya dapat dijalankan melalui device tertentu. Instant messaging dianalogikan seperti sebuah percakapan telepon. Namun dengan basis teks bukan suara. Instant messaging merupakan aplikasi yang realtime. Maksudnya adalah para penggunanya dapat saling berkomunikasi apabila mereka dalam kondisi online dan sama-sama terhubung dengan aplikasi IM (Pagani,M. 2005, p88). 2.3 Unified Modelling Language Unified modelling language atau yang biasa disebut UML adalah permodelan sistem/perangkat lunak secara visual. Dengan menggunakan model diharapkan pengembangan piranti lunak dapat memenuhi semua kebutuhan pengguna dengan lengkap dan tepat, termasuk faktor-faktor seperti scalability, robustnees, security, dan sebagainya. (Whitten, 2007) Tujuan dari dibuatnya permodelan adalah agar tercipta suatu arsitektur rancangan yang mudah dipahami bahkan oleh orang lain selain programmer yang membuatnya. Permodelan visual terdiri dari komponen-komponen beserta koneksikoneksi yang menggambarkan sistem tersebut. Proses pembuatan UML biasa dilakukan pada tahap perancangan sebelum dilakukannya pembuatan aplikasi. UML berfungsi sebagai bahan acuan bagi programmer pada tahap pembuatan aplikasi. Jenis- jenis UML adalah sebagai berikut : 10 1. Use Case Diagram Diagram ini menggambarkan interaksi antara sistem dengan pengguna (user). Dengan kata lain use case diagram menggambarkan siapa yang akan menggunakan sistem dan bagaimana pengguna berinteraksi dengan sistem. Use case narrative digunakan sebagai tambahan untuk menjelaskan interaksi secara tekstual. (Bentley, L.D., Whitten, J.L. 2007, p382) 2. Class Diagram Diagram ini menggambarkan kelas kelas objek yang membangun sebuah sistem berikut dengan relasi antar kelas- kelas objek tersebut. (Bentley, L.D., Whitten, J.L. 2007, p382) 3. Sequence Diagram Diagram ini menggambarkan bagaimana komunikasi antar objek terjadi dalam sebuah use case atau operasi. (Bentley, L.D., Whitten, J.L. 2007, p382) 4. Activity Diagram Diagram ini menggambarkan aliran urutan dari sebuah proses. (Bentley, L.D., Whitten, J.L. 2007, p382) 5. Object Diagram Diagram ini menggambarkan objek dengan nilai- nilai atributnya. (Bentley, L.D., Whitten, J.L. 2007, p382) 11 6. State Machine Diagram Diagram ini menggambarkan bagaimana sebuah event dapat merubah state dalam suatu objek. (Bentley, L.D., Whitten, J.L. 2007, p382) 7. Composite Structure Diagram Diagram ini menggambarkan struktur internal dari sebuah class, komponen, atau use case. (Bentley, L.D., Whitten, J.L. 2007, p382) 8. Communication Diagram Diagram ini menggambarkan komunikasi antar objek melalui pesan- pesan. Diagram ini lebih berfokus pada organisai terstruktur pada sebuah format jaringan. (Bentley, L.D., Whitten, J.L. 2007, p382) 9. Interaction Overview Diagram Diagram ini menggabungkan fitur- fitur pada sequence dan activity untuk menggambarkan bagaimana objek- objek beritneraksi dalam sebuah activity di use case. (Bentley, L.D., Whitten, J.L. 2007, p382) 10. Timing Diagram Diagram ini menggambarkan waktu pada perubahan state di sebuah objek tunggal. (Bentley, L.D., Whitten, J.L. 2007, p382) 12 11. Component Diagram Diagram ini menggambarkan organisasi kode- kode programming yang dibagi menjadi komponen- komponen dan bagaimana interaksinya. (Bentley, L.D., Whitten, J.L. 2007, p382) 12. Deployment Diagram Diagram ini menggambarkan konfigurasi komponen- komponen perangkat lunak di dalam arsitektur fisik sebuah sistem perangkat keras. (Bentley, L.D., Whitten, J.L. 2007, p382) 13. Package Diagram Diagram ini menggambarkan bagaimana class- class dan UML lainnya terorganisir dalam sebuah paket. (Bentley, L.D., Whitten, J.L. 2007, p382) Semua diagram ini tidak mutlak harus digunakan dalam pengembangan perangkat lunak. Cukup dibuat sesuai dengan kebutuhan. (Sulistyorini, P. 2009). 2.4 Web Browser Web browser adalah aplikasi perangkat lunak yang berfungsi untuk mentransfer informasi pada internet. Dengan begitu, pengguna dapat mengakses halaman web pada internet. Selain itu web browser juga dapat digunakan untuk mengakses data dalam web server di dalam sebuah jaringan yang tertutup. Beberapa browser yang banyak digunakan adalah Chrome, Firefox, Opera, Safari, dan Internet Explorer 13 (W3.org). Web browser tidak hanya diperuntukan untuk komputer desktop saja. Hadir pula mobile web browser yang digunakan untuk telepon selular yang memiliki kemampuan untuk mengakses internet. Web browser mengirimkan request sebuah halaman web ke web server dengan menggunakan alamat web tersebut. Kemudian server bertugas untuk mengirimkan halaman web yang sesuai dengan request untuk selanjutnya ditampilkan di web browser. Pada umumnya, web browser menyimpan file dan dokumen yang direquest pada local cache. Cache berfungsi untuk mengurangi jumlah data yang harus dikirim kembali jika web browser akan melakukan request terhadap halaman web yang pernah diakses (Henderson, H.2009, p503). Pada umumnya web browser memiliki fitur- fitur yang sama diantaranya adalah: 1. Navigation buttons yang berfungsi agar user dapat berpindah maju ke halaman selanjutnya atau mundur ke halaman sebelumnya yang sudah dikunjungi (Henderson, H.2009, p503). 2. Tabs yang berfungsi untuk memudahkan pengguna dalam berpindah pindah halaman web jika pengguna sedang mengakses ke lebih dari satu halaman web secara bersamaan (Henderson, H.2009, p503). 3. History, sebuah panel yang menampilkan halaman- halaman web yang telah dikunjungi pengguna dalam beberapa waktu kebelakang. Dengan begitu, pengguna cukup memilih alamat yang ada di history untuk kembali mengunjungi web tersebut tanpa harus mengetik ulang alamat webnya (Henderson, H.2009, p503). 4. Favorites atau bookmark, kemampuan web browser untuk menandai atau 14 menyimpan halaman web yang dikehendaki pengguna. Serupa dengan history, pengguna hanya perlu memilih alamat web dalam daftar bookmark untuk dapat mengakses halaman web tersebut tanpa harus mengetik ulang alamat web (Henderson, H.2009, p503). 2.5 Web Development Web development adalah proses pembuatan sebuah website untuk internet atau sebuah intranet. Dalam pembuatan sebuah website digunakan berbagai macam bahasa pemrograman. Diantaranya adalah: 1. HTML HTML (Hyper Text Mark Up Language) merupakan bahasa yang digunakan untuk mendeskripsikan struktur sebuah halaman web. HTML berfungsi untuk mempublikasi dokumen online. (W3.org). Statement dasar dari HTML disebut tags. Sebuah tag dinyatakan dalam sebuah kurung siku (<>). Tags yang ditujukan untuk sebuah dokumen atau bagian dari suatu dokumen haruslah dibuat berupa pasangan. Terdiri dari tag pembuka dan tag penutup. Dimana tag penutup menggunakan tambahan tanda garis miring (/) di awal nama tag. Contohnya <html> merupakan tag pembuka dan </html> merupakan tag penutupnya. Selain tag dasar terdapat juga tag A ,atau anchor tag. Seperti beberapa tag HTML lainnya, tag A digunakan bersamaan dengan atribut yang dapat menjelaskan lebih spesifik mengenai apa yang akan dikerjakan. Tag A biasanya digunakan bersamaan dengan atribut <HREF> atau Hypertext Reference yang 15 berfungsi menghubungkan satu dokumen dengan dokumen lainnya. Tag inilah yang membuat pengguna dapat berpindah- pindah halaman dengan cara memilih button tertentu (Henderson, H.2009, p232). 2. HTML 5 HTML 5 merupakan pengembangan terbaru dari HTML. Syntax pada HTML 5 dibuat lebih sederhana untuk memudahkan web developer. HTML 5 memperkenalkan fitur- fitur baru seperti animasi, audio, transisi, tipografi, dan masih banyak lagi. Dengan begitu, HTML 5 dapat menggantikan permasalahanpermasalahan pada teknologi web sebelumnya. Salah satu contohnya adalah menggantikan penggunaan flash pada web yang membutuhkan waktu lebih lama untuk melakukan load sebuah halaman (Granell , C. 2012, p6). 3. CSS CSS adalah bahasa-bahasa yang merepresentasikan halaman web. Seperti warna, layout, dan font. Dengan menggunakan CSS, seorang web developer dapat membuat halaman web yang dapat beradaptasi dengan berbagai macam ukuran layar. Pembuatan CSS biasanya terpisah dengan halaman HTML. Meskipun CSS dapat disisipkan di dalam halaman HTML. Hal ini ditujukan untuk memudahkan pengaturan halaman HTML yang memiliki rancangan yang sama. (W3.org) Pada saat sebuah style diasosiasikan terhadap sebuah elemen, maka format yang terdapat pada style tersebut akan secara otomatis diaplikasikan ke setiap elemen yang terasosiasikan tersebut. Sebagai contoh jika kita ingin merubah format font pada heading menjadi italic, maka kita hanya perlu mengaturnya pada style yg terasosiasikan pada elemen heading. Dengan begitu setiap elemen 16 heading yang ada akan memiliki format font yang italic. Agar dapat berjalan, halaman CSS yang terpisah dengan HTML haruslah diasosiasikan dengan dokumen HTML yang dituju. Pada saat browser melakukan load pada halaman HTML, maka secara otomatis browser juga akan melakukan load terhadap halaman CSS dan menggunakannya untuk menentukan display dari sebuah halaman web. Style pada CSS diaplikasikan dalam sebuah urutan yang bergantung pada hubungan elemen- elemen yang terasosiasi . Contohnya pada saat kita menentukan format style pada sebuah div, maka setiap elemen yang berada dalam div tersebut akan memiliki format style yang sama (Henderson, H.2009, p72). 4. Javascript Sebuah script adalah program code yang tidak butuh pra-proses (compiling) sebelum dijalankan. Dalam konteks pembuatan web, code programnya ditulis dalam Javascript. Javascript dieksekusi oleh web browser pada saat mendownload halaman web atau pada saat sebuah event dilakukan oleh pengguna. (W3.org) Javascript adalah salah satu bahasa pemrograman populer yang mampu membuat halaman web dapat berinteraksi dengan penggunanya. Javascript pertama kali dikembangkan pada pertengahan dekade 90an. Meskipun memiliki nama yang hampir serupa, javascript berbeda dengan bahasa pemrograman Java. Untuk penulisannya, javascript dapat disisipkan di dalam dokumen HTML ataupun dijadikan dokumen tersendiri yang kemudian diasosiasikan dengan 17 dokumen lain yang dituju. Javascript mengimplementasikan fitur yang dirancang untuk mengendalikan bagaimana sebuah halaman web berinteraksi dengan penggunanya. Seperti tampilan pada window atau kendali pada menu dan button. Javascript juga dapat digunakan untuk memvalidasi sebuah web form pada browser sebelum informasi pada form tersebut dikirim ke server (Henderson, H.2009, 256). 2.6 Framework Pada umumnya framework adalah aplikasi setengah jadi yang bisa digunakan kembali dan dikhususkan untuk menghasilkan suatu aplikasi tertentu (Husted, T. 2003, p5). Dapat disimpulkan bahwa framework biasanya bersifat object-oriented dan merupakan suatu desain sistem yang dapat digunakan kembali. Tujuannya untuk menghindari pembuatan kode yang sama sehingga programmer dapat berkonsentrasi ke bagian lainnya. 2.7 Node.js Node.js pertama kali dikembangkan oleh Ryan Lienhart Dahl pada tahun 2009. Platform ini dibuat untuk memperoleh performance aplikasi web yang tinggi dan mengoptimalisasikan lingkungan concurrent yang tinggi pula. Platform Node.js memungkinkan bekerja dengan keandalan tinggi dan dengan I/O non-blocking. 18 Node.js adalah sebuah platform yang dirancang untuk web server. Aplikasi ini ditulis dalam bahasa javascript dan berbasis pada event (event driven). Tidak seperti kebanyakan bahasa javascript yang dijalankan di client, Node.js dieksekusi sebagai aplikasi server. Node.js memiliki efisiensi memory yang lebih baik apabila bekerja dalam keadaan muatan yang banyak. Pengguna tidak perlu khawatir dengan terjadinya deadlock karena tidak ada lock dalam Node.js. Aplikasi ini terdiri dari V8 Javascript engine buatan google dan beberapa modul bawaan yang terintegrasi (Nodejs.org). Di dalam Node.js terdapat operasi-operasi yang sifatnya synchronous dan asynchronous, tetapi keunggulan Node.js ini terdapat pada asynchronousnya atau bisa juga disebut dengan non-blocking I/O . Node.js menggunakan pendekatan event-driven berbasis infinite event loop dalam satu thread untuk mengurangi jumlah memory. Manuel Kiessling (2012) berpendapat bahwa node.js merupakan model yang efisien untuk membangun sebuah aplikasi yang harus bersinggungan dengan concurrency (dua hal yang bekerja secara bersamaan). Semenjak kemunculannya, Node.js telah menyita perhatian dari kalangan industri. Banyak pelaku industri yang menggunakan node untuk membuat layanan jaringan yang cepat dan scalable. Salah satu alasannya adalah karena node.js menggunakan javascript. Javascript adalah salah satu bahasa pemrograman yang paling banyak digunakan. Kebanyakan web programmer menggunakan javascript pada browser (Teixera, P. 2013, p4). sudah terbiasa 19 2.8 Node Package Manager Node package manager atau npm adalah sebuah package manager untuk node.js. Fungsi dari npm adalah untuk mengatur, mencari, dan melakukan install modulmodul pada node.js (npmjs.org). 2.9 Express.js Express.js adalah framework node.js yang minimalis dan fleksibel. Express.js menyediakan kumpulan fitur untuk membangun sebuah aplikasi web. Dengan express.js programmer dapat menambahkan rute, memberikan otentifikasi, dan kode pemrograman yang lebih struktural (expressjs.com). 2.10 Operasi I/O I/O adalah suatu mekanisme pengiriman data secara bertahap dan terus menerus melalui suatu aliran data dari proses ke piranti (begitu pula sebaliknya). Fungsi I/O pada dasarnya adalah mengimplementasikan algoritma I/O pada level aplikasi. Hal ini dikarenakan kode aplikasi sangatlah fleksibel, dan bugs aplikasi tidak mudah menyebabkan sistem crash. Untuk memulai operasi I/O, CPU mengisi register yang bersesuaian ke device controller. Sebaliknya device controller memeriksa isi register untuk kemudian menentukan operasi apa yang harus dilakukan. Pada saat operasi I/O dijalankan, ada dua kemungkinan, yaitu synchronous I/O dan asynchronous I/O. 20 2.10.1 Synchronous I/O Pada operasi synchronous I/O atau blocking sebuah tread menunggu sampai I/O request selesai dikerjakan baru dapat melakukan operasi selanjutnya (Leonard, A. 2011. p215). Operasi synchronous ini merupakan model operasi yang digunakan pada sistem yang berbasis pada thread (thread-based system). Kelemahan pada sistem adalah pada saat banyak request yang masuk ke server akan menimbulkan block, yang selanjutnya akan berakibat terjadinya deadlock. 2.10.2 Asynchronous I/O Biasa juga disebut non-blocking I/O. Berbeda dengan operasi synchronous, dalam asynchronous sebuah operasi tidak harus menunggu selesai dikerjakan untuk melakukan operasi yang lain (Leonard, A. 2011. p216). Dengan begitu operasi tersebut tidak akan melakukan blok terhadap operasi lainnya. Sehingga tidak terjadi deadlock. Asynchronous digunakan pada sistem yang berbasiskan pada event (eventdriven system). 2.11 Template Template adalah sebuah file yang bertindak sebagai permulaan dari dibentuknya sebuah dokumen baru. Pada saat dibuka, sebuah template sudah memiliki suatu format tertentu. Template bisa berupa file yang sudah tersedia dalam suatu perangkat lunak atau dibuat sendiri oleh penggunanya (techterms.com). 21 2.12 Template Engine Template engine adalah sebuah perangkat lunak yang dapat memproses sebuah template. Template engine menerima sebuah template dalam bentuk markup yang digabungkan dengan elemen-elemen khusus dan menggantikan elemen tersebut dengan data dari logika sebuah aplikasi (Nash, M. 2003, p121). 2.13 Jade Jade adalah sebuah template engine yang menyederhanakan penulisan sebuah HTML dengan menggunakan indentation (contohnya adalah spasi atau ruang yang mengawali sebuah paragraf). Jade menggunakan indentation untuk menentukan hirarki dalam penulisan HTML (Ornbo, G. 2012). Dengan menggunakan jade, seorang web programmer bahkan tidak perlu lagi menambahkan kurung siku dalam proses pembuatan halaman web HTML. 2.14 Stylus Hampir serupa dengan Jade yang menyederhanakan pembuatan halaman web, Stylus juga merupakan template engine yang memiliki fungsi yang sama. Bedanya apabila Jade menyederhanakan penulisan bahasa HTML, Stylus berguna dalam penyederhanaan penulisan bahasa CSS dengan menghilangkan penggunaan kurung kurawal , titik koma, dan titik dua. Dengan begitu web developer akan lebih mudah dalam melihat rancangan CSS yang dibuatnya dan tidak perlu khawatir akan tanda baca yang lupa tertulis (learnboost.github.com/stylus/). 22 2.15 Arsitektur Request dan Response pada Aplikasi Web Aplikasi web yang real-time seperti portal berita, informasi saham, dan informasi lelang membutuhkan update yang harus secepat mungkin disampaikan ke user. Untuk memproses update tersebut, dikenal dua macam arsitektur atau sistem pada teknologi berbasis web. Dua sistem tersebut adalah push dan pull (Bozdag, E., Mesbah, A., Deursen, A.V. 2007).. Pull adalah arsitektur atau sistem pada teknologi komunikasi berbasis internet dimana request untuk sebuah transaksi diinisiasikan oleh client. Kemudian data tersebut direspon oleh server (Bozdag, E., Mesbah, A., Deursen, A.V. 2007). Push adalah arsitektur atau sistem teknologi komunikasi berbasis internet dimana request untuk sebuah transaksi diinisiasikan oleh server pusat. Berbeda dengan pull dimana data request diinisiasikan oleh client (Bozdag, E., Mesbah, A., Deursen, A.V. 2007). 2.16 Websocket Websockets adalah teknologi web yang menyediakan komunikasi dari client ke server melalui sebuah koneksi TCP tunggal tanpa harus membuat sebuah request. Dengan websockets antara client dan server dapat saling melakukan push message kapan saja. (websocket.org) 2.16.1 Socket.io Socket.io adalah sebuah library javascript untuk aplikasi web yang real time yang ditujukan untuk setiap browser dan mobile device. Dibuat oleh Guillermo 23 Yauch, CTO dari Learnboost. Socket.io memiliki kelebihan jika dibandingkan dengan websocket. Salah satu fitur yang tidak dimiliki websocket adalah heartbeat, dimana client akan mengirimkan pesan ke server (atau dari server ke client lalu kembali lagi ke client) dalam interval waktu tertentu untuk memastikan kondisi apakah client dalam kondisi aktif atau tidak. Dalam penggunaannya, socket.io menggunakan penanda dalam pemrogramannya yang disebut socket id (Socket.io). 2.17 Performance Monitor Performance Monitor adalah perangkat visualisasi yang menampilkan performance data baik dalam real time atau dari log file. Dengan performance monitor, pengguna dapat memeriksa keadaan bagaimana suatu program dapat mempengaruhi kinerja komputernya dan melihat hasilnya dalam bentuk graph, histogram, ataupun laporan. Performance monitor pada Windows menggunakan penghitung kinerja, event trace data, dan informasi konfigurasi yang dikombinasikan menjadi satu set pengumpul data. (technet.microsoft.com). 2.18 MySQL MySQL merupakan software yang tergolong database server dan bersifat open source. Open source menyatakan bahwa software ini dilengkapi dengan kode yang dipakai untuk membuat MySQL. Selain itu tentu saja bentuk kode yang bisa 24 dijalankan secara langsung di sistem operasi, dan bisa didapatkan dengan mengunduh langsung dari internet secara gratis. (Kadir, 2009) 2.19 V8 JavaScript Google V8 adalah Javascript engine yang open source dari Google. Ditulis dalam bahasa C++ dan digunakan pada Google Chrome, browser open source dari Google. V8 mengimplementasikan ECMAScript seperti yang ditentukan dalam ECMA-262, edisi ke lima V8 dapat berjalan pada Windows (XP atau yang terbaru), Mac OS X (10.5 atau yang terbaru), dan Linux yang menggunakan prosesor ARM. V8 dapat dijalankan sendiri atau digabungkan dengan aplikasi C++ lainnya (developers.google.com). 2.20 Doodle Dalam Merriam-webster dijelaskan bahwa doodle adalah kata kerja yg berarti menggambar sesuatu secara spontan dan tanpa terencana. Sedangkan dalam bentuk kata benda, doodle memilki arti sebuah sketsa atau gambar kasar (MerriamWebster.com). Menurut Thomas C. Wang tujuan dari doodle atau sketsa adalah untuk menyajikan satu bahasa baru yang sangat mirip dengan tulisan dan mencatat hal nyata dengan simbol- simbol garis dan tekstur yang disingkat (Wang, T.C., 2006, p71). Dengan begitu, doodle dapat menjadi bahasa alternatif yang dapat mengkomunikasikan suatu hal secara visual. 25 2.21 Enkripsi Enkripsi adalah prose’s untuk mengubah plain text (data yang dapat dibaca) menjadi chipper text (data yang tidak bisa dibaca) dan dekripsi merupakan kebalikan dari enkripsi. Yaitu dengan merubah chipper text kembali menjadi plain text.(Busran., Mandarani, P., 2012) 2.22 Password Hashing Password Hashing adalah suatu metode untuk mengamankan password dari bahaya phising (pencurian informasi rahasia. Contohnya pencurian password). Metode yang dijalankan adalah dengan menerima input dari user dan mengirimkannya ke server dalam bentuk hash (bentuk yang tidak beraturan). Hash tersebut akan diterima dengan baik oleh server tanpa perlu adanya modifikasi pada server (Ross, B., Jackson, C., Miyake, N., Boneh, D., Mitchel, J.C. 2005). 2.23 Incremental Software Process Model Incremental model adalah sebuah model proses perangkat lunak dimana produk dirilis sebagian dan kemudian dilakukan pengembangan terhadap fungsifungsi di sistem. Produk awal dirilis dengan fungsi- fungsi dasar, lalu untuk rilisan selanjutnya produk tersebut sudah memiliki fungsi yang sudah dikembangkan (Pressman, S.R.,2010, p41). 26 2.24 Data Modeling Data modeling adalah suatu teknik untuk mengorganisir dan mendokumentasikan data dari suatu sistem. Model aktual dari suatu data modeling biasa disebut Entity Relationship Diagram (ERD). (Whitten, 2007, p270-p271) ERD adalah suatu data model yang menggunakan beberapa notasi untuk menggambarkan data dalam konteks entitas dan hubungan yang digambarkan oleh data tersebut. (Whitten, 2007, p271) 2.25 Real Time Definisi real time adalah suatu tingkatan untuk mendapatkan jawaban dari komputer yang mana pengguna merasakan cukup cepat atau yang memungkinkan komputer dapat menyelesaikan proses-proses eksternal (sebagai contoh: untuk menunjukan visualisasi dari kondisi cuaca sebagaimana perubahannya). Real time adalah sebuah kata sifat yang berkaitan dengan komputer atau proses yang beroperasi secara real time (searchcio-midmarket.techtarget.com). Dengan demikian, aplikasi yang bersifat real time tentunya memerlukan suatu teknik pemrograman yang tepat agar sumber daya komputer dapat digunakan secara optimal.