0
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.
1
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
2
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,
3
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
4
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)
5
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.
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.
Mendaftar Sebagai Member
Mengirim Pemesanan
User
Melihat Daftar Katalog
Melihat Spesifikasi Produk
Mengirim Notifikasi Pesan
Admin
Mendaftarkan User Baru
6
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 START
Memilih Menu Register
Mengirimkan Data Member Baru
Menerima Notifikasi
END
Menyimpan Data Member Baru
Membuat Request Penambahan User
Menampilkan Notifikasi dari GCM
Mengirimkan Notifikasi Register Device
Baru
Input Data User Baru
Database GCM
7
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
8
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.
9
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 data-data 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
10
Kode Program 1 Perintah Register Device ke GCM Service
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(); } }; 1. try {
2. newuser = (HashMap<String, String>) getIntent().getSerializableExtra( 3. "newuser");
4. } catch (Exception e) {} 5. if (newuser != null) {
6. cd = new ConnectionDetector(getApplicationContext()); 7. if (!cd.isConnectingToInternet()) {
8. alert.showAlertDialog(MainActivity.this,"Internet Connection Error",
9. "Please connect to working Internet connection", false); 10. return;}
11. GCMRegistrar.checkDevice(this); 12. GCMRegistrar.checkManifest(this);
13. registerReceiver(mHandleMessageReceiver, new IntentFilter(DISPLAY_MESSAGE_ACTION)); 14. // Get GCM registration id
15. final String regId = GCMRegistrar.getRegistrationId(this); 16. if (regId.equals("")) {
17. GCMRegistrar.register(this, SENDER_ID); 18. } else {
19. if (GCMRegistrar.isRegisteredOnServer(this)) { 20. } else {
21. final Context context = this;
22. mRegisterTask = new AsyncTask<Void, Void, Void>() { 23. @Override
24. protected Void doInBackground(Void... params) { 25. // Register on our server
26. ServerUtilities.register(context, newuser, regId); 27. return null;
28. }
29. @Override
30. protected void onPostExecute(Void result) { 31. mRegisterTask = null;
32. }};
11
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
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
1. $url = 'https://android.googleapis.com/gcm/send'; 2. $fields = array(
3. 'registration_ids' => $registatoin_ids, 4. 'data' => $message,);
5. $headers = array(
6. 'Authorization: key=' . GOOGLE_API_KEY, 7. 'Content-Type: application/json'); 8. $ch = curl_init();
9. curl_setopt($ch, CURLOPT_URL, $url); 10. curl_setopt($ch, CURLOPT_POST, true);
12
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.
13
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
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
1. SharedPreferences pref =
getApplicationContext().getSharedPreferences("USER_CART", MODE_PRIVATE);
2. numberItem = pref.getInt("jumlahitem", 0);
3. final SharedPreferences.Editor editor = pref.edit(); 4. Intent intent = getIntent();
5. ID = intent.getStringExtra(TabEtalase.ID);
6. ID_PRODUCT = intent.getStringExtra(TabEtalase.ID_PRODUCT); 7. ID_CATEGORY =
intent.getStringExtra(TabEtalase.ID_CATEGORY); 8. PRODUCT_NAME =
intent.getStringExtra(TabEtalase.PRODUCT_NAME); 9. ...
10. image_product = (ImageView)
findViewById(R.id.image_icon_product);
11. imageLoader.DisplayImage(IMAGE, image_product); 12. ...
13. private void saveData(Vector<String> list) { 14. SharedPreferences pref =
getApplicationContext().getSharedPreferences("USER_SESSION ", MODE_PRIVATE);
15. SharedPreferences.Editor editor = pref.edit(); 16. int i = 1;
17. for (String product : list) {
14
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
15 1. $db = new DB_Functions();
2. $gcm = new GCM();
3. $res = $db->storeUser($name, $email, $gcm_regid); 4. $res =
$db->storeNewAccount($uid,$username,$password,$name,$identitynumbe r,$gender,$birthday,$address,$city,$email,$phone);
5. ...
6. $result = mysql_query("INSERT INTO gcm_users(name, email, gcm_regid, created_at) VALUES('$name', '$email', '$gcm_regid', NOW())");
7. if ($result) {
8. $id = mysql_insert_id(); // last inserted id 9. ...
10. $result = mysql_query("INSERT INTO tuser
VALUES('$uid','$username','$password','$name','$identitynumber ','$gender','$birthday','$address','$city','$email','$phone')" );
11. if ($result) {
12. $result = mysql_query("SELECT * FROM tuser WHERE uid = $uid") or die(mysql_error());
13. if (mysql_num_rows($result) > 0) { 14. return mysql_fetch_array($result); 15. ...
16. $registatoin_ids = array($gcm_regid); 17. $message = "Congratulation";
gcm_regid merupakan kode identifikasi dari perangkat yang nantinya digunakan saat pengiriman notifikasi.
Kode Program 4 Fungsi untuk Menyimpan User Baru
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
16
Kode Program 5 Fungsi untuk Pengiriman Notification
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 Fungsi Keterangan Input Output Hasil
1 Fungsi login Username dan password akan dicek apakah sesuai dengan data yang tersimpan pada databse
Username dan
password
Flag boolean: bernilai true
jika valid,
false jika invalid
Valid
2 Fungsi register
akun
Data akun baru akan dikirimkan melalui HTTP request ke aplikasi
server untuk disimpan di
database
username, password, name, identity number, gender, birthday, address, city, email, dan
phone.
Record tabel
user baru
Valid
3 Fungsi register
GCM
Aplikasi mobile akan mengirimkan sender id dan API
Sender id dan
API key
Registration id (unique id
Valid 1. // include config
2. include_once './config.php'; 3. // Set POST variables
4. $url = 'https://android.googleapis.com/gcm/send'; 5. $fields = array(
6. 'registration_ids' => $registatoin_ids, 7. 'data' => $message,
8. );
9. $headers = array(
10. 'Authorization: key=' . GOOGLE_API_KEY, 11. 'Content-Type: application/json' 12. );
13. // Open connection 14. $ch = curl_init();
15. // Set the url, number of POST vars, POST data 16. curl_setopt($ch, CURLOPT_URL, $url);
17. curl_setopt($ch, CURLOPT_POST, true);
18. curl_setopt($ch, CURLOPT_HTTPHEADER, $headers); 19. curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); 20. // Disabling SSL Certificate support temporarly 21. curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); 22. curl_setopt($ch, CURLOPT_POSTFIELDS,
json_encode($fields)); 23. // Execute post
24. $result = curl_exec($ch); 25. if ($result === FALSE) {
26. die('Curl failed: ' . curl_error($ch)); 27. }
17
key untuk didaftarkan pada GCM
service
dari GCM
service) 4 Fungsi
pengiriman pesan GCM
Proses pengiriman pesan dilakukan pada aplikasi server ke aplikasi mobile. Pengujian dilakukan untuk mengethaui apakah pesan sudah terkirim atau tidak pada perangkat yang dituju.
Teks pesan yang dikirim melalui form
pada web
Notification
yang masuk ke perangkat android
Valid
5 Fungsi
penerimaan pesan GCM
Aplikasi mobile menggunakan
BroadcastReceiver yang akan aktif ketika ada pesan masuk
Intent message
yang diterima
dari GCM
service
Push notification
yang akan ditampilkan pada
notification bar
Valid
6 Fungsi daftar kategori
HTTP request akan dikirimkan ke aplikasi server untuk menjalankan perintah php dan SQL
URL untuk melihat daftar kategori
JSON daftar kategori
Valid
7 Fungsi daftar produk
HTTP request akan dikirimkan ke aplikasi server untuk menjalankan perintah php dan SQL
URL yang
berisi parameter kategori yang dipilih
JSON daftar produk berdasarkan kategori tertentu
Valid
8 Fungsi detail produk
Fungsi yang menampilkan data lengkap suatu produk
Kode produk Detail Produk Valid
9 Fungsi
cart/keranjang belanja
Pemanfaatan SharedPreferences
untuk menyimpan data pembelian temporari
SharedPreferen ces yang berisi transaksi pembelian
SharedPrefer ences yang akan dibaca dan
ditampilkan dalam
listview
Valid
10 Fungsi profile user
Pemanfaatan SharedPreferences
untuk menyimpan data akun user
temporari
SharedPreferen ces yang berisi akun user
SharedPrefer ences yang akan dibaca dan
ditampilkan dalam
listview
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.
18
Tabel 4.2 HasilPengujian Google Cloud Messaging Service
Pengujian Tujuan Keterangan/Cara Hasil
Pengaktifan GCM Service
Mengetahui apa
servis GCM sudah
dapat digunakan
pada sistem yang
dibangun atau
belum
Pengaturan Android
Manifest pada aplikasi
mobile. Selain itu juga
menggunakan method
register yang akan
dipanggil pada saat
proses registrasi akun.
Terdapat response berupa
registration id dari GCM.
Pengujian Register
Menguji apakah
perangkat mobile
dapat didaftarkan pada GCM service.
Beberapa perangkat
mobile melakukan proses registrasi user baru
dengan menggunakan
sender id dan API key.
Setiap perangkat dapat
terdaftar pada GCM
serivce selama
menggunakan koneksi
internet. Setiap perangkat mempunyai registration id
yang bersifat unique
(berbeda antar perangkat
mobile). Pengujian
pengiriman pesan
Menguji apakah
pesan yang
dikirimkan dari
aplikasi server
dapat diterima oleh perangkat mobile
Mengirimkan pesan dari
aplikasi server ke
beberapa perangkat
mobile yang sudah
terdaftar pada GCM
service
Pesan dapat diterima
perangkat mobile dalam bentuk push notification
yang muncul di
notification bar
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, 3rd -party 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
19
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
20
6. Daftar Pustaka
[1] Riwayadi, Purwo. 2013. Pemanfaatan Perkembangan Teknologi Informasi dan Komunikasi untuk Kemajuan Pendidikan di Indonesia.IMADIKLUS. [2] Google Inc. 2013. Google Cloud Messaging for
Android.http://developer.android.com/google/gcm/index.html (diakses tanggal 1 Agustus 2013).
[3] Hartono, Ayrin. 2013. Desain dan Implementasi Aplikasi Servis dan Katalog Motor Menggunakan HTTP Request Pada Mobile Android Platform. Salatiga: Universitas Kristen Satya Wacana.
[4] Pradana, Jonathan Ery, Dr. Ing. M. Sukrisno Mardiyanto. 2012.
Pengembangan Framework untuk Pembangunan Aplikasi Mobile Commerce. Bandung:Institut Teknologi Bandung.
[5] Google Inc. 2013. Google Cloud Messaging Overview.http://developer.android.com/google/gcm/gcm.html (diakses tanggal 1 Agustus 2013).
[6] Json.org. 2013. JavaScript Object Notation (JSON). http://www.json.org/json-id.html. Diakses tanggal 14 Maret 2013.
[7] Burnette, Ed. 2009. Hello, Android: Introducing Google's Mobile Development Platform 2nd. USA: Pragmatic Bookshelf.
[8] Nazruddin Safaat H. 2011. Pemograman Aplikasi Mobile Smartphone dan Tablet PC Berbasis Android.Bandung : Informatika.
[9] Hasibuan, Zainal A. 2007.Metodologi Penelitian Pada Bidang Ilmu Komputer dan Teknologi Informasi : Konsep, Teknik, dan Aplikasi. Jakarta : Ilmu Komputer Universitas Indonesia.