Perancangan dan Implementasi Finite Automata...Pesan ini akan diterima pembeli melalui perangkat ....
Transcript of Perancangan dan Implementasi Finite Automata...Pesan ini akan diterima pembeli melalui perangkat ....
-
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.
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.
-
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
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.
-
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,
transfer file , game , dan layanan jejaring sosial . Tidak seperti kebanyakan
protokol instant messaging , XMPP didefinisikan dalam standar terbuka dan
-
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
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.Tahapan-
tahapan yang dilakukan dalam penelitian inidapat dilihat pada Gambar 2.
-
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)
Dalam tahap ini dilakukan perancangan sistem dan perangkat lunak untuk
menggambarkan prosedur dan proses kerja dari sistem aplikasi tersebut.Proses
-
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
UserMelihat Daftar Katalog
Melihat Spesifikasi Produk
Mengirim Notifikasi Pesan
Admin
Mendaftarkan User Baru
GCM
-
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
DatabaseGCMSistem Aplikasi Serv er (Web)User
-
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
merupakan hasil generate dari Google APIs Console yang dapat dilihat pada url
project.
-
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.
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.
-
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
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.
-
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)
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() { 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. }}; 33. mRegisterTask.execute(null, null, null);}}
-
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); 11. curl_setopt($ch, CURLOPT_HTTPHEADER, $headers); 12. curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
https://android.googleapis.com/gcm/send
-
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.
Gambar 15 Antarmuka Detail Product
-
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 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) { 18. editor.putString("pembelian" + i, product); 19. i++; } }
-
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
generate dari GCM service yang dikirimkan oleh aplikasi mobile. Atribut
-
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
notification dapat dilihat pada Kode Program 5.
https://android.googleapis.com/gcm/send
-
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. } 28. // Close connection 29. curl_close($ch); 30. echo $result;
-
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
SharedPreferences yang berisi
akun user
SharedPreferences 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.
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.
-
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
bertugas untuk menangani setiap transaksi yang terjadi.4)Secara sederhana proses
penyampaian pesan melalui GCM adalah sebagai berikut : Pertama android akan
-
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
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.
-
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.
[10] Wikipedia. 2013. Extensible Messaging dan Presence
Protocol.http://en.wikipedia.org/wiki/XMPP (diakses tanggal 16 Desember
2013).
http://developer.android.com/google/gcm/index.htmlhttp://developer.android.com/google/gcm/gcm.html