1.
Pendahuluan
Perkembangan teknologi yang semakin pesat memberikan kemudahan bagi masyarakat. Telepon selular yang pada awalnya hanya dipergunakan untuk sebatas kegiatan mengirim pesan singkat dan telepon saja, kini sudah diperlengkapi dengan berbagai fitur hiburan seperti pemutar musik, menampilkan gambar, merekam suara, merekam video dan sebagainya. Perkembangan teknologi yang semakin pesat telah menempatkan mobile phone sebagai salah satu alat komunikasi yang efisien untuk mengakses, menyimpan dan memproses informasi. Melihat kondisi pada saat ini yang semakin banyak saja kecelakaan yang terjadi pada pengemudi kendaraan, yang salah satunya disebabkan karena pengemudi menerima telepon saat sedang mengemudi [1]. Undang-undang (UU) nomor 22 tahun 2009 tentang lalu lintas dan angkutan jalan. Pada UU ini tidak dijelaskan secara spesifik bahwa tidak bisa menerima telepon saat mengendarai, tapi dijelaskan bahwa para pengemudi wajib “berkonsentrasi saat berkendara”. Dimaksudkan dengan “berkonsentrasi” adalah setiap yang mengemudi kendaraan dengan penuh perhatian tidak terganggu perhatiannya karena sakit, lelah, mengantuk, menggunakan telepon atau menonton televisi sehingga mempengaruhi kemampuan dalam mengemudi. ACR (Anonymous Call Rejection) adalah jenis penyaringan dan fitur pemblokiran yang ditawarkan oleh banyak penyedia layanan telepon seluler. Meskipun ada banyak variasi tentang fungsi-fungsi ACR, kebanyakan dari pelayanan ini memungkinkan pelanggan untuk memblokir penelepon berdasarkan keterangan yang muncul ditelepon yang dilengkapi dengan ID pemanggil. Proses ini mirip dengan Filtering dan Blocking service yang didasarkan pada ANI (automatic number identification) yang biasanya ditampilkan untuk dilihat oleh penerima panggilan, tetapi memungkinkan manfaat tambahannya untuk memblokir panggilan masuk yang dibuat menggunakan beberapa jenis teknologi samaran agar dapat menyembunyikan identitas sebenarnya dari pemanggil [2]. Short Message Service (SMS) adalah layanan pesan teks komponen telepon, web, atau sistem komunikasi mobile menggunakan protocol standar komunikasi yang memungkinkan pertukaran pesan teks singkat antara fixed line atau perangkat ponsel [3] Android adalah sistem operasi mobile phone berbasiskan linux. Android bersifat open sourcecode yang diberikan secara gratis bagi para pengembang untuk menciptakan aplikasi agar dapat berjalan di android. Kemudian hal yang menjadi latar belakang perancangan dan implementasi aplikasi Auto reject call ini adalah teknologi yang digunakan yaitu teknologi Android. Khususnya pada arsitektur yang terbuka yang berbasiskan Intent dan bisa diubah sesuai kebutuhan dikarenakan sistem flexibel yang terdapat pada platform [4]. Berdasarkan hal ini maka dirancang aplikasi Mobile bagi pengemudi untuk mengurangi terjadinya tingkat kecelakaan yaitu Auto reject call and send message yang secara otomatis menolak panggilan masuk dan secara otomatis mengirim sms pada waktu sedang mengemudi kendaraan. Kemudian menuangkannya kedalam bentuk penelitian dengan judul “Perancangan Aplikasi Auto Reject Call and Sending Message berbasis Mobile dalam Teknologi Android”. 2.
Kajian Pustaka
Penelitian yang berjudul “An intelegent auto call-transfer service based on locationawareness through wireless sensor network for the traditional phone system”. Dalam penelitian ini dibahas tentang fungsi pengalihan panggilan secara otomatis dari panggilan masuk kepada seseorang, layanan dasar ini didukung oleh PTSN (Public Switched Telephone Network) yang adalah jaringan telekomunikasi tertua dan terbesar yang masih beroperasi. Layanan ini sering digunakan atau diaplikasikan dalam perusahaan, karena ada kemungkinan untuk karyawan kehilangan panggilan masuk ketika mereka meninggalkan ruangan. 2
Contohnya adalah dengan mengidentifikasi lokasi karyawan seperti dia bergerak disekitar gedung perkantoran, setiap kali ada panggilan masuk, panggilan tersebut akan dialihkan ke telepon kantor terdekat sesuai keberadaan karyawan tersebut berada [5]. Penelitian lainnya yang berjudul “Method and Apparatus for Incoming call rejection” adalah sebuah metode dan perangkat untuk menolak panggilan masuk dalam alat komunikasi ponsel. Metode dan perangkat ini mengijinkan pengguna ponsel untuk menolak panggilan masuk secara otomatis dan biasanya langsung diterima oleh perangkat telepon tersebut. Ketika ada panggilan masuk maka panggilan masuk yang memiliki identitas itu dibandingkan dengan informasi identitas yang ada di dalam memori penolakan. Ketika ada persamaan yang terdeteksi, sebuah pesan untuk menolak langsung dikirim secara otomatis dari alat komunikasi ponsel ke stasiun pemancar. Pada saat menerima pesan penolakan itu, stasiun pemancar memutuskan panggilan masuk dan mengalihkan panggilan ke sistem pesan suara [6]. Tinjauan Teknologi Android Android merupakan open platform yang dirancang untuk perangkat mobile. Hal ini dilakukan oleh Google dan dimiliki oleh Open Handset Alliance dengan tujuannya yaitu mempercepat adanya inovasi pada aplikasi mobile dan konsumen-konsumennya dengan banyaknya aplikasi, harga yang lebih murah, serta pengalaman yang lebih baik pada mobile biasanya. Android juga merupakan platform yang meliputi banyak hal, yang artinya adalah kumpulan software komplit pada perangkat mobile. Untuk para pembangun aplikasi, Android menyediakan semua perangkat dan framework untuk membangun aplikasi mobile dengan cepat dan mudah. Yang dibutuhkan adalah Android SDK untuk memulai pembangunannya. Untuk para pengguna, Android bisa bekerja secara langsung [7]. Dalam perancangan aplikasi auto reject call and sending message tersebut menggunakan android version 2.2 Froyo (Frozen Yogurt). Android 2.2 OS Froyo memiliki banyak perkembangan dari generasi sebelumnya eclair. Yang menjadi hal awal penilaian Android Froyo adalah Performa dan kecepatan, Berbagai hasil uji telah menunjukkan Android 2.2 lebih cepat dan stabil. Dukungan Flash, Android 2.2 dapat dengan mudah menampilkan video dan game secara langsung dari browser bawaan ponsel. WiFi Hotspot : Jelas ini merupakan keunggulan bagi Android Froyo, OS ini memungkinkan ponsel untuk menjadi sumber koneksi Internet secara nirkabel untuk hingga 10 perangkat. Android Market yang Semakin Berkembang : Dalam OS 2.2, pengguna dapat menginstall aplikasi langsung ke penyimpanan kartu SD sehingga dapat langsung diakses bila dipindahkan ke ponsel lain, dan masih banyak perubahan lain. Browser yang lebih baik, Hal ini sudah diuji oleh engage, Android 2.2 Froyo menang dari segi kecepatan dan performa dibanding mobile phone lain [8]. 3.
Metode Penelitian
Metode penelitian yang digunakan adalah prototyping model dimana sangat memperhatikan kebutuhan dari user, dimana kebutuhan ini didasarkan pada kondisi nyata, sehingga inti dari penggunaan model ini adalah interaksi yang berkesinambungan antara pengembangan dari user sampai dengan terpenuhinya permintaan user dan tercapainya tujuan sesuai kebutuhan dari user tersebut.
3
Gambar 1 Model Prototyping [9]
Pada tahap pertama, Listen To Customer mengumpulkan kebutuhan-kebutuhan pengguna (user) secara lengkap kemudian melakukan analisa terhadap kebutuhan tersebut untuk mencari solusi dengan mengimplementasikan fungsi-fungsi di dalam aplikasi. Tahap ini dilakukan pengumpulan kebutuhan dengan melakukan survei pada beberapa kasus kecelakaan lalulintas yang terjadi guna mencari faktor-faktor penyebab kecelakaan dan melakukan wawancara langsung kepada Polisi lalulintas guna untuk mengetahui masalah-masalah yang dihadapi dalam kecelakaan serta memberikan pemecahan masalah melalui sistem yang akan dibangun dan mencari data keunggulan dari smartphone Android serta membandingkan dengan smartphone lainnya seperti Blackberry, dalam sistem yang akan dibangun dipilih menggunakan smartphone Android karena masih dalam masa perkembangan dan setiap lisensi tidak perlu di bayar (free). Pada tahap kedua, Build or Revise Mock-up merancang aplikasi Auto Reject Call and Sending Message menggunakan metode prototyping dan membuat Unified Modelling Language (UML), perancangan sistem, dan perancangan tampilan antar muka pengguna (user interface). Pada tahap ketiga, Customer test-drives Mock-up tahapan ini dilakukan pengujian secara bertahap menggunakan metode black-box testing terhadap aplikasi yang telah diimplementasikan pada beberapa mobile phone Android untuk mengetahui apakah semua fungsi yang ada pada sistem telah berjalan dengan baik dan dapat digunakan oleh pengemudi kendaraan. Pada tahap ini juga dilakukan pengujian responden dengan membuat kuisioner dan dibagikan kepada beberapa teman, sopir angkutan umum dan Polisi lalulintas guna untuk mengetahui tingkat efektifitas dan efisien dari aplikasi yang dibangun. 4.
Persyaratan Analisis Model
Persyaratan analisis yang dilakukan akan dibagi berdasarkan pihak-pihak yang terlibat di dalam sistem yang dirancang (biasa disebut dengan actor). Analisis ini akan memuat segala informasi actor serta apa saja yang dapat dilakukan oleh actor tersebut. Dengan menggunakan hasil analisi tahap pertama, didapatkan inromasi mengenai actor, fungsi-fungsi yang diharapkan dapat dilakukan oleh actor. Hasil tersebut akan dipresentasikan dalam sebuah use-case diagram sehingga didapatkan hubungan/interaksi antar actor dan sistem yang ada. Hubungan interaksi yang menjadi sebuah jalinan baik secara sekuensial maupun paralel dalam use-case diagram dari sistem yang dikembangkan seperti pada Gambar 2.
4
Change settings
Make exception list
User
Reject Call
View number list
Gambar 2 Use Case Diagram Sistem pada aplikasi Auto reject call and sending message
Gambar 2 merupakan use-case diagram dari sistem yang dikembangkan. Use-case menjelaskan bagaimana user sebagai actor utama dalam menggunakan sistem. Beberapa tahap user untuk bisa melakukan reject call, yaitu pertama user melakukan Change settings untuk mengatur Audio dan Automatic message, kedua user melakukan Make exception list agar nomor yang masuk dalam daftar exception tidak di tolak panggilannya, ketiga yaitu Reject call ini adalah proses utama dari sistem aplikasi, pada proses Reject call terjadi penolakan panggilan dan pengiriman Sms secara otomatis, dan tahap terakhir yaitu View number list dalam tahap ini user bisa melihat nomor-nomor yang telah ditolak panggilannya. Activity diagram menggambarkan aktivitas-aktivitas yang terjadi untuk masingmasing use-case yang telah digambarkan pada use-case diagram. Di dalam activity diagram, sebuah aktivitas dapat direalisasikan oleh satu use-case atau lebih. Yang dimaksudkan aktivitas disini ialah gambaran proses berjalan.
5
: User
Sistem
Start
Active Reject Call
Included In Exception?
N
Call Rejection
Y Call Receive Send Sms
Number List
Finish
Deactive
Gambar 3 Activity Diagram Reject Call
Gambar 3 menjelaskan proses activity diagram Reject call. Langkah pertama user mengaktifkan aplikasi reject call, setelah aplikasi aktif dan adanya panggilan masuk maka terjadi proses pengecekan nomor, jika nomor masuk dalam daftar exception list maka nomor tersebut masuk dalam Call receive atau tidak terjadi penolakan panggilan dan jika nomor tidak masuk dalam daftar exception list maka panggilan dari nomor tersebut akan otomatis di tolak (Call rejecion). Langkah kedua, setelah terjadi proses call rejection maka akan ada Send Sms secara otomatis pada nomor pemanggil. Langkah terakhir nomor dari pemanggil akan masuk dalam daftar number list, selanjutnya sistem aplikasi deactive.
6
: User
Sistem : Exception Act.
: Contact List
Start
insert num ber
Y
get num ber from contact?
get from contact list
N
add number
show number from contact
exception number is list saved
clear exception list?
Y
clear eception lis t
N End
Gambar 4 Activity Diagram Exception Number List
Gambar 4 menjelaskan activity diagram proses Exception number list, langkah pertama user melakukan insert number, kemudian jika nomor yang akan dibuat exception ada pada contact list atau ambil dari contact buku telepon maka exception number tersebut di save, jika nomor tidak ada pada contact atau buku telepon maka user harus masukkan nomor dengan cara diketik di contact yang tersedia kemudian di save. Selanjutnya clear exception, jika user tidak ingin menggunakan exception maka nomor yang telah di save akan dihapus semua dari daftar exception. Sequence diagram menggambarkan peristiwa yang diceritakan urut berdasarkan waktu. Pada sequence diagram akan dijelaskan mengenai apa yang dilakukan pengguna dalam menggunakan sistem-sistem yang didasarkan pada urutan waktu, sehingga terlihat jelas apa yang dilakukan terlebih dahulu.
7
RejectCall_boundary
RejectCall_controller
Contact_entity
: User 1: active 2: setContactException 3: receiveCall
4: check exceptionlist 5: check exceptionlist
6: rejection call 7: automatic Sms
8: new notification 9: get view notification 10: deactive
Gambar 5 Sequence Diagram Reject Call
Gambar 5 menjelaskan sequence diagram yang terjadi dalam sistem Reject call, dimana langkah pertama user melakukan open sistem, kemudian setcontactException untuk pengecualian nomor agar nomor yang masuk daftar tidak di tolak panggilannya. Jika ada panggilan masuk atau recieve call, sistem akan melakukan pengecekan exceptionlist. Jika nomor tidak masuk dalam daftar exceptionlist berarti panggilan akan di tolak atau Rejection call, Lalu pengiriman automaticSms kepada penelpon. Setelah itu user mendapat new notification, kemudian user melihat atau get view notification untuk mengetahui pemberitahuan panggilan masuk yang telah di reject, selanjutnya sistem aplikasi deactive.
8
: User
: ExceptionView_boundary
: ExceptionView_controller
ExceptionView_entity
1: open exception 2: get number from contact 3: insert number from contact
4: insert manual number 5: process reject call
6: clear number
7: deactive
Gambar 6 Sequence Exception Number list
Gambar 6 menjelaskan sequence diagram Exception, langkah pertama user melakukan open sistem exception dan selanjutnya melakukan getNumber from contact, kemudian insertNumber from contact untuk memasukkan nomor dalam daftar exception, user juga bisa insert manual number yang secara manual memasukkan nomor dalam daftar exception. Langkah selanjutnya terjadi process reject call, kemudian user melakukan clear number dan sistem aplikasi deactive. Class diagram adalah diagram yang digunakan untuk menampilkan beberapa kelas yang ada dalam sistem atau perangkat lunak yang sedang dikembangkan. Class diagram memberikan gambaran mengenai sistem atau perangkat lunak dan relasi-relasi yang ada didalamnya.
9
mainActivity 1
1 1
1
1 editPreference audio message setRingtone() setAutoSms() savePreference()
message 1
textMessage setMessage() editMessage() deleteMessage() saveMessage()
rejectCallList
1
rejectionCall name number image time getViewRejectioncall() checkNumber() getViewName() getViewImage() checkTime() delete()
exceptionNumberlist 1
name number insertNumberFromContact() addName() addNumber() deleteNumber()
Gambar 7 Class Diagram aplikasi Auto Reject Call and Sending Message
Gambar 7 menjelaskan Class diagram yang terdiri dari objek-objek yang digunakan dalam sistem. Objek tersebut antara lain: EditPreferene, Message, Reject call list dan Exception number list yang masing-masing memiliki atribut sebagai user interface, fungsifungsi atau operasi dan relasi.
10
5.
Hasil dan Pembahasan Form Tampilan Utama Aplikasi
Gambar 8 Form Tampilan Utama Aplikasi
Gambar 8 menunjukkan form tampilan utama dari aplikasi Auto Reject Call. Pada form utama terdapat screen untuk menulis pesan dan ada 4 button utama yang terdiri dari (kiri ke kanan): Setting, Active/deactive, Reject call List, Exception number. Form Screen penulisan text message.
Gambar 9 Form Screen penulisan text message
Gambar 9 menunjukkan form Screen penulisan text message. Pada form screen text message bisa di edit sesuai keinginan user dan cara untuk edit dengan sentuh layar screen tersebut maka akan keluar keyword. Text Message ini yang akan dikirimkan secara otomatis melalui SMS pada caller.
11
Kode Program 1 Proses Automatic Sending Message notifyMe(); messageSend = "Maaf saya dalam perjalanan, harap hubungi saya di kemudian waktu"; messageSend = readString(); if (new Boolean(prefs.getBoolean("AUTOMATIC !includedinExceptionList) { Log.v(TAG, "Kirim SMS..."); sendSMS(phoneNumber, messageSend);
MESSAGE",
false))
&&
Kode program 1 menjelaskan proses pengiriman sms secara otomatis. Pada script ini notifyMe ( ); messageSend = “Maaf saya dalam perjalanan, harap hubungi saya di kemudian waktu”; adalah script simple database untuk menampilkan pesan kalau ada penolakan panggilan baru, if (new Boolean(prefs.getBoolean("AUTOMATIC MESSAGE", false)) && !includedinExceptionList) { Log.v(TAG, "Kirim SMS..."); script ini berfungsi untuk pengecekan nomor penelpon jika masuk dalam daftar exception atau tidak, dan pada script ini sendSMS(phoneNumber, messageSend); berfungsi untuk mengirim pesan secara otomatis.
Form Setting
Gambar 10 Form Setting
Gambar 10 menunjukkan form Setting yang didalamnya user bisa melakukan pengaturan audio dan messaging. Pada pengaturan audio bisa memilih default tone dan silent, sedangkan pada autoSms untuk pengecekan automatic sms sudah aktif atau tidak. Kode Program 2 Proses Setting Audio dan Messaging public class EditPreference extends PreferenceActivity { MainActivity mA; @Override public void onCreate(Bundle icicle) { super.onCreate(icicle); mA = new MainActivity(); String[] entries = new String[]{"Default tone", "Silent"}; String[] entryValues = new String[]{"default", "silent"}; String[] entriesWall = new String[]{"Wood", "Sky", "Forest"}; String[] entryValuesWall = new String[]{"wood", "sky", "forest"}; addPreferencesFromResource(R.xml.preferences); final ListPreference tones = (ListPreference) findPreference("RINGTONE"); tones.setEntries(entries); tones.setDialogIcon(R.drawable.tone); tones.setEntryValues(entryValues);
12
tones.setSummary(tones.getValue()); tones.setOnPreferenceChangeListener(new OnPreferenceChangeListener() { public boolean onPreferenceChange(Preference preference, Object newValue) { preference.setSummary((String) newValue); return true; } }); final CheckBoxPreference wall = (CheckBoxPreference) findPreference("AUTOSMS"); wall.setOnPreferenceChangeListener(new OnPreferenceChangeListener() { public boolean onPreferenceChange(Preference preference, Object newValue) { preference.setSummary("Check it to send auto SMS"); return true; } });
Kode program 2 menjelaskan script tentang pengaturan setting Audio dan Message, pada script String[] entries = new String[]{"Default tone", "Silent"}; menjelaskan tentang pilihan dari pengaturan Audio yang bisa dipilih sesuai keinginan user yaitu Default tone (tone bawaan dari mobile phone seperti “wood, sky, forest”) dan Silent. Pada script final CheckBoxPreference wall = (CheckBoxPreference) findPreference("AUTOSMS"); wall.setOnPreferenceChangeListener(new OnPreferenceChangeListener() { berfungsi untuk pengaturan automatic sms.
Form Tampilan Exception Number List
Gambar 11 Form Utama Exception Number list
Gambar 11 menunjukkan tampilan awal form Exception number list. Dalam tampilan ini ada beberapa fungsi button yaitu button gambar folder untuk pengambilan nomor dari kontak mobile phone, button plus untuk penambahan nomor dalam daftar exception tersebut, button clear all untuk menghapus semua nomor dari dalam daftar exception dan button clear selected untuk menghapus beberapa nomor sesuai keinginan user.
13
Form Pengambilan nomor dari Contact
Gambar 12 Form Pengambilan nomor dari Contact
Gambar 12 menunjukkan pengambilan nomor langsung dari Contact bawaan mobile phone yang sebelumnya telah dimasukkan oleh user. Bisa dilihat contoh gambar 12 dimana user telah memasukkan nomor koko halim dalam daftar exceptionlist.
Kode Program 3 Perintah Pengambilan nomor dari Contact public void onClick(View v) { Intent intent = new Intent(Intent.ACTION_PICK, ContactsContract.Contacts.CONTENT_URI); startActivityForResult(intent, PICK_CONTACT); }
Kode program 3 menjelaskan script pengambilan nomor dari contact bawaan mobile phone, bisa dilihat pada script startActivityForResult(intent, PICK_CONTACT); terjadi pengambilan nomor langsung dari contact.
Form Penambahan nomor secara manual
Gambar 13 Form Penambahan nomor secara Manual
14
Gambar 13 menunjukkan user bisa menambahkan nomor secara manual pada daftar Exception number list. Kode Program 4 Perintah Penambahan nomor secara manual public void onClick(View v) { if (eT.getText().toString().equals("") || eT.getText().toString() == null) { Toast.makeText(getBaseContext(),"Sorry, you still leave empty number", Toast.LENGTH_SHORT).show(); } else { if (addFromContact) { addFromContact = false; } else { contactName = "Unsaved contact"; } addexceptionList(getContactName(eT.getText().toString()), eT.getText().toString()); eT.setText(""); } }
the
Kode Program 4 menjelaskan penambahan nomor secara manual dalam daftar exception artinya user menambahkan langsung tanpa melakukan view dari contact list, bisa dilihat pada script addexceptionList(getContactName(eT.getText().toString()), eT.getText().toString());, dan pada script else { contactName = "Unsaved contact"; berfungsi untuk setiap penambahan nomor secara manual disimpan dengan nama unsaved contact. Kode Program 5 Perintah untuk penyimpanan contact sementara public class ExceptionAdapter extends ArrayAdapter<ExceptionNumber> { ArrayList<ExceptionNumber> lists; Context context; public ExceptionAdapter(Context context, int resource, ArrayList<ExceptionNumber> lists) { super(context, resource, lists); this.lists = lists; this.context = context; }
Kode Program 5 menjelaskan script penyimpanan nomor contact sementara sebagai gantinya database, bisa dilihat pada script ArrayList<ExceptionNumber> lists; Context context; semua contact yang masuk dalam daftar exception disimpan dalam arraylist.
15
Form Clear nomor dari daftar Exception
Gambar 14 Form Clear nomor dari daftar Exception
Gambar 14 merupakan contoh user yang telah memilih nomor yang di centang untuk di hapus dari daftar exception number list. Ada 2 cara pertama user bisa centang nomor kemudian tekan tombol Clear Selected dan Cara kedua user bisa tekan tombol Clear all untuk hapus semua nomor dari daftar exception number list.
Kode Program 6 Perintah untuk Clear Selected clearSelectedBtn.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { int x = 0; ArrayList<ExceptionNumber> exceptionListTemp; exceptionListTemp = MainActivity.exceptionList; if (MainActivity.exceptionList != null) { for (ExceptionNumber en : exceptionListTemp) { if (en.isChecked()) { MainActivity.exceptionList.remove(x); } x++; } } adapter.notifyDataSetChanged(); } });
Kode Program 6 menjelaskan script pengaturan dari fungsi button Clear Selected. Pada script ini if (en.isChecked()) { MainActivity.exceptionList.remove(x); bisa dilihat jika nomor yang ada pada daftar exception telah dicek/di centang maka nomor tersebut akan dihapus sesuai yang telah dicek tersebut. Kode Program 7 Perintah untuk Clear all clearAllBtn.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { if (MainActivity.exceptionList != null) { MainActivity.exceptionList.clear(); adapter.notifyDataSetChanged();} } })
16
Kode Program 7 menjelaskan script pengaturan dari fungsi button ClearAll, bisa dilihat pada script MainActivity.exceptionList.clear() yang menghapus semua nomor dari daftar exception. Form Incoming Call
Gambar 15 Form Incoming Call
Gambar 15 merupakan form Incoming call. Pada form ini untuk melihat proses terjadinya panggilan masuk dari penelepon dan proses terjadinya rejection call secara otomatis. Kode Program 8 Perintah untuk panggilan masuk public void onReceive(Context context, Intent intent) { mgr = MainActivity.mgr; calendar = Calendar.getInstance(); formatter = new SimpleDateFormat("dd MMMM yyyy hh:mm"); Bundle bundle = intent.getExtras(); AIRPLANE = Settings.System.getInt(context.getContentResolver(), Settings.System.AIRPLANE_MODE_ON, 0); isEnabled = AIRPLANE == 1; intent = new Intent(Intent.ACTION_AIRPLANE_MODE_CHANGED); if (null == bundle) { return;} TelephonyManager tm = (TelephonyManager) context .getSystemService(Context.TELEPHONY_SERVICE); Class c; try {c = Class.forName(tm.getClass().getName()); Method m = c.getDeclaredMethod("getITelephony"); m.setAccessible(true); teleService = (ITelephony) m.invoke(tm); } catch (Exception e) { Logger.getLogger(IncomingCallReceiver.class.getName()).log(Level.SEVERE, null,e);} String state = bundle.getString(TelephonyManager.EXTRA_STATE); if (state.equalsIgnoreCase(TelephonyManager.EXTRA_STATE_RINGING)) { phonenumber = bundle.getString(TelephonyManager.EXTRA_INCOMING_NUMBER); if (phonenumber == null) {phonenumber = "";} String info = "Detect Calls sample application\nIncoming number: " + phonenumber;
Kode program 8 menjelaskan script dari perintah yang akan menerima panggilan masuk. Pada script TelephonyManager tm = (TelephonyManager) context .getSystemService(Context.TELEPHONY_SERVICE);; dan Method m = c.getDeclaredMethod("getITelephony"); m.setAccessible(true);teleService = (ITelephony) m.invoke(tm); perintah terjadinya penerimaan panggilan masuk. 17
Kode Program 9 Perintah Panggilan masuk daftar Exception if (includedinExceptionList) { includedinExceptionList = false;
Kode program 9 menjelaskan script perintah adanya panggilan yang masuk dalam daftar exception jadi tidak perlu di tolak panggilannya, bisa dilihat pada script if (includedinExceptionList) { includedinExceptionList = false; yaitu jika nomor dari penelpon masuk dalam daftar exceptionlist berarti terjadi false yang artinya panggilan tersebut tidak akan di tolak. Kode Program 10. Perintah Rejection call teleService.endCall(); }} mA.phoneNumber = phonenumber; mA.alreadyIncoming = true; mA.count = mA.count + 1; // mA.mySleepTime=0; } catch (RemoteException ex) { Logger.getLogger(IncomingCallReceiver.class.getName()).log( Level.SEVERE, null, ex); } }
Kode program 10 menjelaskan script perintah terjadinya rejection call yang bisa dilihat pada script teleService.endCall(); dimana semua panggilan yang tidak masuk dalam daftar exception catch (RemoteException ex) akan terjadi rejection call.
Form Active/Deactive Aplikasi
Gambar 16 Form Active/Deactive
Cara untuk mengaktifkan aplikasi agar dapat berjalan, user bisa langsung tekan tombol Active/Deactive sampai tombol tersebut berubah menjadi warna kuning seperti yang terlihat pada Gambar 16.
18
Kode Program 11 Perintah Send Message public void sendSMS(String phoneNo, String msg) { mySleepTime = 1000; String SENT = "SMS_SENT"; String DELIVERED = "SMS_DELIVERED"; SmsManager sms = SmsManager.getDefault(); message = eT.getText().toString(); Log.v(TAG, message); sms.sendTextMessage(phoneNo, null, message, sentPI, deliveredPI);
Kode program 11 menjelaskan script perintah send message yang bisa dilihat pada script SmsManager sms = SmsManager.getDefault(); message = eT.getText().toString(); Log.v(TAG, message); sms.sendTextMessage(phoneNo, null, message, sentPI, deliveredPI);. Pada pengujian aplikasi Auto Reject call and sending message, menggunakan beberapa handphone dan berjalan dengan sukses. Berdasarkan pengujian sistem aplikasi Reject call and sending message membutuhkan space sebesar 812 kilobtyes. Setelah dilakukan pengujian menggunakan handphone Samsung Galaxy mini, LG Optimus Black (P970) dan Samsung Galaxy Young, terdapat sedikit perbedaan pada letak dari menu-menu perintah pada navigation bar aplikasi yang disebabkan karena tiap-tiap vendor mempunyai metode desain yang berbeda-beda untuk jumlah penempatan soft key pada tiap-tiap handphone. Pada tabel 1 menunjukan pengujian dari aplikasi. Tabel 1 Pengujian Aplikasi Auto Reject call and sending message
Tipe Handphone
Layanan GSM
Parameter Pengujian
Keterangan
Samsung Galaxy Mini Screen size 240x320 pixels, 3.14 Inches TouchWiz v3,0 UI OS : Android OS, v2.2(Froyo)
XL
Tampilan SplashSreen
Berhasil
Proses Reject Call
Berhasil
Proses Auto Sms
Berhasil
Penambahan kontak Exception Number List
Berhasil
Tampilan SplashSreen
Berhasil
Proses Reject Call
Berhasil
Proses Auto Sms
Berhasil
Penambahan kontak Number Exception List
Berhasil
LG Optimus Black (P970) Screen size : 480x800 pixels, 4.0 inches Touch UI 2.0 OS : Android OS, Versi 2.2 (Froyo)
Indosat IM3
19
Samsung Galaxy Young S5360 Screen size : 240x320 pixels, 3.0 inches TouchWiz UI OS : Android OS, v2.3 (Gingerbread)
6.
Indosat IM3
Tampilan SplashSreen
Berhasil (Gelap)
Proses Reject Call
Berhasil
Proses Auto Sms
Berhasil
Penambahan kontak Exception Number List
Berhasil
Simpulan
Berdasarkan hasil penelitian dengan melakukan tahapan analisa, perancangan, implementasi, dan pengujian sistem Aplikasi Auto reject call and sending message, maka dapat ditarik kesimpulan bahwa aplikasi ini dapat secara otomatis menolak panggilan masuk dan mengirim sms secara otomatis pada saat sedang mengemudi. Kesimpulan lainnya, aplikasi ini mempunyai pengaturan exception number list yang mana pengaturan ini dilakukan untuk pengecualian nomor pemanggil agar ketika nomor tersebut melakukan panggilan tidak di reject. Aplikasi ini mampu diimplementasikan pada ponsel yang berbasiskan Android.
7. [1] [2] [3] [4] [5]
[6] [7] [8] [9] [10] [11] [12] [13] [14] [15]
Daftar Pustaka Asrian. 2008. Analisis faktor kecelakaan. FKM Universitas Indonesia. Jakarta. Tatum, Malcolm. 2003. What is Anonymous Call rejection, United States of America : WiseGeek Media. Willey. 2010. For Information about text Messaging SMS, Citations : America. Gramlich, Nicolas. 2008. Andbook: Android Programming. Germany. Chen, Fang & Wang. 2009. An intelegent auto call-transfer service based on locationawareness through wireless sensor network for the traditional phone system. Nat Chung HsingNat University. Taiwan. Beghtol & Mar. 2001. Method and apparatus for incoming call rejection. San Diego University. CA (Unite state). Gargenta, Marko. 2011. Learning Android. United States of America: O’Reilly Media. Barerra, David. 2011. What is Android Froyo 2.2, Carleton University. Canada. Pressman, Roger S., 2005, Software Engineering, Prototyping Model edisi 6. Corbyn. 2009. Send Message (SNDMSG), United States of America : IBM Media. Istiyanto, Jazi. 2004. Rancangan dan implementasi prototipe sistem kendali jarak jauh berbasis AT89C52 dan layanan SMS GSM, Jurnal ilmu dasar volume 5, Yogyakarta. Piraro, Dan. 2011. Anonymous Call Rejection and Caller-ID, United States of America : The Chronicle of higher Edication. Safaat, Nazruddin. 2011. Android. Informatika. Bandung. Tsuei, Yuan-Mao. 2009. Electronic Device, Incoming call Answering and Rejection Method and Digital data storage media. Taoyuan University. Taiwan. Yoon & Kim. 2007. Method and Apparatus for Rejecting call reception in a Mobile communication terminal. Seoul University. Seoul Korea Selatan. 20
21