BAB 2 LANDASAN TEORI 2.1. Pengenalan E-Learning E-learning merupakan bentuk pembelajaran atau pelatihan jarak jauh yang memanfaatkan teknologi telekomunikasi dan informasi, misalnya internet, video (audiobroadcasting), video (audioconferencing), CD-ROOM (secara langsung dan tidak langsung). Kegiatan e-learning termasuk dalam model pembelajaran individual. Menurut Loftus (2001) dan Siahaan (2004) kegiatan e-learning lebih bersifat demokratis dibandingkan dengan kegiatan belajar pada pendidikan konvensional, karena peserta didik memiliki kebebasan dan tidak merasa khawatir atau ragu-ragu maupun takut, baik untuk mengajukan pertanyaan maupun menyampaikan pendapat/tanggapan karena tidak ada peserta belajar lainnya yang secara fisik langsung mengamati dan kemungkinan akan memberikan komentar, meremehkan, atau mencemoohkan pertanyaan maupun pernyataannya. 2.2. Pengenalan Internet Internet (Interconnected Network) merupakan jaringan komputer yang terdiri dari jaringan independen yang dihubungkan satu dengan yang lainnya. Secara etimologis, internet berasal dari bahasa Inggris yakni Inter berarti antar dan Net yang berarti jaringan sehingga dapat diartikan hubungan antar jaringan. Sampai saat ini internet sudah menghubungkan lebih dari jutaan jaringan komputer Universitas Sumatera Utara dengan pemakai lebih dari ratusan juta orang. Internet adalah jaringan luas di komputer yang lazim disebut dengan World Wide Web, yang secara ringkas internet adalah sumber informasi dan alat komunikasi serta hiburan. (Mulyana, 2004). 2.3 Sistem Operasi Sistem operasi atau operating system (OS) ialah sekumpulan beberapa program pengendalian komputer yang telah dibuat oleh pabrik komputer dengan memperhatikan bentuk dan cara kerja dari hardware (perangkat keras) yang mereka miliki. OS ini digunakan untuk mengatur semua program yang ada didalam komputer dan berfungsi untuk mengontrol penyimpanan data & mengatur seluruh program kerja dari hardware. Tanpa adanya sistem operasi ini, maka komputer tidak akan bisa digunakan karena OS ini merupakan tempat untuk menyimpan program aplikasi. Ada beberapa jenis OS yang sering ditemukan di pasaran. Yakni antara lain : 1. Sistem Operasi Microsoft Windows : Sistem operasi Microsoft Windows ini sudah sangat mendunia dan hampir serluruh komputer memiliki program dari aplikasi ini. Sistem operasi jenis ini memiliki sifat multitasking & multiuser. Sehingga banyak digunakan dan digemari para pengguna komputer. 2. Sistem Operasi MS-DOS : Sistem operasi ini dikembangkan pada tahun 1981 oleh Bill Gates & Paul Allen. Sistem operasi ini memang kurang dikenal & kurang populer, namun masih bisa kita temukan di dalam sistem operasi Microsoft Windows. MS-DOS ini bersifat single tasking. Untuk Microsoft Windows XP, MSDOS menggunakan versi 5.1.2600. Universitas Sumatera Utara 3. Sistem Operasi UNIX : Sistem operasi UNIX yang pertama kali dikembangkan oleh perusahaan AT dan T Bell Laboratories. Sistem operasi UNIX ini digunakan untuk menjalankan jaringan pada komputer. Pada awalnya UNIX merupakan sistem operasi jenis Command line interface. Namun pada kenyataannya menyulitkan para user baru. Dan untuk memudahkan user, UNIX juga menyediakan versi Graphical User Interface. 4. Sistem Operasi LINUX : Sistem operasi LINUX ini merupakan pengembangan dari UNIX. Pada awalny, sistem operasi ini dibuat oleh Linus Torvalds, yaitu seorang mahasiswa di Finlandia. LINUX dibuat pada tahun 1991 yang kemudian dikembangkan lagi oleh programmer-programmer yang ada di dunia. 5. Sistem Operasi Mac OSMacintosh Operating System atau lebih singkatnya Mac OS merupakan sistem operasi berbasis GUI yang dirilis oleh perusahaan Apple Computer pada tahun 1984. Pada saat itu, teknologi Mac OS dianggap paling terdepan dan maju. Namun tidak dapat dipertahankan hingga saat ini. Mac OS kalah saing dengan Microsoft Windows. 2.4 Dasar Pemrograman Android Membangun Aplikasi Android sangat mudah, default untuk bahasa pemrograman yang digunakan oleh Android adalah java. Tidak semua fitur java yang ada digunakan akan tetapi sebagian dari java yang sering disebut dengan Dalvik Virtual Machine. Beberapa bagian kecil dari framework Android menggunakan bahasa XML untuk scripting-nya. a. Activity Activity merupakan containeruntuk User Interface (UI).Sebuah Aplikasi Android terbangun dari satu atau beberapa Activity. Universitas Sumatera Utara b. Intent Intent merupakan sistem pesan utama yang menjalankan Android. Intent terdiri dari Action yang harus dijalankan (Tampil, Ubah, Dial, dll) dan Data. Intent digunakan untuk memulai aktivitas dan komunikasi antar bagian dari sistem Android. Suatu aplikasi dapat mengirimkan atau menerima intent. 1. Mengirimkan pesan dengan Intent Ketika suatu aplikasi mengirimkan suatu intent, aplikasi mengirimkan pesan memberitahukan Android untuk menjalankan sesuatu. Misal: memberitahukan Android untuk menjalankan suatu Activity dari aplikasi atau menjalankan aplikasi lain. 2. Mendaftarkan Intent Receiver Mengirimkan pesan dengan Intentbukan berarti sesuatu selanjutnya akan terjadi secara otomatis. Aplikasi harus mendaftarkan intent receiveryang memperhatikan intentdan memberitahukan Android apa yang harus dilakukan. Contohnya jika pengguna menekan lama suatu imagedi image gallery, maka akan memunculkan context menu yang berkaitan dengan image sharing. Dikarenakan terdapat beberapa receivers yang didaftarkan berkaitan dengan image sharing (email, messaging,Bluetooth, dll) maka context menu dimunculkan untuk memberikan opsi keputusan kepada penguna. c. Cursorless Controls Perangkat Android menggunakan jari pengguna sebagai input. Jika pada computer biasa digunakan pointer mouse, kemudian left-click untuk berinteraksi dengan suatu tombol misalnya, maka pengguna Android dapat menggunakan jarinya langsung ke tombol. Untuk Universitas Sumatera Utara menggantikan right-click, pengguna Android dapat menekankan jarinya agak lama ke layar, kemudian context menuakan muncul. d. Views dan Widgets View merupakan elemen dasar UI (User Interface). Sebagai contoh area kotak pada layar yang bertanggung jawab untuk tampilan dan menerimaevent (event handling). Beberapa contoh view antara lain: (1) ContextMenu, (2) Menu, (3) View, (4) SurfaceView. Widgets adalah elemen UI yang lebih canggih. Merupakan control untuk interaksi antara sistem dengan pengguna. Beberapa contoh Widgets antara lain: (1) Button, (2) CheckBox, (3) DatePicker, (4) DigitalClock, (5) Gallery, (6) FrameLayout, (7) ImageView, (8) RelativeLayout, (9) PopupWindow. e. Asynchronous Calls Android memiliki sebuah class yang AsyncTask yang memungkin aplikasi menjalan beberapa operasi pada waktu yang bersamaan, tanpa harus mengatur bagaimana thread berjalan secara khusus.AsyncTask memungkin developr untuk membangun model program yang bersih untuk proses-proses asinkron. Proses asinkron biasa digunakan untuk prosesproses yang membutuhkan waktu lama, misal: Network Communication (Internet), Media Processing, dan berbagai proses lain yang mengharuskan pengguna menunggu. Jika pengguna harus menunggu, maka dapat digunakan proses asinkron untuk menampilkan UI yang memberitahukan pengguna apa yang terjadi. f. Background Services Services merupakan aplikasi yang berjalan di belakang dan tidak terlalu penting memiliki UI, sebagai contoh: anti virus. Sebagian besar pemutar musik (music player) dari Android Modul Kuliah Program Aplikasi Mobile – Emha Taufiq Luthfi Halaman 4 Market berjalan Universitas Sumatera Utara sebagai Background Services, yang mana pengguna dapat mendengarkan music sambil mengecek e-mail atau melakukan tugas lain yang membutuhkan penggunaan tampilan layar. 2.5 Fitur Perangkat Keras Android Perangkat Android memiliki beberapa fitur perangkat keras didalamnya, yang dapat dimanfaatkan developer dalam membangun aplikasi. a. Touchscreen Perangkat Android memiliki fitur layar sentuh (touchscreen) yang memberikan beberapa kemungkinanan bagi pengguna untuk berinteraksi dengan aplikasi dengan menggunakan jari. Pengguna dapat melakukan swipe, flip, drag, dan pinch untuk zoom. Android juga mendukung multitouch yang berarti keseluruhan layar dapat disentuh dengan satu atau lebih jari pada saat yang bersamaan. b. GPS Sistem operasi Android mendukung GPS yang memungkinkan developer untuk mengakses lokasi pengguna.Contoh aplikasi yang memanfaatkan GPS adalah Aplikasi Peta (Map) yang menunjukkan lokasi pengguna dan memberikan petunjuk untuk menuju suatu lokasi. c. Accelerometer Universitas Sumatera Utara Android mendukung Accelerometer, yaitu perangkat yang digunakan untuk mengukur percepatan. Accelerometer dapat memberitahukan apabila suatu perangkat android bergerak, atau terguncang, atau berbalik arah posisinya. d. SD Card Android memiliki fitur yang memungkinkan pengguna atau aplikasi untuk mengakses (menyimpan atau membuka) file pada SD Card. SD Card merupakan media penyimpanan medium yang digunakan Perangkat Android dan beberapa perangkat mobile lain non Android sebagai media penyimpanan. 2.6 Fitur Perangkat Lunak Android Android memiliki banyak fitur perangkat lunak yang dapat digunakan oleh developer dalam mengembangkan aplikasi. Beberapa fitur populer yang akan dijabarkan disini. a. Internet Kemampuan akses internet pada Android memberikan banyak keunggulan. Berbagai informasi secara real-time dapat diperoleh dengan mudah dengan internet.Contoh, sebagai pengguna, dapat menggunakan internet untuk melihat jadwal pemutaran film bioskop, cuaca suatu area, jadwal penerbangan dan lainnya. Sebagai developer, dapat menggunakan internet untuk akses secara real-time kepada data, update data. Developerjuga dapat menggunakan internet untuk menyimpan berbagai asset untuk kemudian digunakan suatu aplikasi, seperti dilakukan Pandora dan YouTube. Dengan internet dapat dibangun model aplikasi yang disebut client-server computing. Contoh lain, aplikasi peta, mengakses data peta dan GPS dari web server. Universitas Sumatera Utara b. Audio dan Video Support Sistem operasi Android memungkinkan developer menyertakan audio dan video dalam aplikasi dengan mudah. Berbagai standar format audio dan video didukung. c. Contact Android memungkinkan akses ke contacs yang tersimpan dapat Perangkat Android.Developerdapat menggunakan fitur ini untuk menampilkan contactsdalam cara baru yang berbeda. Hal lain yang dapat dilakukan adalah membangun aplikasi yang menggabungkan antara contacts dengan GPS, yang memberikan notifikasi kepada pengguna jika pengguna berada di dekat alamat satu contact yang ada. d. Security Android memungkinkan aplikasi untuk melakukan banyak hal.Akan tetapi Android juga menyiapkan mekanisme keamanan berupa permissionberkaitan dengan beberapa tugas. Contoh: Download image dan menyimpannya di SD Card, maka harus disetujui terlebih dahulu permissionuntuk mengakses SD Card. e. Google APIs Sistem operasi Android memungkinkan dengan tidak terbatas membuat panggilan telepon, mengorganisasi contacts atau meng-installaplikasi. Developerdapat mengintegrasikan peta (map) ke dalam suatu aplikasi dengan menggunakan Maps API yang mengandung Map Widgets. Berbagai fitur dapat ditambahkan dengan Maps API, antara lain: 1) Menampilkan suatu lokasi di peta 2) Mendapatkan panduan navigasi 3) Komunikasi data antara aplikasi dengan clouds. Universitas Sumatera Utara Android dibangun diatas open source linux kernel 2.6. Kernel Linux tersebut dipilih karena menyediakan fitur utama untuk membangun sistem operasi Android, diantaranya: 1) Security Model: Linux kernel menangani keamanan antara aplikasi dan sistem 2) Memory Management: Linux kernel menangani manajemen memori untuk developer 3) Process Management: Linux kernel mengatur proses dengan baik, mengalokasikan resource untuk proses sesuai dengan kebutuhan 4) Network Management: Linux kernel juga menangani jaringan komunikasi 5) Driver Model: Perusahaan perangkat keras dapat mengembangkan drivers perangkat mereka secara mandiri untuk berjalan di atas linux. Diatas kernel linux tersebut, framework Android dibangun dengan berbagai fitur.Fitur-fitur tersebut diadopsi dari berbagai project opensource. Beberapa fitur Android framework diantaranya: 6) Android Run Time: Mengandung inti library java dan dalvik virtual machine 7) Open GL (Graphics Library): Merupakan API (Application Program Interface) yang digunakan untuk menghasil graphics 2D dan 3D, bersifat cross-language dan crossplatform 8) Webkit: merupakan mesin web browser opensource yang menyediakan fungsionalitas untuk menampilkan web konten 9) SQLite: merupakan opensource mesin database yang di rancang untuk system embedded 10) Media frameworks: library yang digunakan untuk menjalankan dan merekam audio serta video 11) Secure Socket Layer (SSL): library ini bertanggung jawab terhadap keamanan internet untuk pemanfaatan fitur-fitur dalam Android framework diatas, disediakan berbagai library dalam Application Framework yang dapat digunakan oleh developer, diantaranya: a) Activity Manager: Mengelola siklus hidup activity b) Telephony Manager: Menyediakan akses ke telephone service Universitas Sumatera Utara c) View System: Menangani view dan layout yang membangun User Interface (UI) d) Location Manager: menemukan lokasis secara geografi 2.7 Open Handled Alliance (OHA) Open Handled Alliance (OHA) berdiri November 2007 dengan 34 anggota yang dimotori oleh google. Saat ini OHA telah memiliki 71 anggota, diantaranya: T-Mobile, Sprint, LG, Motorola, HTC, NVidia, and Texas Instruments 2.8 Sejarah Asal Mula Android Android Inc, adalah sebuah perusahaan software kecil yang didirikan pada bulan Oktober 2003 di Palo Alto, California, USA. Didirikan oleh beberapa senior di beberapa perusahaan yang berbasis IT & Communication; Andy Rubin, Rich Miner, Nick Sears dan Chris White. Menurut Rubin, Android Inc didirikan untuk mewujudkan mobile device yang lebih peka terhadap lokasi dan preferensi pemilik. Dengan kata lain, Android Inc, ingin mewujudkan mobile device yang lebih mengerti pemiliknya. Sejarah Android dimulai dari sini. Konsep yang dimiliki Android Inc, ternyata menggugah minat raksasa Google untuk memilikinya. Pada bulan Agustus 2005, akhirnya Android Inc diakuisisi oleh Google Inc. Seluruh sahamnya dibeli oleh Google. Nilai pembelian Android Inc ini oleh google tidak ada release pastinya. Tetapi banyak yang memperkirakan nilai pembelian Android Inc oleh Google adalah sebesar USD 50 juta. Saat itu banyak yang berspekulasi, bahwa akuisisi ini adalah langkah awal yang dilakukan Google untuk masuk ke pasar mobile phone. Universitas Sumatera Utara Andy Rubin, Rich Miner, Nick Sears dan Chris White tetap di Android Inc yang dibeli Google, sehingga akhirnya mereka semua menjadi bagian dari raksasa Google dan sejarah android. Saat itulah mereka mulai menggunakan platform linux untuk membuat sistem operasi bagi mobile phone. Pada bulan november 2007, terbentuklah Open Handset Alliance yang merupakan konsorsium dari beberapa perusahaan: Broadcom Corporation, Google, HTC, Intel, LG, Marvell Technology Group, Motorola, Nvidia, Qualcomm, Samsung Electronics, Sprint Nextel, T-Mobile dan Texas Instruments. Mereka sepakat untuk membuat open standard bagi mobile phone. Pada hari yang sama, mereka mengumumkan produk pertama mereka, yaitu Android yang berbasis Linux kernel versi 2.6. Bulan Desember 2008, bergabunglah 14 perusahaan lainnya yaitu : ARM Holdings, Atheros Communications, Asustek Computer Inc, Garmin Ltd, PacketVideo, Softbank, Sony Ericsson, Toshiba Corp dan Vodafone Group Plc. Hal ini merupakan langkah besar dalam sejarah Android untuk menjadi pemimpin dalam sistem operasi untuk mobile phone. Sejak munculnya sistem operasi android, sistem operasi ini terus mengalami peningkatan versi dari waktu ke waktu. Berikut adalah versi-versi android. 1. Android 1.0 Apple Pie Telah dirilis setelah versi Android beta dan menjadi versi komersial pertama yang hadir untuk para konsumen. Di antara fitur yang menjadi andalan saat itu adalah : a) Android Market. Para pengguna bisa memanfaatkan aplikasi-aplikasi yang ada di web itu dengan men-download atau meng-upgrade. Banyak sekali aplikasi termasuk game android yang boleh diunduh secara gratis. b) Kamera. Tetapi belum ada fasilitas yang lengkap untuk membuat hasil kamera itu maksimal, seperti resolusi, kualitas gambar, kejernihan, dan lainnya. Universitas Sumatera Utara c) Shortcut icon. Dengan itu, pengguna bisa dengan mudah masuk ke aplikasi, pesan, telepon atau yang lain karena bisa diletakkan pada homescreen. 2. Android 1.1 Banana Bread Android 1.1 dirilis pada tanggal 9 Februari 2009 yang memiliki kode nama Banana bread serta ukuran layar 320×480 HVA. 3. Android 1.5 Cupcake Android Cupcake merupakan pengembagan dari versi android beta 1.1. Dimana versi denganAPI level 3 ini merupakan perbaikan sistem dan penambahan fitur dari android. Fitur yang bisa di dapatkan di versi ini adalah: a) Memiliki dukungan keyboard (papan ketik) virtual dari pihak ketiga dengan memiliki prediksi teks dan kamus. b) Memiliki dukungan Widget (tampilan aplikasi miniatur). c) Memiliki kemampuan dalam merekam dan memutar video dengan format MPEG-4 dan 3GP. d) Memiliki kemampuan pairing dan Bluetooth (A2DP dan AVRCP). e) Memiliki fitur copy-paste (salin dan tempel) pada browser. f) Dapat menampilkan foto pengguna di kontak favorit. g) Dapat menampilkan tanggal/waktu di log panggilan serta memiliki akses dalam satu sentuhan ke nomor kontak yang ada di log panggilan. h) Memiliki fitur animasi transisi layar. i) Memiliki fitur auto rotarion (memutar-otomatis). j) Memiliki animasi boot yang baru. k) Memiliki fitur untuk upload (mengunggah) video ke YouTube. l) Memiliki kemampuan untuk upload (mengunggah) foto ke Picasa. Universitas Sumatera Utara 4. Android 1.6 Donut Di versi yang memiliki API level 4 ini memiliki fitur: a) Memiliki entri di pencarian teks serta suara yang lebih luas, termasuk riwayat bookmark, kontak, dan web. b) Memiliki kemampuan untuk para pengembang dalam menyertakan kontennya pada hasil pencarian. c) Memiliki kemampuan mesin dalam pengucapan berbagai bahasa sehingga memungkinkan aplikasi di Android tertentu mampu mengucapkan teks. d) Memiliki pencarian yang lebih mudah dan memiliki kemampuan dalam melihat cuplikan aplikasi yang ada di Android Market. e) Memiliki galeri foto, kamera, dan perekam video yang lebih terintegrasi, dan memiliki akses kamera yang lebih cepat dari sebelumnya. f) Memiliki kemampuan dalam memilih banyak foto untuk di-delete (dihapus). g) Pembaruan dalam dukungan teknologi bagi CDMA/EVDO, 802.1x, dan VPN. h) Memiliki dukungan resolusi layar WVGA. i) Memiliki peningkatan kecepatan dalam pencarian dan aplikasi kamera j) Pengembangan di Gesture Builder. 5. Android 2.0 – 2.1 Eclair Generasi ke empat dari android yang memiliki API level 7 ini lebih memfokuskan pada pengembangan hardware pada smartphone android serta pengembangan pada Google Map dan beberapa fitur lainnya yakni: a) Pengembangan pada sistem sinkronisasi sehingga sinkronisasi pada akun di smarphone diperluas, yang memungkinkan si pengguna dapat menambahkan beberapa akun. Universitas Sumatera Utara b) Memiliki dukungan terhadap Bluetooth 2.1. c) Memiliki kemampuan dalam memilih foto pada kontak dan opsi untuk memanggilnya. d) Memiliki kemampuan dalam mencari semua atau beberapa SMS maupun MMS yang tersimpan, serta memiliki fitur untuk menghapus pesan yang terlama jika waktu yang ditentukan telah tercapai. e) Menambahkan beberapa fitur di kamera, termasuk mendukung flash, mode zoom (perbesaran), mode skin, kejernihan, efek warna, serta fokus makro. f) Peningkatan kecepatan dalam mengetik pada keyboard (papan ketik) virtual yang didukung kamus yang mempelajari penggunaan dari kata-kata, termasuk nama dalam kontak. g) Memiliki tampilan UI pada browser yang baru, dengan memilki fitur bookmark thumbnail, double-tap zoom serta dukungan pada HTML5. h) Penyempurnaan pada tampilan agenda di kalender. i) Mengoptimalkan kecepatan pada software (perangkat lunak) dan perubahan tampilan UI. j) Dukungan lebih banyak pada resolusi dan ukuran layar. k) Penambahan live wallpaper di background (latar belakang) di layar depan. 6. Android 2.2 Froyo Android Froyo pertama kali di luncurkan pada tahun 2010 dan memiliki API level 8 dimana android ini telah memiliki fitur Adobe Flash serta memiliki tiga hingga lima kali kecepatan kinerja sistem dari pendahulunya. Beberapa fitur lainnya: Universitas Sumatera Utara a) Pengembangan di dalam peningkatan kecepatan, penyimpanan serta pengoptimalan pada kinerja. b) Telah terintegrasi JavaScript V8 Chrome pada browser. c) Memiliki dukungan layanan Android Cloud to Device Messaging (C2DM). d) Peningkatan pada Microsoft Exchange. e) Peningkatan fitur shorcut (jalan pintas) ke Telepon dan aplikasi dalam penjelajah web. f) Peningkatan pada fungsi USB tethering dan hotspot Wifi. g) Penambahan pilihan untuk mematikan akses data pada jaringan seluler. h) Pembaharuan aplikasi Market dengan penambahan fitur pembaharuan otomatis. i) Penambahan fitur pada kontak dan panggilan suara yang bisa dibagikan melalui perangkat Bluetooth. j) Dukungan bagi fitur Bluetooth-enabled car dan desk docks. k) Dukungan bagi pasword (kata sandi) alfanumerik. l) Dukungan upload (mengunggah) berkas / file pada aplikasi penjelajah web. m) Penjelajah web dapat menampilkan animasi GIF. n) Mendukung Adobe Flash. o) Dukungan pada tampilan PPI hingga 320 ppi. p) Gestur pembesaran di Galeri. 7. Android 2.3 Gingerbread Pada versi dengan API level 10 ini, OS android lebih memfokuskan pada performa kinerja android seperti game, fungsi kamera, audio, dan sebagainya. Di versi android ini memiliki beberapa fitur unggul yakni: a) Memperbarui performa dan penyederhanaan desain antarmuka pengguna. b) Mendukung resolusi layar ekstra-besar (WXGA bahkan yang lebih tinggi). Universitas Sumatera Utara c) Dukungan untuk telepon internet SIP VoIP d) Peningkatan akurasi, saran teks, mode input suara pada keyboard (papan ketik) virtual. e) Peningkatan fungsi copy-paste (salin-tempel) yang memungkinkan pengguna memilih kata yang ingin di copy (salin). f) Dukungan bagi Near Field Communication (NFC) sehingga pengguna dapat membaca tag NFC yang tertanam di poster, stiker maupun iklan. g) Penambahan efek audio baru seperti reverb, equalizer, virtualisasi suara, dan bass boost. h) Penambahan Download Manager yang baru sehingga pengguna lebih mudah untuk mengakses file/ berkas yang telah di download (diunduh). i) Dukungan akan multi-kamera pada perangkat. j) Support pada pemutar video WebM/VP8, dan audio AAC. k) Peningkatan efektifitas baterai dalam mengelola aplikasi. l) Peralihan dari YAFFS ke ext4 pada perangkat. m) Peningkatan pada kualitas audio, grafis. n) Penambahan dukungan sensor (seperti giroskop dan barometer). o) Penambahan Google Talk. p) Dukungan pada Open Accessory Library. q) Peningkatan kinerja pada Gmail. r) Peningkatan kinerja pada kamera s) Peningkatan daya tahan baterai 8. Android 3.1 – 3.2 Honeycomb Universitas Sumatera Utara Versi android honeycomb dengan API level 13 ini merupakan versi yang berbeda dengan versi android sebelumnya. Versi android honeycomb ini, lebih di khususkan untuk para pengguna android tablet. Sistem operasi android ini juga di sesuaikan untuk kebutuhan pengguna tablet. Selain itu ada beberapa fitur lagi yang ada di versi android honeycomb ini, antara lain: a) Konektifitas untuk aksesoris USB. b) Memperluas di daftar Recent Apps. c) Widget layar depan dapat dirubah ukurannya. d) Dukungan untuk keyboard (papan ketik) eksternal dan tetikus. e) Dukungan untuk joystick maupun gamepad. f) Dukungan untuk pemutar audio FLAC. g) Peningkatan kinerja pada Wifi. h) Dukungan untuk proxy HTTP pada setiap titik akses Wifi. i) Peningkatan terhadap hardware (perangkat keras) yang di tujukan untuk tablet. j) Peningkatan pada kemampuan dalam mengakses kartu SD. k) Dukungan pada tampilan yang baru dengan mengembangkan lebih banyak kontrol pada tampilan layar. l) Peningkatan kinerja, stabilitas, dan keamanan pada Wifi. m) Pembaharuan terhadap Google Books. n) Peningkatan dukungan terhadap Adobe Flash di browser. o) Peningkatan terhadap prediksi tulisan Tionghoa. p) Dukungan "Pay as You Go" untuk tablet 3G dan 4G. 9. Android 4.0 Ice Cream Sandwich Universitas Sumatera Utara Versi android dengan API level 15 ini, merupakan OS android pertama yang memiliki fitur terhadap pengenalan wajah. Selain itu OS android versi Ice Cream Sandwich ini memiliki penampilan interface yang lebih smooth dan beberapa fitur lainnya: a) Memiliki pemisahan widget di tab yang baru. b) Lebih mudah dalam pembuatan folder hanya dengan drag-and-drop. c) Launcher dapat di custom. d) Peningkatan pada fitur pesan suara memiliki kemampuan mempercepat ataupun memperlambat kecepatan pada pesan suara. e) Memiliki fitur untuk memperbesar tampilan kalender. f) Memiliki fitur screenshot hanya dengan menekan dan menahan tombol power serta volume-turun secara bersamaan. g) Kemampuan dalam mengakses aplikasi dari layar yang terkunci. h) Memiliki mode password dengan menggunakanidentifikasi wajah. i) Peningkatan terhadap browser Chrome yang mampu membuka halaman hingga 16 tab. j) Dapat mensinkronisasikan bookmark browser Chrome dengan bookmark Chrome lainnya. k) Penambahan font baru yakni font Roboto. l) Memiliki fitur peringatan maupun membatasi penggunaan pada data koneksi. m) Memiliki kemampuan untuk mematikan aplikasi yang bekerja di background. n) Peningkatan fungsi pada aplikasi kamera dengan memiliki fitur seperti zero shutter lag, time lapse settings, mode panorama, dan kemampuan zoom (memperbesar) saat merekam video. o) Penambahan aplikasi untuk mengedit foto. p) Mode baru pada galeri dimana foto/video bisa di sortir berdasarkan lokasi dan orang. Universitas Sumatera Utara q) Penambahan fitur aplikasi "People" dimana aplikasi ini terintegrasi dengan jejaringan sosial. r) Memiliki fitur Android Beam dimana fitur ini dapat melakukan pertukaran bookmark web, info kontak, video YouTube, dan data lainnya. s) Mendukung format gambar WebP. t) Dapat merekam video hingga 1080p untuk beberapa perangkat Android tertentu. u) Modul kernel v) Memiliki fitur Android VPN Framework (AVF) dan TUN. 10. Android 4.1 – 4.3 Jelly Bean Versi Android Jelly Bean dengan API level 16 sampai 18 ini memiliki fitur baru yang menawan dan memiliki perbaikan fitur pada versi-versi android sebelumnya dan memiliki beberapa fitur lainnya: a) Interface yang lebih halus dari sebelumnya dan memiliki tripple buffering pada grafisnya. b) Peningkatan pada aksesbilitas. c) Memiliki teks dua bahasa dan mendukung bahasa lainnya serta papan ketik yang bisa dimodifikasi oleh pengguna d) Perluasan pada notifikasiserta kemampuan dalam mematikan notifikasi pada aplikasi. e) Dapat mengatur posisi maupun ukuran pada shortcut dan widget. f) Peningkatan pada pencarian suara. g) Peningkatan pada aplikasi kamera. h) Memiliki foto kontak di aplikasi Google+ dengan resolusi yang tinggi i) Memiliki aplikasi pencarian Google Now. j) Mendukung Audio USB untuk suara eksternal. Universitas Sumatera Utara k) Audio chaining. l) Kemampuan dalam menambahkan widget aplikasi tanpa perlu akses root. m) Penambahan fitur gerakan satu jari untuk menampilkan maupun menyembunyikan notifikasi. n) Memiliki fitur foto panorama "Photo Sphere". o) Mengunci tombol dengan menggunakan gestur ketikan. p) Penambahan Screensaver "Daydream" q) Memiliki lebih dari satu akun pengguna (hanya pada tablet) r) Dukungan tampilan nirkabel (Miracast). s) Penambahan aplikasi baru pada jam dengan fitur jam dunia, stop watch maupun penghitung waktu mundur. t) Seluruh shortcut aplikasi terdapat di interface serta SELinux. u) VPN yang selalu terhubung. v) Memiliki konfirmasi SMS premium dan Group Messaging. w) Penambahan fitur gamepad dan joysticks Bluetooth yang mendukung HID. x) Terdapat notifikasi persentase maupun perkiraan download (unduhan). y) Perubahan pada nada notifikasi yang baru pada pengisian nirkabel ataupun baterai lemah. z) Animasi baru pada galeri. 11. Android 4.4 Kitkat Peluncuran versi android kitkat pada tahun 2013 namun belum diketahui persis kapan peluncurannya. Namun android kitkat di klaim OS android yang lebih cerdas dari versi android sebelumnya. Fitur yang ada di android kitkat ini adalah: Universitas Sumatera Utara a) Memiliki pembaharuan interface dengan status bar dan navigasi yang transparan pada interface. b) Pengoptimasikan kinerja android pada perangkat dengan spesifikasi yang rendah. c) Memiliki NFC Host Card Emulation. d) Memiliki WebViews berbasis Chromium. e) Perluasan fungsionalitas pada notifikasi. f) Memiliki akses penyimpanan dalam mengambil konten ataupun dokumen dari sumber lainnya. g) Memiliki Sensor batching, Step Detector, dan Counter API. h) Inframerah i) Peningkatan pada aksesibilitas API j) Memiliki fitur pada SMS yang terintegrasi langsung pada aplikasi google hangouts. k) Memiliki fasilitas Cloud Printing dimana pengguna dapat ngeprint secara nirkabel. l) Perubahan pada desain ikon dan tema yang lebih realistik dan unik. m) Dapat mendengarkan perintah suara dari google now tanpa perlu menguras baterai. n) Dapat mengakses aplikasi kamera ketika layar sedang terkunci. 12. Android 5.0 Lollipop Versi android terbaru saat ini adalah android lollipop dengan API level 21. OS android ini di rilis pada tanggal 15 Oktober 2014. Kabarnya OS android terbaru ini memiliki fitur yang super canggih, diantaranya: a) Memiliki performa yang lebih cepat,lebih responsif, lebih kuat, dan memiliki tampilan lebih smooth dengan tampilan icon 3D yang mengagumkan. b) Notifikasi di android 5.0 ini lebih mudah terlihat, mudah diakses, serta dapat dikonfigurasi. Universitas Sumatera Utara c) Memperkenalkan desain ulang Overview Space yang lebih fleksibel untuk multitasking. d) Penambahkan teknologi API yang baru sehingga memungkinkan beroperasinya aplikasi secara bersamaan dengan Bluetooth Low Energy (BLE). e) Mendukung Khronos OpenGL ES 3.1 yang memberikan kemampuan grafis 2D dan 3D lebih realistik pada game dan aplikasi. f) Memiliki kualitas audio lebih powerfull. g) Peningkatan pada kualitas kamera serta video. h) Memiliki tipe sensor baru yakni membaca detak jantung. i) Baterai tahan lebih lama dan dapat mengoptimalkan baterai dengan cara menjadwal aplikasi yang berjalan. 2.9 Android Studio Android Studio adalah sebuah IDE untuk Android Development yang diperkenalkan google pada acara Google I/O 2013. Android Studio merupakan pengembangkan dari Eclipse IDE, dan dibuat berdasarkan IDE Java populer, yaitu IntelliJ IDEA. Android Studio merupakan IDE resmi untuk pengembangan aplikasi Android. Sebagai pengembangan dari Eclipse, Android Studio mempunyai banyak fitur-fitur baru dibandingkan dengan Eclipse IDE. Berbeda dengan Eclipse yang menggunakan Ant, Android Studio menggunakan Gradle sebagai build environment. Fitur-fitur lainnya adalah sebagai berikut : 1. Menggunakan Gradle-based build system yang fleksibel. 2. Bisa mem-build multiple APK . Universitas Sumatera Utara 3. Template support untuk Google Services dan berbagai macam tipe perangkat. 4. Layout editor yang lebih bagus. 5. Built-in support untuk Google Cloud Platform, sehingga mudah untuk integrasi dengan Google Cloud Messaging dan App Engine. 6. Import library langsung dari Maven repository. Ketika awal saya berkenalan dengan Android, saya menggunakan Eclipse sebagai IDE untuk membuat aplikasi Android. Jika dibandingkan dengan Android Studio memang dari sisi build lebih baik dibandingkan Eclipse, karena Android Studio menggunakan Gradle. Ditambah lagi berbeda dengan Eclipse, kita tidak perlu lagi dipusingkan dengan dependencies package pada Android Studio. Satu hal tambahan lagi yang membuat Android Studio unggul adalah dukungan layout xml editor secara visual yang jauh lebih baik daripada Eclipse. Walaupun begitu, Android Studio saat ini masih dalam tahap beta dan belum mempunyai dukungan untuk NDK/Native Development Kit, 2.10 Pengenalan HTML Hypertext Markup Language (HTML) adalah script di mana kita bisa menampilkan informasi dan daya kreasi kita lewat internet. HTML sendiri adalah suatu dokumen teks biasa yang mudah dimengerti dibanding bahasa pemrograman lainnya, dan karena bentuknya itu maka HTML dapat dibaca oleh berbagai platform seperti Windows, Linux, dan Macintosh. Kata “Markup Language“ pada HTML menunjukkan fasilitas yang berupa tanda tertentu dalam skrip HTML dimana kita bisa mengatur judul, garis, tabel, gambar, dan lain – lain dengan perintah yang telah ditentukan pada elemen HTML. Penamaan dokumen HTML dapat dilakukan dengan memilih suatu nama, sembarang nama, kemudian menambahkan sebuah ekstensi “.htm” atau “.html” (tanda kutip tidak Universitas Sumatera Utara perlu dituliskan karena digunakan sebagai penjelas saja). HTML sendiri dikeluarkan oleh W3C (World Wide Web Consortium), setiap terjadi perkembangan level HTML, harus dievaluasi ketat dan disetujui oleh W3C. Hingga kini versi terakhir HTML yang telah disetujui oleh W3C HTML4.01. 2.10.1 Sejarah Asal Mula HTML Sejarah html berawal pada tahun 1980 ketika IBM berniat untuk membuatkan suatu bahasa kode untuk menggabungkan teks dengan pemformatan agar mengenali elemen dokumen. Bahasa yang menggunakan tanda-tanda ini dinamakan Markup Language. Namun pihak IBM member nama Generalized Markup Language (GML). Pada tahun 1986, ISO mengeluarkan standarisasi bahasa markup berdasarkan GML dengan nama Standard Generalized Markup Language (SGML). Pada tahun 1989, Caillau Tim bekerja sama dengan Banners Lee Robert, ketika bekerja di CERN. Mencoba untuk mengembangkan SGML. Dari tangan merekalah lahir HTML (Hyper Text Markup Language) yang kini digunakan untuk membuat halaman website. HTML ini pertama kali dipopulerkan oleh Browser Mosaic. Sejak tahun 1990, bahasa ini mengalami perkembangan yang cukup pesat. Apalagi sejak tahun 1996, World Wide Web Consortium (W3C) turut mengembangkan html dan mengeluarkan versi 3.2. Sejak saat itulah html digunakan sebagai bahasa standar internet yang kini dikendalikan olehW3C. (Tutang, 2001) 2.10.2 Struktur Dasar HTML Universitas Sumatera Utara HTML terdiri dari beberapa bagian yang fungsinya sebagai penanda suatu kelompok perintah tertentu, misalnya kelompok perintah form yang ditandai dengan kode <form>, judul dengan <title> dan sebagainya. Untuk mengetahui lebih lanjut mengenai bagian – bagian HTML perhatikan skema di bawah ini : <html> <head> <title> </title> </head> <body> isi dari halaman web </body> </html> Keterangan: 1. Dokumen HTML selalu diawali dengan tanda tag pembuka <html> dan diakhiri dengan tanda tag penutup </html> 2. Pada elemen head <head> </head>, dapat kita sisipkan kode – kode untuk menuliskan keterangan tentang dokumen HTML. Atau dapat juga kita sisipkan kode – kode pemrograman web seperti JavaScript, VBScripts, atau CSS untuk menambah daya tarik pada situs yang kita buat agar lebih menarik dan dinamis. 3. Elemen body <body> </body> berisi tag – tag untuk isi atau layout tampilan situs kita, seperti <font></font>, <table></table>, <form></form>. Universitas Sumatera Utara Jadi jelas bahwa elemen adalah suatu bagian yang besar yang terdiri dari kode tag tersebut. Sedangkan tag hanyalah merupakan bagian dari elemen. Tag adalah kode – kode yang digunakan untuk men-setting dokumen HTML. Secara garis besar bentuk umum tag adalah sebagai berikut: <tag-awal>TEKS</tag-akhir>. Namun ada juga tag yang tidak perlu ada penutup seperti <br>, <hr>, <img>, dan lain – lain. 2.10.3 Sintaks Dasar HTML Sintaks dasar meliputi bagian-bagian perintah dasar yang dimiliki oleh html, diantaranya sebagai berikut : 1. P (Paragraph), berfungsi untuk mengganti paragraph yang diikuti dengan baris kosong di awal dan di akhir paragraph. Cara penggunaannya dapat dilakukan dengan perintah tag <p> dan diakhiri dengan tag </p>. Jika tidak diberi tanda penutupnya, maka seluruh file yang berada di bawahnya akan diikuti dengan baris kosong di akhir paragraph. 2. BR (Line Break), berfungsi mengganti baris. Sintaksnya : <br> 3. H1, H2, H3, H4, H5, H6 (Header), berfungsi untuk membuat header dengan urutan enam jenis berbeda dengan tercetak tebal. Sintaksnya : <Hx>……</Hx> 4. B (Bold), berfungsi untuk membuat tampilan teks tercetak tebal. Sintaksnya : <b>……</b> 5. i (italic), berfungsi untuk memebuat tampilan teks tercetak miring. Universitas Sumatera Utara Sintaksnya : <i>……</i> 6. U (underline), berfungsi untuk membuat tampilan teks tercetak garis bawah. Sintaksnya : <u>……</u> 7. PRE (Preformated Text), berfungsi untuk menampilkan teks apa adanya. Sintaksnya : <PRE> …… </PRE> 8. Center, berfungsi untuk menampilkan teks dengan posisi horizontal tengah. Sintaksnya : <center> …… </ center > 9. BaseFont, berfungsi untuk mengubah dasar ukuran huruf dari web browser. Sintaksnya : <basefont size = “pixel”> 10. Font, berfungsi untuk mengubah jenis, ukuran, warna, dan tampilan huruf. Sintaksnya : <font color=”warna” face=”font” size=”pixel”> …… </ font > 11. HR (Horizontal Rule), berfungsi untuk membuat garis bawah. Sintaksnya : <hr> 12. OL (Ordered List), berfungsi untuk membuat nomor daftar urut. Sintkasnya : Universitas Sumatera Utara <ol start=”number” type=”A”|”a”|”I”|”i”|”1”> …… </ol> 13. UL (Unordered List), berfungsi untuk membuat daftar tanpa nomor urut (dalam format bullet). Sintaksnya : <ul type=”circle”|”square”|”disc”> …… </ul> 14. LI (List Item), merupakan isi pada daftar. Sintaksnya : <li type=”A”|”a”|”I”|”i”|”1”| ”circle”|”square”|”disc”> …… </li> 15. Div (Division), Digunakan untuk mendifinisikan bagian dari sebuah halaman web. Seringkali digunakan untuk mengelompokan elemen-elemen HTML dengan format style tertentu. Sintaksnya : <div style=’color:#ff0000”> <h3>ini merupakan judul</h3> <p>ini merupakan paragraph</p> </div> 2.11 Pengenalan Personal Home Page (PHP) Universitas Sumatera Utara PHP adalah singkatan dari Personal Home Page yang merupakan bahasa standar yang digunakan dalam dunia website. PHP adalah bahasa pemrograman yang berbentuk script yang diletakkan didalam server web. Kelebihan PHP dari bahasa pemrograman lain : 1. Bahasa pemrograman PHP adalah sebuah bahasa script yang tidak melakukan sebuah kompilasi dalam penggunaanya. 2. Web Server yang mendukung PHP dapat ditemukan di mana – mana dari mulai IIS sampai dengan apache, dengan konfigurasi yang relatif mudah. 3. Dalam sisi pengembangan lebih muda h, karena banyaknya milis – milis dan developer yang siap membantu dalam pengembangan. 4. Dalam sisi pemahamanan, PHP adalah bahasa scripting yang paling mudah karena referensi yang banyak. PHP adalah bahasa open source yang dapat digunakan diberbagai mesin (Linux, Unix, Windows) dan dapat dijalankan secara runtime melalui console serta juga dapat menjalankan perintah – perintah sistem. Sistem database yang didukung oleh PHP adalah Oracle, Sybase dan MySQL. 2.11.1 Sejarah Asal Mula PHP PHP pertama kali dibuat oleh Rasmus Lerdorf pada tahun 1995. Pada waktu itu PHP bernama FI (Form Interpreted). Pada saat tersebut PHP adalah sekumpulan script yang digunakan untuk mengolah data form dari web. Perkembangan selanjutnya adalah Rasmus melepaskan kode sumber tersebut dan menamakannya PHP/FI, pada saat tersebut kepanjangan dari PHP/FI adalah Personal Home Page/Form Interpreter. Dengan pelepasan kode sumber ini menjadi open source, Universitas Sumatera Utara maka banyak programmer yang tertarik untuk ikut mengembangkan PHP. Pada November 1997, dirilis PHP/FI 2.0. Pada rilis ini interpreter sudah diimplementasikan dalam C. Dalam rilis ini disertakan juga modul – modul ekstensi yang meningkatkan kemampuan PHP/FI secara signifikan. Sebuah perusahaan bernama Zend, menulis ulang interpreter PHP menjadi lebih bersih, lebih baik dan lebih cepat. Kemudian pada Juni 1998 perusahaan tersebut merilis interpreter baru untuk PHP dan meresmikan nama rilis tersebut menjadi PHP 3.0. Pada pertengahan tahun 1999, Zend merilis interpreter PHP baru dan rilis tersebut dikenal dengan PHP 4.0. PHP 4.0 adalah versi PHP yang paling banyak dipakai. Versi ini banyak dipakai sebab versi ini mampu dipakai untuk membangun aplikasi web kompleks tetapi tetap memiliki kecepatan proses dan stabilitas yang tinggi. Pada Juni 2004, Zend merilis PHP 5.0. Versi ini adalah versi mutakhir dari PHP. Dalam versi ini, inti dari interpreter PHP mengalami perubahan besar. Dalam versi ini juga dikenalkan model perkembangan bahas pemrograman berorientasi objek baru untuk menjawab pemrograman ke arah pemrograman berorientasi objek. (Kadir, 2005) 2.11.2 Variabel pada PHP Variabel dapat disebut sebagai sebuah tempat penyimpanan data bagi nilai numeris maupun non numeris, agar dapat digunakan pada bagian lain dari script program PHP. PHP mendukung berbagai jenis variabel yaitu : Integer (bilangan bulat), bilangan floating point (presisi tunggal, ganda), boolean, null (untuk variabel yang belum diset), string dan array, object dan resource. Universitas Sumatera Utara Jika menggunakan bahasa pemrograman C atau Pascal, maka harus mendefinisikan variabel tiap elemen, namun pada PHP tidak perlu mendefinisikan terlebih dahulu jenis variabel sebelum menggunakannya. PHP dapat membedakan jenis variabel secara otomatis berdasarkan konteks yang sedang berlaku bagi variabel tersebut. Setiap variabel dalam PHP selalu dimulai dengan tanda dolar ("$") dan harus dimulai dengan huruf dan dapat diikuti oleh huruf dan angka. Dengan demikian, $warpspeed, $impuls_speed, $LCAR dan $Dilithium1 adalah contoh penamaan variabel PHP yang valid. Setiap variabel dalam PHP peka terhadap perbedaan huruf kapital dan non kapital, sehingga $subspace, $SubSpace, dan $SUBSPACE adalah tiga buah variabel yang berbeda. 2.11.3 Konsep Dasar Penggunaan PHP Kode PHP diawali dengan tanda lebih kecil (<) dan diakhiri dengan tanda lebih besar (>). Ada empat cara untuk menuliskan script PHP yaitu : 1. <? Apa kabar.. ?> 2. <?php Apa kabar.. ?> 3. <% Apa kabar.. %> 4. <SCRIPT LANGUAGE=”php”> Apa kabar..</SCRIPT> Pemisah antar instruksi adalah titik koma (;) dan untuk membuat atau menambahkan komentar standar penulisan adalah : /* komentar */, // komentar, # komentar. Cara penulisan dibedakan menjadi Embeded dan Non Embeded script. 1. Embeded Script Contoh dari Embeded script : <html> Universitas Sumatera Utara <head> <title>Coba</title> </head> <body> <?php echo ”web developer”; ?> </body> </html> 2. Non Embeded Script Contoh dari Non Embeded Script : <?php echo”<html>”; echo”<head>”; echo”<title>”; echo”we learn about php”; echo”</title>”; echo”</head>”; echo”<body>”; echo”<p> My Project </p>”; echo”</body>”; echo”</html>”; ?> 2.12 Sublime Text Sublime text merupakan teks editor multiplatform dan powerfull, karena dengan ukuran yang kecil, Sublime Text memiliki fitur yang luar biasa dan kinerja yang sangat sederhana. Fiturnya sangat lengkap (bisa digunakan untuk berbagai bahasa pemrograman) dan juga kita dapat menambah extension untuk memudahkan dalam coding. Ada beberapa fitur yang membuat menarik dalam pemakaiannya, yaitu : 1. Go Anything adalah fitur yang bisa membuka file dengan tombol Ctrl + P pada keyboard guna membuka file dengan jumlah banyak. 2. Multiple Selections adalah fitur yang bisa mengubah banyak baris, mengubah Universitas Sumatera Utara variable dengan menekan Ctrl + Shift + L dan Ctrl + Shift + D. 3. Cross Platform artinya fitur ini bisa digunakan di berbagai OS. 2.13 XAMPP Control Panel XAMPP adalah program aplikasi pengembang yang berguna untuk pengembangan website berbasis PHP dan MySQL. Sampai saat ini, versi terbaru XAMPP adalah XAMPP 1.8.3.0. Software XAMPP dibuat dan dikembangkan oleh Apache Friends. Perangkat lunak komputer ini memiliki kelebihan untuk bisa berperan sebagai server web Apache untuk simulasi pengembangan website. Tool pengembangan web ini mendukung teknologi web populer seperti PHP, MySQL, dan Perl. Melalui program ini, programmer web dapat menguji aplikasi web yang dikembangkan dan mempresentasikannya ke pihak lain secara langsung dari komputer, tanpa perlu terkoneksi ke internet. XAMPP juga dilengkapi fitur manajemen database PHPMyAdmin seperti pada server hosting sungguhan, sehingga pengembang web dapat mengembangkan aplikasi web berbasis database secara mudah. Program XAMPP banyak diaplikasikan dan digunakan oleh kalangan pengguna komputer di bidang pemrograman web. XAMPP merupakan software gratis. XAMPP dapat dijalankan di sistem operasi Windows 2000/XP/Vista/7 dan sistem operasi lain. Fungsi XAMPP adalah sebagai server yang berdiri sendiri (localhost), yang terdiri atas program Apache HTTP Server, MySQL database, dan penerjemah bahasa yang ditulis dengan bahasa pemrograman PHP dan Perl. Nama XAMPP merupakan singkatan dari X (empat sistem operasi apapun), Apache, MySQL, PHP dan Perl. Program ini tersedia dalam Universitas Sumatera Utara GNU (General Public License) dan bebas, merupakan web server yang mudah digunakan yang dapat melayani tampilan halaman web yang dinamis. 2.14 MySQL MySQL adalah sistem manajemen database yang digunakan untuk menyimpan data dalam tabel terpisah dan menempatkan semua data dalam satu gudang besar. Struktur database disusun dalam file fisik dioptimalkan untuk kecepatan. Model logis, dengan benda-benda seperti database, tabel, baris, dan kolom, menawarkan lingkungan pemrograman yang fleksibel. Anda dapat mengatur aturan yang mengatur hubungan antara bidang data yang berbeda, seperti satu-ke-satu, satu-ke-banyak, diperlukan atau opsional, dan "pointer" antara tabel yang berbeda. Database memberlakukan aturan ini, sehingga dengan database yang dirancang dengan baik, aplikasi Anda tidak pernah melihat tidak konsisten, menduplikasi, out-of-date, atau data yang hilang. MySQL pada awalnya diciptakan pada tahun 1979, oleh Michael Monty Widenius, seorang programmer komputer asal swedia. Monty mengembangkan sebuah sistem database sederhana yang dinamakan UNIREG yang menggunakan koneksi low-level ISAM database engine dengan indexing. Pada saat itu Monty bekerja pada perusahaan bernama TcX di Swedia. Seperti yang sudah disebutkan diatas MySQL merupakan pengkat lunak yang gratis atau open sources yang mungkin bagi siapa saja untuk menggunakan dan memodifikasi perangkat lunak. Siapa saja dapat men-download software MySQL dari internet dan menggunakannya tanpa membayar apa-apa. Universitas Sumatera Utara SQL bagian dari Mysql singkatan dari "Structured Query Language". SQL adalah bahasa standar yang paling umum digunakan untuk mengakses database. Tergantung pada lingkungan pemrograman Anda, Anda mungkin memasukkan SQL langsung (misalnya, untuk menghasilkan laporan), menanamkan pernyataan SQL ke dalam kode yang ditulis dalam bahasa lain, atau menggunakan API bahasa tertentu yang menyembunyikan sintaks SQL. SQL didefinisikan oleh ANSI / ISO Standard SQL. Standar SQL telah berkembang sejak tahun 1986 dan beberapa versi ada. Dalam panduan ini, SQL 92 mengacu pada standar yang dirilis pada tahun 1992, SQL 1999 mengacu pada standar yang dirilis pada tahun 1999, dan SQL 2003 mengacu pada versi standar. Kami menggunakan frase standar SQL berarti versi terbaru dari Standard SQL setiap saat. 2.15 Java Java adalah bahasa pemrograman tingkat tinggi yang berorientasi objek dan program java tersusun dari bagian yang disebut kelas. Kelas terdiri atas metode-metode yang melakukan pekerjaan dan mengembalikan informasi setelah melakukan tugasnya. Para pemrogram Java banyak mengambil keuntungan dari kumpulan kelas di pustaka kelas Java, yang disebut dengan Java Application Programming Interface (API). Kelas-kelas ini diorganisasikan menjadi sekelompok yang disebut paket (package). Java API telah menyediakan fungsionalitas yang memadai untuk menciptakan applet dan aplikasi canggih. Jadi ada dua hal yang harus dipelajari dalam Java, yaitu mempelajari bahasa Java dan bagaimana mempergunakan kelas pada Java API. Kelas merupakan satu-satunya cara menyatakan bagian eksekusi program, tidak ada cara lain. Pada Java program javac untuk mengkompilasi file kode sumber Java menjadi kelas-kelas bytecode. File kode sumber mempunyai ekstensi Universitas Sumatera Utara *.java. Kompilator javac menghasilkan file bytecode kelas dengan ekstensi *.class. Interpreter merupakan modul utama sistem Java yang digunakan aplikasi Java dan menjalankan program bytecode Java. Beberapa keunggulan java yaitu java merupakan bahasa yang sederhana. Java dirancang agar mudah dipelajari dan digunakan secara efektif. Java tidak menyediakan fiturfitur rumit bahasa pemrograman tingkat tinggi, serta banyak pekerjaan pemrograman yang mulanya harus dilakukan manual, sekarang digantikan dikerjakan Java secara otomatis seperti dealokasi memori. Bagi pemrogram yang sudah mengenal bahasa C++ akan cepat belajar susunan bahasa Java namun harus waspada karena mungkin Java mengambil arah (semantiks) yang berbeda dibanding C++. Java merupakan bahasa berorientasi objek (OOP) yaitu cara ampuh dalam pengorganisasian dan pengembangan perangkat lunak. Pada OOP, program komputer sebagai kelompok objek yang saling berinteraksi. Deskripsi ringkas OOP adalah mengorganisasikan program sebagai kumpulan komponen, disebut objek. Objek-objek ini ada secara independen, mempunyai aturan-aturan berkomunikasi dengan objek lain dan untuk memerintahkan objek lain guna meminta informasi tertentu atau meminta objek lain mengerjakan sesuatu. Kelas bertindak sebagai modul sekaligus tipe. Sebagai tipe maka pada saat jalan, program menciptakan objek-objek yang merupakan instan-instan kelas. Kelas dapat mewarisi kelas lain. Java tidak mengijinkan pewarisan jamak namun menyelesaikan kebutuhan pewarisan jamak dengan fasilitas antarmuka yang lebih elegan. Seluruh objek diprogram harus dideklarasikan lebih dulu sebelum digunakan. Ini merupakan keunggulan Java yaitu Statically Typed. Pemaksaan ini memungkinkan kompilator Java menentukan dan melaporkan terjadinya pertentangan (ketidakkompatibelan) tipe yang merupakan barikade awal untuk mencegah kesalahan yang tidak perlu (seperti mengurangkan variabel bertipe integer dengan variabel bertipe string). Pencegahan sedini Universitas Sumatera Utara mungkin diharapkan menghasilkan program yang bersih. Kebaikan lain fitur ini adalah kode program lebih dapat dioptimasi untuk menghasilkan program berkinerja tinggi. Java menggunakan model pengamanan tiga lapis (three-layer security model) untuk melindungi sistem dari untrusted Java code. Pertama, bytecode verifier membaca bytecode sebelum dijalankan dan menjamin bytecode memenuhi aturan-aturan dasar bahasa Java. Kedua, class loader menangani pemuatan kelas Java ke runtime interpreter. Ketiga, manajer keamanan menangani keamanan tingkat aplikasi dengan mengendalikan apakah program berhak mengakses sumber daya seperti sistem file, port jaringan, proses eksternal dan sistem window. Platform independence adalah kemampuan program bekerja di sistem operasi yang berbeda. Bahasa Java merupakan bahasa yang secara sempurna tidak bergantung platform. Tipe variabel Java mempunyai ukuran sama di semua platform sehingga variabel bertipe integer berukuran sama tidak peduli dimana program java dikompilasi. Begitu telah tercipta file .class dengan menggunakan kompilator Java di platform manapun, maka file .class tersebut dapat dijalankan di platform manapun. Jadi “dimanapun dibuat, dimanapun dapat dijalankan”. Slogan ini biasa diringkas sebagai Write Once, Run Anywhere (WORA). Java termasuk bahasa Multithreading. Thread adalah untuk menyatakan program komputer melakukan lebih dari satu tugas di satu waktu yang sama. Java menyediakan kelas untuk menulis program multithreaded, program mempunyai lebih dari satu thread eksekusi pada saat yang sama sehingga memungkinkan program menangani beberapa tugas secara konkuren. Program Java melakukan garbage collection yang berarti program tidak perlu menghapus sendiri objek-objek yang tidak digunakan lagi. Fasilitas ini mengurangi beban pengelolaan memori oleh pemrogram dan mengurangi atau mengeliminasi sumber kesalahan terbesar yang terdapat di bahasa yang memungkinkan alokasi dinamis. Universitas Sumatera Utara Java mempunyai mekanisme exception-handling yang ampuh. Exception-handling menyediakan cara untuk memisahkan antara bagian penanganan kesalahan dengan bagian kode normal sehingga menuntun ke struktur kode program yang lebih bersih dan menjadikan aplikasi lebih tegar. Ketika kesalahan yang serius ditemukan, program Java menciptakan exception. Exception dapat ditangkap dan dikelola program tanpa resiko membuat sistem menjadi turun. Program Java mendukung native method yaitu fungsi ditulis di bahasa lain, biasanya C/C++. Dukungan native method memungkinkan pemrogram menulis fungsi yang dapat dieksekusi lebih cepat dibanding fungsi ekivalen di java. Native method secara dinamis akan di-link ke program java, yaitu diasosiasikan dengan program saat berjalan. Selain itu keuntungan menggunakan bahasa pemrograman Java antara lain : memori pada Java secara otomatis dilengkapi garbage collector yang berfungsi mendealokasi memori yang tidak diperlukan. Tidak ada lagi upaya yang dilakukan pemrogram untuk melakukan dispose(). Kita tidak lagi dibebani urusan korupsi memori. Java menerapkan array sebenarnya, menghilangkan keperluan aritmatika pointer yang berbahaya dan mudah menjadi salah. Menghilangkan pewarisan jamak (multiple inheritance) diganti fasilitas antarmuka. Dan mudah dijalankan diberbagai platform. Grafical User Interface (GUI) adalah salah satu kemampuan Java dalam mendukung dan manajemen antarmuka berbasis grafis. Tampilan grafis yang akan ditampilkan terhubung dengan program serta tempat penyimpanan data. Elemen dasar di Java untuk penciptan tampilan berbasis grafis adalah dua paket yaitu AWT dan Swing. Abstract Windowing Toolkit (AWT), atau disebut juga “Another Windowing Toolkit”, adalah pustaka windowing bertujuan umum dan multiplatform serta menyediakan sejumlah kelas untuk membuat GUI di Java. Dengan AWT, dapat membuat window, menggambar, manipulasi gambar, dan komponen seperti Button, Scrollbar, Checkbox, TextField, dan menu pull-down. Universitas Sumatera Utara Penggunaan komponen AWT ditandai dengan adanya instruksi : import java.awt.*; Swing merupakan perbaikan kelemahan di AWT. Banyak kelas swing menyediakan komponen alternatif terhadap AWT. Contohnya kelas JButton swing menyediakan fungsionalitas lebih banyak dibanding kelas Button. Selain itu komponen swing umumnya diawali dengan huruf “J”, misalnya JButton, JTextField, JFrame, JLabel, JTextArea, JPanel, dan sebagainya. Teknologi swing menggunakan dan memperluas gagasan-gagasan AWT. Sementara, penggunaan komponen Swing ditandai dengan adanya instruksi : import javax.swing.*; Beberapa perbedaan AWT dan Swing, AWT merupakan komponen heavyweight (kelas berat) sedangkan Swing lightweight (kelas ringan). Swing memiliki lebih banyak komponen. Fasilitas Swing Look and Feel : Metal, Windows, Motif. Komponen Swing berdasar model-view, yaitu suatu cara pengembangan komponen dengan pemisahan penyimpanan dan penanganan data dari representasi visual data. Bahasa pemrograman Java merupakan salah satu bahasa pemrograman yang umum digunakan untuk mengembangkan aplikasi basis data yang dibuat menggunakan MySQL. 2.16 Flowchart Flowchart adalah sekumpulan simbol – simbol yang menunjukan atau menggambarkan rangkaian kegiatan – kegitan program dari awal hingga akhir. Jadi flowchart juga dapat digunakan untuk menggambarkan urutan langkah – langkah pekerjaan dalam suatu algoritma. Penjelasan arti dari lambang – lambang flowchart dapat didefinisikan seperti tabel dibawah ini : Universitas Sumatera Utara Tabel 2.2. Arti lambang – lambang Flowchart No SIMBOL KETERANGAN 1 Terminal, untuk memulai atau mengakhiri suatu program 2 Proses, simbol ini menunjukkan setiap pengolahan yang dilakukan oleh komputer. 3 Input-Output, untuk memasukkan data atau menunjukkan hasil keluaran dari suatu proses 4 Decision, suatu kondisi yang menghasilkan beberapa kemungkinan jawaban atau pilihan. 5 Untuk menyatakan sekumpulan langkah proses yang ditulis sebagai procedur 6 Connector, suatu prosedur akan masuk atau keluar melalui simbol ini dalam lembaran yang sama. 7 Off-Line Connector, simbol masuk atau keluarnya suatu prosedur pada lembaran kertas lainnya. 8 Arus/Flow dari prosedur yang dapat dilakukan dari atas kebawah, kiri kekanan atau sebaliknya. 9 Document, merupakan simbol dari data yang berbentuk kertas maupun informasi 10 Database, menyediakan tempat pengolahan data serta penyimpanan dalam storage. 11 Simbol untuk output, yang ditujukan kesuatu device ,seperti primer,plotters,dll Universitas Sumatera Utara 2.17 Algoritma Algoritma merupakan suatu cara menganalisa (menjelaskan) urutan dan hubungan kegiatan – kegiatan yang dilakukan untuk memecahkan suatu permasalahan sehingga tercapai tujuan yang diinginkan. Algoritma adalah urutan langkah-langkah logis pada penyelesaian masalah yang disusun secara sistematis. Masalah dapat berupa apa saja, dengan catatan untuk setiap masalah ada syarat kondisi awal yang harus dipenuhi sebelum menjalankan algoritma. Konsep algoritma sering kali disetarakan dengan sebuah resep. Sebuah resep biasanya memiliki daftar bahan atau bumbu yang akan digunakan, urutan pengerjaan, dan bagaimana hasil dari urutan pengerjaan tersebut. Apabila bahan yang digunakan tidak tertera (tidak tersedia), maka resep tersebut tidak akan dapat dikerjakan. Demikian juga jika urutan pengerjaannya tidak beraturan, maka hasil yang diharapkan tidak akan dapat diperoleh. Algoritma yang berbeda, dapat diterapkan pada suatu masalah dengan syarat yang sama. Tingkat kerumitan dari suatu algoritma merupakan ukuran seberapa banyak komputasi yang dibutuhkan algoritma tersebut untuk menyelesaikan masalah. Umumnya, algoritma yang dapat menyelesaikan suatu permasalahan dalam waktu yang singkat memiliki tingkat kerumitan yang rendah, sementara algoritma yang membutuhkan waktu lama untuk menyelesaikan suatu masalah membutuhkan tingkat kerumitan yang tinggi. 2.17.1 Sejarah Istilah Algoritma Universitas Sumatera Utara Kata algoritma berasal dari latinisasi nama seorang ahli matematika dari Uzbekistan Al Khawārizmi (hidup sekitar abad ke-9), sebagaimana tercantum pada terjemahan karyanya dalam bahasa latin dari abad ke-12 "Algorithmi de numero Indorum". Pada awalnya kata algorisma adalah istilah yang merujuk kepada aturan-aturan aritmetis untuk menyelesaikan persoalan dengan menggunakan bilangan numerik arab (sebenarnya dari India, seperti tertulis pada judul di atas). Pada abad ke-18, istilah ini berkembang menjadi algoritma, yang mencakup semua prosedur atau urutan langkah yang jelas dan diperlukan untuk menyelesaikan suatu permasalahan. Masalah timbul pada saat akan menuangkan bagaimana proses yang harus dilalui dalam suatu/sebuah sistem (program) bagi komputer sehingga pada saat eksekusinya, komputer dapat bekerja seperti yang diharapkan. Programer komputer akan lebih nyaman menuangkan prosedur komputasinya atau urutan langkah proses dengan terlebih dahulu membuat gambaran (diagram alur) diatas kertas. 2.17.2 Jenis-jenis Algoritma Terdapat beragam klasifikasi algoritma dan setiap klasifikasi mempunyai alasan tersendiri. Salah satu cara untuk melakukan klasifikasi jenis-jenis algoritma adalah dengan memperhatikan paradigma dan metode yang digunakan untuk mendesain algoritma tersebut. Beberapa paradigma yang digunakan dalam menyusun suatu algoritma akan dipaparkan dibagian ini. Masing-masing paradigma dapat digunakan dalam banyak algoritma yang berbeda. 1. Divide and Conquer, paradigma untuk membagi suatu permasalahan besar menjadi permasalahan-permasalahan yang lebih kecil. Pembagian masalah ini dilakukan terus menerus sampai ditemukan bagian masalah kecil yang mudah untuk dipecahkan. Singkatnya menyelesaikan keseluruhan masalah dengan membagi Universitas Sumatera Utara masalah besar dan kemudian memecahkan permasalahan-permasalahan kecil yang terbentuk. 2. Dynamic programming, metode pemecahan masalah dengan cara menguraikan solusi menjadi sekumpulan langkah (step) atau tahapan (stage) sedemikian sehingga solusi dari persoalan dapat dipandang dari serangkaian keputusan yang saling berkaitan. 3. Metode serakah. Sebuah algoritma serakah mirip dengan sebuah Pemrograman dinamik, bedanya jawaban dari submasalah tidak perlu diketahui dalam setiap tahap; dan menggunakan pilihan "serakah" apa yang dilihat terbaik pada saat itu. Universitas Sumatera Utara