;

Senin, 24 November 2014

Cara Membuat Voice Activation Dengan Arduino Dan Bluetooth HC-05 Via Android Smartphone

Senin, 24 November 2014

advertisements
Robot-ID.Com, Smartphone android sekarang ini menjadi primadona bagi para penggunanya, dimana didalamnya ditanam berbagai aplikasi mulai dari games, office, bahkan aplikasi unik lain yang bisa kita gabungkan dengan perangkat device lain, seperti wireless, bluetooth, dan lain-lain.

Kali ini admin mau share bagaimana Cara Membuat Voice Activation Dengan Arduino Dan Bluetooth HC-05 Via Android Smartphone, maksudnya kita bisa menyalakan beberapa lampu (dalam hal ini Led) tau bisa juga kita buatkan rangkaian pengendali relay agar bisa menghidupkan lampu atau perangkat listrik yang lebih besar tegangannya.

Komponen utama yang kita butuhkan adalah arduino uno (bisa juga tipe lain), bluetooth HC-05 yang sudah banyak dijual di online store serta sebuah android smartphone yang sudah diinstal aplikasi Android Meets Robot Voice yang bisa anda unduh di playstore.

Sound Activation with Android
Sound Activation with Android

Cara kerja alat ini adalah menghubungkan bluetooth dengan aplikasi Android Meets Robot Voice, kemudian jika kita ingin menghidupkan perangkat kita tinggal sebutkan kata yang sudah diketikan didalam program arduino, misalnya : TV On, TV Off, Led On, Led Off, bisa juga All On atau All Off. Cukup mudah bukan!.

Komponen yang dibutuhkan

Bluetooth HC-05
Bluetooth HC-05

Namun sebelumnya kita harus rakit dulu PCB bluetootnya agar kita mudah merangkainya kedalam papan breadboard. Lihat Gambar dibawah ini :

Perakitan Modul Bluetooth

Setelah modul bluetooth selesai kita rakit kedalam papan breadboard, lihat gambar dibawah ini :

Pemasangan kabel pada arduino
Simulasi dengan LED
Untuk kode programnya bisa anda unduh FILE arduinonya DISINI.
Untuk Download Aplikasi Android disini : Android Meets Robot Voice

Untuk hasil kerja alat ini bisa anda lihat dalam video dibawah ini : SELAMAT MENCOBA.

http://www.robot-id.com/2014/06/cara-membuat-voice-activation-dengan.html

Ilmu Komputer 95 - 08.09

Jumat, 21 November 2014

Koneksi Antara Arduino + Bluetooth + App Inventor + Door Lock 2014

Jumat, 21 November 2014

Koneksi Antara Arduino + Bluetooth + App Inventor + Door Lock

Waha.. lama juga ternyata gw gak update blog Terdistraksi oleh banyaknya tugas kuliah di semester akhir ini (walau sebenarnya kurang bijak ya untuk dijadikan sebuah alasan:) ). Tugas yang cukup menyita waktu itu salah satunya adalah tugas kelompok mata kuliah Pemrograman Berorientasi Hardware Lanjut (PBHL). "dengan nama kelompok KitKatTeam. yang beranggotakan empat orang (Harvy Damda/Agan-agan, Yogalicius, Febrina Haha dan yang terakhir Emil Dayo).

Oke sobat langsung saja ke intisari dan materi, untuk bahasan kita kali ini yaitu Koneksi antara Arduino + Bluetooth + App Inventory + Door lock atau dalam bahasa Inggrisnya buka tutup pintu otomatis via android,dimana alat ini kami buat untuk memenuhi salah satu tugas mk yang saya sebutkan diatas. dan ini tutorialnya semoga bermanfaat.




Seperti biasa kalau sudah membahas mengenai praktek tentunya siapkan alat2 elektronikanya dan komponen2 yg dibutuhkan,seperti

Sorlder + tenol (Timah solder)
Multitester
Bor PCB,
Jepitan kuku,
Karter
Gunting
Amplas,
Pelarut PCB/FeCl3(feri Clorida)
Projec Board/ Bread Board
PCB Polos/ Bolong

Handphone Android
Arduino Uno R3
Bluetooth HC-05
Solonoid Door Lock Elektrik 12Volt 2Ampere
Kabel secukupnya untuk jumper-an

Untuk software yang dibutuhkan
Arduino,
Isis proteus 7.10
Eagle/Diptrace
App Inventor
Termite

Sedikit keterangan dari beberapa komponen diatas
  • Handpone di gunakan sebagai media pengontrolan ON/OFF atau Buka/Tutup pintu
  • Arduino Uno R3 alat untuk mengupload program dari komputer ke mikrokontroller/alat elektronika yang ingin kita buat.

Dan untuk rangkaiannya sob lihat gambar dibawah ini,,,!!, ( bazer + led indikator sebagai pengganti sementara door lock).


Jika ada yang masih bingung dalam pembuatan rangkaian tersebut bisa tengok panduannya disini,

Selesai mendesain rangkaian kita pindah ke software tempat pembuatan programnya, ya Arduino. Kalau sobat belum ada downloadlah disini,
Namun sebelum sobat memulai memprogram pastikan sobat sudah baca tutorial ini
setelah itu sobat klik new dan klik menu tools>>Board>>Arduino Uno
kemudian pastekan program ini boleh di edit sob.

int karakter; // mendefinisikan variabel karakter untuk memulai komunikasi serial
int pintu = 10; // pin B2

void setup() {
// inisialisasi komunikasi serial
Serial.begin(9600);
pinMode(pintu, OUTPUT);

}
void loop() {
if (Serial.available() > 0) {
karakter = Serial.read();
// jika menerima karakter A, pintu terbuka:
if (karakter == 'A') {
digitalWrite(pintu, HIGH);
}
// jika menerima karakter B, pintu tertutu:
if (karakter == 'B') {
digitalWrite(pintu, LOW);
}

}
}


Dan terakhir di running untuk cecking program apakah ada yang erorr atau tidak, jika tidak yuk sob upload programnya ke arduino Uno R3(Hardware).


Tahap selanjutnya desain aplikasi pada smartphone androidnya dengan catatan komputer sobat harus konek ke internet kemudian pergi ke beta.appinventor.mit.edu dan desainlah seperti ini.

Tampilan aplikasi 


Listing Program


Selesai mendesain, sobat download file(sudah berbentuk apk) tinggal sobat instal ke smartphone Androidnya.


Tahap yang terakhir uji coba alat,semoga berhasil dan terimakasih atas kunjungannya .http://emildayoo.blogspot.sg/2013/12/koneksi-antara-arduino-bluetooth-app.html


Ilmu Komputer 95 - 07.07

Selasa, 18 November 2014

Tutorial Membuat Program berbasis Client Server dengan VB.Net dengan access

Selasa, 18 November 2014

Tutorial Membuat Program berbasis Client Server dengan VB.Net

Membuat Koneksi vb.NET dengan ms Acces
Membuat Koneksi vb.NET berbasis client - Server
Membuat Koneksi vb.net 

Source Code Program dengan VB.Net berbasis Client Server

Tutorial Membuat Program berbasis Client Server dengan VB.Net

Ass,
kali ini saya mau memposting tentang cara membuat aplikasi dengan VB.Net berbasis Client - Server dengan database MS. Acces


Syarat nya, sediakan 2 atau lebih PC / Laptop
Koneksikan menggunakan kabel lan
kalo lebih dr 2 PC biasanya udh menggunakan HUB atau swicth
kalo kalo udah beres pastikan memang benar2 terkoneksi dengan cara melakukan ping ke komputer lain nya
misal,
IP Komputer 1 = 192.168.10.2 
IP Komputer 2 = 192.168.10.3

di sini kita ibaratkan komputer 1 itu adalah server dengan mensahring suatu folder.
jadi si komputer 1 memping komputer 2 dan sebaliknya

buka cmd, ketik
 ping 192.168.10.2

begitu juga dengan komputer satu lagi..

oke, langsung ke tutorial,

Komputer 1
====
1. Set IP seperti di atas, pastikan sudah terkoneksi
2. buat folder dan Sharing
3. Buat database menggunakan ms Acces lalu save di folder yang di sharing
4. buat tabel : pelanggan

 kode    text
nama    text
alamat    text
telp    text

kemudian isi record


Komputer 2
=====

1. Set IP
2. Mapping Network (agar cepat dalam membukan folder yang di sharing di komputer satu lagi tadi)
3. buat projek baru dengan vb.net
4. tambahkan objk DataGridView
lalu lihat di DataGridView tadi ada tanda panah kecil, arahkan kursor dan klik, atau bisa juga cari di properties nya, cari data source
- chose data source

- add project data source
- pilih database

- pilih new connection > ms acces db file

- browse > cari database

- next > no > next


- cheklis table, no, finish
 lalu Next,

berikut hasil nya bila kita jalan kan...

Ilmu Komputer 95 - 07.08

Jumat, 14 November 2014

Tutorial Aplikasi LBS menggunakan Android Terabru 2014

Jumat, 14 November 2014

Jumpa lagi dengan Agus Haryanto dalam seri tutorial Android. Location Based Service (LBS), Nampak terdengar hebat namanya ditelinga apa lagi kalau kita bisa membuat aplikasi yang memanfaatkan Location Based Service. Dari pembaca blog ini mungkin ada yang merasa kagum dengan kemampuanFourSquare yang dapat mengetahui kita checkin digedung apa, mall apa atau restoran apa. Atau dengan aplikasi toresto, aplikasi local android buatan anak bangsa yang mampu memberikan kita infrormasi restoran atau rumah makan yang dekat dengan posisi kita.
•  Anda pernah melihat status teman anda di facebook “Check In @Plaza Semanggi”
•  Anda pernah coba aplikasi yang menunjukkan posisi kita sekaligus tempat-tempat yang dekat dengan kita
•  Semua itu bisa dibilang termasuk golongan Location Based Service (LBS)
Saya juga bertanya-tanya kok bisa yah aplikasi mereka memberikan informasi seperti itu ?
Untuk menjawab pertanyaan itu saya coba buatkan gambar konsep aplikasi LBS

Dari gambar diatas antara kita dengan lokasi-lokasi disekitar kita terdapat jarak, ada yang 200m atau 210m atau 100m dan lainnya. Jadi sudah jelaskan yang dijadikan parameter untuk aplikasi LBS adalah jarak dari posisi kita berada ke lokasi-lokasi di sekitar kita.
Tapi kenapa kok mereka bisa tahu yah nama lokasinya dengan benar, itu karena mereka mempunyai bank data yang menyimpan koordinat lokasi berserta namanya.
Jadi untuk membuat sebuah aplikasi LBS minimal harus mempunyai kemampuan untuk

  1. Dapat mengetahui koordinat posisi kita
  2. Punya bank data atau dapat mengakses bank data yang menyimpna data koordinat lokasi dan informasi mengenai lokasi tersebut
  3. Dapat Menghitung jarak antara posisi kita dengan sebuah lokasi.
  4. Dapat Menampilkannya menjadi informasi yang bisa dibaca user contohnya kedalam Map (Google Map)

Jadi secara singkat Algoritma Aplikasi LBS adalah
  1. Dapatkan koordinat posisi kita melalu GPS
  2. Tetapkan Lokasi-lokasi yang ingin kitampilkan difilter berdasarkan jarak
  3. Gambar Posisi kita dan Lokasi-lokasi terdekat dalam map
Oke langsung saja kita praktekan, Pada Training Bootcamp IndosatM2 sabtu kemarin kami membuat aplikasi LBS Rumah makan padang disekitar ku.
Berikut Langkah-langkahnya
  1. Buat Projectnya, ikuti inputan seperti dibawah ini.

2.  setelah project tercreate maka secara otomatis android membentuk 3 file yaitu :
  • main.xml
  • string.xml
  • TunjukLokasiBeraksi.java
3. Agar Kita dapat melihat posisi kita pada map maka kita harus menandakan dengan dengan gambar atau icon, dalam dunia google map ini disebut marker. Untuk itu kita perlu meletakkan file gambar untuk marker (marker.png) di directory res/drawable dan kita juga file gambar untuk bangunan disekitar kita

4. Edit main.xml lalu isikan kode berikut
?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent">
 
    <com.google.android.maps.MapView
        android:id="@+id/mapView"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:enabled="true"
        android:clickable="true"
        android:apiKey="Key Google Map"
        />
 
</RelativeLayout>
Disini untuk menampilkan MAPnya kita menggunakan tag com.google.android.maps.MapView,
sedangkan untuk Layoutnya adalah Relative Layout
Untuk android:apiKey, isi dengan key Google Map yang telah kita buat dari tutorial sebelumnya
5. Untuk dapat melakukan menampilan Map Google Map dan Menangkap GPS dari satelit kita perlu menambahkan 
?
1
2
3
4
<uses-library>
 com.google.android.maps     
<uses-permission> INTERNET,
ACCESS_FINE_LOCATION, ACCESS_COARSE_LOCATION
nya melalui file AndroidManifest.xml , buka file AndroidManifest.xml lalu ketikkan seperti kode berikut :
?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
<?xml version="1.0" encoding="utf-8"?>
      package="com.agus.map.lok"
      android:versionCode="1"
      android:versionName="1.0">
    <uses-sdk android:minSdkVersion="7" />
 
    <application android:icon="@drawable/icon"android:label="@string/app_name">
    <uses-library android:name="com.google.android.maps" />
        <activity android:name=".TunjukLokasiBeraksi"
                  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-permission android:name="android.permission.INTERNET"></uses-permission>
 <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"></uses-permission>
 <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"></uses-permission>
 
</manifest>
6. Sekarang Mari kita buat class Lokasi.java sebagai template object untuk menyimpan data
lokasi bangunan, pada project ini adalah rumah makan padang
?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
package com.agus.map.lok;
 
public class Lokasi {
 public double lat = 0;
 public double lng = 0;
 public int category = 0;
 public String lokname = "";
 
 public Lokasi(double plat, double plng, int pcategory, String sname) {
  this.lat = plat;
  this.lng = plng;
  this.category = pcategory;
  this.lokname = sname;
 }
}
7. Buat Class Baru dengan nama MyItemizedOverlay.java funngsi untma class
ini adalah untuk marker (icon penunjuk posisi kita pada Map dan
lokasi rumah makan padang disekitar kita)
?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
package com.agus.map.lok;
 
import java.util.ArrayList;
import java.util.List;
 
import android.app.AlertDialog;
import android.content.Context;
import android.content.DialogInterface;
import android.content.DialogInterface.OnClickListener;
import android.graphics.Canvas;
import android.graphics.drawable.Drawable;
 
import com.google.android.maps.ItemizedOverlay;
import com.google.android.maps.MapView;
import com.google.android.maps.OverlayItem;
 
public class MyItemizedOverlay extends ItemizedOverlay {
 
 private ArrayList<OverlayItem> items = new ArrayList<OverlayItem>();
 private Drawable marker;
 private Context mContext;
 
 public MyItemizedOverlay(Drawable defaultMarker) {
  super(defaultMarker);
  // items = new ArrayList();
  marker = defaultMarker;
 }
 
 public MyItemizedOverlay(Drawable defaultMarker, Context context) {
  super(boundCenterBottom(defaultMarker));
  mContext = context;
 }
 
 @Override
 protected OverlayItem createItem(int index) {
  return (OverlayItem) items.get(index);
 }
 
 @Override
 public int size() {
  return items.size();
 
 }
 
 /*
  * (non-Javadoc)
  *
  * @see
  * com.google.android.maps.ItemizedOverlay#draw(android.graphics.Canvas,
  * com.google.android.maps.MapView, boolean)
  */
 @Override
 public void draw(Canvas canvas, MapView mapView, boolean shadow) {
  super.draw(canvas, mapView, shadow);
  // boundCenterBottom(marker);
 
 }
 
 public void addItem(OverlayItem item) {
  items.add(item);
  populate();
 }
 
 @Override
 protected boolean onTap(int index) {
  OverlayItem item = items.get(0);
  AlertDialog.Builder dialog = new AlertDialog.Builder(mContext);
  dialog.setTitle(item.getTitle());
  dialog.setMessage(item.getSnippet());
  dialog.setPositiveButton("Close"new OnClickListener() {
   @Override
   public void onClick(DialogInterface arg0, int arg1) {
    arg0.dismiss();
   }
  });
  dialog.show();
  return true;
 }
 
}
8. Sekarang Mari kita edit File TunjukLokasiBeraksi.java
?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
package com.agus.map.lok;
 
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
import android.content.Context;
import android.graphics.drawable.Drawable;
import android.location.Location;
import android.location.LocationListener;
import android.location.LocationManager;
import android.os.Bundle;
import com.google.android.maps.GeoPoint;
import com.google.android.maps.MapActivity;
import com.google.android.maps.MapView;
import com.google.android.maps.Overlay;
import com.google.android.maps.OverlayItem;
 
/**
 * Aplikasi ini  untuk menampilkan lokasi posisi koordinat GPS
 * kita saat ini Pada MAP dan bangunan disekitarnya
 *
 * @author Agus Haryanto
 */
public class TunjukLokasiBeraksi extends MapActivity {
 
 private MapView mapView;
 private LocationManager locManager;
 private LocationListener locListener;
 private ArrayList<Lokasi> list_lokasi = new ArrayList<Lokasi>();
 
 /** Called when the activity is first created. */
 @Override
 public void onCreate(Bundle savedInstanceState) {
  super.onCreate(savedInstanceState);
  setContentView(R.layout.main);
  initLokasi();
  initMap();
  initLocationManager();
 }
 
 /**
  * Initialize the map to the Data Location.
  */
 private void initLokasi() {
  list_lokasi.add(new Lokasi(-6.29826d, 106.82024d, 1,
    "RM Padang Sari Mande"));
  list_lokasi.add(new Lokasi(-6.28326d, 106.82324d, 2,
    "RM Padang Sederhana"));
  list_lokasi
    .add(new Lokasi(-6.29326d, 106.83324d, 3"RM Padang Garuda"));
 
 }
 
 /**
  * Initialize the map to the LinearLayout.
  */
 private void initMap() {
  mapView = (MapView) findViewById(R.id.mapView);
  mapView.displayZoomControls(true);
  mapView.getController().setZoom(15);
 
 }
 
 /**
  * Initialize the location manager.
  */
 private void initLocationManager() {
  locManager = (LocationManager) getSystemService(Context.LOCATION_SERVICE);
 
  locListener = new LocationListener() {
   // method ini akan dijalankan apabila koordinat GPS berubah
   public void onLocationChanged(Location newLocation) {
    tampilkanPosisikeMap(newLocation);
   }
 
   public void onProviderDisabled(String arg0) {
   }
 
   public void onProviderEnabled(String arg0) {
   }
 
   public void onStatusChanged(String arg0, int arg1, Bundle arg2) {
   }
  };
  locManager.requestLocationUpdates(LocationManager.GPS_PROVIDER,0,
    1000, locListener);
 
 }
 
 /**
  * This method will be called when current position changed is submitted via
  * the GPS.
  *
  * @param newLocation
  */
 protected void tampilkanPosisikeMap(Location newLocation) {
  List<Overlay> overlays = mapView.getOverlays();
 
  // first remove old overlay
  if (overlays.size() > 0) {
   for (Iterator iterator = overlays.iterator(); iterator.hasNext();) {
    iterator.next();
    iterator.remove();
   }
  }
 
  // transform the location to a geopoint
  GeoPoint geopoint = new GeoPoint(
    (int) (newLocation.getLatitude() * 1E6), (int) (newLocation
      .getLongitude() * 1E6));
  GeoPoint myposition = geopoint;
  Location locationA = new Location("point A");
  Location locationB = new Location("point B");
  locationA.setLatitude(geopoint.getLatitudeE6() / 1E6);
  locationA.setLongitude(geopoint.getLongitudeE6() / 1E6);
  // initialize icon
  Drawable icon = getResources().getDrawable(R.drawable.marker);
  icon.setBounds(00, icon.getIntrinsicWidth(), icon
    .getIntrinsicHeight());
 
  // create my overlay and show it
  MyItemizedOverlay overlay = new MyItemizedOverlay(icon, this);
  OverlayItem item = new OverlayItem(geopoint, "My Location","Lat:"
    + locationA.getLatitude() + "\nLng:" + locationA.getLongitude());
  overlay.addItem(item);
  mapView.getOverlays().add(overlay);
  for (int i = 0; i < list_lokasi.size(); i++) {
   geopoint = new GeoPoint((int) (list_lokasi.get(i).lat * 1E6),
     (int) (list_lokasi.get(i).lng * 1E6));
   locationB.setLatitude(geopoint.getLatitudeE6() / 1E6);
   locationB.setLongitude(geopoint.getLongitudeE6() / 1E6);
 
   double distance = locationA.distanceTo(locationB);
 
   if (list_lokasi.get(i).category == 1) {
    icon = getResources().getDrawable(R.drawable.shop);
   else if (list_lokasi.get(i).category == 2) {
    icon = getResources().getDrawable(R.drawable.building);
   }
   else if (list_lokasi.get(i).category == 3) {
    icon = getResources().getDrawable(R.drawable.store);
   }
 
   icon.setBounds(00, icon.getIntrinsicWidth(), icon
     .getIntrinsicHeight());
   overlay = new MyItemizedOverlay(icon, this);
   item = new OverlayItem(geopoint, list_lokasi.get(i).lokname,"Lat:"
     + list_lokasi.get(i).lat + "\nLng:"
     + list_lokasi.get(i).lng + "\n Jarak:" + distance+"m");
   overlay.addItem(item);
   mapView.getOverlays().add(overlay);
  }
 
  // move to location
  mapView.getController().animateTo(myposition);
 
  // redraw map
  mapView.postInvalidate();
 }
 
 @Override
 protected boolean isRouteDisplayed() {
  return false;
 }
}
Perhatikan method initLokasi(), pada method ini kita mendaftarkan data lokasi dari rumah makan padang.
Disini datanya bukan data benaran hanya contoh saja agar kita bisa membuktikan kerja Aplikasi ini
?
1
2
3
4
5
6
7
8
9
private void initLokasi() {
  list_lokasi.add(new Lokasi(-6.29826d, 106.82024d, 1,
    "RM Padang Sari Mande"));
  list_lokasi.add(new Lokasi(-6.28326d, 106.82324d, 2,
    "RM Padang Sederhana"));
  list_lokasi
    .add(new Lokasi(-6.29326d, 106.83324d, 3"RM Padang Garuda"));
 
 }
Pada method diatas kita menyimpan datanya ke sebuah ArrayList list_lokasi
Kalau ditablekan akan seperti ini
LatitudeLongitudeKategoriNama
-6.29826106.820241RM Padang Sari Mande
-6.28326106.823242RM Padang Sederhana
-6.29326106.833243RM Padang Garuda
Yang penasaran untuk menampilkan marker pada googlemap dengan gambar yang berbeda-beda.
Perhatikan code ini
?
1
2
3
4
5
6
7
if (list_lokasi.get(i).category == 1) {
 icon = getResources().getDrawable(R.drawable.shop);
else if (list_lokasi.get(i).category == 2) {
 icon = getResources().getDrawable(R.drawable.building);
}else if (list_lokasi.get(i).category == 3) {
 icon = getResources().getDrawable(R.drawable.store);
}


Nah disini bangunan rumah makan padang akan tergambar dimap berdasarkan kategorinya
KategoriGambar
1shop.gif
2building.gif
3store,gif
Oh ia salah satu syarat aplikasi LBS kan dia harus bisa menghitung jarak.
Nah ternyata android googlemap sudah menyediakan fungsi tersebut yaitu dengan menggunakan distanceTo 
9. sekarang mari kita jalankan programnya. Bagi yang menggunakan emulator jangan lupa mainkan
Latitude dan longitudenya dari Emulator Control (DDMS) set Latitude = -6.298418Longitude=106.82639maka akan tampil seperti ini

Yang gambar balon merah adalah lokasi kita sedangkan yang lainnya adalah gambar bangunan disekitar kita
coba kita klik/sentuh salah satu bangunan yang paling jauh.

Akan muncul informasi Nama, latitude, longitude dan jarak bangunan tersebut dari posisi kita.
Disini dapat dilihat bahwa nama bangunan itu adalah RM Padang Sederhana dengan jarak 1708,8 m
dari posisi kita.
Nah cobalah klik bangunan lainnya untuk mendapatkan informasinya.
Pada saat ini lokasi bangunan yang ada disekitar kita belum kita filter jaraknya.
Salah satu yang disyaratkan dalam aplikasi LBS adalah filtering jarak.  Sekarang mari kita coba buat filtering atau pembatasan lokasi yang muncul adalah lokasi yang jaraknya kirang dari 1000m.
Untuk itu tambahkan
If (distance <1000){
Dibawah code double distance = locationA.distanceTo(locationB);
Dan  tambah kan 
diatas code  mapView.getController().animateTo(myposition);

Kemudian mari kita run kembali aplikasinya. Maka sekarang yang terlihat hanya 2 bangunan saja.

Wah, tidak menyangkayah kita bisa membuat aplikasi LBS. Alhamdulillah :) 
Sekarang kita sudah punya satu senjata lagi untuk buat aplikasi yang keren.
Pada aplikasi LBS selain aplikasi, data memegang peranan yang sangat penting, karma kalau tidak ada data adalah hal yang mustahil kita dapat membuat aplikasi LBS. buat para mahasiswa kesempatan nih selain sebagai pengembang kita juga dapat menjadi provider data. Cara yang sederhana adalah dari kumpulkan data bangunan lingkungan sekitar campus dulu.
Semoga Bermanfaat
Agus Haryanto
Sumber : http://agusharyanto.net/wordpress/?p=496&cpage=1
http://developer.android.com
http://blogs.itemis.de/frey/2009/04/07/location-based-services-on-android-part-2/
http://alfasuryo.blogspot.com/2013/12/tutorial-aplikasi-android-lbs_2712.html

Ilmu Komputer 95 - 13.26