BAB II LANDASAN TEORI
2.1. Android Android merupakan sebuah sistem operasi perangkat mobile berbasis linux yang mencakup sistem operasi, middleware dan aplikasi. Beberapa pengertian lain dari Android, yaitu : - Merupakan platform terbuka (open source) bagi para pengembang (programmer) untuk membuat aplikasi. - Merupakan sistem operasi yang dibeli Google Inc. dari Android Inc. - Bukan bahasa pemgrograman, akan tetapi hanya menyediakan lingkungan hidup atau run time environment yang disebut DVM (Dalvik Virtual Machine) yang telah dioptimasi untuk device/alat dengan sistem memori yang kecil. Untuk mengembangkan Android, dibentuk OHA (Open Handset Aliance), konsorium dari 34 perusahaan peranti keras (Hardware), peranti lunak (Software) dan telekomunikasi, termasuk Google, HTC, Intel, Motorola, Qualcomm, T-Mobile dan Nvidia. [Ir. Yuniar Supardi, Kompas Gramedia, 2011, 2]
Beberapa hal yang menjadi alasan supaya kita belajar Android seperti berikut: - Portabilitas yang tinggi, karena semua program ditulis dengan bahasa pe-mrograman Java. Ingat, semboyan Java “write once read many”. Tentunya Android mempunya hal seperti Java Virtual Machine, yang disebut dengan Dalvik Virtual Machine. Jadi gampangnya, program yang kita tulis harusnya dapat dijalankan pada berbagai macam platform device. - Android juga menyediakan berbagai macam library/services yang dapat digunaan seperti : fungsi browser, peta, GPS , konektivitas SQL database, jadi kita tidak perlu membangun dari awal. - Didukung oleh puluhan ribu aplikasi baik gratis, trial dan berbayar. Yang saya suka dari Andrid, bahwa Google telah menyediakan satu wadah sebagai jembatan yaitu Android Market. Karena hanya satu wadah ini, menjadikan semua aplikasi yang didistribusikan telah diseleksi oleh team Google dan jika telah lolos dipublish di Android Martket. Saya rasa akan makin aman, tentunya dengna asumsi bahwa handset
http://digilib.mercubuana.ac.id/
kita setting untuk “tidak mendownload dan mengeksekusi selain dari Android Market”. [Priyatna, F, Cerdas Pustaka Publisher, 2011, hal 1-3]
2.1.1 Google Cloud Messaging (GCM) Menurut (Google, Google Cloud Messaging: Overview, 2015) Google Cloud Messaging (GCM) adalah layanan gratis yang memungkinkan pengembang untuk mengirim pesan antara server dan aplikasi klien. Ini termasuk pesan downstream dari server ke aplikasi klien, dan pesan upstream dari aplikasi client ke server. Misalnya, pesan downstream bisa menginformasikan ke aplikasi klien bahwa ada data baru yang akan diambil dari server, seperti pemberitahuan "email baru". Untuk kasus penggunaan seperti pesan singkat, pesan GCM dapat mentransfer hingga 4KB payload (isi data) ke aplikasi klien. Layanan GCM menangani semua aspek antrian pesan dan pengiriman ke dan dari aplikasi klien.
Gambar 2. 1 Arsitektur GCM (Google, Google Cloud Messaging: Overview, 2015)
Berikut adalah bagaimana komponen diatas berinteraksi: • Google GCM Connection Server mengambil pesan dari server aplikasi dan mengirimkannya ke aplikasi klien. • Pada server aplikasi, menerapkan baik HTTP dan protokol XMPP untuk berkomunikasi dengan server koneksi GCM. Server aplikasi mengirim pesan ke server koneksi GCM; yang mengantrikan koneksi server dan menyimpan pesan, kemudian mengirimkannya ke aplikasi klien. • Klien App adalah aplikasi client GCM-enabled. Untuk menerima pesan GCM, aplikasi ini harus mendaftar dengan GCM dan mendapatkan identifikasi unik yang disebut tanda pendaftaran. Jika Anda menggunakan
http://digilib.mercubuana.ac.id/
koneksi server XMPP, aplikasi client dapat mengirim pesan "Downstream" kembali ke server aplikasi. Untuk informasi lebih lanjut tentang bagaimana menerapkan aplikasi client, lihat dokumentasi untuk platform Anda.
2.1.2 Implementasi GCM Client Menurut (Google, Implementing GCM Client on Android, 2015) Sebuah Google Cloud Messaging client (GCM) Android adalah aplikasi client yang berjalan pada perangkat Android. Untuk menulis kode program client, dapat menggunakan API GoogleCloudMessaging dan Android Studio. Here are the requirements for running a GCM Android client: • GCM membutuhkan perangkat yang menjalankan Android 2.2 atau lebih tinggi yang juga memiliki Google Play Store, atau emulator yang menjalankan Android 2.2 dengan API Google. • Namun, jika ingin menggunakan fitur GCM baru yang didistribusikan melalui Google Play Services, perangkat harus menjalankan Android 2.3 atau lebih tinggi, atau emulator yang menjalankan Android 2.3 dengan API Google. • Pada perangkat Android, GCM menggunakan koneksi yang ada untuk layanan Google. Sejak Android 3.0, mengharuskan pengguna untuk mengatur Google account pada perangkat mobile.
Berikut adalah contoh file Manifest untuk mendukung GCM :
http://digilib.mercubuana.ac.id/
Gambar 2. 2 Android Manifest
2.1.3 Implementasi GCM Server Saat ini GCM menyediakan dua koneksi server: HTTP dan XMPP (CSS). Yang bisa digunakan salah satu saja atau kombinasi keduanya. XMPP (CSS) berbeda dengan HTTP seperti : o Pesan Upstream/Downstream: § HTTP: hanya downstream. § XMPP (CSS): upstream dan downstream (client-server, server-client). o Pesan (synchronous atau asynchronous) § HTTP: Synchronous. App server pihak ke-3 mengirim pesan sebagai permintaan POST HTTP dan menunggu tanggapan. Mekanisme ini sinkron dan blok pengirim dari mengirim pesan lain sampai respon diterima. § XMPP (CSS): Asynchronous. App server pihak ke-3 mengirim / menerima pesan ke / dari semua perangkat. XMPP (CCS) mengirimkan pesan berhasil (acknowledge) atau pesan gagal, secara asynchronous. o Mengirimkan Text § HTTP: pesan text dikirim sebagai HTTP Post. § XMPP (CSS): tidak support. o Downstream untuk mengirimkan pesan ke banyak ID yang terdaftar: § HTTP: support dengan format pesan JSON.
http://digilib.mercubuana.ac.id/
§ XMPP (CSS): tidak support. (Google, Impelement GCM on Server)
2.2.XAMPP XAMPP adalah perangkat lunak bebas, yang mendukung banyak sistem operasi, merupakan kompilasi dari beberapa program. Fungsinya 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 GNU General Public License dan bebas, merupakan web server yang mudah digunakan yang dapat melayani tampilan halaman web yang dinamis. (Wikipedia, XAMPP, 2015)
2.3.Web server Web server adalah software yang menjadi backend dari world wide web (www). Web server menunggu permintaan dari client yang menggunakan browser seperti Netscape Navigator, Internet Explorer, Mozilla atau browser lainnya. Jika ada permintaan dari browser, maka web server akan memproses permintaan itu kemudian memberikan hasil prosesnya berupa data yang diinginkan kembali ke browser. Data ini mempunyai format yang standar, disebut dengan format SGML (standar general markup language). Data yang berupa format ini kemudian akan ditampilkan oleh browser sesuai dengan kemampuan browser tersebut. Contohnya, bila data yang dikirim berupa gambar, browser yang hanya mampu menampilkan teks (misalnya lynx) tidak akan mampu menampilkan gambar tersebut, dan jika ada akan menampilkan alternatifnya saja. Web server, untuk berkomunikasi dengan client-nya (web browser) mempunyai protocol sendiri, yaitu HTTP (hypertext transfer protocol). Dengan protocol ini, komunikasi antar web server dengan client-nya dapat saling dimengerti dan lebih mudah. Seperti telah dijelaskan di atas, format data pada world wide web adalah SGML. Tapi para pengguna internet saat ini lebih banyak menggunakan format HTML (hypertext markup language) karena pengguanan-nya lebih sederhana dan dengan web browser-nya dapat membuka dan membaca dokumen-dokuman yang ada dalam komputernya atau bahkan jauh tempatnya sekalipun.
http://digilib.mercubuana.ac.id/
Hal ini memberikan cita rasa dari suatu proses yang tridimensional, artinya pengguna internet dapat membaca dari satu dokumen ke dokumen yang lain hanya dengan mengklik beberapa bagian dari halaman-halaman dokumen (web) itu. Proses yang dimulai dari permintaan webclient (browser), diterima web server, diproses dan dikembalikan hasil prosesnya oleh web server ke web client lagi dilakukan secara transparan. Setiap orang dapat dengan mudah mengetahui apa yang terjadi pada tiap-tiap proses. Secara garis besarnya web server hanya memproses semua masukan yang diperolehnya dari web clientnya. (Khairil, 2013)
2.4.PHP PHP adalah singkatan dari "PHP: Hypertext Prepocessor", yaitu bahasa pemrograman yang digunakan secara luas untuk penanganan pembuatan dan pengembangan sebuah situs web dan bisa digunakan bersamaan dengan HTML. PHP diciptakan oleh Rasmus Lerdorf pertama kali tahun 1994. Pada awalnya PHP adalah singkatan dari "Personal Home Page Tools". Selanjutnya diganti menjadi FI ("Forms Interpreter"). Sejak versi 3.0, nama bahasa ini diubah menjadi "PHP: Hypertext Prepocessor" dengan singkatannya "PHP". PHP versi terbaru adalah versi ke-5. Berdasarkan survey Netcraft pada bulan Desember 1999, lebih dari sejuta site menggunakan PHP, di antaranya adalah NASA, Mitsubishi, dan RedHat. (Wikibooks, 2014)
Gambar 2. 3 Web Client-Server
(Kahiril, 2013)
2.4.1 CakePHP Berdasarkan (Foundation, 2015) CakePHP adalah framework gratis, open source dam mempercepat pembuatan aplikasi PHP. Ini adalah struktur dasar bagi programmer untuk membuat aplikasi web. Tujuan utama kami adalah untuk memungkinkan Anda untuk bekerja pada aturan terstruktur dan cepat, tanpa kehilangan fleksibilitas.
http://digilib.mercubuana.ac.id/
CakePHP menghilangkan proses monoton dalam pengembangan web. Ini menyediakan semua peralatan yang dibutuhkan untuk memulai pemrograman dan apa di butuhkan untuk meyelesaikan logika khusus pada aplikasi. Setiap akan membuat aplikasi baru akan selalu melakukan hal yang sama, maka framework CakePHP sudah merangkum semua itu dengan hanya copy-paste.
CakePHP memiliki tim pengembang dan forum aktif, membawa banyak keuntungan untuk proyek. Dengan menggunakan CakePHP berarti aplikasi utama telah teruji dengan baik dan terus ditingkatkan, tanpa harus melaukan perulangan kode program dasar.
2.4.2 MVC MVC (Model View Controller) adalah pemgrograman yang memecah aplikasi ke dalam tiga bagian: • Model Model merupakan bagian dari aplikasi yang mengimplementasikan logika bisnis. Hal ini bertanggung jawab untuk mengambil data dan mengubahnya menjadi konsep yang bermakna pada aplikasi. Ini termasuk pengolahan, validasi, integrasi atau tugas-tugas lain yang berkaitan dengan penanganan data. Secara sekilas, Model dapat dipandang sebagai lapisan pertama dari interaksi dengan database yang mungkin digunakan untuk aplikasi. Dalam kasus aplikasi jejaring sosial, Model akan menangai tugas - tugas seperti menyimpan data pengguna, menyimpan asosiasi teman, menyimpan dan mengambil foto pengguna, menemukan saran untuk teman-teman baru, dll. Model objek dapat dianggap sebagai file "teman", "pengguna", "Komentar", atau "Foto". • View View adalah yang menampilkan presentasi data model. Dipisahkan dari objek Model, view bertanggung jawab untuk menggunakan informasi yang tersedia untuk menghasilkan antarmuka presentasi aplikasi.
http://digilib.mercubuana.ac.id/
Misalnya,
Model
mengembalikan
satu
set
data,
view
akan
menggunakannya untuk membuat halaman HTML berisi data tersebut, atau hasil dalam format XML untuk digunakan aplikasi lain. View tidak hanya terbatas pada HTML atau teks representasi data. View dapat menyampaikan berbagai format tergantung kebutuhan, seperti video, musik, dokumen dan format lain. • Controller Controller menangani permintaan dari pengguna. Hal ini bertanggung jawab untuk rendering respon dengan bantuan Model dan View. Controller dapat dilihat sebagai manajer yang memastikan bahwa sumber daya yang dibutuhkan untuk menyelesaikan tugas telah terkirim ke pekerja yang tepat. Controller menunggu permintaan dari klien, memeriksa validitas pengguna sesuai dengan aturan otentikasi atau otorisasi, mengatur pengambilan data atau pengolahan untuk model, memilih jenis penyajian data yang akan diterima pengguna, dan akhirnya menugaskan Model untuk rendering data.
Gambar 2. 4 Siklus request CakePHP
Siklus request CakePHP dimulai dengan pengguna meminta halaman di aplikasi. Permintaan pertama kali diproses oleh dispatcher (link url) yang memilih controller yang tepat. Setelah sampai di controller, akan berkomunikasi dengan Model untuk memproses (mengambil) data atau proses menyimpan data. Setelah komunikasi selesai, controller akan melanjutkan untuk mengarahkan ke View untuk menghasilkan output yang dihasilkan dari data yang diberikan oleh model. Akhirnya, ketika output sudah dihasilkan, akan segera diberikan kepada pengguna. Hampir setiap permintaan untuk aplikasi akan mengikuti siklus dasar ini.
http://digilib.mercubuana.ac.id/
Manfaat menggunakan MVC : karena ini merupakan pola desain yang teruji dan benar yang mengubah aplikasi menjadi mudah untuk dipelihara, modular, dan paket yang cepat berkembang. Membentuk aplikasi ke dalam model terpisah, tampilan, dan pengendalian membuat aplikasi menjadi sangat ringan. Fitur baru yang dapat di tambahkan dengan mudah, dan wajah baru pada fitur lama dalam sekejap. Desain modular dan terpisah juga memungkinkan pengembang dan desainer untuk bekerja bersama-sama, termasuk kemampuan prototype cepat. Pemisahan juga memungkinkan pengembang untuk membuat perubahan dalam salah satu bagian tanpa memengaruhi bagian lain.
2.5.Database Database adalah suatu kumpulan data-data yang disusun sedemikian rupa sehingga membentuk informasi yang sangat berguna. Database terbentuk dari sekelompok data-data yang memiliki jenis/sifat sama. Ambil contoh, data-data berupa nama-nama, kelas-kelas, alamat-alamat. Semua data tersebut dikumpulkan menjadi satu menjadi kelompok data baru, sebut saja sebagai data-data mahasiswa. Demikian juga, kumpulan dari data-data mahasiswa, data-data dosen, data-data keuangan dan lainnya dapat dikumpulkan lagi menjadi kelompok besar, misalkan data-data politeknik elektronika. Bahkan dalam perkembangannya, data-data tersebut dapat berbentuk berbagai macam data, misalkan dapat berupa program, lembaran-lembaran untuk entry (memasukkan) data, laporanlaporan. Kesemuanya itu dapat dikumpulkan menjadi satu yang disebut dengan database. (ITS, 2010)
2.5.1 MySQL MySQL adalah sebuah program database server yang mampu menerima dan mengirimkan datanya dengan sangat cepat, mutli user serta menggunakan perintah standar SQL (Structured Query Langugage). MySQ memiliki dua bentuk lisensi, yaitu FreeSoftware dan Share-ware. MySQL yang biasa ktia gunakan adalah MySQL FreeSoftware yang berada di bawah lisensi GNU/GPL (General Public Licence). Selain itu ada juga dapat memiliki produk MySQL yang sifatnya komersial, biasa disebut MySQL AB. MySQL merupakan sebuah database server yang free, artinya kita bebas menggunakan database ini untuk keperluan pribadi atau usaha tanpa harus
http://digilib.mercubuana.ac.id/
membeli atau membayar lisensinya. MySQL pertama kali dirintis oleh seorang programmer database bernama Michael Widenius.
Kelebihan MySQL MySQL adalah sebuah database server, dapat juga berperan sebagai client sehingga sering disebut database client/server, yang open source dengan kemampuan berjalan baik di OS (operating sistem) manapun, dengan platform windows maupun linux. Selain itu database ini memiliki beberapa kelebihan dibanding database lain, diantaranya adalah: - database management system (DBMS) - relation database management system (RDBMS) - software database opensource, artinya program ini bersifat free atau bebas digunakan oleh siapa saja tanpa harus membai dan membayar lisensi kepada pembuatnya. - Merupakan sebuah database server, jadi dengan menggunakan database ini anda dapat menghubungkannya ke media internet sehingga dapat diakses dari jauh. - Merupakan database client. Selain menjadi server yang melayani permintaan, MySQL juga dapat melakukan query yang mengakses database pada server. Jadi MySQL dapatt juga berperan sebagai client. - Mampu menerima query yang bertumpuk dalam satu permintaan atau yang disebut multi-threading. - Merupakan sebuah database yang mampu menyimpan data berkapasitas besar hingga berukuran Gigabyte sekalipun. Didukung oleh driver ODBC, artinya database MySQL dapat diakses menggunakan aplikasi apa saja termasuk berupa visual seperti Delphi maupun Visual Basic. - Database menggunakan enrkripsi password. Jadi database ini cukup aman karena memiliki password untuk mengaksesnya. - Merupakan server database yang multi user, artinya database ini tidak hanya digunakan oleh sepihak orang akan tetapi merupakan database yang dapat digunakan oleh banyak pengguna. - Dapat menciptakan lebih dari 16 kunci pertabel, dan dalam satu kunci memungkinkan berisi belasan field (kolom).
http://digilib.mercubuana.ac.id/
- Mendukung field yang dijadikan sebagai kunci primer dan kunci uniq (unique). - Didukung oleh sebuah komponen C dan Perl API, sehingga database MySQL dapat diakses melalui program aplikasi yang berada di bawah protocol internet berupa web. Biasanya aplikasi yang sering digunakan adalah PHP dan Perl. - Memiliki kecepatan dalam pembuatan table maunpun update table. - Menggunakan suatu bahasa permintaan standar yang bernama SQL (Structure Query Language) yaitu sebuah bahasa permintaan yang distandarkan pada beberapa database server seperti Oracle, PostGreSQL. (Nugrho, 2005, pp. 14)
2.5.2 SQLite Menurut (SQLite) SQLite Library adalah bagian inti dari lingkungan Android. Aplikasi Java dan penyedia konten akses SQLite menggunakan antarmuka dalam namespace android.database.sqlite. Salah satu kelemahan dari menggunakan Android built-in SQLite adalah bahwa aplikasi dipaksa menggunakan versi SQLite sesuai dengan versi Android. Tapi dapat diatasi dengan menggunakan NDK Android sehingga dapat menggunakan versi SQLite terbaru. Pada Android, database SQLite berada pada built-in Class "android.database.sqlite" namespace. 2.5.3 PHPMyAdmin PHPMyAdmin adalah aplikasi gratis yang ditulis dengan kode PHP, ditujukan
untuk
menangani
administrasi
MySQL
melalui
webbase.
PHPMyAdmin mendukung banyak operasi di database seperti : MaridDB dan Drizzle. Operasi yang sering digunakan (pengaturan database, tabel, kolom, relation, indexes, user, hak akses) dapat di lakukan menggunakan UI dengan kemampuan langsung mengeksekusi perintah SQL.
Fitur / kelebihan PHPMyAdmin : o tampilan web yang menarik o support fitur MySQL yang sering digunakan : § Menampilkan dan menghapus : database, tabel, view, field dan index.
http://digilib.mercubuana.ac.id/
§ Create, copy, drop, rename dan alter database, tabel, field dan index. § Menjalankan, edit dan bookmark SQL-statement § Mengatur MySQL user dan privilege. § Mengatur penyimpanan procedur dan trigger. o Impor data dari CSV dan SQL o Expor data ke beragam format : CSV, SQL, XML, PDF, ISO/IEC 26300 OpenDocument Text and Spreadsheet, Word, LATEX o Mengelola multi server o Membuat grafik PDF dari database layout o Membuat query yang kompleks dengan Query-by-example (QEB) o Pencarian global di dalam database atau di subsetnya o Mengubah data yang di simpan dalam format apapun menggunakan set yang telah di tentukan.
2.6.UML UML singkatan dari Unified Modeling Language yang berarti bahasa pemodelan standar. (Chonoles, 2003: bab 1) mengatakan sebagai bahasa, berarti UML memiliki sintaks dan semantic. Ketika kita membuat model menggunakan konsep UML ada aturan – aturan yang haris diikuti. Bagaimana elemen pada model – model yang kita buat berhubungan satu dengan lainnya harus mengikuti standar yang ada. UML bukan hanya sekedar diagram, tetapi juga menceritakan konteksnya. Ketika pelanggan memesan sesuatu dari sistem, bagaimana terjadi? Bagaimana sistem mengatasi error yang terjadi? Bagaimana keamanan terhadap siste myang kita buat? Dan sebagainya dapat dijawa dengan UML.
UML diaplikasikan untuk maksud tertentu, biasanya antara lain : 1. merancang perangkat lunak 2. sarana komunikasi antara perangkat lunak dengan proses bisnis. 3. Menjabarkan sistem secara rinci untuk analisa dan mencari apa yang diperlukan sistem. 4. Mendokumentasi sistem yang ada, proses – proses dan organisasinya.
http://digilib.mercubuana.ac.id/
UML telah diaplikasikan dalam bidang investasi perbankan, lembaga kesehata, departemen pertahanan, sistem terdistribusi, sistem pendukung alat kerja, retail, sales dan supplier. Blok pembangun utama UML adalah diagram. Beberapa diagram ada yang rinci (jenis timing diagram) dan lainnya ada yang bersifat umum (misalnya diagram kelas). Para pengembang
sistem
berorientasi
objek
menggunakan
bahasa
model
untuk
menggambarkan, membangun dan mendokumentasikan sistem yang meraka rancang. UML memungkinkan para anggota team untuk bekerja sama dengan bahasa model yang sama dalam mengaplikasikan beragam sistem. Intinya, UML merupakan alat komunikasi yang konsisten dalam mensuport para pengembang sistem saat ini. Sebagai perancang sistem, mau tidak mau pasti akan menjumpai UML, baik kita sendiri yang membuat atau sekedar membaca diagram UML buatan orang lain. (Widodo, Menggunakan UML, 2011, pp. 6-7)
2.4.1 Diagram Use Case Salah satu contributor terhadap diagram use case dalam UML adalah Ivar Jacobsen. Use case menggambarkan exernal view dari sistem yang akan kita buat modelnya (Pooley, 2003:15) mengatakan bahwa model use case dapat dijabarkan dalam diagram use case, tetapi yang perlu diingat, diagram tidak identik dengan model karane model lebih luas dari diagram.
Komponen pembentuk diagram use case adalah : 1. aktor (actor), menggambarkan pihak – pihak yang berperan dalam sistem 2. Use case, aktitivas / sarana uang disiapkan oleh bisnis / sistem. 3. Hubungan (link), aktor mana saja yang telibat dalam use case ini.
Gambar di bawah ini merupakan salah satu contoh bentuk diagram use case.
http://digilib.mercubuana.ac.id/
Gambar 2. 5 Diagram Use Case
Aktor Gambar 2.4 memperlihatkan diagram use case dengan dua aktor (nasabah dan teller) dan empat use case (penyetoran uang, penarikan uang, transfer uang dan tambah bunga). Simbol aktor adalah gambar orang.
(Chonoles, 2003: bab 8) menyarankan sebelum membuat use case dan menentukan aktornya, agar mengidentifikasi siapa saja pihak yang terlibat dalam sistem kita. Pihak yang terlihat biasanya dinamakan stakeholder. Langkah awal yang baik adalah mempertimbangkan kebutuhkan klien dan pelanggan sebelum membentuk use case. Setiap sistem memiliki stakeholder potensial yang hari dipertimbangkan karena berpengaruh terhadap kinerja bisnis / sistem tersebut. Bahkan untuk jenis sistem tertentu bisa saja hacker dan teroris masuk terhadap sistem. Selama proses mencari kebutuhan sistem, hamper sebagian besar waktu kita dihabiskan untuk menentukan aktor ang dipilih dari stakeholder hasil identifikasi awal. Prioritaskan calon aktor berdasarkan pengaruhnya terjadap sistem yang kita rancang. Berdasarkan perannya dalam sistem yang kita buat, aktor dibagi menjadi aktor primer dan aktor sekunder. Penentuan aktor primer dan aktor sekunder dapa dilihat dari peran pentingnya terhadap use case - use case yang ada. Saat mengkasifikasikan aktor, kita harus mempertimbangkan input terhadap sistem. Sebagai contoh, pada sistem perhotelan dibutuhkan masukan untuk konfigurasi. Dalam hal ini, seorang manajer hotel harus menentukan konfigurasi ruangan, harga, tata tertib dan sebagainya. Jadi, manajer hotel merupakan aktor.
http://digilib.mercubuana.ac.id/
Menurut (Whitten, 2004 :259) ada empat macam tipe aktor: 1. primary business actor (aktor bisnis utama) yaitu stakeholder yang terutama mendapatkan keuntungan dari pelaksanaan use case dengan menerima nilai yang terukur atau terobservasi. Pelaku bisnis utama kemungkinan tidak menginisiasi kejadian bisnis. Sebagai contoh, dalam kejadian bisis dari seorang karyawan yang menrima gaji (nilai terukur) dari sistem penggajian setiap hari jum’at, karyawan tidak menginisiasi kejadian itu, tapi merupakan penerima utama dari sesuatu yang bernilai. 2. Primary sistem actor (aktor sistem utama) yaitu stakeholder yang secara langsung berhadapan dengan sistem untuk mengisiasi atau memicu kegiatan atau sistem. Pelaku sistem utama dapat berinteraksi dengan para pelaku bisnis utama untuk menggunakan sistem actual. Mereka memfasilitasi kejadian dengan menggunakan sistem yang melakukan peninjauan daya beli pelanggan, operator telepon yang memberi bantuan kepada pelanggan dan kasir bank yang memproses transaksi bank. Pelaku bisnis utama dan pelaku sistem utama kemungkinan memiliki persamaan yaitu sama – sama pelaku bisnis yang berhadapan secara langsung dengan sistem, misalnya seorang yang melayani jasa penyewaan mobil via website. 3. External server actor (aktor server eksternal) yaitu stakeholder yang melayani kebutuhan pengguna use case (Misalnya biro kredit yang memiliki kuasa atau perubahan kartu kredit). 4. External receiving actor (aktor penerima eksternal) yaitu stakeholder yang bukan pelaku utama, tapi menerima nilai yang terukur atau teramati (output ) dari use case (misalnya gudang menerima paket permintaan untuk menyiapkan pengiriman sesudah seorang pelanggan memesannya).
Use Case Menurut (Pilone, 2005:bab 7.1) use case menggambarkan fungsi tertentu dalam suatu sistem berupa komponen, kejadian atau keas. Sedangkan (Whitten, 2004: 258) mengartikan use case sebagai urutan langkah – langkah yang secara tindakan saling terkait (scenario), baik terotomatisasi maupun secara manual, untuk tujuan melengkapi satu tugas bisni stunggal. use case digambarkkan dalam bentuk ellips / oval.
http://digilib.mercubuana.ac.id/
use case sangat menentukan karakteristik sistem yang kita buat, oleh karena itu (Chonoles, 2003: bab 8) menawarkan car auntuk menghasilkan use case yang baik yakni : o pilihlah nama yang baik. use case adalah sebuah behavior (perilaku), jadi seharusnya dalam frase kata kerja. Untuk membuat namanya lebih detil, tambahkan kata benda yang mendindikasikan dampak aksinya terhadap suatu kelas objek. Oleh karena itu, diagram use case seharusnya berhubungan dengan diagram kelas. o Ilustrasikan perilaku dengan lengkap. use case dimulai dari inisiasi oleh aktor primer dan berakhir pada aktor dan menghasilkan tujuan. Jangan membuat use case kecuali Anda mengetahui tujuannya, sebagai contoh, memilih jenis tempat tidur (king size, queen size atau dobel) saat tamu memesan tidak dapat dijadikan use case karea merupakan bagian dari use case pemesanan kamar dan tidak dapat berdiri sendiri (tidak mungkin tamu memesan kamar tidur jenis king tapi memesan kamar hotel). o Identifikasi perilaku dengan lengkap. Untuk mencapai tujuan dan menghasilkan nilai tertentu dari aktor, use case harus lengkap. Ketika memberi nama use case, pilihlan frasa kata kerja yang implikasinya hingga selesai. Misalnya gunakan frasa serverse a room (pemesanan kamar) dan jangan reserving a room (memesan kamar) karena memesan menggambarkan perilaku yang belum selesai. o Menyediakan use case lawan (inverse). Kita biasanya membutuhkan use case yang membatalkan tujuan, misalnya pada use case pemesanan kamar, dibutuhkan pula use case pembatalan pesanan kamar. o Batasi use case hingga satu perilaku saja. Kadang kita cenderung membuat use case yang menghasilkan lebih dari satu tujuan aktivitas. Guna menghindari kerancuan, jagalah use case kita hanya fokus pada satu hal. Misalnya, penggunaan use case Check-in dan Check-out dalam satu use case menghasilkan ketidakfokusan, karena memiliki dua perilaku yang berbeda. o Nyatakan use case dari sudut pandang aktor. Tulislah use case dari sudut pandang aktor bukan dari sistem. Sebagai contoh, pilihlah nama use case pemesanan kamar, bukannya pencatatan pesananan kamar, karena pemesanan kamar sudut pendannya aktor tamu sedangkan pencatatan pesanan sudut pandangnya hotel. (Widodo, Menggunakan UML, 2011, pp. 16-24)
http://digilib.mercubuana.ac.id/
2.4.2 Diagram Activity Diagram Activity adalah teknik untuk menggambarkan logika prosedural, proses bisnis dan jalur kerja. Dalam beberapa hal, diagram ini memainkan peran mirip sebuah diagram alir, tetapi perbedaan prinsip antara diagram ini dan notasi diagram alir adalah diagram ini mendukung behavior pararel.
Gambar 2. 6 Activity Diagram sederhana
Gambar diatas menunjukkan sebuah contoh sederhana dari sebuah activity diagram. Kita mulai pada node action awal dan kemudian melakukan action Menerima Pesanan. Sekali kita melakukannya, kita mendapatkan percabangan. Sebuah percabangan memiliki satu aliran masuk dan beberapa aliran keluar. Gambar diatas juga mejelaskan bahwa Mengisi Pesanan, Mengirim Invoice dan action setelahnya yang dilakukan secara pararel. Pada dasarnya, hal ini berarti bahwa rangkaian-rangkaian antara meraka tidak saling berkaitan. Sya dapat mengisi pesanan, mengirim invoice, mengantar barang dan kemduaian menerima pembayaran, atau saya dapat mengirim invoice, menerima pembayaran, mengisi pesanan, dan kemudian mengantar barang: itulah gambarannya. Saya juga melakukan action ini secara bersama-sama. Saya mengambil antrian barang pertama dari lemari, mengetik invoice, mengmbil antrian barang kedua, memasukkan invoice ke dalam amplop, dan seterusnya. Dapat juga saya melakukannya secara bersama-sama: mengetik invoice dengan satu tangan dan
http://digilib.mercubuana.ac.id/
saya mengambil antrian dari lemari dengan tangan satunua. Setiap rangkain ini benar, sesuai dengan diagram. (Fowler, 2015, p. 163)
2.4.3 Diagram Sequence Diagram sekuen menggambarkan behavior pada use case
dengan
mendeskripsikan waktu hidup objek dan message yang dikirimkan dan diterima antar objek. Oleh karena itu untuk menggambar diagram sekuen maka harus diketahui objek – objek yang terlibat dalam sebuah use case beserta metode – metode yang dimiliki kelas yang diinstasiasi menjadi objek itu. Membuat diagram sekuen juga dibutuhkan untuk melihat scenario yang ada pada use case. Banyaknya diagram sekuen yang harus digambar adalah minimal sebanyak pendifinisian use case yang memiliki proses sendiri atau yang penting semua use case yang telah didefinisikan interaksi jalannya pesan sudah dicakup pada diagram sekuen sehingga semakin banyak use case yang didefinisikan maka diagram sekuen yang harus dibuat juga semakin banyak. Tabel 2 . 1 Simbol pada Diagram Sekuen
Simbol
Deskripsi
Aktor
Orang, proses atau sistem lain yang berinteraksi dengan sistem informasi yang akan dibuat di luar sistem informasi yang akan dibuat itu sendiri, jadi
atau
walaupun symbol dari aktor adalah gambar orang, tapi aktor belum tentu merupakan orang; biasanya dinyatakan menggunakan kata benda di awal frase nama aktor
Garis
hidup
/ Menyatakan kehidupan suatu objek
lifeline
Objek
Menyatakan objek yang berinteraksi pesan
http://digilib.mercubuana.ac.id/
Waktu aktif
Menyatakan objek dalam keadaan aktif dan berinteraksi, semua yang terhubung dengan waktu aktif ini adalah sebuah tahapan yang dilakukan di dalamnya, misalnya :
maka cekStatusLogin() dan open() dilakukan di dalam metode login() Aktor tidak memiliki waktu aktif Pesan tipe create
Menyatakan suatu objek membuat objek yang lain, arah panah mengarah pada objek yang dibuat
Pesan tipe Call
Menyatakan suatu objek memanggil operasi / metode yang ada pada objek lain atau dirinya sendiri,
arah panah mengarah pada objek yang memiliki operasi / metode, karena ini memanggil operasi / metode maka operasi / metode yang dipanggil harus ada pada diagram kelas sesuai dengan kelas objek yang berinteraksi. Pesan tipe send
Menyatakan bahwa suatu objek mengirimkan data / masukan / informasi ke objek lainnya, arah panah mengarah pada objek yang dikirimi.
Pesan tipe return
Menyatakan bahwa suatu objek yang telah menjalankan
suatu
operasi
atau
metode
menghasilkan suatu kembalian ke objek tertentu, arah panah mengarah pada objek yang menerima kembalian
http://digilib.mercubuana.ac.id/
Pesan tipe destroy
Menyatakan suatu objek mengakhiri hidup objek yang lain, arah panah mengarah pada objek yang diakhiri, sebaiknya jika ada create maka ada destroy
Penomoran pesan berdasarkan urutan interaksi pesan. Penggamaran letak pesan harus berurutan, pesan yang lebih atas dari lainnya adalah pesan yang berjalan terlebih dahulu. Semua metode di dalam kelas harus ada di dalam diagram kolaborasi atau sekuen, jika tidak ada berarti perancangan metode di dalam kelas itu kurang baik halini dikarenakan ada metode yang tidak dapat dipertanggungjawabkan kegunaannya. (S. & Shalahuddin, Rekayasa Perangkat Lunak Terstruktur dan Berorientasi Objek,, 2013, pp. 165-167)
Loops, Kodisional, dan Sebagainya Masalah yang umum di sekuen diagram adalah bagaimana menunjukkan behavior loop dan kondisional. Hal utama yang perlu diperhatikan adalah sequence diagram tidak dapat melakukannya dengan baik. Jika ingin menunjukkan struktur control semacam ini, lebaik baik menggunakan activity diagram atau kode itu sendiri. Gunakan sequence diagram sebagai sebuah visualisasi bagaimana objek – onbjek berinteraksi dan buakn sebagai cara pemodelan logika kontrol. Kerangka interaksi merupakan hal baru di UML 2. Akibatnya, mungkin menemukan diagram disiapkan sebelum UML 2 dan menggunakan pendekatan yang lain, selain itu, beberapa orang tidak menyukai kerangka tersebut dan lebih memilih beberapa konvensi sebelumnya. UML 1 menggunakan penanda iterasi dan penjaga. Penanda iterasi adalah tanda * yang ditambahkan pada nama pesan. Dapat menambahkan beberapa teks dalam tanda kurung untuk menunjukkan dasar iterasi. Penjaga merupakan sebuah ekspresi kondisional dalam tanda kurung dan menunjukkan bahwa pesan akan dikirmkan jika penjaga true meskupun notasi – notasi ini telah disingkirkan dari sequence diagram dalam UML 2, mereka masih legal dalam communication diagram.
http://digilib.mercubuana.ac.id/
Tabel 2 . 2 Operator umum untuk kerangka interaksi
Operator
Arti
Alt
Alternatif
multiple
fragments,
hanya fragmen dengan kondisi true yang akan dieksekusi Opt
Optional, fragmen dieksekusi hanya jika kondisi yang ada bernilai true. Sama dengan alt dengan satu trace
Par
Parallel, setiap fragmen berjalan secara pararel.
Loop
Fragmen
dapat
berulang
kali
mengeksekusi dan
penjaga
menunjukkan dasar iterasi Region
Critical region, fragmen hanya dapat memiliki satu alur yang mengeksekusinya sekaligus.
Neg
Negative, mengacu pada sebuah interaksi yang dibuat di diagram lain.
Kerangka
dibuat
nutk
mencakup garis alur dalam interaksi tersebut.
Anda
dapat
mendefinisikan parameter dan nilai kembali. Sd
Sequence
diagram,
digunkana
untuk melingkupi seluruh sequence diagram, jika diingingkan. (Fowler, UML Distilled , 2005, pp. 88-90)
2.4.4 Metode Waterfall Dalam perancangan aplikasi pada tugas akhir ini penulis menggunakan metode Waterfall. Model SDLC air terjun (waterfall) sering juga disebut model sekuensial linear (sequential linear) atau alur hidup klasik (classic life cycle).
http://digilib.mercubuana.ac.id/
Model air terjun menyediakan pendekatan alur hidup perangkat lunak secara sekuensial atau terurut dimulai dari analisis, desain, pengodean, pengujian, dan tahap pendukung (support). Berikut adalah gambar model air terjun : Perencanaan Analisis Perancangan Implementasi Pengujian
Pemeliharaaan Gambar 23 . 1 Metode Waterfall
(Nugroho, 2010, p. 4)
- analisis kebutuhkan perangkat lunak proses
pengumpulan
kebutuhan
dilakukan
secara
itensif
untuk
mespesifikasikan kebutuhkan perangkat lunak agar dapat dipahami perangkat lunak seperti apa yang dibuthkan oleh user. Spesifikasi kebutuhan perangkat lunak pada tahap ini perlu untuk didokumentasikan - desain desain perangkat lunak adalah proses multilangkah yang fokus ada desain pembuatan program perangkat lunak termasuk struktur data, arsitektur perangkat lunak, representasi antarmuka dan prosedr pengodean. Tahap ini mentranslasi kebutuhan perangkat lunak dari tahap analisis kebutuhkan ke representasi desain agar dapat diimplementasikan menjadi program pada tahap selanjutnya. Desain perangkat lunak yang dihasilkan pada tahp ini juga perlu didoumentasikan - pembuatan kode program
http://digilib.mercubuana.ac.id/
desain harus ditransasikan ke dalam program perangkat lunak. Hasil dari tahap ini adalah program komputer sesuai dengan desain yang telah dibuat pada tahap desain. - pengujian Pengujian fokus pada perangkat lunak secara dai segi lojik dan fungsional dan memasitkan bahwa semua bagian sudah diuji. Hal ini dilakukan untuk meinimalisir kesalahan (error) dan memastika keluaran yang dihasilkan sesuai dengan yang diinginkan. - pendukung (support) atau pemeliharaan (maintenance) tidak menutup kemungkinan sebuah perangkat lunak mengalami perubahan ketika sudah dikirimkan ke user. Perubahan bisa terjadi karena adanya kesalahan yang muncul dan tidak terdeteksi saat pengujian atau perangkat lunak harus beradaptasi dengan lingkungan baru. Tahap pendukung atau pemeliharaan dapat mengulangi proses pengembangan mulai dari analisis spesifikasi untuk perubahan perangkat lunak yang sudah ada, tapi tidak untuk membuat perangkat lunak baru.
Hal positif dari model air terjun adalah struktur tahap pengembangan sistem jelas, dokumentasi dihasilkan di setiap tahap pengembangan, dan sebuah tahap dijalankan setelah tahap sebelumnya selesai dijalankan (tidak ada tumpang tindih pelaksanaan tahap). (S. & Shalahuddin, Rekayasa Perangkat Lunak (Terstruktur dan berorientasi Objek, 2011)
2.7.SMS Gateway Istilah gateway, bila dilihat pada kamus Inggris-Indonesia diartikan sebagai pintu gerbang. Namun pada dunia komputer, gateway dapat berarti juga sebagai jembatan penghubung antar satu sistem dengan sistem lain yang berbeda, sehingga dapat terjadi suatu pertukaran data antar sistem tersebut. Dengan demikian, SMS gateway dapat diartikan sebagai suatu penghubung untuk lalu lintas data-data SMS, baik yang dikirimkan maupun yang diterima.
Sebuah gateway SMS adalah cara mengirim pesan teks dengan atau tanpa menggunakan telepon (sel) mobile. Secara khusus, ini adalah perangkat atau layanan yang menawarkan transit SMS oleh salah satu pesan transformasi. Penggunaan khas gateway
http://digilib.mercubuana.ac.id/
adalah untuk meneruskan email sederhana ke ponsel penerima. Hal ini juga dapat berguna dalam mengembangkan aplikasi web yang dapat berinteraksi dengan melalui SMS (Short Messaging Service).
SMS Gateway merupakan pintu gerbang bagi penyebaran Informasi dengan menggunakan SMS. Anda dapat menyebarkan pesan ke ratusan nomor secara otomatis dan cepat yang langsung terhubung dengan database nomor - nomor ponsel saja tanpa harus mengetik ratusan nomor dan pesan di ponsel anda karena semua nomor akan diambil secara otomatis dari database tersebut. Selain itu , dengan adanya SMS Gateway anda dapat mengustomisasi pesan-pesan yang ingin dikirim. Dengan menggunakan program tambahan yang dapat dibuat sendiri, pengirim pesan dapat lebih fleksibel dalam mengirim berita karena biasa-nya pesan yang ingin dikirim berbeda-beda untuk masing-masing penerimanya. (Ubaya)
2.8.Metode Pengujian Black Box Metode pengujian black box merupakah salah satu metode pengujian perangkat lunak. Pengujian black bix merupakan sebuah metode yang digunakan untuk menemukan kesalahan dan mendemonstrasikan fungsional aplikasi saat dioperasikan, apakah input diterima dengan benar dan output yang dihasilkan telah sesuai dengan yang diharapkan. Focus dari pengujian menggunakan metode black box adalah pada pengujian fungsionalitas dan output yang dihasilkan aplikasi. Pengujian black box dirancang untuk mengukap kesalahan pada persyaratan fungsional dengan mengabaikan mekanisme internal atau komponen dari suatu program. (Pressman, 2002). Pengujian untuk ruang lingkup testing dari metode black box sebagai berikut: 1. Fungsi-fungsi yang tidak benar atau hilang 2. Kesalahan antar muka 3. Kesalahan kerja Metode black box ini lebih menitikberatkan pada kebutuhan fungsi dari suatu program aplikasi. Pengujian dengan metode ini dilakukan dengan cara memberikan sejumlah masukan pada program aplikasi yang kemudian proses sesuai dengan kebutuhan fungsionalnya untuk menghasilkan keluaran sesuai dengan spesifikasi rancangan, maka program tersebut adalah benar.
http://digilib.mercubuana.ac.id/
1.7 JavaScript Berdasarkan (Wikipedia, JavaScript, 2015), JavaScript adalah bahasa pemrograman berbasis java yang merupakan interface pembantu dalam pemrograman web. JavaScript populer di internet dan dapat bekerja di sebagian besar penjelajah web populer seperti Internet Explorer (IE), Mozilla Firefox, Netscape dan Opera. Kode JavaScript dapat disisipkan dalam halaman web menggunakan tag SCRIPT. Penulisan JavaScript dapat dilakukan dengan tiga cara, yaitu : 1. Skrip di head Skrip ini akan dieksekusi ketika dipanggil (biasanya berbentuk function) atau dipanggil berdasarkan trigger pada event tertentu. Peletakkan skrip di head akan menjamin skrip dimuat terlebih dahulu sebelum dipanggil. <script type="text/javascript"> ...
2. Skrip di body Skrip ini dieksekusi ketika halaman dimuat sampai di bagian . <script type="text/javascript"> ...
3. Skrip eksternal Terkadang ada yang menginginkan menjalankan JavaScript yang sama dalam beberapa kali pada halaman yang berbeda, maka JavaScript dapat ditulis di file secara eksternal. Jadi, antara dokumen HTML dan JavaScript dipisahkan, kemudian berkas tersebut dipanggil dari dokument HTML. Berkas JavaScript tersebut disimpan dengan ekstensi .js. <script src="xxx.js"> ...
http://digilib.mercubuana.ac.id/
1.7.1 JSON JSON (JavaScript Object Notation) adalah format pertukaran data yang ringan, mudah dibaca dan ditulis oleh manusia, serta mudah diterjemahkan dan dibuat (generate) oleh komputer. Format ini dibuat berdasarkan bagian dari Bahasa Pemprograman JavaScript, Standar ECMA-262 Edisi ke-3 - Desember 1999. JSON merupakan format teks yang tidak bergantung pada bahasa pemprograman apapun karena menggunakan gaya bahasa yang umum digunakan oleh programmer keluarga C termasuk C, C++, C#, Java, JavaScript, Perl, Python dll. Oleh karena sifat-sifat tersebut, menjadikan JSON ideal sebagai bahasa pertukaran-data. JSON terbuat dari dua struktur: • Kumpulan pasangan nama/nilai. Pada beberapa bahasa, hal ini dinyatakan sebagai objek (object), rekaman (record), struktur (struct), kamus (dictionary), tabel hash (hash table), daftar berkunci (keyed list), atau associative array. • Daftar nilai terurutkan (an ordered list of values). Pada kebanyakan bahasa, hal ini dinyatakan sebagai larik (array), vektor (vector), daftar (list), atau urutan (sequence). Struktur-struktur data ini disebut sebagai struktur data universal. Pada dasarnya, semua bahasa pemprograman moderen mendukung struktur data ini dalam bentuk yang sama maupun berlainan. Hal ini pantas disebut demikian karena format data mudah dipertukarkan dengan bahasa-bahasa pemprograman yang juga berdasarkan pada struktur data ini.
JSON menggunakan bentuk sebagai berikut: Objek adalah sepasang nama/nilai yang tidak terurutkan. Objek dimulai dengan
{(kurung kurawal buka) dan diakhiri dengan} (kurung kurawal tutup). Setiap nama diikuti dengan: (titik dua) dan setiap pasangan nama/nilai dipisahkan oleh, (koma).
Gambar 2. 7 JSON Objek
http://digilib.mercubuana.ac.id/
Array adalah kumpulan nilai yang terurutkan. Larik dimulai dengan [(kurung kotak buka) dan diakhiri dengan] (kurung kotak tutup). Setiap nilai dipisahkan oleh, (koma).
Gambar 2. 8 JSON Array
Nilai (value) dapat berupa sebuah string dalam tanda kutip ganda, atau angka, atau true atau false atau null, atau sebuah objek atau sebuah larik. Struktur-struktur tersebut dapat disusun bertingkat.
Gambar 2. 9 JSON Value
String kumpulan dari nol atau lebih karakter Unicode, yang dibungkus dengan tanda kutip ganda. Di dalam string dapat digunakan backslash escapes "\" untuk membentuk karakter khusus. Sebuah karakter mewakili karakter tunggal pada string. String sangat mirip dengan string C atau Java.
Gambar 2. 10 JSON String
Angka adalah sangat mirip dengan angka di C atau Java, kecuali format oktal dan heksadesimal tidak digunakan.
http://digilib.mercubuana.ac.id/
Gambar 2. 11 JSON Angka
Spasi kosong (whitespace) dapat disisipkan di antara pasangan tanda-tanda tersebut, kecuali beberapa detil encoding yang secara lengkap dipaparkan oleh bahasa pemprograman yang bersangkutan.
1.7.2 jQuery Berdasarkan (jQuery, 2015) jQuery adalah Library JavaScript yang cepat, kecil, dan kaya fitur. Menjadikan HTML dokumen traversal dan manipulasi, penanganan event, animasi, dan Ajax jauh lebih sederhana dengan API yang mudah digunakan dan bekerja dibanyak browser. Dengan kombinasi fleksibilitas dan ektensi, jQuery telah mengubah cara jutaan orang dalam menulis JavaScript.
1.7.3 AJAX Berdasarkan (w3schools) AJAX (Asynchronous JavaScript and XML) adalah memperbaharui sebagian dari halaman web tanpa reload seluruh halaman. Halaman web klasik, (yang tidak menggunakan AJAX) harus reload seluruh halaman jika konten harus berubah. Contoh aplikasi menggunakan AJAX: Google Maps, Gmail, Youtube, dan Facebook.
Gambar 2. 12 bagaimana ajax bekerja
http://digilib.mercubuana.ac.id/