1. Pendahuluan Teknologi Informasi adalah suatu teknologi yang digunakan untuk mengolah data, termasuk memproses, mendapatkan, menyusun, menyimpan, memanipulasi data dalam berbagai cara untuk menghasilkan informasi yang berkualitas [1].Informasi yang relevan, akurat dan tepat waktu, yang digunakan untuk keperluan pribadi, pendidikan, bisnis, dan pemerintahan.Teknologi informasi dan komunikasi (TIK) merupakan suatu hal yang tidak asing lagi bagi kalangan masyarakat. Salah satu faktor penunjang perkembangan teknologi informasi dan komunikasi adalah perkembangan teknologi perangkat mobile. Perangkat mobile yang sebelumnya hanya digunakan untuk proses komunikasi sekarang memiliki banyak fungsi (multifungsi). Smartphone merupakan sebutan bagi perangkat mobile yang dapat menyajikan berbagai macam fitur yang membantu kehidupan manusia. Dengan bantuan akses internet maka pengguna perangkat mobile dapat melakukan pekerjaan dimana saja dan kapan saja. Internet membantu pengguna dalam menyelesaikan pekerjaan, sebagai contoh: pengelolahan data perusahaan, proses pembelajaran akademik, proses jual beli dan lain sebagainya. Sebagai contoh bentuk pemanfaatan teknologi mobile adalah aplikasi jual beli online. Aplikasi jenis ini membantu pengguna dalam melakukan proses transaksi jual beli secara real time. Dahulu proses jual beli yang tergantung pada proses tatap muka antar pembeli dan penjual kini dapat dilakukan dengan lebih mudah dan cepat. Penjual hanya perlu mengelola data produk yang dijual melalui web atau perangkat mobile, lalu pembeli dapat mengakses katalog tersebut melalui web atau perangkat mobile pula. Oleh karena transaksi dilakukan secara online maka diperlukan suatu pesan singkat(notification) untuk memberi informasi kepada pelanggan bahwa pesanan sudah diproses. Google Cloud Messaging (GCM) merupakan proyek yang dikembangkan oleh Google Inc. GCM sendiri berfungsi untuk menyampaikan informasi berupa pesan(notification message) ke perangkat mobile Android[2]. GCM memberikan kemudahan dalam menyampaikan pesan secara gratis tidak terikat besarnya suatu pesan. GCM servis akan mengatur setiap pesan yang dikirimkan agar sesuai dengan perangkat mobile tujuan pesan (receiver). Berdasarkan latar belakang yang telah dijelaskan, maka dalam penelitian ini akan dibangun aplikasi jual beli yang melibatkan pemanfaaatan Google Cloud Messaging(GCM). Pemanfaatan GCM dalam penelitian ini memiliki peranan untuk menyampaikan notification message dari penjual kepada pembeli. Notification Message dapat berisi informasi mengenai transaksi yang dilakukan pembeli, maupun pesan lainnya yang perlu disampaikan penjual kepada pembeli. Pesan ini akan diterima pembeli melalui perangkat mobile Android. Fokus dari penelitian ini adalah penerapan GCM pada aplikasi jual beli, serta tidak membahas mengenai proses jual beli lebih lanjut.
0
2.
Kajian Pustaka
Penelitian sebelumnya dengan judul Desain dan Implementasi Aplikasi Servis dan Katalog Motor Menggunakan HTTP Request Pada Mobile Android Platform, mengemukakan bahwa perkembangan teknologi saat ini telah memberi banyak pengaruh dalam berbagai aspek kehidupan manusia.Berbagai perusahaan kini mulai mengunakan teknologi dalam usaha meningkatkan kinerja perusahaan.Pemanfaatan teknologi tersebut bisa dalam bentuk media promosi, media informasi, sistem pengelolaan data, dan lain sebagainya.Perusahaan ingin memberikan pelayanan yang semakin baik kepada customer.Salah satu pemanfaatan teknologi informasi yang digunakan oleh perusahaan dalam usaha meningkatkan kepuasan pelanggan adalah sistem aplikasi servis dan katalog yang dibangun pada penelitian ini. Penelitian ini berfokus pada pemanfaatan HTTP request pada mobile Android[3]. Penelitian yang telah dilakukan oleh Jonathan, dengan judul Pengembangan Framework untuk Pembangunan Aplikasi Mobile Commerce, menyatakan bahwa teknologi informasi sekarang sudah mampu memfasilitasi transaksi jual beli barang, jasa, maupun informasi dengan lebih cepat dan mudah dibandingkan dengan transaksi secara tradisional atau konvensional. Dengan semakin pesatnya perkembangan teknologi informasi, akses ke internet pun sudah dapat dilakukan dimana saja dan kapan saja dengan menggunakan mobile device.Akses atas informasi jual beli seharusnya bisa diperoleh lebih cepat, lebih mudah, dan secara personal dengan menggunakan akses mobile device. Berdasarkan latar belakang tersebut dalam penelitian ini dibangun aplikasi mobile commerce pada perangkat mobile Android untuk membantu dalam proses penjualan dan pembelian barang[4]. Google Cloud Messaging (GCM) merupakan proyek yang dikembangkan oleh Google Inc. GCM sendiri berfungsi untuk menyampaikan informasi berupa pesan(notification message) ke perangkat mobile Android[2]. GCM memberikan kemudahan dalam menyampaikan pesan secara gratis tidak terikat besarnya suatu pesan. GCM servis akan mengatur setiap pesan yang dikirimkan agar sesuai dengan perangkat mobile tujuan pesan (receiver). Beberapa karakteristik GCM : 1) Mengijinkan 3rd-party application servers untuk mengirim ke Aplikasi android yang dituju. 2) Dengan menggunakan GCM, pengguna dapat mengirimkan upstream messages. 3) Aplikasi Android dan perangkat Android tidak perlu dalam keadaan running untuk bisa menerima pesan. Sistem akan melakukan wake up aplikasi android ketika pesan masuk dengan cara intent broadcast, selama terdapat permission pada aplikasi. 4) Dalam penggunaannya tidak diperlukan user interface khusus untuk menangani pesan yang diterima. GCM mengirimkan raw message ke aplikasi android beserta dengan kontrol notifikasinya. 5) Perangkat android hanya memerlukan minimal platform Android 2.2 (bisa jalan pada versi diatasnya) dan terdapat Google Play Store. 6) Untuk perangkat android diatas 3.0, ini mengharuskan pengguna untuk mengatur akun Google mereka pada perangkat mobile mereka. Akun Google bukan persyaratan pada perangkat yang menjalankan Android 4.0.4 atau lebih tinggi.
1
Terdapat 2 kunci utama atau konsep pada GCM, yaitu: component dan credentials. Component adalah entitas utama yang memegang peranan utama dalam GCM.Credentials adalah ID dan token dari setiap perangkat mobile Android yang digunakan GCM sebagai autentikasi dan alamat pengiriman pesan. Dalam implementasi Google Cloud Messaging (GCM) terdapat beberapa bagian yang terlibat yaitu :Google-provided connection server, 3rd-party app server dan Client App. Arsitektur GCM dapat dilihat pada Gambar 1.
Gambar 1 Arsitektur Google Cloud Messaging[5]
Google menyediakan GCM Connection Server yang berfungsi untuk menerima pesan dari 3rd-party application server.GCM kemudian melakukan pengiriman pesan ke appclient. Koneksi yang dilakukan melalui HTTP dan XMPP. Hypertext Transfer Protocol (HTTP) adalah protokol komunikasi yang digunakan oleh web server dan web browser (Anonymous, 2013). HTTP digunakan web client untuk mengirimkan request ke web server, yang nantinya web server akan melemparkan kembali response berupa web content (web page) kembali ke client. Pengertian lain dari HTTP adalah protokol program yang digunakan untuk berkomunikasi antar World Wide Web (WWW) (Gourley, 2002). Web browser, web server dan semua web based application berkomunikasi menggunakan HTTP. HTTP merupakan reliable data-transmission protocols, yang artinya HTTP menjamin data yang dikirimkan tidak rusak meskipun dalam jarak pengiriman yang jauh. Setiap web content berada pada web server. Web Server berkomunikasi menggunakan HTTP sebagai protokol, maka sering disebut sebagai HTTP server. Proses pengiriman data dimulai dari HTTP client yang mengirimkan HTTP request ke server. HTTP request tersebut akan diterima dan diolah oleh server, kemudian server akan mengirimkan kembali HTTP response kepada client. HTTP client dan HTTP server merupakan komponen yang membentuk World Wide Web (WWW). GCM Cloud Server Connection (CCS) adalah koneksi server berbasis XMPP. CCS memungkinkan 3rd-party application server untuk berkomunikasi dengan perangkat Android dengan membentuk koneksi TCP persisten dengan server Google menggunakan protokol XMPP. Extensible Messaging dan Presence Protocol ( XMPP ) adalah protokol komunikasi untuk middleware pesan berorientasi berdasarkan XML ( Extensible Markup Language ). Protokol ini awalnya bernama Jabber , dan dikembangkan oleh komunitas open-source Jabber di 1999 untuk real -time , instant messaging ( IM ) , informasi keberadaan , dan Pemeliharaan daftar kontak. Dirancang untuk menjadi extensible , protokol juga digunakan untuk sinyal untuk VoIP , video, transfer file , game , dan layanan jejaring sosial . Tidak seperti kebanyakan protokol instant messaging , XMPP didefinisikan dalam standar terbuka dan
2
menggunakan pendekatan sistem terbuka pengembangan dan aplikasi, dimana siapa saja dapat mengimplementasikan layanan XMPP dan beroperasi dengan implementasi organisasi lain ' . Karena XMPP adalah sebuah protokol terbuka, implementasi dapat dikembangkan menggunakan lisensi perangkat lunak, walaupun implementasi banyak server, client , dan perpustakaan didistribusikan bebas dan perangkat lunak open-source , banyak implementasi perangkat lunak freeware dan komersial juga ada[10]. 3rd-party Application Server adalah aplikasi server dimana kita melakukan implementasi GCM service.Aplikasi server mengirimkan pesan ke GCM server.Client app adalah aplikasi pada perangkat mobile Android yang akan menerima pesan dari GCM. Agar dapat menerima pesan aplikasi harus terdaftar pada GCM dan mendapatkan registration ID. Setiap pesan yang dikirim di GCM memiliki karakteristik sebagai berikut: 1) User penerima pesan dengan GCM service maksimal 1000. 2) Secara default, pesan disimpan oleh GCM selama 4 minggu. JavaScript Object Notation (JSON) adalah format pertukaran data yang ringan, mudah dibaca dan ditulis oleh manusia, serta mudah diterjemahkan dan dibuat (generate) oleh komputer [6]. 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 menggunakan JavaScript syntax untuk menggambarkan data objects. JSON tersusun dari 2 struktur: 1) 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). 2) Daftar nilai terurutkan (an ordered list of values). Pada kebanyakan bahasa, hal ini dinyatakan sebagai larik (array), vektor (vector), daftar (list), atau urutan (sequence). Android adalah sebuah sistem operasi yang dibuat oleh Google dan merupakan sebuah opensource [7]. Definisi lainnya, Android adalah kumpulan perangkat lunak yang ditujukan bagi perangkat bergerak mencakup sistem operasi, middleware, dan aplikasi kunci [8].Android merupakan sistem operasi yang dikembangkan dengan memanfaatkan linux kernel untuk smartphone yang dibuat oleh Google corporation. Platform pada Android terbuka bagi para pengembang untuk menciptakan aplikasi mereka sendiri untuk digunakan oleh bermacam peranti bergerak. 3.
Metode Penelitian
Dalam penelitian ini, dilakukan beberapa tahapan yang dilakukan oleh peneliti. Secara garis besar penelitian yang terbagi dalam lima tahapan, yaitu: (1) Analisis kebutuhan dan pengumpulan data yang diperlukan, (2) Perancangan sistem, (3) Perancangan aplikasi/program, (4) Implementasi dan pengujian sistem, serta analisis hasil pengujian, (5) Penulisan laporan hasil penelitian.Tahapantahapan yang dilakukan dalam penelitian inidapat dilihat pada Gambar 2.
3
Gambar 2 Tahapan Penelitian [9]
Berdasarkan bagan pada Gambar 2 dapat dijelaskan bahwa tahapan penelitian yang dilakukan adalah sebagai berikut: Tahap pertama: analisis kebutuhan dan pengumpulan data, yaitu melakukan analisis kebutuhan apa saja yang dibutuhkan dalam penerapan GCM Service pada aplikasi penjualan batik. Pada tahap ini dikumpulkan data produk batik yang menjadi sample aplikasi, proses jual beli yang terjadi, acuan tentang Google Cloud Messaging dan informasi tambahan lainnya.Acuan penerapan GCM diambil dari beberapa sumber internet maupun buku.Kebutuhan data inilah yang nantinya menjadi menentukan dalam perancangan sistem. Tahap kedua: perancangan sistem yang meliputi perancangan proses menggunakan diagramUnified Modelling Language (UML) misalnya perancangan use case diagram, sequence diagram, class diagram, component diagram, dan deployment diagram.Pada tahap ini dilakukan pula perancangan arsitektur sistem yang dibangun dan perancangan antarmuka (interface) aplikasi. Tahap ketiga, perancangan aplikasi atau program yaitu merancang aplikasi atau program sesuai kebutuhan yang telah diperoleh pada tahap pengumpulan kebutuhan data sebelumnya. Tahap keempat: implementasi dan pengujian sistem, serta analisis hasil pengujian. Pada tahap ini dilakukan proses pembangunan sistem atau aplikasi berdasarkan rancangan yang telah dibuat. Kemudian dilakukan pengujian untuk mengetahui apakah aplikasi penjualan batik sudah berjalan sesuai dengan kebutuhan dan Google Cloud Messaging sudah bisa digunakan atau tidak. Akhir dari tahap ini adalah analisis hasil pengujian. Tahap kelima: penulisan laporan hasil penelitian, yaitu mendokumentasikan setiap proses yang dilakukan dalam penelitian yang telah dilakukan dalam bentuk laporan tertulis. Laporan inilah yang nantinya menjadi laporan hasil penelitian. Unified Modeling Language (UML) Dalam tahap ini dilakukan perancangan sistem dan perangkat lunak untuk menggambarkan prosedur dan proses kerja dari sistem aplikasi tersebut.Proses
4
perancangan proses sistem dalam penelitian ini menggunakan UML(Unified Modeling Language) dengan beberapa proses, dijelaskan sebagai berikut. Use case diagram, terdapat dua aktor dalam sistem ini terdapat 2 aktor utama, yaitu Admin dan User. Dalam use case diagram tersebut digambarkan semua fungsi yang dimiliki oleh tiap aktor. Terdapat pula entitas GCM yang merupakan entitas dalam sistem yang menyediakan layanan servis Google Cloud Messaging. Aktor User memiliki fungsi untuk mendaftarkan diri sebagai member (registration), melihat daftar katalog produk, melihat spesifikasi produk, dan mengirimkan pemesanan. Fungsi yang berhubungan dengan proses kerja Google Cloud Messaging (GCM) adalah fungsi pendaftaran member baru. Ketika User melakukan proses resgistrasi maka data member akan tercatat melalui service GCM ke database. Sedangkan aktor Admin memiliki fungsi untuk melakukan pengiriman notifikasi pesan, mendaftarkan user baru, melihat daftar katalog produk dan melihat spesifikasi detail suatu produk.Gambar Use Case Diagram Sistem dapat dilihat pada Gambar 4.
Mendaftar Sebagai Member
Mengirim Notifikasi Pesan
Mengirim Pemesanan
GCM
Admin User Melihat Daftar Katalog Mendaftarkan User Baru
Melihat Spesifikasi Produk
Gambar 4 Use Case Diagram Sistem
Activity diagram, Diagram aktifitas atau activity diagram memberikan visualisasi aliran tindakan dalam sistem yang dibuat, percabangan tindakan yang terjadi, bagaimana tindakan awal sistem dan bagaimana tindakan akhir yang terjadi pada sistem.Dalam sistem yang dibangun pada penelitian ini terdapat beberapa aktivitas yang terjadi, salah satunya adalah aktivitas registrasi.Aktivitas ini melibatkan user, sistem, GCM dan database. Proses registrasi diawali dengan pemilihan menu register oleh user. Setelah itu akan ditampilkan data form yang bias diisi oleh user. Data tersebut akan dikirimkan ke sistem, lalu sistem akan menyimpan sementara data tersebut ke dalam variable. Sistem akan membuat request ke GCM untuk mendaftarkan id device yang digunakan saat proses pendaftaran. Setelah proses registrasi GCM berhasil maka proses selanjutnya adalah penginputan data member baru ke database. Ketika proses penginputan berhasil maka GCM akan mengirimkan notifikasi ke sistem dan sistem melanjutkannya ke user.
5
User
Sistem Aplikasi Serv er (Web)
GCM
Database
START
Memilih Menu Register Mengirimkan Data Member Baru
Menerima Notifikasi
Menyimpan Data Member Baru Membuat Request Penambahan User
Register Device Baru
Menampilkan Notifikasi dari GCM
Mengirimkan Notifikasi
Input Data User Baru
END
Gambar 5 Activity Diagram Resgistrasi Member Baru
Class diagram merupakan diagram yang digunakan untuk menampilkan beberapa kelas yang ada dalam sistem/perangkat lunak yang sedang dikembangkan. Class diagram memberikan gambaran mengenai sistem dan relasi yang ada di dalamnya (user interface, atribut, controller).Class diagram sistem dapat dilihat pada Gambar 6.
Gambar 6 Class Diagram Sistem
Sistem memiliki 6 rancangan class utama, yaitu Profile, GCM_User, Cart, Category, Product dan Etalase.Kelas Profile memiliki atribut UID yang bertipe String sebagai primary key. UID merupakan hasil dari proses generate oleh sistem mobile. Kelas ini berfungsi untuk menyimpan informasi mengenai setiap user yang sudah terdaftar pada sistem. Kelas ini juga menangani beberapa operasi yang berhubungan dalam pengaturan data user, contohnya proses authentication user / login. Kelas GCM_User merupakan kelas yang berfungsi untuk menyimpan data 6
dari device. Atribut gcm_regid merupakan hasil generate dari Google Cloud Messaging Server. Kelas Product berfungsi untuk mengelola data produk yang ada dalam penelitian ini yaitu batik. Kelas ini berelasi dengan Kelas Category. Kelas Category berfungsi untuk mengatur kategori barang. Sedangkan Kelas Etalase merupakan kelas yang mengatur proses penampilan data produk tiap kategori tertentu. Kelas Cart berfungsi untuk menyimpan data setiap produk yang akan dibeli oleh user. 4.
Implementasi dan Pembahasan
Pada bagian akan dijelaskan hasil dan pembahasan yang meliputi implementasi dari rancangan yang dibuat telah dibuat, dan pengujian sistem. Arsitektur Aplikasi Sistem yang dibangun untuk memanfaatkan Google Cloud Messaging sebagai pengiriman pesan dalam aplikasi batik ini, dibangun menggunakan arsitektur yang dapat dilihat pada Gambar 7.
Gambar 7 Arsitektur Aplikasi
Pada Gambar 7 dapat dijelaskan bahwa sistem yang dibangun ada 2, yaitu aplikasi mobile dan aplikasi server. Dalam pemanfaatannya, aplikasi mobile, aplikasi server dan GCM saling berhubungan. Aplikasi mobile akan digunakan user untuk mendaftar sebagai member baru, melihat daftar barang, memasukkan pesanan dalanm keranjang belanja, dan melihat detail spesifikasi barang. Aplikasi server bertugas untuk menangani setiap transaksi yang terjadi. Setiap request yang dikirimkan oleh aplikasi mobile akan dijalankan oleh aplikasi server, termasuk penanganan GCM. Aplikasi server akan membantu dalam proses registrasi dan pengiriman pesan atau notification. Urutan proses yang terjadi ketika proses registrasi member baru adalah sebagai berikut :1) Pertama android akan mengirimkan sender id, application id ke GCM untuk didaftarkan pada sistem. Sender id didapatkan dengan cara mendaftar di Google APIs Console .Sender id merupakan hasil generate dari Google APIs Console yang dapat dilihat pada url project.
7
Gambar 8 Tampilan Sender Id pada URL Google APIs Console
Sedangkan application id adalah APIs Key yang diperoleh ketika mendaftar pada Google APIs Console. APIs Key ini digunakan setiap melakukan request ke Google Cloud Messaging service.
Gambar 9 API Key yang Digunakan Sebagai Application Id
2) Setelah sukses proses registrasi GCM maka akan dikirimkan registration id ke perangkat android. Registration id inilah yang nantinya digunakan untuk kode identitas tiap akun member.3) Registration id yang didapatkan dari GCM pada langkah sebelumnya dikirimkan ke apikasi server untuk disimpan ke database.4) Aplikasi server akan menyimpan registration id pada database dengan mengeksekusi perintah SQL.Proses pengiriman pesan atau notification yang terjadi pada sistem dapat dijelaskan sebagai berikut :(A) Aplikasi server akan mengirimkan pesan yang berasal dari form. Data dari form pesan akan dikirimkan sebagai request message ke GCM. (B) GCM serverakan mengirimkan pesan dari aplikasi server ke perangkat android dengan menggunakan registration id yang telah didapatkan pada proses registrasi. Hasil Penerapan Aplikasi Mobile Aplikasi mobile digunakan user untuk melihat daftar barang, mendaftar sebagai member baru, mengirimkan pesanan, dan melihat detail spesifikasi barang. Aplikasi mobile ini terbagi menjadi 7 interface atau antarmuka, yaitu : antarmuka login, antarmuka register, antarmuka catalog, antarmuka etalase, antarmuka detail product, antarmuka cart, dan antarmuka account. Antarmuka Login menyediakan form yang berisi username dan password. Userakan menginputkan username dan password untuk login ke aplikasi mobile. Terdapat 2 tombol pada antarmuka ini yaitu tombol login dan tombol register. Jika user belum memiliki akun, maka user bisa melakukan proses registrasi terlebih dahulu untuk mendapatkan akun.
8
Gambar 10 Antarmuka Login
Antarmuka Register menyediakan tampilan form yang berisi data-data yang harus diisi oleh user ketika mendaftar sebagai member baru. Data-data tersebut adalah sebagai berikut :username, password, name, identity number, gender, birthday, address, city, email, dan phone.
Gambar 11Antarmuka Register
Proses register diawali dengan pengambilan nilai dari setiap komponen form. Setelah itu data-data form akan ditampung ke collection. Proses penyusunan request ke server dimulai dengan penyusunan URL yang disertai parameter datadata collection. URL ini akan mengarah ke aplikasi server dan meminta sistem untuk mengeksekusi perintah PHP. Pendaftaran perangkat mobile juga dilakukan dengan memanfaatkan class GCMRegistrar yang disediakan oleh package com.google.android.gcm.GCMRegistrar. Class GCMRegistrar berfungsi untuk melakukan pengecekan apakah device sudah terdaftar pada GCM service atau tidak dan melakukan proses register device ke GCM service. Berikut ini adalah penggalan kode perintah untuk register device ke GCM service.
9
Kode Program 1 Perintah Register Device ke GCM Service 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33.
try { newuser = (HashMap<String, String>) getIntent().getSerializableExtra( "newuser"); } catch (Exception e) {} if (newuser != null) { cd = new ConnectionDetector(getApplicationContext()); if (!cd.isConnectingToInternet()) { alert.showAlertDialog(MainActivity.this,"Internet Connection Error", "Please connect to working Internet connection", false); return;} GCMRegistrar.checkDevice(this); GCMRegistrar.checkManifest(this); registerReceiver(mHandleMessageReceiver, new IntentFilter(DISPLAY_MESSAGE_ACTION)); // Get GCM registration id final String regId = GCMRegistrar.getRegistrationId(this); if (regId.equals("")) { GCMRegistrar.register(this, SENDER_ID); } else { if (GCMRegistrar.isRegisteredOnServer(this)) { } else { final Context context = this; mRegisterTask = new AsyncTask
() { @Override protected Void doInBackground(Void... params) { // Register on our server ServerUtilities.register(context, newuser, regId); return null; } @Override protected void onPostExecute(Void result) { mRegisterTask = null; }}; mRegisterTask.execute(null, null, null);}}
Pada class MainActivity terdapat fungsi untuk mengaktifkan device agar dapat menerima pesan atau notification yang masuk. Notification atau pesan dikirimkan melalui aplikasi server menggunakan GCM service. Untuk dapat menerima pesan atau notification digunakan BroadcastReceiver yang akan aktif ketika ada pesan masuk. Berikut ini adalah penggalan kode program fungsi BroadcastReceiver untuk menerima pesan atau notification.
Kode Program 2 Fungsi BroadcastReceiver untuk Menerima Pesan atau Notification 1. private final BroadcastReceiver mHandleMessageReceiver = new BroadcastReceiver() { 2. @Override 3. public void onReceive(Context context, Intent intent) { 4. String newMessage = intent.getExtras().getString(EXTRA_MESSAGE); 5. // Waking up mobile if it is sleeping 6. WakeLocker.acquire(getApplicationContext()); 7. // Showing received message 8. Toast.makeText(getApplicationContext(),"New Message: " + newMessage, Toast.LENGTH_LONG).show(); 9. // Releasing wake lock 10. WakeLocker.release(); } };
10
Dalam proses pengiriman notifikasi atau pesan singkat Google Cloud Messaging menggunakan protokol HTTP. Protokol ini yang akan membantu proses komunikasi antara server GCM dengan aplikasi mobile pada client. Pengaturan penggunaan protokol ini dilakukan pada sisi aplikasi web server. Terlebih dahulu dilakukan konfigurasi untuk memanfaatkan extensi php curl. URL yang digunakan pada konfigurasi ini adalah https://android.googleapis.com/gcm/send. Berikut ini adalah penggalan perintah yang digunakan untuk penggunaan HTTP pada sisi server aplikasi web GCM. Kode Program 3 Perintah Konfigurasi HTTP Server Aplikasi Web GCM 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12.
$url = 'https://android.googleapis.com/gcm/send'; $fields = array( 'registration_ids' => $registatoin_ids, 'data' => $message,); $headers = array( 'Authorization: key=' . GOOGLE_API_KEY, 'Content-Type: application/json'); $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, $url); curl_setopt($ch, CURLOPT_POST, true); curl_setopt($ch, CURLOPT_HTTPHEADER, $headers); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
Setiap notification yang masuk akan ditampilkan pada notification bar perangkat mobile.
Gambar 12 Notification yang Dikirim Melalui GCM service
Setiap produk batik yang ditampilkan dikelompokkan berdasarkan kategori tertentu. Penggolongan ini bertujuan untuk mempermudah user ketika mencari suatu produk tertentu.Kategori ini ditampilkan kedalam List secara vertikal.
Gambar 13 Antarmuka Category
11
Etalase merupakan menu yang menampilkan daftar produk pada kategori tertentu. Setiap produk diwakilkan oleh thumbnail yang berisi gambar produk, nama, harga dan ukuran. Daftar produk dalam kategori tertentu tersimpan dalam database. Untuk dapat mengambil daftar produk pada kategori tertentu aplikasi mobile akan menyusun request dengan URL yang mengarah ke aplikasi server. Aplikasi server akan mengeksekusi SQL command yang menghasilkan tabel. Tabel ini akan diubah menjadi format JSON. JSON ini yang akan diterima aplikasi mobile dan ditampilkan ke dalam grid layout.
Gambar 14 Antarmuka Etalase
Detail produk akan ditampilkan pada antarmuka detail product. Data-data yang akan ditampilkan meliputi : nama, harga, ukuran, keterangan/deskripsi, dan gambar produk. Detail produk akan ditampilkan ketika user melakukan klik pada thumbnailetalase produk. Pada antarmuka detail product, user dapat melakukan input jumlah yang ingin dibeli dan ukuran yang dipilih.
Gambar 15 Antarmuka Detail Product
12
Detail produk yang ditampilkan pada antarmuka detail product merupakan hasil dari pengiriman intent oleh class Etalase. Intent ini berisi data detail produk dan akan ditampilkan ke dalam komponen-komponen antarmuka. Ketika user melakukan klik pada tombol buy maka sistem akan menyimpan data pembelian user sementara ke dalam SharedPreferences. Data pembelian ini yang nantinya akan digunakan untuk menucart. Kode Program 3 merupakan perintah untuk menampilkan intent ke dalam komponen antarmuka dan perintah untuk menyimpan data pembelian. Kode Program 3 Perintah untuk Menampilkan Intent ke dalam Komponen Antarmuka dan Perintah untuk Menyimpan Data Pembelian 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19.
SharedPreferences pref = getApplicationContext().getSharedPreferences("USER_CART", MODE_PRIVATE); numberItem = pref.getInt("jumlahitem", 0); final SharedPreferences.Editor editor = pref.edit(); Intent intent = getIntent(); ID = intent.getStringExtra(TabEtalase.ID); ID_PRODUCT = intent.getStringExtra(TabEtalase.ID_PRODUCT); ID_CATEGORY = intent.getStringExtra(TabEtalase.ID_CATEGORY); PRODUCT_NAME = intent.getStringExtra(TabEtalase.PRODUCT_NAME); ... image_product = (ImageView) findViewById(R.id.image_icon_product); imageLoader.DisplayImage(IMAGE, image_product); ... private void saveData(Vector<String> list) { SharedPreferences pref = getApplicationContext().getSharedPreferences("USER_SESSION ", MODE_PRIVATE); SharedPreferences.Editor editor = pref.edit(); int i = 1; for (String product : list) { editor.putString("pembelian" + i, product); i++; } }
Setiap terjadi transaksi pembelian maka aplikasi mobileakan menyimpan data pembelian pada SharedPreferences. Pada antarmuka cart, data transaksi pembelian yang ditampilkan meliputi : nama produk, ukuran, jumlah yang dibeli dan harga total. Daftar belanja ini didapatkan dari penyimpanan data pembelian oleh class DetailProduct menggunakan SharedPreferences. SharedPreferences yang telah dibuat dari class DetailProduct dibaca kembali dan ditampilkan ke dalam bentuk ListView. Antarmuka account berisi informasi user atau customer yang aktif atau digunakan. Informasi tersebut meliputi : UID, username, password, name, identity number, gender, birthday, address, city, email, dan phone. UID adalah user identification number yang merupakan kode unik yang membedakan antara user satu dengan user lainnya. UID dihasilkan dari proses auto generate sistem aplikasi mobile. Informasi dari user ditampilkan kedalam bentuk listview. Informasi dari account user didapatkan dari SharedPreferences yang dibuat ketika proses login. Jika user melakukan proses login atau bukan user baru, maka
13
SharedPreferences akan menyimpan data yang berasal dari response aplikasi server. Aplikasi mobile akan melakukan request untuk mendapatkan data lengkap user. JSON yang dikirimkan sebagai response dari aplikasi server ke aplikasi mobileakan dibaca dan disimpan ke SharedPreferences. Sedangkan jika user merupakan user baru dan melakukan proses registrasi, maka data user didapatkan dari data form yang diisikan ketika proses registrasi.
Gambar 16 Antarmuka Account
Hasil Penerapan Aplikasi Server Aplikasi server bertugas untuk menangani setiap transaksi yang terjadi. Setiap request yang dikirimkan oleh aplikasi mobile akan dijalankan oleh aplikasi server, termasuk penanganan GCM. Aplikasi server akan membantu dalam proses registrasi dan pengiriman pesan atau notification. Fungsi yang ditangani oleh aplikasi server adalah sebagai berikut : fungsi authentication user, fungsi menampilkan daftar produk berdasarkan kategori, fungi menyimpan user baru, fungsi menampilkan daftar user, fungsi mengirim notification. Fungsi authenticationuser merupakan fungsi yang dilakukan server ketika terjadi request dari aplikasi mobile. Proses ini terjadi ketika user melakukan login. Username dan password dikirimkan melalui URL yang selanjutnya dicek, apakah username dan password yang diinputkan ada di database dan cocok.Jika username dan password valid, maka dilakukan eksekusi perintah SQL untuk menampilkan data user.Selanjutnya berdasarkan data tersebut dibentuklah JSON yang nantinya dikirimkan ke aplikasi mobile. Fungsi untuk menampilkan produk berdasarkan kategori tertentu dilakukan aplikasi server ketika terjadi request dari aplikasi mobile. Aplikasi server akan mendapatkan kategori yang dipilih dari parameter URL yang diakses oleh aplikasi mobile. Selanjutnya aplikasi serverakan melakukan perintah SQL untuk mendapatkan daftar produk. Daftar produk yang didapatkan kemudian ditulis kedalam format JSON yang nantinya dibaca oleh aplikasi mobile. Fungsi untuk menyimpan user baru dilakukan aplikasi server ketika aplikasi mobile melakukan proses registrasi. Data formuser baru akan dikirimkan melalui URL. Berdasarkan data tersebut akan dilakukan perintah SQL untuk menyimpan data user baru. Pada fungsi ini terdapat atribut gcm_regid yang merupakan hasil generate dari GCM service yang dikirimkan oleh aplikasi mobile. Atribut
14
gcm_regid merupakan kode identifikasi dari perangkat yang nantinya digunakan saat pengiriman notifikasi. Kode Program 4 Fungsi untuk Menyimpan User Baru 1. 2. 3. 4. 5. 6. 7. 8. 9. 10.
11. 12. 13. 14. 15. 16. 17.
$db = new DB_Functions(); $gcm = new GCM(); $res = $db->storeUser($name, $email, $gcm_regid); $res = $db>storeNewAccount($uid,$username,$password,$name,$identitynumbe r,$gender,$birthday,$address,$city,$email,$phone); ... $result = mysql_query("INSERT INTO gcm_users(name, email, gcm_regid, created_at) VALUES('$name', '$email', '$gcm_regid', NOW())"); if ($result) { $id = mysql_insert_id(); // last inserted id ... $result = mysql_query("INSERT INTO tuser VALUES('$uid','$username','$password','$name','$identitynumber ','$gender','$birthday','$address','$city','$email','$phone')" ); if ($result) { $result = mysql_query("SELECT * FROM tuser WHERE uid = $uid") or die(mysql_error()); if (mysql_num_rows($result) > 0) { return mysql_fetch_array($result); ... $registatoin_ids = array($gcm_regid); $message = "Congratulation";
Fungsi untuk menampilkan daftar user dijalankan sebelum melakukan pengiriman notifikasi. Aplikasi serverakan menampilkan daftar user yang sudah terdaftar pada halaman index. Daftar user didapatkan dari proses eksekusi perintah SQL. Fungsi pengiriman notification dijalankan oleh aplikasi server ketika ingin melakukan pengiriman pesan ke aplikasi mobile. Pesan didapatkan dari form yang diisi oleh admin untuk dikirimkan. Pesan tersebut akan dikirimkan melalui GCM service. Pesan akan dilewatkan URL dari GCM service (https://android.googleapis.com/gcm/send) yang nantinya akan menangani pengiriman pesan. Pengiriman pesan juga membutuhkan Google API Key yang didapatkan ketika pendaftaran Google APIs Console. Fungsi pengiriman notification dapat dilihat pada Kode Program 5.
15
Kode Program 5 Fungsi untuk Pengiriman Notification 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30.
// include config include_once './config.php'; // Set POST variables $url = 'https://android.googleapis.com/gcm/send'; $fields = array( 'registration_ids' => $registatoin_ids, 'data' => $message, ); $headers = array( 'Authorization: key=' . GOOGLE_API_KEY, 'Content-Type: application/json' ); // Open connection $ch = curl_init(); // Set the url, number of POST vars, POST data curl_setopt($ch, CURLOPT_URL, $url); curl_setopt($ch, CURLOPT_POST, true); curl_setopt($ch, CURLOPT_HTTPHEADER, $headers); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); // Disabling SSL Certificate support temporarly curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($fields)); // Execute post $result = curl_exec($ch); if ($result === FALSE) { die('Curl failed: ' . curl_error($ch)); } // Close connection curl_close($ch); echo $result;
Pengujian Sistem Pengujian aplikasi dilakukan untuk mengetahui apakah setiap fungsi dari aplikasi sudah berjalan dengan benar. Terdapat 2 hal yang diuji dalam tahap pengujian sistem , yaitu pengujian fungsi aplikasi dan pengujian GCM. Pengujian fungsi aplikasi dilakukan untuk mengetahui apakah setiap fungsi yang sudah dibuat dapat berjalan dengan baik atau tidak. Setiap fungsi akan diberi input dan dilihat apakah menghasilkan output yang sesuai dengan yang diinginkan. Jika terjadi kesalahan proses kerja maupun logika pengembangan maka akan dilakukan perbaikan pada fungsi. Hasil dari pengujian fungsi dapat dilihat pada Tabel 1. Tabel 1 Hasil Pengujian Fungsi No 1
Fungsi Fungsi login
Keterangan Username dan password akan dicek apakah sesuai dengan data yang tersimpan pada databse
Input Username password
2
Fungsi akun
register
Data akun baru akan dikirimkan melalui HTTP request ke aplikasi server untuk disimpan di database
3
Fungsi GCM
register
Aplikasi mobile akan mengirimkan sender id dan API
username, password, name, identity number, gender, birthday, address, city, email, dan phone. Sender id dan API key
16
dan
Output Flag boolean: bernilai true jika valid, false jika invalid Record tabel user baru
Hasil Valid
Registration id (unique id
Valid
Valid
4
Fungsi pengiriman pesan GCM
5
Fungsi penerimaan pesan GCM
6
Fungsi kategori
daftar
7
Fungsi produk
daftar
8 9
10
key untuk didaftarkan pada GCM service Proses pengiriman pesan dilakukan pada aplikasi server ke aplikasi mobile. Pengujian dilakukan untuk mengethaui apakah pesan sudah terkirim atau tidak pada perangkat yang dituju. Aplikasi mobile menggunakan BroadcastReceiver yang akan aktif ketika ada pesan masuk
Teks pesan yang dikirim melalui form pada web
Intent message yang diterima dari GCM service
HTTP request akan dikirimkan ke aplikasi server untuk menjalankan perintah php dan SQL HTTP request akan dikirimkan ke aplikasi server untuk menjalankan perintah php dan SQL
URL melihat kategori
Fungsi detail produk Fungsi cart/keranjang belanja
Fungsi yang menampilkan data lengkap suatu produk Pemanfaatan SharedPreferences untuk menyimpan data pembelian temporari
Kode produk
Fungsi user
Pemanfaatan SharedPreferences untuk menyimpan data akun user temporari
SharedPreferen ces yang berisi akun user
profile
untuk daftar
URL yang berisi parameter kategori yang dipilih
SharedPreferen ces yang berisi transaksi pembelian
dari GCM service) Notification yang masuk ke perangkat android
Valid
Push notification yang akan ditampilkan pada notification bar JSON daftar kategori
Valid
JSON daftar produk berdasarkan kategori tertentu Detail Produk
Valid
SharedPrefer ences yang akan dibaca dan ditampilkan dalam listview SharedPrefer ences yang akan dibaca dan ditampilkan dalam listview
Valid
Valid
Valid
Valid
Dapat ditarik kesimpulan bahwa setiap fungsi yang dibangun sudah berjalan dengan baik. Setiap input dapat menghasilkan output yang sesuai dengan kebutuhan sistem. Fungsi yang berhubungan dangan GCM service, maupun fungsi yang memanfaatkan HTTP request dalam mengakses database dapat berjalan dengan baik. Pengujian GCM dilakukan untuk mengetahui apakah proses yang terjadi ketika pengiriman dan penerimaan pesan dapat berjalan dengan baik atau tidak. Jika terdapat kesalahan dalam penerapan pemanfaatan GCM service maka akan dilakukan perbaikan sehingga proses dapat berjalan dengan baik. Pengujian ini dilakukan dengan dengan cara menguji setiap tahapan lifecycle flow GCM. Terdapat 3 tahapan utama dalam lifecycle flow GCM, yaitu :enable GCM, send message dan receive message. Setiap tahapan diuji untuk mengetahui pemanfaatan GCM pada sistem yang dibangun sudah berjalan dengan baik. Pengujian yang dilakukan yaitu : mengaktifkan GCM service, melakukan register menggunakan beberapa perangkat mobile, pengiriman pesan ke beberapa perangkat mobile., dan pengujian lifecycle flow dari GCM. Hasil dari pengujian GCM dapat dilihat pada Tabel 2.
17
Pengujian Pengaktifan GCM Service
Pengujian Register
Pengujian pengiriman pesan
Tabel 4.2 HasilPengujian Google Cloud Messaging Service Tujuan Keterangan/Cara Hasil Mengetahui apa Pengaturan Android Terdapat response berupa servis GCM sudah Manifest pada aplikasi registration id dari GCM. dapat digunakan mobile. Selain itu juga pada sistem yang menggunakan method dibangun atau register yang akan belum dipanggil pada saat proses registrasi akun. Menguji apakah Beberapa perangkat Setiap perangkat dapat perangkat mobile mobile melakukan proses terdaftar pada GCM dapat didaftarkan registrasi user baru serivce selama pada GCM service. dengan menggunakan menggunakan koneksi sender id dan API key. internet. Setiap perangkat mempunyai registration id yang bersifat unique (berbeda antar perangkat mobile). Menguji apakah Mengirimkan pesan dari Pesan dapat diterima pesan yang aplikasi server ke perangkat mobile dalam dikirimkan dari beberapa perangkat bentuk push notification aplikasi server mobile yang sudah yang muncul di dapat diterima oleh terdaftar pada GCM notification bar perangkat mobile service
Berdasarkan Tabel 2 dapat diambil kesimpulan bahwa setiap tahapan yang terjadi pada lifecycle flow pemanfaatan GCM dapat berjalan dengan baik. Selain itu pengujian juga dilakukan terhadap beberapa state atau keadaan perangkat mobile ketika menerima pesan. Ketika perangkat mobile dalam keadaan idle pesan akan tetap dapat sampai ke perangkat mobile. Jika perangkat mobile dalam keadaan tidak aktif, maka pesan akan disimpan sementara untuk dikirim kembali ketika perangkat mobile aktif. Secara default jangka waktu pesan dapat disimpan adalah 4 minggu. Jika pesan masih belum dapat diterima, maka akan dihapus oleh GCM service. Jika aplikasi sudah tidak terinstal maka pesan tidak akan dapat diterima oleh perangkat mobile. 5.
Simpulan
Berdasarkan penelitian yang telah dilakukan maka terdapat beberapa kesimpulan sebagai berikut: 1)PenerapanGoogle Cloud Messaging dapat digunakan untuk menyampaikan notification message dari penjual kepada pembeli. 2)Dalam implementasi Google Cloud Messaging (GCM) terdapat beberapa bagian yang terlibat yaitu : Google-provided connection server, 3rdparty app server dan Client App. Dalam penelitian ini dibangun aplikasi server yang berfungsi sebagai pengaturan GCM service (3rd-party app server) dan aplikasi mobile yang berfungsi sebagai client app. 3)Aplikasi mobile akan digunakan user untuk melihat daftar barang, mendaftar sebagai member baru, mengirimkan pesanan, dan melihat detail spesifikasi barang. Aplikasi server bertugas untuk menangani setiap transaksi yang terjadi.4)Secara sederhana proses penyampaian pesan melalui GCM adalah sebagai berikut : Pertama android akan 18
mengirimkan sender id, application id ke GCM untuk didaftarkan pada sistem. Setelah sukses proses registrasi GCM maka akan dikirimkan registration id ke perangkat android.Registration id yang didapatkan dari GCM pada langkah sebelumnya dikirimkan ke aplikasi server untuk disimpan ke database. GCM serverakan mengirimkan pesan dari aplikasi server ke perangkat android dengan menggunakan registration id yang telah didapatkan pada proses registrasi.4) Hasil pengujian manfaat yang dilakukan dengan penujian kuisioner menyatakan bahwa fitur penyampaian pesan melalui push notification dengan bantuan Google Cloud Messaging berguna dalam penyampaian informasi.
19
6. [1] [2]
[3]
[4]
[5]
[6] [7] [8] [9]
[10]
Daftar Pustaka Riwayadi, Purwo. 2013. Pemanfaatan Perkembangan Teknologi Informasi dan Komunikasi untuk Kemajuan Pendidikan di Indonesia.IMADIKLUS. Google Inc. 2013. Google Cloud Messaging for Android.http://developer.android.com/google/gcm/index.html (diakses tanggal 1 Agustus 2013). Hartono, Ayrin. 2013. Desain dan Implementasi Aplikasi Servis dan Katalog Motor Menggunakan HTTP Request Pada Mobile Android Platform. Salatiga: Universitas Kristen Satya Wacana. Pradana, Jonathan Ery, Dr. Ing. M. Sukrisno Mardiyanto. 2012. Pengembangan Framework untuk Pembangunan Aplikasi Mobile Commerce. Bandung:Institut Teknologi Bandung. Google Inc. 2013. Google Cloud Messaging Overview.http://developer.android.com/google/gcm/gcm.html (diakses tanggal 1 Agustus 2013). Json.org. 2013. JavaScript Object Notation (JSON). http://www.json.org/json-id.html. Diakses tanggal 14 Maret 2013. Burnette, Ed. 2009. Hello, Android: Introducing Google's Mobile Development Platform 2nd. USA: Pragmatic Bookshelf. Nazruddin Safaat H. 2011. Pemograman Aplikasi Mobile Smartphone dan Tablet PC Berbasis Android.Bandung : Informatika. Hasibuan, Zainal A. 2007.Metodologi Penelitian Pada Bidang Ilmu Komputer dan Teknologi Informasi : Konsep, Teknik, dan Aplikasi. Jakarta : Ilmu Komputer Universitas Indonesia. Wikipedia. 2013. Extensible Messaging dan Presence Protocol.http://en.wikipedia.org/wiki/XMPP (diakses tanggal 16 Desember 2013).
20