Post on 03-Mar-2019
1
1. Pendahuluan Dewasa ini, kebutuhan akan informasi semakin bertambah. Manusia
adalah mahluk hidup yang mempunyai keinginan untuk berbagi kepada
sesamanya. Perkembangan teknologi yang semakin maju, dan didukung dengan
menjamurnya jejaring sosial, manusia tidak harus bertemu secara tatap muka
untuk berbagi kepada sesamanya. Melalui internet khususnya jejaring sosial,
manusia bisa saling berkomunikasi dengan sesamanya walaupun dipisahkan oleh
jarak dan waktu.
Twitter adalah salah satu jejaring sosial yang mulai dikenal pada tahun
2006. Situs microblog yang memberikan fasilitas mengirimkan teks kepada
sesama member-nya ini, mulai menarik perhatian publik. Situs Twitter menjadi
salah satu yang paling digemari saat ini di dunia karena dinilai efektif dan cepat
dalam menyebarkan dan menyampaikan informasi. Demikian juga di Indonesia,
hal ini terbukti Indonesia sebagai negara keenam di dunia sebagai pengguna
Twitter terbanyak.
Dengan melihat peluang pemasaran produk melalui media Twitter yang
sangat baik, perusahaan NetDesain Bandung melalui situs X-Phones.com yang
berisi informasi handphone baik spesifikasi maupun harga ingin memanfaatkan
promosi melalui Twitter. Selama ini user admin Twitter X-Phones.com
(@x_phones) hanya membalas tweet yang masuk dengan cara manual. Jika ada
akun Twitter lain yang bertanya mengenai harga handphone, maka user Twitter
X-Phones.com akan membalas jika sedang online. Proses ini tentu saja memakan
banyak waktu dan tidak efisien serta memungkinkannya mention Twitter dari user
lain tidak terbaca dan tidak terbalas. Oleh karena itu, dibutuhkan sebuah sistem
yang dapat membalas setiap tweet ataupun mention yang masuk ke akun Twitter
secara otomatis, tanpa user harus online. Berdasarkan hal tersebut, maka
dilakukan penelitian tentang Perancangan Sistem Auto Reply Twitter
menggunakan Twitter API.
2. Tinjauan Pustaka Penggunaan Twitter sebagai media promosi sudah bukan hal yang baru
lagi. Dalam penelitian yang berjudul Penggunaan Twitter sebagai Media Promosi
Event ForbiddenDinasty Qin Mal Kelapa Gading, dinyatakan bahwa pengguna
Twitter di Indonesia sudah mencapai 4,8 juta orang. Ramainya aktivitas jejaring
itu membuat arus informasi terus menerus berganti tiap detik, sehingga
informasi cepat tersebar.Hal ini dimanfaatkan perusahaan untuk dijadikan
tempat promosi suatu barang atau jasa. Beberapa perusahaan memanfaatkan
situs jaringan sosial ini untuk mempromosikan event yang diadakan, dan hal
ini menjadi tugas praktisi Public Relations untuk beradaptasi dengan internet.
Dengan banyaknya pengguna Twitter, jangkauan promosi pun semakin luas dan
target pemasaran bisa tercapai [1].
Pada penelitian yang berjudul Aplikasi Integrasi Social Networking
dengan Cloud Messaging Menggunakan Google App Engine pada Android,
dinyatakan bahwa pengunaan API social networking seperti Facebook dan Twitter
mempermudah dalam hal bertukar informasi. Parameter yang digunakan pada
aplikasi ini adalah HTTP POST. API Facebook dan Twitter digunakan untuk
memperbaharui status pengguna dengan lagu yang terakhir dimainkan [2].
2
Pada penelitian pertama, dapat disimpulkan penggunaan Twitter sebagai media
promosi sangat baik. Namun, penggunaan Twitter dalam melakukan promosi
masih dilakukan dengan update status manual. Pada penelitian kedua, penggunaan
API menggunakan parameter HTTP POST. Berdasarkan penelitian tentang
Twitter yang pernah dilakukan sebelumnya, maka akan dilakukan penelitian yang
membahas perancangan Sistem Auto Reply Twitter menggunakanTwitter API.
Pada penelitian ini, akun Twitter melakukan mention dan Direct Message (DM)
secara otomatis. Parameter yang digunakan adalah HTTP POST dan HTTP GET,
sehingga sistem tidak hanya mengirim data, tetapi juga mengambil data dalam
penggunaan API. Data dan proses dalam Sistem, mengikuti Term Of Service
Twitter. Resource API Twitter yang digunakan adalah POST statuses/update, GET
direct_messages, POST direct_messages/new, dan GET statuses/mentions.
Penelitian ini mengambil studi kasus di NetDesain Bandung untuk menyelesaikan
permasalahan dalam menjawab mention/DM dari client, yang selama ini masih
dilakukan secara manual. Penelitian ini diharapkan dapat membantu NetDesain
untuk menjawab mention/DM dari client, secara otomatis, sehingga menghemat
waktu user dalam membalas tweet, dalam jumlah yang banyak dalam waktu
tertentu, serta mempermudah proses pemasaran produk NetDesain melalui media
Twitter.
Twitter Twitter merupakan salah satu jenis situs jejaring sosial pertemanan yang
memungkinkan para penggunanya bisa mendapatkan relasi, dengan mendaftarkan
dirinya pada situs tersebut. Kehadiran Twitter semakin meramaikan persaingan
situs-situs social networking yang sudah ada sebelumnya, seperti: Friendster,
Facebook, Plurk dan lain-lain. Setiap situs jejaring sosial pasti mempunyai
kelebihan dan kekurangan, begitu pula dengan Twitter.
Twitter adalah jejaring sosial dan micro-blogging yang menfasilitasi
pengguna, sehingga pengguna dapat memberikan update (perbaruan) informasi
tentang diri pengguna, bisnis dan lain sebagainya. Status yang ditulis oleh
pengguna pada Twitter, disebut sebagai Tweet. Twitter menyediakan fitur yang
akan menghitung jumlah Tweet pengguna Twitter, apabila pengguna sudah
menulis status pada Twitter sebanyak 50 kali, maka jumlah Tweet dikatakan
berjumlah 50 buah. Jumlah maksimal karakter yang dapat dituliskan oleh
pengguna sebagai status hanya terbatas pada 140 karakter. Tweet dapat
ditampilkan pada profil pengguna atau digunakan untuk mengomentari status
dengan member yang lain. Keistimewaan Tweet adalah dapat dikirimkan melalui
Twitter via internet, SMS (Short Message Service) atau aplikasi-aplikasi pihak
ketiga seperti Tweetdeck, Hootsuite dan lain-lain.
Sejak diperkenalkan oleh Jack Dorsey pada tahun 2006, Twitter
mengalami perkembangan yang cukup pesat di dunia situs jejaring sosial.Twitter
dapat dijuluki “SMS of the Internet”, sebagai program aplikasi internet untuk
mengirim pesan pendek ke aplikas-aplikasi lain. Pada tahun 2009, Twitter
menempati salah satu rangking 50 website yang paling popular di dunia
worldwide yang diteliti oleh lembaga penelitian webAlexa’s Web Traffic Analysis.
Bulan Februari 2009, blog Compete.com memasukkan Twitter ke dalam tiga besar
3
situs jejaring sosial yang paling banyak digunakan berdasarkan perhitungan yang
dilakukan, diperoleh data 55 juta pengunjung bulanan. Bulan Maret 2009,
Nielsen.com merangkingkan Twitter sebagai situs dengan perkembangan paling
pesat dalam kategori situs pertemanan untuk bulan Februari 2009 [3].
Daftar istilah yang sering muncul di Twitter adalah sebagai berikut [4] :
(1) Trending Topic, adalah topik yang sedang banyak dibicarakan oleh para
pemakai Twitter pada saat ini (real time). Trending topic dari pengguna Indonesia
yang pernah trend di Twitter adalah indonesiaunite (waktu peristiwa pengeboman
bom dulu) serta mbah surip (meninggalnya mbah surip). Topik indonesiaunite
pernah menjadi nomor satu di trending topic Twitter walau hanya selama
beberapa menit; (2) Followers, adalah user Twitter lain yang mengikuti Twitter
penulis, atau yang men-follow penulis; (3) Following, kebalikan dari poin nomor
dua, adalah user Twitter yang user follow, dan user akan menerima updates status
dari user yang telah di-follow; (4) Reply, adalah balasan yang ditujukan pada
seseorang secara spesifik; (5) Tweet, adalah sebutan untuk updates status Twitter;
(6) RT atau ReTweet, adalah pengulangan tweet. RT biasanya digunakan apabila,
tweet yang akan di RT dirasa penting, menarik, atau pantas untuk dilakukan RT;
(7) Favorites, adalah Tweet yang disimpan karena disukai atau merasa Tweet
tersebut penting; (8) Direct Message atau DM, seperti email pada Yahoo atau
Gmail, yaitu pesan langsung secara personal ke tweeple yang bersangkutan; (9)
Tweeple, sebutan untuk penguna Twitter, sering juga disebut Tweeps; (10) Hash
Tags (#), ditambahkan di depan topik tweets supaya pengguna Twitter lainnya
dapat mencari topik yang serupa. Misalkan, beberapa waktu yang lalu terdapat
hash tag dari tweeple Indonesia yang cukup ramai, yakni tentang #pengakuan.
Twitter API Application Programming Interface(API)
Application Programming Interface (API) merupakan fungsi-
fungsi/perintah-perintah untuk menggantikan bahasa yang digunakan
dalam system calls dengan bahasa yang lebih terstruktur dan mudah dimengerti
oleh programmer. Fungsi yang dibuat dengan menggunakan API tersebut
kemudian akan memanggil system calls sesuai dengan sistem operasinya. Tidak
tertutup kemungkinan nama dari system calls sama dengan nama di API.
Keuntungan membuat program dengan menggunakan API adalah: (1)
Portabilitas. Programmer yang menggunakan API dapat menjalankan
programnya dalam sistem operasi mana saja asalkan sudah ter- install API
tersebut. Sedangkan system call berbeda antar sistem operasi, dengan catatan
dalam implementasinya mungkin saja berbeda; (2) Lebih Mudah
Dimengerti. API menggunakan bahasa yang lebih terstruktur dan mudah
dimengerti daripada bahasa system call. Hal ini sangat dalam membantu
programmer menggunakan API.
System call interface berfungsi sebagai penghubung antara API dan system
call yang dimengerti oleh sistem operasi. System call interface akan
menerjemahkan perintah dalam API dan kemudian akan memanggil system
calls yang diperlukan. Untuk membuka suatu file tersebut, user menggunakan
program yang telah dibuat dengan menggunakan bantuan API, maka perintah
dari user tersebut, diterjemahkan dulu oleh program menjadi perintah open().
4
Perintah open() merupakan perintah dari API dan bukan perintah yang langsung
dimengerti oleh kernel sistem operasi. Oleh karena itu, agar keinginan user dapat
dimengerti oleh sistem operasi, maka perintah open() tadi diterjemahkan ke dalam
bentuk system call oleh system call interface. Implementasi perintah open() bisa
bermacam-macam, tergantung dari sistem operasi yang digunakan [5].
Twitter API
Pada awalnya perusahaan Summize yang menyediakan fasilitas mencari
data di Twitter. Kemudian perusahaan Summize ini diakuisisi dan diganti merek
menjadi Twitter Search sehingga Search API terpisah sebagai entitas sendiri.
Twitter API terdiri dari 3 (tiga) bagian yaitu [6] : (1) Search API. Search API
dirancang untuk memudahkan user dalam mengelola query search di konten
Twitter. User dapat menggunakannya untuk mencari tweet berdasarkan keyword
khusus atau mencari tweet lebih spesifik berdasarkan username Twitter. Search
APIjuga menyediakan akses pada data Trending Topic; (2) Representational
State Transfer (REST) API. REST API memperbolehkan developer untuk
mengakses inti dari Twitter seperti timeline, status update dan informasi user.
REST API digunakan dalam membangun sebuah aplikasi Twitter yang kompleks
yang memerlukan inti dari Twitter; dan (3) Streaming API. Streaming API
digunakan developer untuk kebutuhan yang lebih intensif seperti melakukan
penelitian dan analisis data. Streaming API dapat menghasilkan aplikasi yang
dapat mengetahui statistik status update, follower dan lain sebagainya. Dalam
penelitian ini, bagian Twitter API yang digunakan adalah REST API.
Library dan API Resources
Dalam perancangan sistem ini digunakan library tmtOAuth. Library
tmhOAuth adalah sebuah OAuth 1.0A library yang ditulis dalam bahasa
pemrograman PHP oleh @themattharris. Library ini dikhususkan dalam
penggunaan Twitter API. OAuth merupakan protokol otentikasi yang
memungkinkan user menyetujui sistem untuk bertindak atas user, tanpa harus
berbagi password user. Library ini dapat berjalan dengan baik pada PHP versi 5.3
ke atas [7]. Beberapa API Resources yang digunakan dalam perancangan sistem
ini yaitu [8] :
1. POST statuses/update (http://api.twitter.com/1/statuses/update.format)
Resource ini digunakan untuk melakukan update status oleh user. Setiap
melakukan update status, akan dilakukan pengecekan terhadap tweet
sebelumnya, jika terjadi update tweet yang sama, maka akan terjadi error
request denied. Jadi user tidak bisa melakukan update status yang sama
secara beruntun. Jika user melakukan update status lebih dari 140 karakter
dalam satu status, maka akan terjadi error yang sama.
2. GET direct_messages (https://api.twitter.com/1/direct_messages.format)
Resource GET direct_messages digunakan untuk mendapatkan direct
messages (DM) terbaru dari user sebanyak 20 DMs. Method ini memerlukan
akses token read, write dan direct message (RWD).
3. POST direct_messages/new
(https://api.twitter.com/1/direct_messages/new.format)
Resource ini digunakan untuk mengirim direct message baru dari satu user
ke satu user lainnya.
5
4. GET statuses/mentions (http://api.twitter.com/1/statuses/mentions.format)
Resource ini digunakan untuk mendapatkan mention terbaru dari seorang
user sebanyak 20 mentions.
NetDesain
NetDesain adalah perusahaan pengembang website. Perusahaan ini
didirikan pada tahun 1999. Penawaran jasa dan produk NetDesain meliputi
software product, mobile system, workflow dan enterprise system. Selain sebagai
developer, NetDesain sendiri berdedikasi untuk membantu klien dalam memenuhi
kebutuhan akan website termasuk konsultasi, desain, pengembangan, testing,
implementasi, training dan maintenance.
X-Phones.com
X-Phones.com adalah salah satu website yang dibangun oleh NetDesain
yang menawarkan berbagai hal terkait komunitas handphone di Indonesia, dan
akan memberikan informasi terlengkap dan terpercaya seputar dunia handphone.
Pada website X-phones.com, para pengguna handphone dapat memperoleh
beragam informasi mengenai spesifikasi handphone dari yang terlama sampai
yang terbaru, harga handphone, baik handphone baru maupun bekas, selain itu
website X-Phones.com juga menyediakan informasi terbaru mengenai berita,
artikel, informasi mengenai operator, baik GSM maupun non-GSM. Website X-
Phones.com juga menyediakan blog dan artikel tentang handphone dan
perkembangannya, yang berguna bagi pengguna handphone maupun calon
pengguna. Website X-Phones.com mempunyai akun Twitter dengan username
adalah @x_phones. Selama ini, akun @x_phones digunakan untuk melakukan
promosi website X-Phones.com kepada Client di Twitter. Akun ini seringkali
mendapat mention Client mengenai harga, spesifikasi dan info seputar gadget
khususnya handphone. Akun @x_phones selalu membalas setiap mention Client
yang berhubungan dengan hal tersebut, dan kebanyakan mention Client berisi
beberapa pertanyaan yang sama. Oleh karena itu, admin X-Phones.com
membutuhkan aplikasi yang dapat membalas mention Client secara otomatis, agar
admin X-Phones.com tidak membuang waktu untuk membalas pertanyaan yang
sama. Pada penelitian ini, akan dibuat akun Twitter dengan username yaitu
@art_xphones. Akun @art_xphones digunakan untuk pengujian sistem dalam
penelitian ini.
Metode dan Perancangan Sistem Metode Pengembangan Sistem
Metode pengembangan sistem yang digunakan adalah Prototype Model.
Prototype Model adalah salah satu metode pengembangan perangkat lunak yang
dibuat dengan pendekatan aspek desain, fungsi dan user-interface. Penentuan
tujuan umum dilakukan oleh developer dan user untuk mengetahui gambaran dan
kebutuhan pada perangkat lunak yang akan dibangun. Bagan mengenai prototype
model dapat dilihat pada Gambar 1.
6
Gambar 1. Bagan Prototype Model [9]
Tahap-tahap dalam Protoype Model adalah sebagai berikut :
1. Listen to Costumer; Analisis kebutuhan dilakukan dengan melakukan
wawancara kepada Bapak Mico Wendy selaku pimpinan perusahaan
NetDesain, mengenai kebutuhan sistem Auto Reply Twitter. Berdasarkan
wawancara yang dilakukan, sistem yang akan dibangun, diharapkan dapat
memenuhi kebutuhan perusahaan, yaitu sebagai berikut: (1) Sistem
melakukan reply secara otomatis terhadap tweet pengguna Twitter, tanpa
campur tangan manusia; (2) Sistem melakukan reply terhadap
mention/DM yang masuk ke akun Twitter administrator; (3) Sistem
melakukan reply harga handphone, dengan referensi website x-
phones.com; (4) Sistem melakukan reply harga handphone, sesuai merek
handphone yang ada pada mention/DM.
2. Build; Setelah analisis kebutuhan dan informasi mengenai sistem Auto
Reply Twitter menggunakan Twitter API, maka tahap selanjutnya adalah
melakukan perancangan mengenai aplikasi yang akan dibuat nantinya.
3. Customer Test; Pada tahap ini dilakukan pengujian sistem dan
mengevaluasi apakah sistem yang dibangun sesuai dengan yang
diharapkan, yaitu mengadakan pengujian sistem dengan melakukan proses
auto reply tweeter, terhadap tweet dari client.
Arsitektur Sistem
Gambar 2. Arsitektur Sistem
Gambar 2 merupakan arsitektur sistem Auto Reply Twitter. Sender dan
Reader yang terhubung pada database sudah termasuk di dalam sistem yang
berjalan pada web server. Sistem akan melakukan request ke API Twitter dan
database Twitter melalui jaringan internet, dan Twitter akan mengirim kembali ke
sistem melalui internet.
Perancangan Sistem Perancangan sistem menggunakan Unified Modelling Languange (UML).
7
Gambar 3. Use Case Diagram
Use case diagram pada Gambar 3, seorang administrator harus melakukan
login terlebih dahulu ke dalam sistem, di mana login akan menentukan hak akses
dari seorang administrator, yaitu melihat DM, melihat mention, start/stop proses
auto reply, dan melihat daftar handphone dan harga.
Gambar 4. Class Diagram Sistem
Class Diagram sistem ditunjukkan pada Gambar 4, di mana class diagram
tersebut terdiri dari 3 (tiga) bagian utama yaitu entity, controller dan boundry.
Pada class diagram yang sistem (Gambar 7), terdapat 5 (lima) entity yaitu entity
requestreply, barang, twitteraccount, webaccount dan setting. Entity requestreply
terdiri dari 10 (sepuluh) field yaitu id, id_str, jenis, screen_name, profile_image,
request, waktu_request, terkirim, reply dan waktu_reply. Entity barang terdiri dari
6 (enam) field yaitu idharga, merk, title, hargabaru, hargabekas dan timestamp.
Pada Entity twitteraccount terdapat 5 (lima) field yaitu twitter_username,
costumer_key, customer_secret, access_token dan access_token_secret.
Sedangkan pada Entity setting terdapat 2 (dua) field yaitu Key dan Value. Pada
class diagram sistem juga terdapat 2 (dua) controller yaitu tweetSender dan
tweetReader. Pada controller tersebut terdapat prosedur yang berfungsi untuk
membaca dan mengirim data.
Gambar 5 merupakan deployment diagram dari sistem, yang menunjukkan bahwa
terdapat 4 (empat) processor dan satu client dalam proses deployment, yaitu
Sender, Reader, Database, Twitter API dan AutoReplyUI sebagai client.
8
Gambar 5. Deployment Diagram Sistem
Seperti yang terlihat pada Gambar 5, proses mengirim dan membaca data
dilakukan dalam sistem sebagai server yang terhubung dengan Twitter API.
AutoReplyUI sebagai client hanya dapat melihat hasil proses sistem.
Proses Baca Mention /DM
.Langkah-langkah yang dikerjakan dalam proses baca Mention/DM,
adalah sebagai berikut : (1) Proses dimulai dengan sistem menyesuaikan setting
OAuth dan token access yaitu, consumer key, consumer secret, user token dan
user token secret pada database; (2) Sistem akan mengambil data Mention/DM
dari Twitter; (3) Sistem melakukan pengecekan. Apabila Mention/DM tidak
mengandung kata “RT” atau “art_xphones” (ignorecase), maka proses dilanjutkan
ke langkah berikutnya. Jika ya, maka proses selesai; (4) Setelah itu, sistem akan
melakukan pengecekan. Jika Mention/DM mengandung kata “berapa harga” dan
hashtag “#artxphones” maka proses akan dilanjutkan ke langkah berikutnya. Jika
tidak, maka proses selesai; (5) Selanjutnya akan dilakukan pengecekan, apabila
proses ambil data Mention/DM berhasil, maka akan dilanjutkan ke langkah
menyimpan Mention/DM ke database, jika tidak berhasil, proses selesai; dan (6)
Selanjutnya Mention/DM akan disimpan di database. Proses baca Mention/DM
dari Twitter dalam bentuk flowchart, ditunjukkan pada Gambar 6. Mulai
Consumer
Key
Consumer
Secret
User Token
User Token
Secret
Get Direct
Message
Kode Respon = 200
Tidak Mengandung Kata RT,
Retweet dan @art_xphones
(ignorecase)
Mengandung kata
“berapa harga” dan
#artxphones
Simpan ke DB
Selesai
Ya
Ya
Ya
Tidak
Tidak
Gambar 6. Flowchart Proses Baca Mention/DM
9
Proses Mengirim Mention/DM
Langkah-langkah yang dikerjakan dalam proses mengirim Mention/DM,
adalah sebagai berikut : (1) Proses dimulai dengan sistem menyesuaikan setting
OAuth dan token access yaitu, consumer key, consumer secret, user token dan
user token secret pada database; (2) Kemudian sistem akan membaca record data
Mention/DM yang akan dikirim; (3) Selanjutnya sistem akan menyusun balasan;
(4) Setelah itu, Mention/DM akan disimpan di database; (5) Kemudian
Mention/DM dikirim ke Twitter; (6) Apabila sistem membaca terdapat record data
Mention/DM yang lain, maka akan dilakukan perulangan untuk menyusun balasan
dan mengirim ke Twitter. Jika tidak ada, maka proses mengirim data Mention/DM
selesai. Proses mengirim Mention/DM ke Twitter dalam bentuk flowchart,
ditunjukkan pada Gambar 7.
Mulai
Consumer
Key
Consumer
Secret
User Token
User Token
Secret
Data Antrian
Reply
Baca Satu Record
Data
Susun Balasan
Simpan ke DB
Post DM/Mention
Record Habis
Selesai
Ya
Tidak
Gambar 7. Flowchart Proses Mengirim Mention/DM
Proses Membalas Mention/DM
Langkah-langkah yang dikerjakan dalam proses membalas Mention/DM,
adalah sebagai berikut : (1) Proses dimulai dengan sistem mengambil record data
Mention/DM pada database; (2) Tahap selanjutnya, sistem akan menghapus tanda
baca yang ada di dalam Mention/DM; (3) Kemudian, sistem melakukan potong
10
String di antara kata “berapa harga” dan hashtag “#artxphones”; (4) Jika
Mention/DM mengandung kata bekas, maka sistem akan membaca harga bekas.
Jika Mention/DM tidak mengandung kata bekas, maka sistem membaca harga
baru; (5) Jika data harga bekas pada database bernilai “0”, maka akan
menggunakan harga baru. Jika harga bekas tidak bernilai “0”, maka sistem akan
menyusun kalimat balasan dengan harga bekas; (6) Jika harga baru bernilai “0”
pada database, maka sistem menggunakan harga bekas. Jika harga baru tidak
bernilai “0”, maka sistem akan menyusun kalimat balasan dengan harga baru; (7)
Selanjutnya, susunan kalimat balasan akan dikirim ke Twitter. Gambar 8
menunjukkan flowchart proses membalas Mention/DM ke Twitter. Mulai
Data
Request
Hapus Tanda
Baca
Merk & Tipe Handphone =
Potong String diantara
“berapa harga” dan
#artxphones
?
“Bekas”
Read Data Harga
Bekas
Harga Bekas = 0
Pakai Harga
Bekas
Read Data Harga
Baru
Susun Kalimat
?
Harga Baru=0Susun Kalimat
Pakai Harga Baru
Kirim Balasan
Selesai
Tidak
Ya
Tidak
Ya
Tidak
Ya
Gambar 8. Flowchart Proses Membalas Mention/DM
Hasil dan Pembahasan
Gambar 9. Halaman Login
Halaman Login berfungsi untuk konfirmasi hak akses sebelum masuk ke
dalam sistem seperti ditunjukkan pada Gambar 9. Pada halaman Login terdapat
textbox untuk input username serta password.
Pada halaman Mention, seorang administrator dapat melihat daftar
mention yang sudah dibalas maupun mention yang masuk ke database. Halaman
Mention dapat dilihat pada Gambar 10.
11
Gambar 10. Halaman Mention
Gambar 11 menunjukkan halaman Direct Messages (DM), seorang
administrator dapat melihat daftar DM yang sudah dibalas maupun DM yang
masuk ke database.
Gambar 11. Halaman Direct Messages (DM)
Gambar 12 menunjukkan halaman Setting, di mana seorang administrator
dapat menjalankan dan menghentikan proses auto reply mention/DM. Button Stop
untuk menghentikan proses auto reply dan button Start untuk menjalankan proses
auto reply.
Gambar 12. Halaman Setting
Gambar 13 menunjukkan halaman Handphone, seorang administrator
dapat melihat daftar merek, tipe, harga baru dan harga bekas handphone.
12
Gambar 13 Halaman Handphone
Pembahasan Kode Program 1 Perintah Cek Login
Kode Program 1 menunjukkan perintah untuk mengecek kombinasi
username dan password, saat seorang administrator login ke dalam sistem.
Peerintah pada baris 3-5, merupakan perintah sebuah link untuk mengakses file-
file php yang menyimpan fungsi yang dibutuhkan. Perintah pada baris 8-9
merupakan sebuah perintah untuk mendapatkan username dan password, yang
dimasukkan oleh administrator pada saat login. Perintah pada baris 7-23
merupakan proses pengecekan kombinasi username dan password. Apabila
kombinasi username dan password benar, dan username adalah admin, maka
halaman akan berpindah ke mention.php, dengan perintah baris 13-15 pada Kode
Program 1. Sedangkan apabila kombinasi username dan password salah, maka
akan muncul pesan error pada halaman yang sama, dengan perintah baris 16-18
pada Kode Program 1.
1. <?php
2. session_start();
3. require_once 'da/DBSetting.php';
4. require_once 'entity/WebAccount.php';
5. require_once 'da/WebAccountDA.php';
6. $errorMessage = "";
7. if (isset($_REQUEST["submit"])) {
8. $uid = $_REQUEST["username"];
9. $pwd = $_REQUEST["password"];
10. 11. $da = new WebAccountDA(); 12. $user = $da->findUser($uid); 13. if ($user->password == $pwd) { 14. $_SESSION["user"] = $uid; 15. header('Location: mention.php'); 16. } else { 17. $errorMessage = "Login Failed"; 18. } 19. } else { 20. $_SESSION["user"] = null; 21. session_destroy(); 22. } 23. ?>
13
Kode Program 2. Perintah Tampil Mention
Kode Program 2 menunjukkan kode program untuk menampilkan mention
baik yang sudah terkirim maupun mention yang masuk. Perintah pada baris 2-6
merupakan sebuah link untuk mengakses file-file php, yang menyimpan fungsi
yang dibutuhkan. Perintah pada baris 8-9 merupakan perintah untuk menampilkan
50 mention terbaru di halaman mention, sedangkan perintah pada baris 11, adalah
perintah untuk judul halaman Mention. Kode Program 3 Perintah untuk Menampilkan DM
Kode Program 3 menunjukkan kode program untuk menampilkan DM
baik yang sudah terkirim maupun DM yang masuk. Perintah pada baris 2-6
merupakan sebuah link untuk mengakses file-file php yang menyimpan fungsi
yang dibutuhkan. Perintah pada baris 8-9 merupakan perintah untuk menampilkan
50 DM terbaru di halaman DM, sedangkan perintah pada baris 9 adalah perintah
untuk judul halaman DM. Kode Program 4. Perintah Setting Proses Auto Reply
Kode Program 4 menunjukkan kode program yang memberikan hak akses
kepada administrator untuk menjalankan atau menghentikan proses auto reply
sistem. Perintah pada baris 2-4 merupakan sebuah link untuk mengakses file-file
1. <?php
2. require_once 'da/DBSetting.php';
3. require_once 'entity/Barang.php';
4. require_once 'da/BarangDA.php';
5.
6. $da = new Setting();
7. if(isset($_REQUEST["stop"])){
8. $da->setValue("sender", "0");
9. }
10. if(isset($_REQUEST["start"])){ 11. $da->setValue("sender", "1"); 12. } 13. $running = $da->getValue("sender"); 14. $halaman = "Setting"; 15. ?>
1. <?php
2. require_once ('tmhoauth/tmhOAuth.php');
3. require_once ('tmhoauth/tmhUtilities.php');
4. require_once 'da/DBSetting.php';
5. require_once 'entity/RequestReply.php';
6. require_once 'da/RequestReplyDA.php';
7.
8. $da = new RequestReplyDA();
9. $mentions = $da->selectTop(10, "dm");
10. 11. $halaman = "Direct Message"; 12. ?>
1. <?php
2. require_once ('tmhoauth/tmhOAuth.php');
3. require_once ('tmhoauth/tmhUtilities.php');
4. require_once 'da/DBSetting.php';
5. require_once 'entity/RequestReply.php';
6. require_once 'da/RequestReplyDA.php';
7.
8. $da = new RequestReplyDA();
9. $mentions = $da->selectTop(50, "mention");
10. 11. $halaman = "@Mention"; 12. ?>
14
php yang menyimpan fungsi yang dibutuhkan. Apabila administrator memilih
Stop maka nilai sender adalah “0”, ini berarti proses akan terhenti. Jika
administrator memilih Start, maka nilai sender adalah “1”, ini berarti proses akan
berjalan. Sedangkan perintah pada baris 11 adalah perintah untuk judul halaman
Setting.
Kode Program 5 Perintah Tampil Data Handphone
Kode Program 5 menunjukkan kode program untuk melihat daftar
handphone dan harga handphone. Perintah pada baris 2-4 merupakan sebuah link
untuk mengakses file-file php yang menyimpan fungsi yang dibutuhkan. Perintah
pada baris 6-7 merupakan fungsi untuk menarik semua data dalam entity barang.
Sedangkan perintah pada baris 9 adalah perintah untuk judul halaman Handphone. Kode Program 6. Fungsi Baca DM
1. <?php
2. require_once 'da/DBSetting.php';
3. require_once 'entity/Barang.php';
4. require_once 'da/BarangDA.php';
5.
6. $da = new BarangDA();
7. $list = $da->getAll();
8. //echo count($list);
9. $halaman = "Handphone";
10. ?>
15
Kode Program 6 menunjukkan kode program untuk membaca
Mention/DM dari Twitter ke dalam sistem. Perintah pada baris 2 merupakan
perintah untuk memasukkan username akun Twitter. Perintah pada baris 4
merupakan perintah untuk mengambil nilai sender pada fungsi dbSetting. Perintah
pada baris 5-13 merupakan perintah untuk melakukan pengecekan terhadap nilai
sender. Jika nilai sender sama dengan “1”, maka fungsi akan berjalan. Nilai-nilai
consumer key, consumer secret, token access dan token access secret, akan
dimasukkan ke dalam fungsi tmhOAuth, dilakukan dengan perintah pada baris 9-
14. Perintah pada baris 15 merupakan perintah untuk mengambil data DM dari
Twitter API. Jika error code bernilai 200 maka proses request DM berhasil. Error
Code 200 merupakan HTTP status code Twitter API yang berarti request yang
dilakukan berhasil. Data DM yang diambil dari Twitter API, merupakan data
dalam format JSON. Key-value Text merupakan isi dari DM maupun mention
dalam file JSON tersebut. Key-value yang diambil dari data DM dalam format
JSON yaitu, id_str, sender_screen_name, text, profile_image_url dan created_at,
seperti perintah yang ditunjukkan pada baris 28-34. Key-value ini yang akan
disimpan di dalam database, seperti perintah yang ditunjukkan pada baris 35.
Perintah pada baris 22-23 merupakan perintah untuk melakukan pengecekan
1. function readDM() {
2. $twitterUser = "art_xphones";
3. $dbSetting = new Setting();
4. $isRunning = $dbSetting->getValue("sender");
5. if ($isRunning == "1") {
6. $da = new TwitterAccountDA();
7. $rrDA = new RequestReplyDA();
8. $keys = $da->findSetting($twitterUser);
9. $tmhOAuth = new tmhOAuth(array(
10. 'consumer_key' => $keys->customerKey, 11. 'consumer_secret' => $keys-
>customerSecret,
12. 'user_token' => $keys->accessToken, 13. 'user_secret' => $keys-
>accessTokenSecret,
14. )); 15. $code = $tmhOAuth->request('GET', $tmhOAuth-
>url('1/direct_messages', 'json'), array('count' => 200));
16. $counter = 0; 17. if ($code == 200) { 18. //header('Content-Type: application/rss+xml;
charset=utf-8');
19. $json = json_decode($tmhOAuth->response['response'], true);
20. foreach ($json as $x) { 21. $teks = $x["text"]; 22. if ($x["sender_screen_name"] == $twitterUser) 23. continue; 24. 25. print("$teks <br />"); 26. print(isValid($teks) . "<br />"); 27. if (isValid($teks)) { 28. $rr = new RequestReply(); 29. $rr->idStr = $x["id_str"]; 30. $rr->screenName =
$x["sender_screen_name"];
31. $rr->request = $x["text"]; 32. $rr->jenis = "dm"; 33. $rr->profileImage =
$x["sender"]["profile_image_url"];
34. $rr->waktuRequest = parseTimestamp($x["created_at"]);
35. $counter += $rrDA->insertRequest($rr); 36. } 37. } 38. } else { 39. tmhUtilities::pr(htmlentities($tmhOAuth-
>response['response']));}
16
terhadap sender_screen_name. Jika sender_screen_name bernilai sama dengan
twitteruser (art_xphones), maka DM tersebut akan diabaikan sistem. Kode Program 7. Fungsi Request Mention
Perbedaan fungsi dalam melakukan request mention dan DM terletak pada
perintah baris 15 pada Kode Program 6. Jika Fungsi Request DM seperti baris 15
Kode Program 6, maka fungsi untuk melakukan request Mention adalah dengan
perintah seperti ditunjukkan pada baris 1 dari Kode Program 7. Kode Program 8. Fungsi Valid Request
Kode Program 8 menunjukkan kode program untuk melakukan
pengecekan terhadap isi Mention/DM. Mention/DM yang tidak mengandung kata
”rt “ dan atau ” rt”, dan “retweet ” dan atau “ retweet” dinyatakan valid. Jika
Mention/DM mengandung kata “berapa harga” dan hashtag “#artxphones”
dinyatakan valid, dengan perintah seperti ditunjukkan pada baris 5-14. Jika
Mention/DM tidak memenuhi syarat tersebut, maka Mention/DM akan diabaikan.
Kode Program 9. Fungsi Kirim Mention
Perbedaan fungsi dalam melakukan request mention dan DM terletak pada
perintah baris 21-23 dari Kode Program 9. Jika Fungsi Request Mention
1. function sendMention() {
2. $dbSetting = new Setting();
3. $isRunning = $dbSetting->getValue("sender");
4. if ($isRunning == "1") {
5. $da = new TwitterAccountDA();
6. $rrDA = new RequestReplyDA();
7. $keys = $da->findSetting("art_xphones");
8. $tmhOAuth = new tmhOAuth(array(
9. 'consumer_key' => $keys->customerKey,
10. 'consumer_secret' => $keys->customerSecret,
11. 'user_token' => $keys->accessToken,
12. 'user_secret' => $keys->accessTokenSecret,
13. ));
14.
15. $list = $rrDA->selectAntri("mention");
16. foreach ($list as $rr) {
17. $balasan = getReply($rr->screenName, $rr->request);
18. $rr->reply = $balasan;
19. $rr->waktuReply = date("Y-m-d H:i:s");
20. $rrDA->updateReply($rr);
21. $code = $tmhOAuth->request('POST', $tmhOAuth-
22. >url('1/statuses/update'), array(
23. 'status' => $balasan));
24. }
25. }
26. }
1. function isValid($mention) {
2. $twitterUser = "art_xphones";
3. $mention = str_ireplace("@" . $twitterUser, "",
4. $mention);
5. if (stristr($mention, "rt ") || stristr($mention, "
6. rt")) {
7. return false;
8. } else if (stristr($mention, "retweet ") ||
9. stristr($mention, " retweet")) {
10. return false;
11. } else {
12. if (stristr($mention, "berapa harga") &&
13. stristr($mention, "#artxphone")) {
14. return true;}}
15. return false;}
1. $code = $tmhOAuth->request('GET', $tmhOAuth->url('1/statuses/mentions',
'json'), array('count' => 20));
17
menggunakan perintah seperti pada baris 21-23 dari Kode Program 9, maka fungsi
untuk melakukan request Mention menggunakan perintah seperti ditunjukkan
pada baris 1-4 dari Kode Program 10. Kode Program 10. Fungsi Kirim DM
Kode Program 11. Fungsi Mendapatkan Merek dan Tipe Handphone
Kode Program 11 menunjukkan fungsi untuk mendapatkan merek dan tipe
handphone di dalam Mention/DM dengan memotong String pada Mention/DM.
Perintah pada baris 2-6 merupakan perintah untuk mencari posisi index dari frase
“berapa harga” ditambahkan dengan panjang frase “berapa harga”. Setelah itu
mencari posisi index dari frase “#artxphone” kemudian memotong string antara
frase “berapa harga: dan “#artxphone”.
Kode Program 12 menunjukkan fungsi untuk membuat balasan
Mention/DM. Jika Mention/DM tidak mengandung kata baru maupun bekas,
maka Mention/DM akan dibaca sebagai baru, dengan perintah seperti ditunjukkan
pada baris 5-8. Kata “bekas” dan “baru” di dalam Mention/DM akan dihilangkan
agar dapat menjalankan fungsi membaca merek dan tipe handphone, dengan
perintah seperti ditunjukkan pada baris 9-10. Begitu pula dengan tanda baca yang
ada pada mention/DM akan dihilangkan seperti pada baris 14-15. Setelah
menemukan merek dan tipe handphone, kemudian merek dan tipe handphone
tersebut akan disesuaikan dengan harga yang ada di data handphone di database.
Merek handphone akan dipecah menjadi beberapa kata seperti ditunjukkan pada
baris 16. Perintah pada baris 20-23 mempunyai fungsi membagi merek dan tipe
handphone dimulai dari index 1. Kemudian, perulangan akan dilakukan untuk
menggabungkan kata-kata tersebut menjadi satu frase yaitu tipe handphone. Jika
harga handphone bekas tidak bernilai nol, maka mention/DM balasan berisi harga
handphone bekas. Jika nilai nol, maka balasan berisi harga handphone baru,
dengan perintah seperti ditunjukkan pada baris 34-47. Jika merek dan tipe
handphone tidak ditemukan maka balasan akan berisi pesan sesuai dengan
perintah seperti ditunjukkan pada baris 48. Kode Program 12. Fungsi Mention/DM Balasan
1. function getMerkTitle($str) {
2. $strBerapa = stripos($str, "berapa harga") +
3. strlen("berapa harga");
4. $strHash = stripos($str, "#artxphone");
5. $strSub = substr($str, $strBerapa, $strHash –
6. $strBerapa);
7. return $strSub;
8. }
1. $code = $tmhOAuth->request('POST', $tmhOAuth-
2. >url('1/direct_messages/new', 'json'), array(
3. 'screen_name' => $rr->screenName,
4. 'text' => $balasan
18
Evaluasi Prototype
Setelah prototype pertama selesai, maka dilakukan evaluasi prototype.
Evaluasi ini dilakukan dengan pengujian sistem oleh Bapak Mico Wendy, selaku
pimpinan NetDesain yang menginginkan sistem ini dibuat. Pada evaluasi pertama
diperoleh hasil sebagai berikut: (1) Sistem tidak boleh melakukan balasan
terhadap akun @art_xphones; dan (2) Sistem tidak boleh melakukan balasan pada
yang mengandung kata“RT” dan “retweet”
Pengujian Sistem
Pengujian aplikasi dilakukan oleh developer, di mana developer akan
memasukkan input kemudian akan dilihat output yang diperoleh. Pengujian
aplikasi juga dilakukan oleh user untuk mencoba dan melakukan pengecekan pada
1. function getReply($user, $request, $jenis = "mention") {
2. $twitterUser = "art_xphones";
3. $request = str_ireplace("@" . $twitterUser, "", $request);
4.
5. $kondisi = "baru";
6. if (stristr($request, "bekas")) {
7. $kondisi = "bekas";
8. }
9. $request = str_ireplace("bekas", "", $request);
10. $request = str_ireplace("baru", "", $request);
11.
12. $merkTitle = getMerkTitle($request);
13. $tandabaca = array(".", ",", "!", "?");
14. $merkTitle = trim(str_replace($tandabaca, "", $merkTitle));
15.
16. $split = explode(" ", strtoupper($merkTitle));
17. if (count($split) >= 2) {
18.
19. $title = "";
20. for ($i = 1; $i < count($split); $i++) {
21. $title = $title . " " . $split[$i];
22. }
23. $title = trim($title);
24. $barangDA = new BarangDA();
25. $barang = new Barang();
26. $merk = $split[0];
27. $list = $barangDA->findByTitle($merk, $title);
28. if (count($list) > 0) {
29. $barang = $list[0];
30. if ($kondisi == "bekas") {
31. if ($barang->hargaBekas != 0) {
32. return "Hi @$user, harga $barang->merk $barang-
>title
33. $kondisi Rp. $barang->hargaBekas";
34. } else {
35. return "Hi @$user, harga $barang->merk $barang-
>title
36. baru Rp. $barang->hargaBaru";
37. }
38. } else {
39. if ($barang->hargaBaru != 0) {
40. return "Hi @$user, harga $barang->merk $barang-
>title
41. $kondisi Rp. $barang->hargaBaru";
42. } else {
43. return "Hi @$user, harga $barang->merk $barang-
>title
44. bekas Rp. $barang->hargaBekas";
45. }
46. }
47. } else {
48. return "Hi @$user, data yang Anda minta tidak
ditemukan";
49. }
50. } else {
51. return "@$user Format Request Harga Handphone Salah";
52. }
53. }
19
setiap fungsi yang ada untuk mengetahui apakah ada bug dan apakah sudah sesuai
dengan requirement sistem.
Halaman Login
Pengujian dilakukan dengan melakukan input username dan password
pada halaman Login. Gambar 14 menunjukkan peringatan login gagal, apabila
kombinasi input username dan password pada halaman login adalah salah.
Gambar 14. Peringatan Login Gagal
Halaman Mention/DM
Gambar 15 menunjukkan halaman mention yang masuk ke database dan
mention yang telah dikirim ke Twitter.
Gambar 15. Halaman Mention/DM
Pengujian dilakukan dengan mencoba mengirimkan beberapa format
penulisan ke username @art_xphones. Gambar 16 merupakan format penulisan
yang benar sehingga aplikasi dapat membalas yang masuk.
Gambar 16. Format Penulisan Yang Benar
Gambar 17 menunjukkan beberapa format penulisan yang salah sehingga
sistem tidak menyimpan dan melakukan proses auto reply. Mention pertama tidak
terdapat kata “berapa”, mention kedua tidak terdapat kata “berapa harga”, dan
mention ketiga tidak terdapat hashtag “#artxphones”. Beberapa kata yang tidak
terdapat dalam format penulisan mention/DM yang dikirim ke sistem ini akan
membuat sistem tidak membaca mention/DM tersebut.
20
Gambar 17. Format Penulisan Yang Salah
Format penulisan DM sama dengan mention sehingga format penulisan
DM yang salah pun membuat sistem tidak melakukan proses auto reply.
Gambar 18. Waktu Membaca dan Mengirim /DM
Selisih waktu mention/DM yang masuk ke database dan mention/DM
yang dikirim ke Twitter melalui pengujian ini didapat 120 detik dikarenakan
untuk proses membaca mention/DM dilakukan selama 60 detik dan juga proses
yang dibutuhkan untuk melakukan proses mengirim mention/DM juga 60 detik
seperti yang ditunjukkan pada Gambar 18.
Halaman Setting
Gambar 19. Process Start
Gambar 19 menunjukkan bahwa proses membaca mention /DM dan proses
mengirim mention /DM sedang berjalan. Ketika proses membaca mention /DM
dan proses mengirim mention /DM dihentikan, maka akan ada pesan seperti
ditunjukkan pada Gambar 20.
Gambar 20. Process Stop
Analisis Melalui sistem ini, admin X-Phones.com (@art_xphones) tidak perlu
membalas satu per satu mention/DM Client. Sistem ini akan membalas
mention/DM Client yang masuk secara otomatis, dengan begitu akan menghemat
waktu kerja admin X-Phones.com. Sistem ini pun membalas mention/DM Client
dengan tepat dan sesuai dengan merek dan tipe handphone, dan menyesuaikan
format penulisan sehingga menghindari kesalahan dalam membalas mention/DM
Client.
5. Simpulan
Sistem Auto Reply Twitter dapat dibangun dengan menggunakan Twitter
API. Resource Twitter API yang digunakan didalam sistem yaitu POST
21
statuses/update, GET direct_messages, POST direct_messages/new dan GET
statuses/mentions. Sistem dapat mengambil data mention/DM, mengolah
mention/DM dan kemudian mengirim mention/DM balasan. Sistem Auto Reply
Twitter yang dibangun dapat membantu admin X-Phones.com dalam membalas
setiap mention Client di Twitter, secara otomatis. Sistem ini juga dapat membantu
Client dalam mengetahui harga handphone terkini yang ada pada website X-
Phones.com. Saran dan pengembangan sistem adalah membuat format penulisan
mention yang lebih dinamis, sehingga tidak hanya tergantung pada susunan kata
tertentu.
6. Daftar Pustaka [1]. Roshana, Fera, 2011. Penggunaan Internet Sebagai Media Promosi (Studi
Kasus: Penggunaan Twitter Sebagai Media Promosi Event "Forbidden Dynasty
Qin" Mal Kelapa Gading).
http://library.binus.ac.id/Collections/ethesis_detail/2011-2-00405-MC, diakses
tanggal 12 Maret 2012.
[2]. Yanuar, Kristianto, 2012. Aplikasi Integrasi Social Networking dengan Cloud
Messaging Menggunakan Google App Engine pada Android, Artikel Ilmiah,
Salatiga : FTI UKSW, Salatiga.
[3]. Elcom, 2010. Twitter Best Social Networking, Jurnal Teknologi Komputer dan
Informatika. Yogyakarta : Penerbit ANDI.
[4]. Dayat, 2010. Twitter: Daftar Istilah Yang Penting Untuk Diketahui Di Twitter.
http://blog.umy.ac.id/studyclub/2010/11/30/twitter-daftar-istilah-yang-penting-
untuk-diketahui-di-twitter/ diakses tanggal 12 Maret 2012.
[5]. MDGR, 2008. Pengantar Sistem Operasi Komputer.
http://kambing.ui.ac.id/bebas/v06/Kuliah/SistemOperasi/BUKU/SistemOperasi-
4.X-1/ch06s05.html, diakses tanggal 24 Juni 2012.
[6]. Developer, Twitter, 2012. Twitter API. https://dev.twitter.com/docs/api, diakses
tanggal 23 Juni 2012.
[7]. Developer, tmhOAuth, 2012, tmhOAuth: an OAuth library.
http://github.com/themattharris/tmhOAuth, diakses tanggal 23 Juni 2012.
[8]. Developer, Twitter, 2012. Resources Twitter API.
https://dev.twitter.com/docs/api diakses tanggal 23 Juni 2012.
[9]. Pressman, Roger S., 2001. Software Engineering a Practitioner’s Approach, New
York : McGraw-Hill Higher Education.