Pada tutorial android yang lalu kita telah belajar membuat aplikasi bangun datar, pada tutorial android kali ini kita akan belajar membuat aplikasi yang lebih keren aplikasi bangun datar, kita akan membahas tentang langkah-langkah pembuatan aplikasi Jakarta Taxi Dialler.
Ingin tahukan apa itu Jakarta Taxi Dialler ?
Jakarta Taxi Dialler adalah aplikasi yang memudahkan para pengguna android untuk memesan taksi.
Aplikasi dibuat untuk menyelesaikan suatu masalah.
Latar belakang Masalah
Tentunya ada yang pernah mengalami untuk yang rumahnya jauh dari jalan utama, sulit sekali mencari taksi, cara yang biasa dilakukan adalah dengan menelepon provider taksi. Masalahnya banyak diantara kita yang tidak menyimpan nomor telepon provider taksi. Untuk mendapatkan informasi ini biasanya kita menghubungi 147.
Solusi
Atas dasar itulah mari kita Bantu para pengguna android untuk mempermudah mereka dalam memesan taksi dengan memanfaatkan aplikasi Jakarta Taxi Dialler yang kita buat. Dengan Aplikasi ini pengguna tinggal membuka aplikasi dan memilih provider taksi yang ingin dipesan.
Hal-hal yang harus dilakukan
1. Kumpulkan data telepon provider taksi, Alhamdulillah setelah googling akhirnya dapat data nomor telepon taksi di Jakarta
No | Taksi | Telepon |
1. | Blue Bird | 0217941234 |
2. | Ekspress | 02126509000 |
3. | Golden | 02165300333 |
4. | Primajasa | 0217424525 |
5. | Dian | 0215807070 |
6. | Sri Medali | 0218005555 |
7. | Putra | 0217815777 |
Mohon maaf apa bila ada provider taksi yang belum tercantum di sini, dan nomor yang tercantum sudah tidak valid.
2. Buat Menunya dalam bentuk List Menu, yang sudah kita pelajari dalam tutorial sebelumnya
3. Cari script android yang digunakan untuk melakukan panggilan telepon, setelah googling akhirnya dapat referensi di http://www.helloandroid.com/tutorials/how-make-phone-call-your-application
Semua yang kita butuhkan sudah kita dapatkan, it’s time for coding
1. Buat New Project dengan nama JakartaTaxiDialer, lengkapi seperti gambar dibawah
2. Setelah project tercreate maka secara otomatis android membentuk 3 file yaitu :
- main.xml
- string.xml
- TaxiDialer.java
3. Buka file TaxiDialer.java, edit isinya sehingga kodenya seperti dibawah ini
package com.agus; import android.app.ListActivity; import android.content.Intent; import android.net.Uri; import android.os.Bundle; import android.view.View; import android.widget.ArrayAdapter; import android.widget.ListView; import android.widget.Toast; public class TaxiDialer extends ListActivity { //Buat arrray 2 dimensi untuk data taksi yang terdiri dari nama dan nomor telepon private String[][] taxi_data = { { "Blue Bird", "0217941234" }, { "Express", "02126509000" }, { "Golden", "02165300333" }, { "Prima Jasa", "0217424525" }, { "Dian", "0215807070" }, { "Sri Medali", "0218005555" }, { "Putra", "0217815777" } }; //Buat arrray 1 dimensi untuk keperluan pembuatan menu list provider taxi private String[] taxi_name = { "Blue Bird", "Express", "Golden", "Prima Jasa", "Dian", "Sri Medali", "Putra", "Exit" }; public void onCreate(Bundle icicle) { super.onCreate(icicle); // Create an ArrayAdapter, that will actually make the Strings above // appear in the ListView // Menset nilai array ke dalam list adapater sehingga data pada array // akan dimunculkan dalam list this.setListAdapter(new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, taxi_name)); } @Override /**method ini akan mengoveride method onListItemClick yang ada pada class List Activity * method ini akan dipanggil apabilai ada salah satu item dari list menu yang dipilih */ protected void onListItemClick(ListView l, View v, int position, long id) { super.onListItemClick(l, v, position, id); // Get the item that was clicked // Menangkap nilai text yang dklik Object o = this.getListAdapter().getItem(position); String pilihan = o.toString(); // Mencek pilihan, apabila pilihan = Exit maka akan keluar dari aplikasi if (pilihan.equals("Exit")) { finish(); } else {// pilihan != exit maka akan memanggil method callTaxi callTaxi(pilihan); } } /** * Launches the activity to make phone call to taxi provider based on * selected taxi * */ protected void callTaxi(String pilihan) { try { // Intent digunakan untuk sebagai pengenal suatu activity untuk // membuat panggilan telepon Intent callIntent = new Intent(Intent.ACTION_CALL); String phonenumber = ""; for (int i = 0; i < taxi_data.length; i++) { if (pilihan.equals(taxi_data[i][0])) { phonenumber = taxi_data[i][1]; } } if (phonenumber.equals("")) { Toast.makeText(this, "Provider Taxi is not register", Toast.LENGTH_LONG).show(); return; } callIntent.setData(Uri.parse("tel:" + phonenumber)); startActivity(callIntent); } catch (Exception e) { e.printStackTrace(); } } }
Pertama kita definisikan class ini sebagai List Activity
Kita buat dua buah array satu array 2 dimensi dengan nama taxi_data yang digunakan untuk menyimpan data nama taxi dan nomor teleponnya. Yang satu laig array 1 dimensi dengan nama taxi_name yang berisi untuk menyimpan hanya data nama taksi yang sama dengan yang ada di taxi_data ditambah dengan “Exit” untuk keperluan keluar dari aplikasi.
Array taxi_name diset kedalam ListActivity dengan menggunakan syntak “setListAdapter”agar terbetuk list menu yang isinya dari array taxi_name.
Agar setiap kita memilih menu ada action yang dilakukan maka kita buat method onListItemClick
Nah didalam method ini kita tangkap menu yang dipilih kita cek apabila yang dipih Exit maka akan keluar dari aplikasi, pilihan selain Exit akan memanggil method callTaxi
Method callTaxi inilah yang akan memproses menu pilihan kita, mencari nomor taxi berdasarkan pilihan menu lalu melakukan panggilan. Agar kita bisa melakukan panggilan kita perlu membuat activity yang dapat melakukan panggilan
Intent callIntent = new Intent(Intent.ACTION_CALL);
Tentukan nomor yang akan dipanggil, lalu lakukan panggilan
callIntent.setData(Uri.parse(“tel:” + phonenumber));
startActivity(callIntent);
4. Untuk dapat melakukan panggilan kita perlu mendaftarkan permission nya melalui file AndroidManifest.xml , buka file AndroidManifest.xml tambahkan kode berikut
<uses-permission android:name="android.permission.CALL_PHONE"></uses-permission> <uses-permission android:name="android.permission.CALL_PRIVILEGED"></uses-permission>
Sehingga isi lengkap AndroidManifest.xml menjadi seperti ini
<?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.agus" android:versionCode="1" android:versionName="1.0"> <application android:icon="@drawable/icon" android:label="@string/app_name"> <activity android:name=".TaxiDialer" android:label="@string/app_name"> <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> </application> <uses-sdk android:minSdkVersion="8" /> <uses-permission android:name="android.permission.CALL_PHONE"></uses-permission> <uses-permission android:name="android.permission.CALL_PRIVILEGED"></uses-permission> </manifest>
5. Sekarang baru Running Time, Simpan semua file yang kita edit, lalu jalankan aplikasi ini.
Untuk memastikan Applikasi kita berjalan bagusnya kita buat list checking
No | Tindakan | Hasil yang diharapkan |
1. | Buka Aplikasi | Tampil Menu List yang berisi Provider Taxi |
2. | Pada Menu Pilih Salah Satu Provider Taksi | Aplikasi secara otomatis akan melakukan panggilan ke nomor telepn provider taksi yang dipilih |
3. | Pada Menu Pilih Exit | Keluar dari Aplikasi |
Berikut hasil dari aplikasi yang kita buat
Pilih Salah Satu Provider Taksi
Bagaimana kawan-kawan tambah semangatkan mendalami android, bayangkan hanya dengan kode yang sedikit kita sudah bisa membuat aplikasi yang cukup bermanfaat bagi pengguna android.
Penulis harapkan kawan-kawan dapat mengembangkan aplikasi ini menjadi lebih baik lagi, kalau bisa jangan hanya Jakarta Taxi Dialler, tapi sudah Indonesia Taksi Dialler yang didalamnya terdapat nomor-nomor Taksi yang terdapat dibeberapa kota besar di indonesia. Kalau sudah jadi bisa disubmit ke android market.
Taxi Dialer ini hanya ide dasar, kawan-kawan bisa mengembangkan ke area selain Taksi, bisa yang dikantornya banyak berhubungan dengan pelanggan, bisa mengumpulkan nomor-nomornya lalu dijadikan aplikasi Customer Sales Dialler. Jadi apabila ada karyawan baru, tinggal install aplikasi tidak usah repot-repot copy phone book
untuk yang baru mulai belajar android, apabila mengalami kesulitan dalam mengikuti tutorial ini, bisa dimulai dengan tutorial Aplikasi Android Sederhana Menghitung Luas Persegi Panjang
Salam Hangat
Agus Haryanto
oomagus saya buat kok pas yg di
38 super.onListItemClick(l, v, position, id);
gk mau yah?!
mohon pencerahan nya…
@rio, nggak maunya kenapayah, bisa beri informasi keterangan errornya. biasanya kalau kode kita salah, eclipse langsung memberi tanda silang merah didepannya dan kalau kita klik tanda merah tersebut ada keterangan error dan petunjuk penyelesaiannya.
ada tulisan nya
(The method onListItemClick(ListViwe, View, int, long) is undefined for the type Activity)
method onListItemClick(ListViwe, View, int, long) is undefined for the type Activity
ListViwe itu salah ketik nggak ?
kan harusnya onListItemClick(ListView l, View v, int position, long id)
dah coba copy paste langsung dari listing kode yang ada di tutorial ini
pastikan extendsnya dari class ListActivity
public class TaxiDialer extends ListActivity
ooh iya makasih mas…sudah bisa bener bisa jalan!! maklum masih newbie coba2 hiii
oh iya saya lg buat LBS di android…tp masih kurang tutorial nya, klo berkenen bisa minta ilmu nya…
satu lg…klo sudah jadi aplikasinya mo meng Import ke file .apk buat di masukun ke HP Nexian A890 2.1 cara nya gimana?!
terima kasih mas
Mas saya amu tanya,,kalo misalnya mau buat separator buat pemisahnya gmn??
misalnya yang mau saya buat tidak hanya taksi,,tapi masi di satu apliasi..
trus mas kalo mau nampilin info dibawah itemnya gmn??
misalnya taksi blue bird nah trus dibawahnya ada infonya
misalnya alamatnya dimana,,seperti itu,,
mohon jwabannya,,,
Apresiasi atas posting yang bagus dan bermanfaat. Mungkin ada sedikit sharing sedikit, mengenai nomor telepon taksi yang Mas Agus tampilkan, bahwa nomor kontak untuk Taksi Express adalah 021-2650-9000. Thanks ya =)
@Andika, Terimakasih atas koreksinya, saya akan update articlenya 🙂
@bango01,
Mas saya amu tanya,,kalo misalnya mau buat separator buat pemisahnya gmn?
maksudnya, tidak hanya telepon taksi saja, jadi bisa ada telepon lainnya.
untuk hal ini, ada beberapa cara yang bisa dilakukan:
1. Buat Menu List bertingkat, maksudnya pada awal muncul kategorinya misalnya : Taxi, Bus, Kereta API. apabila kita klik taxi, tampilka list menu taxi
2. Dengan Tab Navigasi, jadi dimasing-masing Tab ada list menunya bergantung dari tab yang diklik.
trus mas kalo mau nampilin info dibawah itemnya gmn??
misalnya taksi blue bird nah trus dibawahnya ada infonya
Ini Maksudnya kayak accordion ?
banyak cara untuk nampilkan info seperti yg mas inginkan. salah satunya dengan memanfaatkan AlertDialog.Builder.
Om Agus,
Beda nya apa ya kalo saya masukin nomor ke phone book atau contact list terus dial ke nomor taxi nya ? 😀
kan mempermudah dan gampang dishare seperti yg omagus bilang di artikelnya 🙂
dan kl di kembangkan lagi seperti yg om bango bilang jg.
dan tentu saja lebih cepat aksesnya kan.
coba contact list berisi ratusan bahkan ribuan nomer?
makasih omagus atas tutorial nya 🙂
Nice tutorial…
Saya mw coba dulu ni…
Inspiratif bgt ni idenya, Om..
Matur Nuwun, Trima Kasih, Thx…..
@cahyoherdian, ayo mas cahyo bikin aplikasi Indonesia Taxi Dialler
mu tanya Gan, itu aplikasinya kan belum ada fitur searchnya untuk pencarian nama jasa taksinya, yang ane mu tanyaiin source code untuk ditambahin fitur searchnya??
for (int i = 0; i < taxi_data.length; i++) {
if (pilihan.equals(taxi_data[i][0])) {
phonenumber = taxi_data[i][1];
}
}
if (phonenumber.equals("")) {
Toast.makeText(this, "Provider Taxi is not register",
Toast.LENGTH_LONG).show();
return;
}
code diatas maksudnya gimana mas, mohon pencerahan,,,,,
makasih ya oomm ngebantu projek saya
maaf saya kan pemula mau tanya
softwarenya opensource apa enggak??
klo enggak ada yang opensource gak??
tutornya mantab mas
minta izin idenya dipake buat penulisan ilmiah
@maia, Softwarenya Free.
Bang Agus
Udah jalan nih di emulator, trus codingnya udah ada sdiff, dan persis, tapi ketika kita pilih Taxi bluebird dan lainnya, tidak ada action calling ke nomornya, sedangkan di console eclipse tidak ada error, saya juga sudah coba debug namun tidak menemukan titik terang.
Bagaimanakah cara debug yang benar untuk melihat kenapa menu tidak beraksi ketika di klik?
NB; he he kapan2 kopdar, ane tinggal di belakang Smesco bidan ice
Mas,mw tanya??
kok klo saya pilih salah satu pilihannya muncul “mobile network not avaible” yah???
artinya apa yah mas???
Mas Agus mw nanya ni. udah bkin n udh running tp pas d klik g mw call, thu knpa ya?
oiy misalnya nomer telepon taxi ny g hanya 1 tp ad 2 atau lebih thu cara mskinny gmna ya? apa array nya di tambah. terima kasih…
@agung, kode diatas maskudnya kalau ada taksi yang belum kita daftarkan nomornya maka akan muncul Notifikasi Provider Taxi is not Register
@maemun, coba cek file AndroidManifest.xml nya apaka sudah ditambahkan permission untuk fitur call
@jevrie, Kalau lebih dari satu, yah tinggal dikasih koma aja untuk pemisah tlp1, tlp 2 dst. tapi ini tidak bisa dihandle code diatas. karena sudah lebih dari sat berarti harus menambahkan dialog untuk menampikan nomor-nomornya. nah dinomor-nomor tersebut pasang listenner onclick untuk callnya
mas agus, kok ga bisa jalan ya disaya ?
di eclipse ga ada error, tapi pas di AVD , FORCE CLOSE gitu mas ..
mohon bantuannya ya mas.. makasih 😀
ohh bgtu ya mas . mksh mas atas penjelasannya.
tutorial yg sangat berguna mas…
tapi, kalau boleh request sih, aku ingin tau tutorial mengambil data dari database luar (misalnya mySql), menampilkannya dalam list, dan kalau list diklik, data-data selengkapnya ditampilkan. mungkin tutorial taxi caller diatas bisa dibikin versi onlinenya (dari database luar maksud saya).
sejauh ini saya sudah bisa menampilkan listnya dari database luar. tapi saya bingung bagaimana cara menampilkan data selengkapnya setelah list tersebut di klik. kalo ada waktu bikin dong tutorialnya mas… hehehhe thx
mas, kalau mau nambahin icon untuk gambar setiap merk taksi nya gimana? trus icon aplikasi gimana cara ganti nya,,??
terimakasih
pak kenapa di tutorial ini tidak ada tahap edit file main.xml? apa beda kegunaan file main.xml dengan file AndroidManifest.xml?
terima kasih atas pencerahanya pak agus
makasii tutor nya kk …. naiss sekali
mas. aplikasinya jalan tapi pas diklik gak ada actionnya pdhl dibagian manifest.xml-nya udah ditambahin coding permission. knp yak mas?
tolong pencerahannya yak.
Thx
mas kendala yg sekarang sama kaya user “free” diatas. gmn cara menyelesaikannya yak?
bagaimana source codenya apabila ditambahin fitur google maps??mohon pencerahanya pak
kalo di list view itu ada hidden value gak pak ? misalkan .. kasus saya menggunakan database .field table misalkan id , nama , alamat . nah di list view saya hanya menampilkan nama nya aja .. dan ketika di itemselected itu pengennya itu id dari tabel dan pindah ke activity baru hanya untuk menampilkan alamat .. nah pertanyaan .. di listview bisa di masukin hidden value =id . dan onclick nya = id table ..
ane juga om Agus koq klo diklik listnya langsung muncul pesan “mobile network not avaible” mhon pencerahannya suhu…
wah,,,ternyata tutorialnya berhasil,,,tadinya g muncul contactnya,soalnya ga ada jaringan operatornya,pas udah ada sinyal langsung bisa dah,,,makasih om tutorialnya bagus banget…
coba dulu ah,,bisa buat belajar ne,,
@toni
sependek pengetahuan nubi nan imut ini.
main.xml = configurasi layout / tampilan.
tampilan yang dimaksud di sini adalah tampilan android seperti button, checkbox, radio button, edit text, etc…
nah. karena kita gak ngurusin tampilan layout. jadi kita straight ke java nya aja. karena tampilan nya ntar lansung nyesuain aja. (hasilnya kan cuman array vertical nama taxi).
CMIIW.
Om saya ada error di line ini :
protected void onListItemClick(ListView 1, View v, int position, long id) {
pesan errornya :
Multiple markers at this line
– Method breakpoint:TaxiDialer [entry] –
onListItemClick()
– Syntax error on token “1”, invalid
VariableDeclaratorId
kenapa ya om? saya sudah tulis smua codeny.. masih ,,
mohon pencerahannya Om agus.. ^_^ makasih
mass ko muncul pesan warning kya gni..
tag appears after tag
@haris : harus dimasukkan juga script android:targetSdkVersion=”7″
Contoh :
Mohon pencerahannya… Semuanya sudah OK. Tapi begitu dijalankan di emulator, muncul pesan : the application has stopped unexpectedly. Please try again. Force close. Solusinya gimana ya. Saya pake platform 2.1, versi SDK 7. Eclipse Indigo. Terima kasih.
mas saya sedang mengembangkan aplikasi ini , saya ingin menambahkan alamat url dari masing – masing tiap provider, jadi intinya ga cuma sekedar menampilkan nomer tlp saja jadi sebelum itu ia masuk ke dalam url atau bisa disebut menampilkan alamat emailnya, namun saya tidak mengerti caranya mas, mohon di bantu ya mas.. makasih mas agus 🙂
mas kok kalo call no nya not regiter ya?
alhmdulillah makasih bnyak mas agus buat source code nya…
saya sudah bisa menjalakannya..^_^
Pak terima kasih, tutorialnya sangat membantu, tapi saya ingin menanyakan dua pertanyaan:
1. Kenapa ketika ditambahkan //setContentView(R.layout.main); aplikasinya yang langsung berhenti yaa, tapi kalau dihilangkan tetap bisa berjalan dengan baik?
2. Apa bedanya parameter icicle pada //super.onCreate(icicle) dengan parameter savedInstanceState pada //super.onCreate(savedInstanceState)
Terima kasih
om koding nya sudah bner tetapi muncul muncul pesan : the application has stopped unexpectedly. Please try again. Force close.
mohon pncerahannya..
trus jika saya menggabungkannya dengan gmaps saya harus pakai yang api atau yang standar di target android nya..
trims om
mas mw tnya semisalnya tuh angka di ganti contoh gini *123# bisa ga mas?
masalahnya saya pernah coba tuh.. tp ga bisa ngebaca tanda “#”
need help mas.. :)v
mas agus saya mau nannya ni..
semua sudah berjalan lancar, maslahnya cuma 1.
pas saya call, kok tidak bisa ya?
terimaksih mas sebelumnya..