Prisoner’s Dilema

Managerial Economics, salah satu mata kuliah yang gw dapet di awal semester. Mata kuliah ini tu sedikit ngebuat gw dan temen-temen dikelas buat mikir mungkin karena itu dosen udah profesor kali yaa jadi setiap pertanyaan yang dia kluarin itu bikin mikir lama. Disini gw bakal ngebahas salah satu materi yang dia kasih dan gw cukup tertarik sama materi ini namanya ” Prisoner’s Dilema “.

Prisoner’s Dilema atau yang artinya Dilema narapidana adalah sebuah analisis permainan dalam teori game yang menunjukan bahwa dua individu tidak bisa melakukan sebuah kerja sama. Untuk lebih jelasnya kita lihat gambar dibawah ini.

Image

Kalau liat ilustrasi dari gambar diatas itu meggambarkan ada 2 narapidana yaitu narapidana A yang berwarna orange dan narapidana B yang berwarna blue. Setiap narapidana mempunyai 2 kondisi, The first condition is Confess and the second condition is Remain silent.

– Jika si A dan si B sama-sama melakukan confess, makan 2 pidana itu akan mendapatkan hukuman 5 tahun.

– Jika si A confess dan si B remain silent, maka si A tidak mendapat hukuman sedangkan si B kena hukum 20 tahun.

– Jika si A Remain silent dan si B melakukan confess, maka si A akan mendapat hukuman selama 20 tahun dan si B tidak mendapat hukuman.

– Jika si A dan B sama-sama melakukan remain silent maka hasil yang akan di dapat hukuman selama 1 tahun.

Dari empat kondisi diatas mana yang kira-kira akan kalian pilih ?

Dapat ditarik kesimpulan diatas adalah pertama jika kita mempunyai sebuah kesepakatan antara pihak lain harus disepakati dan yang kedua harus mengikuti harga dari sebuah kesepakatan yang ada.

Melakukan Pause Activity

Activity dimulai dengan menjalankan  onCreate, dan menghentikan activity dengan finish(). Dalam menjalankan activity pertama ini saya menggambil data berupa Json dari server dan menggunakan asyntask. Ketika pengguna menekan tombol backpress seperti diatas maka pada activity pertama akan finish() dan ketika pengguna menjalankan aplikasi makan activity diulang kembali dengan onCreate dan kemudian

Continue reading

Custom Dialog Box Android

 

Buat methode dengan nama  myTextDialog, kemudian panggil method tersebut .


protected void myTextDialog()
{
final Dialog dialog = new Dialog(context);
dialog.setContentView(R.layout.layout_dialogbox);
dialog.setTitle("Text Dialog");
Button ok = (Button)dialog.findViewById(R.id.buttonOK);
ok.setOnClickListener(new View.OnClickListener() {

@Override
public void onClick(View v) {
dialog.dismiss();

}
});
dialog.show();

}

layout_dialogbox.xml


<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="match_parent"
android:orientation="vertical" >

<EditText
android:id="@+id/editText1"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginLeft="30dp"
android:layout_marginRight="30dp"
android:ems="10" />

<EditText
android:id="@+id/editText2"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_marginLeft="30dp"
android:layout_marginRight="30dp"
android:ems="10" />

<Button
android:id="@+id/buttonOK"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"
android:text="OK" />

</LinearLayout>

Navigation with Back Layout on Android

Disini saya akan memberi tahu bagaimana cara membuat navigation back  pada bar layout.  Konsisten navigasi merupakan komponen penting dari pengalaman pengguna secara keseluruhan. Beberapa hal menggagalkan pengguna lebih dari navigasi dasar yang berperilaku dengan cara yang tidak konsisten dan tak terduga. Android 3.0 diperkenalkan perubahan yang signifikan pada perilaku navigasi global. Sambil berpikir mengikuti pedoman untuk Back  akan membuat navigasi aplikasi Anda dapat diprediksi dan handal bagi pengguna Anda. Android design sudah menjelaskan disini http://developer.android.com/design/patterns/navigation.html

 

Continue reading

Menampilkan balon pada Google Map

public class Map extends MapActivity {
double x, y;
private Context c;
Timer timer;
LocationManager lm;
MapView mapView;
boolean gps_enabled = false;
boolean network_enabled = false;
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.layout_gps);
// mapView = (MapView) findViewById(R.id.mapView);

initMap();
cek();
lm = (LocationManager) this.getSystemService(Context.LOCATION_SERVICE);

gps_enabled = lm.isProviderEnabled(LocationManager.GPS_PROVIDER);
network_enabled = lm
.isProviderEnabled(LocationManager.NETWORK_PROVIDER);

if (!gps_enabled && !network_enabled) {
Context context = getApplicationContext();
int duration = Toast.LENGTH_SHORT;
Toast toast = Toast.makeText(context, "nothing is enabled",
duration);
toast.show();

}

if (gps_enabled)
lm.requestLocationUpdates(LocationManager.GPS_PROVIDER, 0, 1000,
locationListenerGps);
if (network_enabled)
lm.requestLocationUpdates(LocationManager.NETWORK_PROVIDER, 0,
1000, locationListenerNetwork);
timer = new Timer();
timer.schedule(new GetLastLocation(), 30000);

}

LocationListener locationListenerGps = new LocationListener() {
public void onLocationChanged(Location location) {
timer.cancel();
x = location.getLatitude();
y = location.getLongitude();
lm.removeUpdates(this);
lm.removeUpdates(locationListenerNetwork);
tampilkanPosisikeMap(location);

Context context = getApplicationContext();
int duration = Toast.LENGTH_LONG;
Toast toast = Toast.makeText(context,
"gps enabled " + x + "\n" + y, duration);
toast.show();
}

public void onProviderDisabled(String provider) {
}

public void onProviderEnabled(String provider) {
}

public void onStatusChanged(String provider, int status, Bundle extras) {
}

};

LocationListener locationListenerNetwork = new LocationListener() {
public void onLocationChanged(Location location) {
timer.cancel();
x = location.getLatitude();
y = location.getLongitude();
lm.removeUpdates(this);
lm.removeUpdates(locationListenerGps);
tampilkanPosisikeMap(location);
Context context = getApplicationContext();
int duration = Toast.LENGTH_LONG;
Toast toast = Toast.makeText(context, "network enabled adalah " + x
+ "\n" + y, duration);
toast.show();

}

public void onProviderDisabled(String provider) {
}

public void onProviderEnabled(String provider) {
}

public void onStatusChanged(String provider, int status, Bundle extras) {
}
};

class GetLastLocation extends TimerTask {
@Override
public void run() {
lm.removeUpdates(locationListenerGps);
lm.removeUpdates(locationListenerNetwork);

Location net_loc = null, gps_loc = null;
if (gps_enabled)
gps_loc = lm.getLastKnownLocation(LocationManager.GPS_PROVIDER);
if (network_enabled)
net_loc = lm
.getLastKnownLocation(LocationManager.NETWORK_PROVIDER);

// if there are both values use the latest one
if (gps_loc != null && net_loc != null) {
if (gps_loc.getTime() > net_loc.getTime()) {
x = gps_loc.getLatitude();
y = gps_loc.getLongitude();
Context context = getApplicationContext();
int duration = Toast.LENGTH_SHORT;
Toast toast = Toast.makeText(context, "gps lastknown " + x
+ "\n" + y, duration);
toast.show();
} else {
x = net_loc.getLatitude();
y = net_loc.getLongitude();
Context context = getApplicationContext();
int duration = Toast.LENGTH_SHORT;
Toast toast = Toast.makeText(context, "network lastknown "
+ x + "\n" + y, duration);
toast.show();

}

}

if (gps_loc != null) {
{
x = gps_loc.getLatitude();
y = gps_loc.getLongitude();
Context context = getApplicationContext();
int duration = Toast.LENGTH_SHORT;
Toast toast = Toast.makeText(context, "gps lastknown " + x
+ "\n" + y, duration);
toast.show();
}

}
if (net_loc != null) {
{
x = net_loc.getLatitude();
y = net_loc.getLongitude();
Context context = getApplicationContext();
int duration = Toast.LENGTH_SHORT;
Toast toast = Toast.makeText(context, "network lastknown "
+ x + "\n" + y, duration);
toast.show();

}
}
Context context = getApplicationContext();
int duration = Toast.LENGTH_SHORT;
Toast toast = Toast.makeText(context, "no last know avilable",
duration);
toast.show();

}
}

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(myposition.getLatitudeE6() / 1E6);
locationA.setLongitude(myposition.getLongitudeE6() / 1E6);

// initialize icon
Drawable icon = getResources().getDrawable(R.drawable.marker);
icon.setBounds(0, 0, icon.getIntrinsicWidth(),
icon.getIntrinsicHeight());

// create my overlay and show it
MyItemizedOverlay overlay = new MyItemizedOverlay(icon, mapView);
OverlayItem item = new OverlayItem(geopoint, "My Location",
locationA.getLatitude() + "," + locationA.getLongitude());
overlay.addOverlay(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.setLongitude(geopoint.getLongitudeE6() / 1E6);
locationB.setLatitude(geopoint.getLongitudeE6() / 1E6);
double distance = locationA.distanceTo(locationB);

// set gambar
if (list_lokasi.get(i).category == 1) {
icon = getResources().getDrawable(R.drawable.ic_map_hospital);
} else if (list_lokasi.get(i).category == 2) {
icon = getResources().getDrawable(R.drawable.ic_map_hospital);
}
icon.setBounds(0, 0, icon.getIntrinsicWidth(),
icon.getIntrinsicHeight());
overlay = new MyItemizedOverlay(icon, mapView);

// information balon di klik
OverlayItem overlayitem = new OverlayItem(geopoint,
list_lokasi.get(i).lokname, +locationA.getLatitude() + ","
+ locationA.getLongitude() + ","
+ list_lokasi.get(i).lat + ","
+ list_lokasi.get(i).lng);

overlay.addOverlay(overlayitem);
mapView.getOverlays().add(overlay);

}

// move to location
mapView.getController().animateTo(geopoint);

// redraw map
mapView.postInvalidate();
}

public void cek() {
String url_select = "http://tes.com/tes.php";
HttpClient httpClient = new DefaultHttpClient();
HttpPost httpPost = new HttpPost(url_select);
ArrayList<NameValuePair> param = new ArrayList<NameValuePair>();

try {
httpPost.setEntity(new UrlEncodedFormEntity(param));
HttpResponse httpRespose = httpClient.execute(httpPost);
HttpEntity httpEntity = httpRespose.getEntity();

InputStream in = httpEntity.getContent();
BufferedReader read = new BufferedReader(new InputStreamReader(in));

String content = "";
String line = "";

while ((line = read.readLine()) != null) {
content += line;
}

Log.d("ADBUG", "content: " + content);

if (!content.equals("null")) {
try {
JSONArray jArr = new JSONArray(content);
int dbidx = 0;
double dblat = 0;
double dblng = 0;
String dbket = "";
int dbkate = 0;

for (int i = 0; i < jArr.length(); i++) {
JSONObject jObj = jArr.getJSONObject(i);
int idx = jObj.getInt("id");
double lat = jObj.getDouble("latitude");
double lng = jObj.getDouble("longitude");
String keterangan = jObj.getString("keterangan");
int kategori = jObj.getInt("category");

list_lokasi.add(new Lokasi(lat, lng, kategori,
keterangan)); // --> DISINI PARSING KE MAP

}

} catch (JSONException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
} catch (ClientProtocolException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}

private void initMap() {
mapView = (MapView) findViewById(R.id.mapView);
mapView.displayZoomControls(true);
mapView.getController().setZoom(15);
}

@Override
protected boolean isRouteDisplayed() {
// TODO Auto-generated method stub
return false;
}

}

Custom Bar Layout with Gradient


Image Hosted by ImageShack.us
Image Hosted by ImageShack.us

bar_layout.xml

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:background="@drawable/gradient"
    android:orientation="vertical" >

    <Button
        android:id="@+id/button1"
        style="@style/BarIconBack"
        android:drawableRight="@drawable/back_press" />

    <TextView
        android:id="@+id/textView1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_centerVertical="true"
        android:layout_marginLeft="10dp"
        android:layout_toRightOf="@+id/button1"
        android:text="Home"
        android:textColor="@color/white"
        android:textAppearance="?android:attr/textAppearanceSmall" />

</RelativeLayout>

Continue reading