Rabu, 15 Juli 2020

ANDROID CODE UDP SENT and RECEIVE




package com.example.appsmartmoobile;

import java.io.IOException;
import java.net.DatagramPacket;
import java.net.DatagramSocket;
import java.net.InetAddress;
import java.net.NetworkInterface;
import java.util.Enumeration;

import android.app.Activity;
import android.app.AlertDialog;
import android.app.ProgressDialog;
import android.content.DialogInterface;
import android.content.Intent;
import android.net.wifi.WifiInfo;
import android.net.wifi.WifiManager;
import android.os.Bundle;
import android.os.Handler;
import android.text.format.Formatter;
import android.util.Log;
import android.view.KeyEvent;
import android.view.View;
import android.widget.ArrayAdapter;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Spinner;
import android.widget.Toast;

public class App extends Activity {

db_rute helper=null;
double total;
String totalgab="";
EditText txtasal,txtket,txtjarak,txtrute;
double jarakA,jarakB;
int jd=10;
String[]arR;
Button btnGo;
     int sukses;
   
    Spinner spinTujuan;
String[]pilKat={"A","B","C","D","E","F","G","H","I","J","K","L","M","N","O"};
   
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.app);
       
        helper=new db_rute(this);
        txtasal= (EditText) findViewById(R.id.txtasal);
        txtket= (EditText) findViewById(R.id.txtket);
        txtjarak= (EditText) findViewById(R.id.txtjarak);
        txtrute= (EditText) findViewById(R.id.txtrute);
       
        spinTujuan= (Spinner) findViewById(R.id.spinTujuan);
ArrayAdapter<String> adapter = new ArrayAdapter<String>(this,android.R.layout.simple_spinner_item, pilKat);
spinTujuan.setAdapter(adapter);
       
             
        btnGo=(Button)findViewById(R.id.btnGo);
        btnGo.setOnClickListener(new View.OnClickListener() {
public void onClick(View arg0) {


String ip2 = getLocalIpAddress1();Log.v("IP2",ip2);
String ip3 = getLocalIpAddress2();Log.v("IP3",ip3);

WifiManager wm = (WifiManager) getSystemService(WIFI_SERVICE);
String ip1 = Formatter.formatIpAddress(wm.getConnectionInfo().getIpAddress());

String asal=txtasal.getText().toString();
String tujuan=spinTujuan.getSelectedItem().toString();
sendMessage(ip1+"="+ip2+"="+ip3+"="+ asal+" "+tujuan);
// mulai(asal,tujuan);
}});
       
        Button btnClear=(Button)findViewById(R.id.btnClear);
        btnClear.setOnClickListener(new View.OnClickListener() {
public void onClick(View arg0) {
txtasal.setText("");
txtket.setText("");
txtjarak.setText("");
txtrute.setText("");
spinTujuan.setSelection(0);

}});
runUdpServer();
    }

    public String getLocalIpAddress1(){
    WifiManager wifiMan = (WifiManager)this.getSystemService(this.WIFI_SERVICE);
    WifiInfo wifiInf = wifiMan.getConnectionInfo();
    int ipAddress = wifiInf.getIpAddress();
    String ip = String.format("%d.%d.%d.%d", (ipAddress & 0xff),(ipAddress >> 8 & 0xff),(ipAddress >> 16 & 0xff),(ipAddress >> 24 & 0xff));
  return ip;
    }
   
    public String getLocalIpAddress2(){
       try {
           for (Enumeration<NetworkInterface> en = NetworkInterface.getNetworkInterfaces(); 
           en.hasMoreElements();) {
           NetworkInterface intf = en.nextElement();
               for (Enumeration<InetAddress> enumIpAddr = intf.getInetAddresses(); enumIpAddr.hasMoreElements();) {
               InetAddress inetAddress = enumIpAddr.nextElement();
                    if (!inetAddress.isLoopbackAddress()) {
                    return inetAddress.getHostAddress();
                    }
               }
           }
           } catch (Exception ex) {
              Log.e("IP Address", ex.toString());
          }
          return null;
    } 
void sendMessage(final String message) {
            final Handler handler = new Handler();
            Thread thread = new Thread(new Runnable() {
   
                @Override
                public void run() {
                        DatagramSocket ds = null;
                        try {
                            ds = new DatagramSocket();
                            InetAddress serverAddr = InetAddress.getByName("192.168.1.2");
                       
                        int port = 8888;//8888; SENT 8888
                            ds= new DatagramSocket(port);
                            DatagramPacket dp;
                            dp = new DatagramPacket(message.getBytes(), message.length(), serverAddr, port);
                            ds.send(dp);
   
                   
                          //  Toast.makeText(getApplicationContext(),stringData,Toast.LENGTH_LONG).show();
                        } catch (IOException e) {
                            e.printStackTrace();
                        } finally {
                            if (ds != null) {
                                ds.close();
                            }
                        }
   
                    handler.post(new Runnable() {
                        @Override
                        public void run() {
//                            String s =spinTujuan.getSelectedItem().toString();
//                            if (stringData.trim().length() != 0){                           
//                          //  Toast.makeText(getApplicationContext(),s + "\nFrom Server : " + stringData,Toast.LENGTH_LONG).show();
//                            }
                        }
                    });
                }
            });
   
            thread.start();
        }
       
   
   
    private void runUdpServer() {
        new Thread(new Runnable() {
            public void run() {
                String lText;
                try {
                    int port = 8889;//WAIT 8889
                    DatagramSocket dsocket = new DatagramSocket(port);
                    byte[] buffer = new byte[2048];
                    DatagramPacket packet = new DatagramPacket(buffer, buffer.length);
                   
//                    int rec=packet.getPort();
//                    String addr=packet.getAddress().getHostName();
//                    Log.v("UDPQ", addr+"+"+String.valueOf(rec));
                    while (true) {
                        dsocket.receive(packet);
                        lText = new String(buffer, 0, packet.getLength());
                        Log.v("UDP packet received", lText);
                        txtrute.setText(lText);
                        packet.setLength(buffer.length);
                       
                        int rec2=packet.getPort();
                        String addr2=packet.getAddress().getHostName();
                        Log.v("UDPQ2", addr2+"+"+String.valueOf(rec2));
// DatagramPacket dp = new DatagramPacket(lText.getBytes(), lText.length());
// dsocket.send(dp);
                       
                       
                    }
                } catch (Exception e) {
                    System.err.println(e);
                    e.printStackTrace();
                    Log.v("UDPQ2", "ERR");
                }
            }
        }).start();
    }
   
    public void gagal(){
        new AlertDialog.Builder(this)
                .setTitle("Gagal Login")
                .setMessage("Silakan Cek Account Anda Kembali")
                .setNeutralButton("Tutup", new DialogInterface.OnClickListener() {
                    public void onClick(DialogInterface dlg, int sumthin) {

                    }})
                .show();
    }
 
    public void sukses(String item,String ex){
        new AlertDialog.Builder(this)
                .setTitle("Sukses "+ex)
                .setMessage(ex+" data "+item+" Berhasil")
                .setNeutralButton("OK", new DialogInterface.OnClickListener() {
                    public void onClick(DialogInterface dlg, int sumthin) {
//                        Intent i = new Intent(login.this,MainActivity.class);
//                        i.putExtra("xmlbio", xmlbio);
//                        startActivity(i);
                        // finish();
                    }})
                .show();
    }

   
 

        public void lengkapi(String item){
    new AlertDialog.Builder(this)
.setTitle("Lengkapi Data")
.setMessage("Silakan lengkapi data "+item)
.setNeutralButton("OK", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dlg, int sumthin) {
}})
.show();
    }



  public void gagal(String item){
    new AlertDialog.Builder(this)
.setTitle("Gagal Login")
.setMessage("Login "+item+" ,, Gagal")
.setNeutralButton("OK", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dlg, int sumthin) {
}})
.show();
    }


  public boolean onKeyDown(int keyCode, KeyEvent event) {
        if (keyCode == KeyEvent.KEYCODE_BACK) {
        finish();
                return true;
        }
    return super.onKeyDown(keyCode, event);
} 

  void mulai(String posAwal,String posAhir) {
         Node A = new Node("A",0);
         Node B = new Node("B",0);
         Node C = new Node("C",0);
         Node D = new Node("D",0);
         Node E = new Node("E",0);
         Node F = new Node("F",0);
         Node G = new Node("G",0);
         Node H = new Node("H",0);
         Node I = new Node("I",0);
         Node J = new Node("J",0);
         Node K = new Node("K",0);
         Node L = new Node("L",0);
         Node M = new Node("M",0);
         Node N = new Node("N",0);
         Node O = new Node("O",0);
       
         A.connect(new Edge(D,25));
         B.connect(new Edge(F,25));
       
         C.connect(new Edge(D,25));
         D.connect(new Edge(A,25));
         D.connect(new Edge(C,25));
         D.connect(new Edge(E,25));
         D.connect(new Edge(J,25));
       
         E.connect(new Edge(F,25));
         E.connect(new Edge(H,12));//12.5
         E.connect(new Edge(D,25));
         
       
         F.connect(new Edge(B,25));
         F.connect(new Edge(E,25));
         F.connect(new Edge(G,25));
         F.connect(new Edge(L,25));
       
         G.connect(new Edge(F,25));
       
         H.connect(new Edge(E,12));
         H.connect(new Edge(K,12));
       
         I.connect(new Edge(J,25));
       
         J.connect(new Edge(D,25));
         J.connect(new Edge(I,25));
         J.connect(new Edge(K,25));
         J.connect(new Edge(N,100));
       
         K.connect(new Edge(J,25));
         K.connect(new Edge(H,12));
         K.connect(new Edge(L,25));
       
         L.connect(new Edge(F,25));
         L.connect(new Edge(K,25));
         L.connect(new Edge(M,25));
         L.connect(new Edge(O,100));
       
       
         M.connect(new Edge(L,25));
         N.connect(new Edge(J,100));
         O.connect(new Edge(L,100));
       
         //=======================================================
         jd=31;
         arR=new String[jd];
         int n=0;
         arR[n]="AD";n++;
         arR[n]="BF";n++;
         arR[n]="CD";n++;
         arR[n]="DA";n++;
         arR[n]="DC";n++;
         arR[n]="DE";n++;
         arR[n]="DJ";n++;
         arR[n]="EF";n++;
         arR[n]="EH";n++;
         arR[n]="ED";n++;
         arR[n]="FB";n++;
         arR[n]="FE";n++;
         arR[n]="FG";n++;
         arR[n]="FL";n++;
         arR[n]="GF";n++;
         arR[n]="HE";n++;
         arR[n]="HK";n++;
         arR[n]="IJ";n++;
         arR[n]="JD";n++;       
         arR[n]="JI";n++;
         arR[n]="JK";n++;
         arR[n]="JN";n++;
         arR[n]="KJ";n++;
         arR[n]="KH";n++;
         arR[n]="KL";n++;
         arR[n]="LF";n++;
         arR[n]="LK";n++;
         arR[n]="LM";n++;
         arR[n]="ML";n++;
         arR[n]="NJ";n++;
         arR[n]="OL";n++;
         
            Node n1=A;
            if(posAwal.equals("A")){n1=A;}
            else if(posAwal.equals("B")){n1=B;}
            else if(posAwal.equals("C")){n1=C;}
            else if(posAwal.equals("D")){n1=D;}
            else if(posAwal.equals("E")){n1=E;}
            else if(posAwal.equals("F")){n1=F;}
            else if(posAwal.equals("G")){n1=G;}
            else if(posAwal.equals("H")){n1=H;}
            else if(posAwal.equals("I")){n1=I;}
            else if(posAwal.equals("J")){n1=J;}
            else if(posAwal.equals("K")){n1=K;}
            else if(posAwal.equals("L")){n1=L;}
            else if(posAwal.equals("M")){n1=M;}
            else if(posAwal.equals("N")){n1=N;}
            else if(posAwal.equals("O")){n1=O;}
           
             Node n2=B;
            if(posAhir.equals("A")){n2=A;}
            else if(posAhir.equals("B")){n2=B;}
            else if(posAhir.equals("C")){n2=C;}
            else if(posAhir.equals("D")){n2=D;}
            else if(posAhir.equals("E")){n2=E;}
            else if(posAhir.equals("F")){n2=F;}
            else if(posAhir.equals("G")){n2=G;}
            else if(posAhir.equals("H")){n2=H;}
            else if(posAhir.equals("I")){n2=I;}
            else if(posAhir.equals("J")){n2=J;}
            else if(posAhir.equals("K")){n2=K;}
            else if(posAhir.equals("L")){n2=L;}
            else if(posAhir.equals("M")){n2=M;}
            else if(posAhir.equals("N")){n2=N;}
            else if(posAhir.equals("O")){n2=O;}
           
            //=================================================
         appDijkstra     app=new   appDijkstra();
         String gab=app.Dijkstrasearch(n1, n2);
         total=app.getCosttotal();
         totalgab=app.getCostgab();
       
         String sjaraknya="+- "+String.valueOf(total)+" M #"+totalgab;
 
String[]ar=gab.split("#");

int p=ar.length;
String mrute="Posisi Awal: "+posAwal+" s/d "+posAhir+" =>RUTE:\n";
for(int i=0;i<p;i++){
     String kota=ar[i];
     mrute+=kota+" -> ";
}//i


  mrute=mrute.substring(0,mrute.length()-3);
cetak("MRUTE1:"+gab);
cetak("MRUTE2:"+mrute);
cetak("MRUTE3:"+sjaraknya);
 
txtjarak.setText(String.valueOf(total)+" cm");
txtrute.setText(mrute);
txtket.setText(totalgab);

String asal=txtasal.getText().toString();
String tujuan=spinTujuan.getSelectedItem().toString();
//insertrute(String asal, String tujuan, String rute, String jarak, String keterangan ){
helper.insertrute(asal,tujuan, totalgab,String.valueOf(total),mrute);
sukses(asal+" Menuju "+tujuan);
}//void
 
 
  void cetak(String info){
Log.v("Cetak","Info "+info);
}
public void sukses(String psn){
    new AlertDialog.Builder(this)
.setTitle("Sukses terkirim")
.setMessage("Posisi "+psn+" sudah terkirim dan tersimpan ....")
.setNeutralButton("Tutup", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dlg, int sumthin) {

}})
.show();
    }
} 


 <uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />



Android JSON Grafik

package com.example.spkpenilaiankaryawan;

import android.app.ProgressDialog;
import android.content.Intent;
import android.graphics.Color;
import android.os.AsyncTask;
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.util.Log;
import android.widget.EditText;
import android.widget.ListAdapter;
import android.widget.SimpleAdapter;
import android.widget.TextView;
import android.widget.Toast;

//import androidx.appcompat.app.AppCompatActivity;
import org.apache.http.NameValuePair;
import org.apache.http.message.BasicNameValuePair;
import org.json.JSONArray;
import org.json.JSONException;
import org.json.JSONObject;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;

import lecho.lib.hellocharts.model.Axis;
import lecho.lib.hellocharts.model.AxisValue;
import lecho.lib.hellocharts.model.Line;
import lecho.lib.hellocharts.model.LineChartData;
import lecho.lib.hellocharts.model.PointValue;
import lecho.lib.hellocharts.model.Viewport;
import lecho.lib.hellocharts.view.LineChartView;

//import android.support.v7.app.AppCompatActivity;
public class myGraph extends AppCompatActivity {
    String ip="";

    JSONParser jParser = new JSONParser();
    JSONArray myJSON = null;

    ArrayList<HashMap<String, String>> arrayList;
    private static final String TAG_SUKSES = "sukses";
    private static final String TAG_record = "record";

    private static final String TAG_id_hasil = "id_hasil";
    private static final String TAG_nip = "nip";
    private static final String TAG_nama_penilaian = "nama_penilaian";

    String  nip,nama;
    int sukses;
    int jd=0;

    LineChartView lineChartView;
    String[] axisID;// = {"Jan", "Feb", "Mar", "Apr", "May", "June", "July", "Aug", "Sept","Oct", "Nov", "Dec"};    String[] axisKet;
    int[] axisBobot;
    int[] axisRanking;
    //float[] yAxisData;// = {50, 20, 15, 30, 20, 60, 15, 40, 45, 10, 90, 18};
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.mygraph);


        ip = jParser.getIP();


        Intent i = getIntent();
        nip = i.getStringExtra("pk");
        nama= i.getStringExtra("nama");


        TextView txtketerangan = (TextView) findViewById(R.id.txtTitle);
        txtketerangan.setText(nama +" ("+nip+")");

                lineChartView = findViewById(R.id.chart);
        new load().execute();

    }



    void baca(){
        List yAxisValues = new ArrayList();
        List axisValues = new ArrayList();


        Line line = new Line(yAxisValues).setColor(Color.parseColor("#9C27B0"));

        for (int i = 0; i < axisKet.length; i++) {
            axisValues.add(i, new AxisValue(i).setLabel(axisKet[i]));
        }

        for (int i = 0; i < axisBobot.length; i++) {
            yAxisValues.add(new PointValue(i, axisBobot[i]));
        }

        List lines = new ArrayList();
        lines.add(line);

        LineChartData data = new LineChartData();
        data.setLines(lines);

        Axis axis = new Axis();
        axis.setValues(axisValues);
        axis.setTextSize(16);
        axis.setTextColor(Color.parseColor("#03A9F4"));
        data.setAxisXBottom(axis);

        Axis yAxis = new Axis();
        yAxis.setName("Sales in millions");
        yAxis.setTextColor(Color.parseColor("#03A9F4"));
        yAxis.setTextSize(16);
        data.setAxisYLeft(yAxis);

        lineChartView.setLineChartData(data);
        Viewport viewport = new Viewport(lineChartView.getMaximumViewport());
        viewport.top = 110;
        lineChartView.setMaximumViewport(viewport);
        lineChartView.setCurrentViewport(viewport);
    }

    class load extends AsyncTask<String, String, String> {
        @Override
        protected void onPreExecute() {
            super.onPreExecute();

        }
        protected String doInBackground(String... args) {
            List<NameValuePair> params = new ArrayList<NameValuePair>();
            params.add(new BasicNameValuePair("nip", nip));

            JSONObject json = jParser.makeHttpRequest(ip+"hasil/grafik.php", "GET", params);
            Log.d("show: ", json.toString());
            try {
                sukses = json.getInt(TAG_SUKSES);
                if (sukses == 1) {
                    myJSON = json.getJSONArray(TAG_record);
                    jd=myJSON.length();
                        axisID=new String[jd];
                        axisBobot=new int[jd];
                        axisKet=new String[jd];
                        axisRanking=new int[jd];

                    //axisID axisRanking axisBobot axisKet
                    for (int i = 0; i < jd; i++) {
                        JSONObject c = myJSON.getJSONObject(i);
                        String id_hasil= c.getString(TAG_id_hasil);
                        String bobot =  c.getString("bobot");
                        String ranking =c.getString("ranking");
                        String ket=c.getString("deskripsi");

                        axisID[i]=id_hasil;
                        axisBobot[i]=Integer.parseInt(bobot);
                        axisKet[i]=ket;
                        axisRanking[i]=Integer.parseInt(ranking);

                    }
                } else {

                }
            }
            catch (JSONException e) {e.printStackTrace();}
            return null;
        }

        protected void onPostExecute(String file_url) {

            if (sukses == 0) {
                Toast.makeText(getBaseContext(), "Data Hasil belum ada...", Toast.LENGTH_LONG).show();
            }
            runOnUiThread(new Runnable() {
                public void run() {
                 baca();
                }
            });}
    }

}




mygraph.xml

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

    <TextView        android:id="@+id/txtTitle0"        android:layout_marginTop="7dp"        android:layout_width="wrap_content"        android:layout_height="wrap_content"        android:text="SPK Penilaian Karyawan"        android:textSize="24dp"        android:textColor="#0000ff"        android:textStyle="bold"        android:layout_gravity="center"/>
    <TextView        android:id="@+id/txtTitle"        android:layout_marginTop="7dp"        android:layout_width="wrap_content"        android:layout_height="wrap_content"        android:text="SPK Penilaian Karyawan"        android:textSize="20dp"        android:textColor="#ff0000"        android:textStyle="bold"        android:layout_gravity="center"/>

    <lecho.lib.hellocharts.view.LineChartView        android:id="@+id/chart"        android:layout_width="match_parent"        android:layout_height="match_parent" />

    </LinearLayout>



apply plugin: 'com.android.application'
android {
    compileSdkVersion 28    buildToolsVersion "29.0.3"    defaultConfig {
        applicationId "com.example.spkpenilaiankaryawan"        minSdkVersion 17        targetSdkVersion 28        versionCode 1        versionName "1.0"        testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"    }
    buildTypes {
        release {
            minifyEnabled false            proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'        }
    }
    useLibrary 'org.apache.http.legacy'}

dependencies {
    implementation fileTree(dir: 'libs', include: ['*.jar'])
    implementation 'com.android.support:appcompat-v7:28.0.0'    implementation 'com.android.support.constraint:constraint-layout:1.1.3'    testImplementation 'junit:junit:4.12'    androidTestImplementation 'com.android.support.test:runner:1.0.2'    androidTestImplementation 'com.android.support.test.espresso:espresso-core:3.0.2'
    implementation 'com.android.support:design:28.0.0'    implementation 'com.android.support:cardview-v7:28.0.0'    implementation 'com.github.lecho:hellocharts-library:1.5.8@aar'}

Selasa, 07 Juli 2020

Graph SImple

GRADLE:

apply plugin: 'com.android.application'
android {
    compileSdkVersion 28    buildToolsVersion "29.0.3"    defaultConfig {
        applicationId "com.example.spkpenilaiankaryawan"        minSdkVersion 17        targetSdkVersion 28        versionCode 1        versionName "1.0"        testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"    }
    buildTypes {
        release {
            minifyEnabled false            proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'        }
    }
    useLibrary 'org.apache.http.legacy'}

dependencies {
    implementation fileTree(dir: 'libs', include: ['*.jar'])
    implementation 'com.android.support:appcompat-v7:28.0.0'    implementation 'com.android.support.constraint:constraint-layout:1.1.3'    testImplementation 'junit:junit:4.12'    androidTestImplementation 'com.android.support.test:runner:1.0.2'    androidTestImplementation 'com.android.support.test.espresso:espresso-core:3.0.2'
    implementation 'com.android.support:design:28.0.0'    implementation 'com.android.support:cardview-v7:28.0.0'    implementation 'com.github.lecho:hellocharts-library:1.5.8@aar'}



XML

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

    <TextView        android:id="@+id/txtTitle0"        android:layout_marginTop="7dp"        android:layout_width="wrap_content"        android:layout_height="wrap_content"        android:text="SPK Penilaian Karyawan"        android:textSize="24dp"        android:textColor="#0000ff"        android:textStyle="bold"        android:layout_gravity="center"/>
    <TextView        android:id="@+id/txtTitle"        android:layout_marginTop="7dp"        android:layout_width="wrap_content"        android:layout_height="wrap_content"        android:text="SPK Penilaian Karyawan"        android:textSize="20dp"        android:textColor="#ff0000"        android:textStyle="bold"        android:layout_gravity="center"/>

    <lecho.lib.hellocharts.view.LineChartView        android:id="@+id/chart"        android:layout_width="match_parent"        android:layout_height="match_parent" />

    </LinearLayout>



JAVA




package com.example.spkpenilaiankaryawan;

import android.app.ProgressDialog;
import android.content.Intent;
import android.graphics.Color;
import android.os.AsyncTask;
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.util.Log;
import android.widget.EditText;
import android.widget.ListAdapter;
import android.widget.SimpleAdapter;
import android.widget.TextView;
import android.widget.Toast;

//import androidx.appcompat.app.AppCompatActivity;
import org.apache.http.NameValuePair;
import org.apache.http.message.BasicNameValuePair;
import org.json.JSONArray;
import org.json.JSONException;
import org.json.JSONObject;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;

import lecho.lib.hellocharts.model.Axis;
import lecho.lib.hellocharts.model.AxisValue;
import lecho.lib.hellocharts.model.Line;
import lecho.lib.hellocharts.model.LineChartData;
import lecho.lib.hellocharts.model.PointValue;
import lecho.lib.hellocharts.model.Viewport;
import lecho.lib.hellocharts.view.LineChartView;

//import android.support.v7.app.AppCompatActivity;
public class myGraph extends AppCompatActivity {
    String ip="";

    JSONParser jParser = new JSONParser();
    JSONArray myJSON = null;

    ArrayList<HashMap<String, String>> arrayList;
    private static final String TAG_SUKSES = "sukses";
    private static final String TAG_record = "record";

    private static final String TAG_id_hasil = "id_hasil";
    private static final String TAG_nip = "nip";
    private static final String TAG_nama_penilaian = "nama_penilaian";

    String  nip,nama;
    int sukses;
    int jd=0;

    LineChartView lineChartView;
    String[] axisID;// = {"Jan", "Feb", "Mar", "Apr", "May", "June", "July", "Aug", "Sept","Oct", "Nov", "Dec"};    String[] axisKet;
    int[] axisBobot;
    int[] axisRanking;
    //float[] yAxisData;// = {50, 20, 15, 30, 20, 60, 15, 40, 45, 10, 90, 18};
    @Override    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.mygraph);


        ip = jParser.getIP();


        Intent i = getIntent();
        nip = i.getStringExtra("pk");
        nama= i.getStringExtra("nama");


        TextView txtketerangan = (TextView) findViewById(R.id.txtTitle);
        txtketerangan.setText(nama +" ("+nip+")");

                lineChartView = findViewById(R.id.chart);
        new load().execute();

    }



    void baca(){
        List yAxisValues = new ArrayList();
        List axisValues = new ArrayList();


        Line line = new Line(yAxisValues).setColor(Color.parseColor("#9C27B0"));

        for (int i = 0; i < axisKet.length; i++) {
            axisValues.add(i, new AxisValue(i).setLabel(axisKet[i]));
        }

        for (int i = 0; i < axisBobot.length; i++) {
            yAxisValues.add(new PointValue(i, axisBobot[i]));
        }

        List lines = new ArrayList();
        lines.add(line);

        LineChartData data = new LineChartData();
        data.setLines(lines);

        Axis axis = new Axis();
        axis.setValues(axisValues);
        axis.setTextSize(16);
        axis.setTextColor(Color.parseColor("#03A9F4"));
        data.setAxisXBottom(axis);

        Axis yAxis = new Axis();
        yAxis.setName("Sales in millions");
        yAxis.setTextColor(Color.parseColor("#03A9F4"));
        yAxis.setTextSize(16);
        data.setAxisYLeft(yAxis);

        lineChartView.setLineChartData(data);
        Viewport viewport = new Viewport(lineChartView.getMaximumViewport());
        viewport.top = 110;
        lineChartView.setMaximumViewport(viewport);
        lineChartView.setCurrentViewport(viewport);
    }

    class load extends AsyncTask<String, String, String> {
        @Override        protected void onPreExecute() {
            super.onPreExecute();

        }
        protected String doInBackground(String... args) {
            List<NameValuePair> params = new ArrayList<NameValuePair>();
            params.add(new BasicNameValuePair("nip", nip));

            JSONObject json = jParser.makeHttpRequest(ip+"hasil/grafik.php", "GET", params);
            Log.d("show: ", json.toString());
            try {
                sukses = json.getInt(TAG_SUKSES);
                if (sukses == 1) {
                    myJSON = json.getJSONArray(TAG_record);
                    jd=myJSON.length();
                        axisID=new String[jd];
                        axisBobot=new int[jd];
                        axisKet=new String[jd];
                        axisRanking=new int[jd];

                    //axisID axisRanking axisBobot axisKet
                    for (int i = 0; i < jd; i++) {
                        JSONObject c = myJSON.getJSONObject(i);
                        String id_hasil= c.getString(TAG_id_hasil);
                        String bobot =  c.getString("bobot");
                        String ranking =c.getString("ranking");
                        String ket=c.getString("deskripsi");

                        axisID[i]=id_hasil;
                        axisBobot[i]=Integer.parseInt(bobot);
                        axisKet[i]=ket;
                        axisRanking[i]=Integer.parseInt(ranking);

                    }
                } else {

                }
            }
            catch (JSONException e) {e.printStackTrace();}
            return null;
        }

        protected void onPostExecute(String file_url) {

            if (sukses == 0) {
                Toast.makeText(getBaseContext(), "Data Hasil belum ada...", Toast.LENGTH_LONG).show();
            }
            runOnUiThread(new Runnable() {
                public void run() {
                 baca();
                }
            });}
    }

}


Selasa, 30 Juni 2020

Set Notif Android Studio






package com.example.layanancomplain;

import android.app.NotificationManager;
import android.app.PendingIntent;
import android.content.Context;
import android.content.DialogInterface;
import android.content.Intent;
import android.content.SharedPreferences;
import android.os.AsyncTask;
import android.os.Build;
import android.os.Bundle;
import android.os.Handler;
import android.os.VibrationEffect;
import android.os.Vibrator;
import android.preference.PreferenceManager;
import android.support.v4.app.NotificationCompat;
import android.support.v7.app.AlertDialog;
import android.support.v7.app.AppCompatActivity;
import android.support.v7.widget.CardView;
import android.util.Log;
import android.view.KeyEvent;
import android.view.View;
import android.widget.Toast;

import org.apache.http.NameValuePair;
import org.apache.http.message.BasicNameValuePair;
import org.json.JSONException;
import org.json.JSONObject;

import java.util.ArrayList;
import java.util.List;

public class Menu_engineer extends AppCompatActivity {
    String ip="",PESAN="",id_penugasan;
    Handler mHandler;
    JSONParser jsonParser = new JSONParser();
    Vibrator vibrator;
    CardView btnProfil, btnPenugasan, btnArsip, btnExit;

    String id_user, nama_user;

    @Override    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.menu_engineer);
        ip=jsonParser.getIP();
        vibrator = (Vibrator) getSystemService(VIBRATOR_SERVICE);

        SharedPreferences sharedPref = PreferenceManager.getDefaultSharedPreferences(Menu_engineer.this);
        Boolean Registered = sharedPref.getBoolean("Registered", false);
        if (!Registered){
            finish();
        }else {
            id_user= sharedPref.getString("id_user", "");
            nama_user = sharedPref.getString("nama_user", "");
        }

        btnProfil=(CardView)findViewById(R.id.btnProfil);
        btnProfil.setOnClickListener(new View.OnClickListener() {
            public void onClick(View arg0) {
                Intent i = new Intent(Menu_engineer.this,Profil_user.class);
                i.putExtra("pk", id_user);
                startActivity(i);
            }});

        btnPenugasan=(CardView)findViewById(R.id.btnPenugasan);
        btnPenugasan.setOnClickListener(new View.OnClickListener() {
            public void onClick(View arg0) {
                Intent i = new Intent(Menu_engineer.this,List_penugasan.class);
                startActivity(i);
            }});

        btnArsip=(CardView)findViewById(R.id.btnArsip);
        btnArsip.setOnClickListener(new View.OnClickListener() {
            public void onClick(View arg0) {
                Intent i = new Intent(Menu_engineer.this,List_arsip_penugasan.class);
                startActivity(i);
            }});

        btnExit=(CardView)findViewById(R.id.btnExit);
        btnExit.setOnClickListener(new View.OnClickListener() {
            public void onClick(View arg0) {
               keluarYN();
            }});

        this.mHandler = new Handler();
        m_Runnable.run();
    }

    private final Runnable m_Runnable = new Runnable()    {
        public void run()  {
            new Menu_engineer.load().execute();
            Menu_engineer.this.mHandler.postDelayed(m_Runnable,5000);
        }
    };
    private void addNotification1() {

        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
            vibrator.vibrate(VibrationEffect.createOneShot(1000, VibrationEffect.DEFAULT_AMPLITUDE));
        }

        Toast.makeText(Menu_engineer.this,"Info "+PESAN,Toast.LENGTH_SHORT).show();
        NotificationCompat.Builder builder =
                new NotificationCompat.Builder(this)
                        .setSmallIcon(R.drawable.phone_icon)
                        .setContentTitle("Konfirmasi Teknisi Untuk Penugasan ")
                        .setContentText(PESAN);

        Intent notificationIntent = new Intent(this, NorifCustomer.class);//eventList        notificationIntent.putExtra("id_penugasan", id_penugasan);
        notificationIntent.putExtra("PESAN", PESAN);

        PendingIntent contentIntent = PendingIntent.getActivity(this, 0, notificationIntent,PendingIntent.FLAG_UPDATE_CURRENT);
        builder.setContentIntent(contentIntent);
        NotificationManager manager = (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE);
        manager.notify(0, builder.build());

    }
    public boolean onKeyDown(int keyCode, KeyEvent event) {
        if (keyCode == KeyEvent.KEYCODE_BACK) {
            keluarYN();
            return true;
        }
        return super.onKeyDown(keyCode, event);
    }

    public void keluar(){
        new AlertDialog.Builder(this)
                .setTitle("Menutup Aplikasi")
                .setMessage("Terimakasih... Anda Telah Menggunakan Aplikasi Ini")
                .setNeutralButton("Tutup", new DialogInterface.OnClickListener() {
                    public void onClick(DialogInterface dlg, int sumthin) {
                        finish();
                    }})
                .show();
    }


    public void keluarYN(){
        AlertDialog.Builder ad=new AlertDialog.Builder(Menu_engineer.this);
        ad.setTitle("Konfirmasi");
        ad.setMessage("Apakah benar ingin keluar?");

        ad.setPositiveButton("OK",new DialogInterface.OnClickListener(){
            @Override            public void onClick(DialogInterface dialog, int which) {
                keluar();
            }});

        ad.setNegativeButton("No",new DialogInterface.OnClickListener(){
            public void onClick(DialogInterface arg0, int arg1) {
            }});

        ad.show();
    }


    int adabaru=0;
    class load extends AsyncTask<String, String, String> {
        @Override        protected void onPreExecute() {
            super.onPreExecute();
        }
        protected String doInBackground(String... args) {
            List<NameValuePair> params = new ArrayList<NameValuePair>();
            params.add(new BasicNameValuePair("id_user", id_user));
            JSONObject json = jsonParser.makeHttpRequest(ip+"penugasanteknisi.php", "GET", params);
            Log.d("show: ", json.toString());
            try {
                adabaru= json.getInt("sukses");
                if(adabaru==1){
                    PESAN= json.getString("PESAN");
                    id_penugasan= json.getString("id_penugasan");
                }
            }
            catch (JSONException e) {e.printStackTrace();}
            return null;
        }

        protected void onPostExecute(String file_url) {
            runOnUiThread(new Runnable() {
                public void run() {
                    if (adabaru==1){
                        adabaru=0;
                        addNotification1();
                        Toast.makeText(Menu_engineer.this,"Ada Info dari Petugas...="+PESAN,Toast.LENGTH_SHORT).show();
                    }
                }
            });}
    }

}


<?php 
require_once"konmysqli.php";
$respon = array();

if (isset($_GET["id_user"])) {
    $id_user = $_GET['id_user'];
 $sql="SELECT * FROM `$tbpenugasan` WHERE `$tbpenugasan`.`id_user` = 
 '$id_user' and  `$tbpenugasan`.`notif_teknisi`='0'";
    
 $jum=getJum($conn,$sql);
    if ($jum>0) {
            $d=getField($conn,$sql);
      $record = array();
            $id_penugasan = $d["id_penugasan"];
   $pesanketeknisi= $d["pesan"];
   $id_user = $d["id_user"];
   $status = $d["status"];
   $id_complain= $d["id_complain"];
   
   $namateknisi=getUserM($conn,$id_user);
   $pesan= $d["pesan"];
   
   $respon["pesankecustomer"]="Status $status |Penugasan ke Teknisi $namateknisi ($id_user)";
   
   $respon["PESAN"]="$pesan (NO Complain $id_complain)";
   
   $respon["id_penugasan"]=$id_penugasan;
   $respon["pesan"] =$pesan;
   
   
            $respon["sukses"] = 1;
   
   $sqlm="update `$tbpenugasan` set `notif_teknisi`='1' WHERE `id_penugasan` = '$id_penugasan'";
   //processM($conn,$sqlm);
   
   
             $respon["pesan"] = "$jum record";
   echo json_encode($respon);
        } else {
            $respon["sukses"] = 0;
            $respon["pesan"] = "0 record";
            echo json_encode($respon);
        }

} else {
    $respon["sukses"] = 0;
    $respon["pesan"] = "? lengkapi data";
    echo json_encode($respon);
}
?>

<?php

function getJum($conn,$sql){
  $rs=$conn->query($sql);
  $jum= $rs->num_rows;
 $rs->free();
 return $jum;
}

function getField($conn,$sql){
 $rs=$conn->query($sql);
 $rs->data_seek(0);
 $d= $rs->fetch_assoc();
 $rs->free();
 return $d;
}
?>