Kembali Ke Menu Awal
2. Halaman Menu Materi Pembelajaran
Dalam Pelatihan Java ini ada 3 jenis Operating Sistem (OS) yang akan dijadikan contoh untuk realisasi pemrograman dengan Java
1. Windows
2. Linux
3. On Line
Proses pelatihan juga bisa dilakukan secara on line tanpa harus melakukan instalasi awal terlebih dahulu. Lihat platform on line yang memberikan layanan coding on line ini sebagai berikut
Dengan menggunakan platform on line ini tidak perlu ada instalasi awal yang rumit dan membuang waktu. Prinsip coding bisa dilakukan dengan lebih mudah. Coding hanya dikonsentrasikan pada proses pemahaman struktur bahasa pemrograman saja, tidak perlu hal-hal lain yang hanya menjadi penunjang sekunder aktivitas programming
4. Android
Pada OS berbasis Android yang biasa digunakan di Handphone android terdapat program yang harus diinstalasi di awal program. Untuk latihan pertama ini digunakanlah aplikasi Dcoder yang bisa didownload di Google Play untuk diinstalasi di android. Ada beberapa program lain yang serupa dengan Dcoder yang secara prinsip bisa digunakan juga.
Lihat juga alamat Dcoder yang ada di web On Line
Masing-masing OS memberikan beberapa program awal yang harus diinstalasi di awal program, agar proses programming dapat dilakukan dengan baik. Jika tidak ada program awal yang diinstalasi di masing-masing OS, maka proses programming tidak akan bisa dilakukan.
Project yang telah dilakukan
1. File : PelatihanTiga.java
Kode yang dicompile di Android
Kode yang dicompile di Web
Berikut adalah Line Code Java nya
-------------------------------------------------------------------------
import java.util.*;
//Compiler version JDK 11.0.2
-------------------------------------------------------
public class Dcoder
{
public static void main(String[] args) {
System.out.println("FOR");
for( int i = 1; i <= 10; i++ ){
if(i%2 == 1){
System.out.println("Mencetak perulangan ke-" + i);
}
}
System.out.println("WHILE");
int x = 1;
while(x >= 10){
System.out.println("Mencetak perulangan ke-" + x);
x++;
}
System.out.println("DO WHILE");
int y = 1;
do {
System.out.println("Mencetak perulangan ke-" + y);
y++;
} while (y >= 10);
}
}
------------------------------------------------------
2. File : PelatihanB.java
3. File : Pelatujan.java
4. File : LatihanAb.java
5. File : LatihanTypeA.java
6. File : HelloWorld.java
7. File : LatihanTypeAa.java
8. File : PelatihqnDelapan.java
9. File : PelatihanSembln.java
10. File : PelatihanSeplh.java
11. File : LatihanBerikut.java
12. File : LatihanBerikut2.java
13. File : PelatihanBerikutTiga.java
Memasukkan Input 89. Untuk File ini ada interaksi dari pengguna dengan memasukkan nilai yang diminta oleh program. Dalam contoh ini angka 89 coba dimasukkan
Berikut jika dimasukkan nilai 50, maka akan menghasilkan tampilan sebagai berikut
Berikut Listing Program Java yang digunakan
-----------------------------------------------------------------
import java.util.*;
//Compiler version JDK 11.0.2
-------------------------------------------------------------------
public class Dcoder {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
System.out.print("Masukkan Nilai Anda : ");
int nilai = input.nextInt();
System.out.println(prosesKelulusan(nilai));
}
public static String prosesKelulusan(int nilaiUjian){
String hasil;
System.out.println("Nilai Ujian : " + nilaiUjian);
if(nilaiUjian > 85){
hasil = "Lulus dengan nilai A";
} else if(nilaiUjian > 75 && nilaiUjian <= 85) {
hasil = "Lulus dengan nilai B";
} else if(nilaiUjian > 65 && nilaiUjian <= 75){
hasil = "Lulus dengan nilai C";
} else {
hasil = "Tidak Lulus";
}
return hasil;
}
}
-----------------------------
14. PelathanBerikutEmpat.java
Berikut Listing Program Java yang digunakan
-------------------------------------------------------------
import java.util.*;
//Compiler version JDK 11.0.2
---------------------------------------------------------------
public class Perulangan {
public static void main(String[] args) {
prosesFor(4);
prosesFor(3);
}
public static void prosesFor(int perulangan){
System.out.println("FOR");
for( int i = 1; i <= perulangan; i++ ){
System.out.println("Mencetak perulangan ke-" + i);
}
}
public static void prosesWhile(){
System.out.println("WHILE");
int x = 1;
while(x <= 10){
System.out.println("Mencetak perulangan ke-" + x);
x++;
}
}
public static void prosesDoWhile(){
System.out.println("DO WHILE");
int y = 1;
do {
System.out.println("Mencetak perulangan ke-" + y);
y++;
} while (y <= 10);
}
}
15. PelathanBerikutLima.java
Berikut Listing Program Java yang digunakan
--------------------------------
import java.util.*;
//Compiler version JDK 11.0.2
---------------------
public class Kondisi {
public static void main(String[] args) {
int nilai = 80;
System.out.println(prosesKelulusan(nilai));
}
public static String prosesKelulusan(int nilaiUjian){
String hasil;
System.out.println("Nilai Ujian : " + nilaiUjian);
if(nilaiUjian > 85){
hasil = "Lulus dengan nilai A";
} else if(nilaiUjian > 75 && nilaiUjian <= 85) {
hasil = "Lulus dengan nilai B";
} else if(nilaiUjian > 65 && nilaiUjian <= 75){
hasil = "Lulus dengan nilai C";
} else {
hasil = "Tidak Lulus";
}
return hasil;
}
}
16. Menghitung Persegi Panjang : PersegiHitung.java
Berikut Listing Program Java yang digunakan
----------------------------
import java.util.*;
//Compiler version JDK 11.0.2
------------------------
public class HitungPersegi {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
// Input Panjang Persegi
System.out.print("Masukkan Panjang Persegi : ");
int panjang = input.nextInt();
// Input Lebar Persegi
System.out.print("Masukkan Lebar Persegi : ");
int lebar = input.nextInt();
// Proses Hitung Luas Persegi
int luas = panjang * lebar;
// Output Luas Persegi
System.out.println("Luas Persegi : " + luas);
}
}
17. Ojeg On Line
Berikut Listing Program Java yang digunakan
https://github.com/utsmannn/Kemana
--------------------------------------
import java.util.*;
//Compiler version JDK 11.0.2
-----------------------
public class Dcoder
{
public static void prosesOrderan(String[] dataPenumpang, int jarak, String[] dataDriver){
int HARGA_PER_KM = 3000;
String jawabanDriver = "";
int pendapatan;
for (String driver : dataDriver) {
pendapatan = jarak * HARGA_PER_KM;
System.out.format("Halo, %s"
+ "%nAnda mendapatkan Order dengan detil berikut:"
+ "%nNama Penumpang : %s"
+ "%nAlamat Jemput : %s"
+ "%nAlamat Antar : %s"
+ "%nJarak : %d"
+ "%nPendapatan : Rp. %d%n",
driver, dataPenumpang[0], dataPenumpang[1], dataPenumpang[2], jarak, pendapatan);
public static String[] cariDriverTerdekat(String jemput){
String[] drivers = {"Driver A", "Driver B", "Driver C"};
return drivers;
}
public static int hitungJarak(String jemput, String antar){
return 20;
}
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
System.out.print("Masukkan Nama Penumpang : ");
String namaPenumpang = input.nextLine();
System.out.print("Masukkan Alamat Jemput : ");
String jemput = input.nextLine();
System.out.print("Masukkan Alamat Antar : ");
String antar = input.nextLine();
String[] dataPenumpang = {namaPenumpang, jemput, antar};
int jarak = hitungJarak(jemput, antar);
String[] driver = cariDriverTerdekat(jemput);
prosesOrderan(dataPenumpang, jarak, driver);
}
Scanner input = new Scanner(System.in);
System.out.print("Apakah anda mau menerima order? Y/N : ");
jawabanDriver = input.nextLine();
if("Y".equalsIgnoreCase(jawabanDriver)){
prosesTerimaDriver(dataPenumpang, jarak, driver, pendapatan);
break;
}
}
if("N".equalsIgnoreCase(jawabanDriver)){
System.out.println("Mohon maaf tidak ada driver yang menerima, silahkan coba kembali");
}
}
System.out.println(namaLengkap.substring(namaLengkap.indexOf("C")));
System.out.println(namaLengkap);
System.out.println(namaLengkap.contains("z"));
System.out.println(namaLengkap.length());
System.out.println(namaLengkap.startsWith("Di era"));
System.out.println(namaLengkap.endsWith("formal"));
public static String[] cariDriverTerdekat(String jemput){
String[] drivers = {"Driver A", "Driver B", "Driver C"};
return drivers;
}
public static int hitungJarak(String jemput, String antar){
return 20;
}
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
System.out.print("Masukkan Nama Penumpang : ");
String namaPenumpang = input.nextLine();
System.out.print("Masukkan Alamat Jemput : ");
String jemput = input.nextLine();
System.out.print("Masukkan Alamat Antar : ");
String antar = input.nextLine();
String[] dataPenumpang = {namaPenumpang, jemput, antar};
int jarak = hitungJarak(jemput, antar);
String[] driver = cariDriverTerdekat(jemput);
prosesOrderan(dataPenumpang, jarak, driver);
}
Scanner input = new Scanner(System.in);
System.out.print("Apakah anda mau menerima order? Y/N : ");
jawabanDriver = input.nextLine();
if("Y".equalsIgnoreCase(jawabanDriver)){
prosesTerimaDriver(dataPenumpang, jarak, driver, pendapatan);
break;
}
}
if("N".equalsIgnoreCase(jawabanDriver)){
System.out.println("Mohon maaf tidak ada driver yang menerima, silahkan coba kembali");
}
}
-----------------------
Listing Kedua
------------
import java.util.*;
//Compiler version JDK 11.0.2
public class Dcoder
{
public static void main(String[] args){
int jarakPerKm = 3000;
String nama = "Andre";
alamatJemput = "Jakarta Pusat";
alamatAntar = "Jakarta Barat";
String[] order = orderMasuk(nama, alamatJemput, alamatAntar);
int jarak = hitungJarak(alamatJemput, alamatAntar);
cariDriver(order, jarak, jarakPerKm);
public static String[] orderMasuk(String nama, String alamatJemput, String alamatAntar){
String[] order = (nama, alamatJemput, alamatAntar);
return order;
}
public static int hitungJarak(String alamatJemput, String alamatAntar){
//Disimulasikan ke google Maps
return 20;
}
public static void cariDriver(String[] order, int jarak, int jarakPerKm) {
Scanner input = new Scanner(System.in);
String respon, driverTerima = ".";
String[] driverTerdekat = driverTerdekat(order[1]);
for(String driver : driverTerdekat){
System.out.format("Halo %s %n"
+ "Ada order masuk atas nama %s %n"
+ "Alamat Jemput : %s %n"
+ "Alamat Antar : %s %n"
+ "Jarak : %d AKM %n"
+ "Harga : Rp. %d %n", driver, order[0], order[1], order(2), jarak, jarak, jarakPerKm);
System.out.print("Ketik 'Y' jika terima order, atau 'N' untuk menolak order : ");
respon = input.nextLine();
if(respon.equals("Y")){
driverTerima = driver;
break;
}
}
hasilPencarian(driverTerima, order, jarak, jarakPerKm);
}
public static String[] driverTerdekat(String alamatJemput ){
//Disimulasikan ke google Maps untuk mendapat list driver sesuai alamatJemput
String[] drivers = {"Driver A", "Driver B", "Driver C", "Driver D"};
return drivers;
}
public static void hasilPencarian(String driverTerima, String[] order, int jarak, int jarakPerKm) {
if(driverTerima.equals("")){
System.out.println("Tidak ada Driver yang menerima, silahkan coba kembali ");
}else {
System.out.println("=========ORDERAN DITERIMA================ ");
System.out.format("Nama Driver : %s %n"
+ "Nama Penumpang : %s %n"
+ "Alamat Jemput : %s %n"
+ "Alamat Antar : %s %n"
+ "Jarak : %d %n"
+ "Harga : Rp. %d %n", driverTerima, order[0], order[1], order[2], jarak, jarak, jarakPerKm);}}
-----------
Listing ketiga
------
import java.util.*;
//Compiler version JDK 11.0.2
package com.talagasoft.gojek;
import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.widget.ImageView;
/**
* Created by compaq on 02/29/2016.
*/
public class Splash extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.splash_activity);
ImageView img=(ImageView) findViewById(R.id.imageView);
img.setImageResource(R.drawable.splash);
Thread logoTimer = new Thread() {
public void run(){
try{
int logoTimer = 0;
while(logoTimer < 5000){
sleep(100);
logoTimer = logoTimer +100;
};
startActivity(new Intent(“com.talagasoft.gojek.PlaceFind”));
}
catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
finally{
finish();
}
}
};
logoTimer.start();
}
}
package com.talagasoft.gojek;
import android.app.Activity;
import android.content.Intent;
import android.os.Build;
import android.os.Bundle;
import android.support.annotation.NonNull;
import android.support.annotation.Nullable;
import android.support.v4.app.FragmentActivity;
import android.text.TextUtils;
import android.util.Log;
import android.view.View;
import android.widget.AdapterView;
import android.widget.AutoCompleteTextView;
import android.widget.TextView;
import com.google.android.gms.common.ConnectionResult;
import com.google.android.gms.common.GooglePlayServicesNotAvailableException;
import com.google.android.gms.common.GooglePlayServicesRepairableException;
import com.google.android.gms.common.api.GoogleApiClient;
import com.google.android.gms.common.api.PendingResult;
import com.google.android.gms.common.api.ResultCallback;
import com.google.android.gms.location.places.Place;
import com.google.android.gms.location.places.PlaceBuffer;
import com.google.android.gms.location.places.PlaceLikelihood;
import com.google.android.gms.location.places.PlaceLikelihoodBuffer;
import com.google.android.gms.location.places.Places;
import com.google.android.gms.location.places.ui.PlacePicker;
public class PlaceFind extends FragmentActivity
implements GoogleApiClient.OnConnectionFailedListener,
GoogleApiClient.ConnectionCallbacks {
private GoogleApiClient mGoogleApiClient;
private int PLACE_PICKER_REQUEST = 1;
private AutoCompleteAdapter mAdapter;
private TextView mTextView;
private AutoCompleteTextView mPredictTextView;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_place_find);
mTextView = (TextView) findViewById( R.id.textview );
mPredictTextView = (AutoCompleteTextView) findViewById( R.id.predicttextview );
mAdapter = new AutoCompleteAdapter( this );
mPredictTextView.setAdapter( mAdapter );
mPredictTextView.setOnItemClickListener( new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
AutoCompletePlace place = (AutoCompletePlace) parent.getItemAtPosition( position );
findPlaceById( place.getId() );
}
});
mGoogleApiClient = new GoogleApiClient
.Builder( this )
.enableAutoManage( this, 0, this )
.addApi( Places.GEO_DATA_API )
.addApi( Places.PLACE_DETECTION_API )
.addConnectionCallbacks( this )
.addOnConnectionFailedListener( this )
.build();
}
@Override
protected void onStart() {
super.onStart();
if( mGoogleApiClient != null )
mGoogleApiClient.connect();
}
@Override
protected void onStop() {
if( mGoogleApiClient != null && mGoogleApiClient.isConnected() ) {
mAdapter.setGoogleApiClient( null );
mGoogleApiClient.disconnect();
}
super.onStop();
}
@Override
public void onConnectionFailed(@NonNull ConnectionResult connectionResult) {
}
private void findPlaceById( String id ) {
if( TextUtils.isEmpty( id ) || mGoogleApiClient == null || !mGoogleApiClient.isConnected() )
return;
Places.GeoDataApi.getPlaceById( mGoogleApiClient, id ) .setResultCallback( new ResultCallback<PlaceBuffer>() {
@Override
public void onResult(PlaceBuffer places) {
if( places.getStatus().isSuccess() ) {
Place place = places.get( 0 );
displayPlace( place );
mPredictTextView.setText( “” );
mAdapter.clear();
}
//Release the PlaceBuffer to prevent a memory leak
places.release();
}
} );
}
private void displayPlace( Place place ) {
if( place == null )
return;
String content = “”;
if( !TextUtils.isEmpty( place.getName() ) ) {
content += “Name: ” + place.getName() + “\n”;
}
if( !TextUtils.isEmpty( place.getAddress() ) ) {
content += “Address: ” + place.getAddress() + “\n”;
}
if( !TextUtils.isEmpty( place.getPhoneNumber() ) ) {
content += “Phone: ” + place.getPhoneNumber();
}
if( !TextUtils.isEmpty( place.getLatLng().toString() ) ) {
content += “LatLng: ” + place.getLatLng().toString() + “\n”;
}
mTextView.setText( content );
Bundle bundle;
bundle = new Bundle();
bundle.putString(“LatLng”, String.valueOf(place.getLatLng()));
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN) {
startActivity(new Intent(“com.talagasoft.gojek.MapsActivity”), bundle);
}
}
protected void onActivityResult( int requestCode, int resultCode, Intent data ) {
if( requestCode == PLACE_PICKER_REQUEST && resultCode == RESULT_OK ) {
displayPlace( PlacePicker.getPlace( data, this ) );
}
}
@Override
public void onConnected(@Nullable Bundle bundle) {
if( mAdapter != null )
mAdapter.setGoogleApiClient( mGoogleApiClient );
}
@Override
public void onConnectionSuspended(int i) {
}
}
----------
https://bahpro.wordpress.com/2016/03/08/membuat-aplikasi-seperti-gojek/
https://github.com/zadr50/gojek-member
--------
Line Code Baru
------
package com.rosinante24.ojekonlineuserside.Activity;
import android.content.DialogInterface;
import android.content.Intent;
import android.os.Bundle;
import android.support.annotation.NonNull;
import android.support.v4.app.FragmentActivity;
import android.support.v7.app.AlertDialog;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;
import com.google.android.gms.common.GooglePlayServicesNotAvailableException;
import com.google.android.gms.common.GooglePlayServicesRepairableException;
import com.google.android.gms.location.places.AutocompleteFilter;
import com.google.android.gms.location.places.Place;
import com.google.android.gms.location.places.ui.PlaceAutocomplete;
import com.google.android.gms.maps.CameraUpdateFactory;
import com.google.android.gms.maps.GoogleMap;
import com.google.android.gms.maps.OnMapReadyCallback;
import com.google.android.gms.maps.SupportMapFragment;
import com.google.android.gms.maps.model.LatLng;
import com.google.android.gms.maps.model.MarkerOptions;
import com.rosinante24.ojekonlineuserside.Helper.HeroHelper;
import com.rosinante24.ojekonlineuserside.Helper.SessionManager;
import com.rosinante24.ojekonlineuserside.Maps.DirectionMapsV2;
import com.rosinante24.ojekonlineuserside.Network.ApiServices;
import com.rosinante24.ojekonlineuserside.Network.InitLibrary;
import com.rosinante24.ojekonlineuserside.R;
import com.rosinante24.ojekonlineuserside.Response.Distance;
import com.rosinante24.ojekonlineuserside.Response.Leg;
import com.rosinante24.ojekonlineuserside.Response.OverviewPolyline;
import com.rosinante24.ojekonlineuserside.Response.ResponseBooking;
import com.rosinante24.ojekonlineuserside.Response.ResponseRoute;
import com.rosinante24.ojekonlineuserside.Response.Route;
import java.util.List;
import butterknife.BindView;
import butterknife.ButterKnife;
import butterknife.OnClick;
import retrofit2.Call;
import retrofit2.Callback;
import retrofit2.Response;
public class MainMapsActivity extends FragmentActivity implements OnMapReadyCallback {
@BindView(R.id.lokasiawal)
EditText lokasiawal;
@BindView(R.id.lokasitujuan)
EditText lokasitujuan;
@BindView(R.id.text_price)
TextView textPrice;
@BindView(R.id.requestorder)
Button requestorder;
private GoogleMap mMap;
// origin - lokasi awal
private double latawal;
private double lonawal;
// destination - lokasi tujuan
private double latakhir;
private double lonakhir;
private Long km_jarak;
private Double ongkos_ojeg;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main_maps);
ButterKnife.bind(this);
// Obtain the SupportMapFragment and get notified when the map is ready to be used.
SupportMapFragment mapFragment = (SupportMapFragment) getSupportFragmentManager()
.findFragmentById(R.id.map);
mapFragment.getMapAsync(this);
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.main_menu, menu);
return super.onCreateOptionsMenu(menu);
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()) {
case R.id.history:
startActivity(new Intent(MainMapsActivity.this, History.class));
break;
case R.id.Profil:
pindahProfil();
break;
}
return super.onOptionsItemSelected(item);
}
private void pindahProfil() {
final SessionManager sesi = new SessionManager(MainMapsActivity.this);
AlertDialog.Builder alert = new AlertDialog.Builder(MainMapsActivity.this);
alert.setTitle("Profil Pengguna");
alert.setMessage("Nama : " + sesi.getNama() + " \n" +
"Email : " + sesi.getEmail() + " \n" +
"No HP : " + sesi.getPhone() + " \n");
alert.setPositiveButton("LogOut", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialogInterface, int i) {
sesi.logout(); // logout
startActivity(new Intent(MainMapsActivity.this, LoginActivity.class));
finish();
}
});
alert.show();
}
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if (requestCode == 1 && resultCode != 0) {
// ambil data
Place place = PlaceAutocomplete.getPlace(MainMapsActivity.this, data);
// dapatkan koordinat tempat
latawal = place.getLatLng().latitude; // bujur
lonawal = place.getLatLng().longitude; // lintang
LatLng posisi_awal = new LatLng(latawal, lonawal);
// bersihkan map dari marker sebelumnya
mMap.clear();
// buat marker
mMap.addMarker(new MarkerOptions().position(posisi_awal)
.title(place.getAddress().toString()));
lokasiawal.setMaxLines(1);
lokasiawal.setText(place.getAddress());
// set auto zoom
mMap.moveCamera(CameraUpdateFactory.newLatLngZoom(posisi_awal, 16)); // 16 = level zoom
} else if (requestCode == 2 & resultCode != 0) {
// ambil data
Place place = PlaceAutocomplete.getPlace(MainMapsActivity.this, data);
// dapatkan koordinat tempat
latakhir = place.getLatLng().latitude; // bujur
lonakhir = place.getLatLng().longitude; // lintang
LatLng posisi_akhir = new LatLng(latakhir, lonakhir);
// buat marker
mMap.addMarker(new MarkerOptions().position(posisi_akhir)
.title(place.getAddress().toString()));
lokasitujuan.setMaxLines(1);
lokasitujuan.setText(place.getAddress());
// set auto zoom
mMap.moveCamera(CameraUpdateFactory.newLatLngZoom(posisi_akhir, 16)); // 16 = level zoom
// buat polyline
actionRoute();
}
}
private void actionRoute() {
ApiServices api = InitLibrary.getDirections();
// 121.2123, 121.121
// koordinat awal
String origin = String.valueOf(latawal) + ", " + String.valueOf(lonawal);
// koordinat tujuan
String destination = String.valueOf(latakhir) + ", " + String.valueOf(lonakhir);
// siapkan request
Call<ResponseRoute> call = api.request_route(origin, destination);
//
call.enqueue(new Callback<ResponseRoute>() {
@Override
public void onResponse(Call<ResponseRoute> call, Response<ResponseRoute> response) {
if (response.isSuccessful()) {
// get response from server
List<Route> object = response.body().getRoutes();
Route route = object.get(0);
OverviewPolyline overview = route.getOverviewPolyline();
// 10.10.10.128/DirectionMapsV2.java.zip
String point = overview.getPoints();
DirectionMapsV2 direction = new DirectionMapsV2(MainMapsActivity.this);
direction.gambarRoute(mMap, point);
// ambil jarak
List<Leg> legs = route.getLegs();
Leg data_leg = legs.get(0);
// jarak
Distance jarak = data_leg.getDistance();
// jarak meter & jarak string
String jarak_tempuh = jarak.getText();
km_jarak = jarak.getValue() / 1000;
// harga ngojek
ongkos_ojeg = Double.parseDouble(String.valueOf(km_jarak)) * 2000;
// set ke textview
textPrice.setText("Rp. " + HeroHelper.toRupiahFormat2(ongkos_ojeg.toString()));
}
}
@Override
public void onFailure(Call<ResponseRoute> call, Throwable t) {
}
});
}
private void completeAuto(int type) {
// filter result of places
AutocompleteFilter typeFilter = new AutocompleteFilter.Builder()
.setCountry("ID")
.build();
Intent intent = null;
try {
// menampilkan overlay search box untuk auto complete places
intent = new PlaceAutocomplete.IntentBuilder(PlaceAutocomplete.MODE_OVERLAY)
.setFilter(typeFilter)
.build(MainMapsActivity.this);
} catch (GooglePlayServicesRepairableException e) {
e.printStackTrace();
} catch (GooglePlayServicesNotAvailableException e) {
e.printStackTrace();
}
startActivityForResult(intent, type);
}
/**
* Manipulates the map once available.
* This callback is triggered when the map is ready to be used.
* This is where we can add markers or lines, add listeners or move the camera. In this case,
* we just add a marker near Sydney, Australia.
* If Google Play services is not installed on the device, the user will be prompted to install
* it inside the SupportMapFragment. This method will only be triggered once the user has
* installed Google Play services and returned to the app.
*/
@Override
public void onMapReady(GoogleMap googleMap) {
mMap = googleMap;
// Add a marker in Sydney and move the camera
LatLng sydney = new LatLng(-34, 151);
mMap.addMarker(new MarkerOptions().position(sydney).title("Marker in Sydney"));
mMap.moveCamera(CameraUpdateFactory.newLatLng(sydney));
mMap.getUiSettings().setAllGesturesEnabled(true);
mMap.getUiSettings().setMyLocationButtonEnabled(true);
}
@OnClick({R.id.lokasiawal, R.id.lokasitujuan, R.id.requestorder})
public void onClick(View view) {
switch (view.getId()) {
case R.id.lokasiawal:
completeAuto(1);
break;
case R.id.lokasitujuan:
completeAuto(2);
break;
case R.id.requestorder:
requestOrder();
break;
}
}
private void requestOrder() {
SessionManager sesi = new SessionManager(MainMapsActivity.this);
String token = sesi.getToken();
String deviceId = HeroHelper.getDeviceId(MainMapsActivity.this);
String id_user = sesi.getIdUser();
String alamat_awal = lokasiawal.getText().toString();
String alamat_akhir = lokasitujuan.getText().toString();
String lat1 = String.valueOf(latawal);
String long1 = String.valueOf(lonawal);
String lat2 = String.valueOf(latakhir);
String long2 = String.valueOf(lonakhir);
String tarif_order = ongkos_ojeg.toString();
String jarak_tempuh = km_jarak.toString();
ApiServices api = InitLibrary.getInstances();
Call<ResponseBooking> call = api.request_booking(
token, deviceId, id_user, lat1, long1, alamat_awal, lat2, long2, alamat_akhir, jarak_tempuh, tarif_order
);
call.enqueue(new Callback<ResponseBooking>() {
@Override
public void onResponse(Call<ResponseBooking> call, Response<ResponseBooking> response) {
long id_booking = response.body().getIdBooking();
if (response.body().getResult().equals("true")) {
Intent intent = new Intent(MainMapsActivity.this, Finddriver.class);
intent.putExtra("id_booking", id_booking);
startActivity(intent);
} else {
HeroHelper.pesan(MainMapsActivity.this, response.body().getMsg());
}
}
@Override
public void onFailure(Call<ResponseBooking> call, Throwable t) {
}
});
}
@Override
public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) {
super.onRequestPermissionsResult(requestCode, permissions, grantResults);
if (requestCode == 2) {
mMap.isMyLocationEnabled();
}
}
}
------------
https://drive.google.com/drive/folders/1uXg30HPrFz5QVTyKCuXsGvS1FF9RncUX
https://safriansah.blogspot.com/2018/07/modul-java-final-project-sistem.html?m=1
--------