Rabu, 04 Juli 2018

XML Android Studio LIST

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


mahasiswa_list.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="fill_parent"
    android:orientation="vertical">
    <!-- Main ListView
         Jangan lupa selalu berikan id value sebagai list(@android:id/list)
    -->
    <ListView
        android:id="@android:id/list"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"/>

</LinearLayout>



desain_list.xml

<?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="wrap_content"
    android:background="@drawable/list_selector"
    android:orientation="horizontal"
    android:padding="5dip" >

<!--  ListRow Left sied Thumbnail image -->
<LinearLayout android:id="@+id/thumbnail"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:padding="3dip"
        android:layout_alignParentLeft="true"
        android:background="@drawable/image_bg"
    android:layout_marginRight="5dip">
     
<ImageView   
android:id="@+id/list_imagelkp" 
        android:layout_width="50dip"
        android:layout_height="50dip"
        android:src="@drawable/gprofile"/>
     
</LinearLayout>
 
<!-- Deskripsi LP2M ARAY-->

    <TextView
        android:id="@+id/txtNamalkp"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignTop="@+id/thumbnail"
        android:layout_toRightOf="@+id/thumbnail"
        android:text="From zero to hero"
        android:textColor="#FF0000"
        android:textSize="15dip"
        android:textStyle="bold"
        android:typeface="sans" />

<!-- Judul LP2M ARAY-->

    <TextView
        android:id="@+id/txtDeskripsilkp"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:layout_below="@id/txtNamalkp"
        android:layout_marginTop="1dip"
        android:layout_toRightOf="@+id/thumbnail"
        android:text="Just gona stand there and ..."
        android:textColor="#343434"
        android:textSize="10dip"
        android:textStyle="bold" />

<!-- Bar LP2M ARAY -->

    <TextView
        android:id="@+id/kode_k"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentRight="true"
        android:layout_alignTop="@id/txtNamalkp"
        android:layout_marginRight="5dip"
        android:gravity="right"
        android:text="5:45"
        android:textColor="#000"
        android:textSize="10dip"
        android:textStyle="bold"
android:visibility="gone" />
   
     <!-- Rightend Arrow --> 
     <ImageView android:layout_width="wrap_content"
      android:layout_height="wrap_content"
      android:src="@drawable/arrow"
      android:layout_alignParentRight="true"
      android:layout_centerVertical="true"/>

</RelativeLayout>



MahasiswaList.java


package com.lp2maray.json;

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

import org.json.JSONArray;
import org.json.JSONException;
import org.json.JSONObject;

import org.apache.http.NameValuePair;

import android.app.ListActivity;
import android.app.ProgressDialog;
import android.content.Intent;
import android.os.AsyncTask;
import android.os.Bundle;
import android.util.Log;
import android.view.KeyEvent;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemClickListener;
import android.widget.ListAdapter;
import android.widget.ListView;
import android.widget.SimpleAdapter;
import android.widget.TextView;

public class MahasiswaList extends ListActivity {
String ip="";

private ProgressDialog pDialog;
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_kode_mahasiswa = "kode_mahasiswa";
private static final String TAG_telepon = "telepon";
private static final String TAG_nama = "nama";

@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.mahasiswa_list);
arrayList = new ArrayList<HashMap<String, String>>();
ip=jParser.getIP();

new load().execute();

ListView lv = getListView();
lv.setOnItemClickListener(new OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view,int position, long id) {
String pk = ((TextView) view.findViewById(R.id.kode_k)).getText().toString();
Intent i = new Intent(getApplicationContext(), Mahasiswa.class);
i.putExtra("pk", pk);
startActivityForResult(i, 100);
}});
}

@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if (resultCode == 100) {// jika result code 100
Intent intent = getIntent();
finish();
startActivity(intent);
}
}

class load extends AsyncTask<String, String, String> {
@Override
protected void onPreExecute() {
super.onPreExecute();
pDialog = new ProgressDialog(MahasiswaList.this);
pDialog.setMessage("Load data. Silahkan Tunggu...");
pDialog.setIndeterminate(false);
pDialog.setCancelable(false);
pDialog.show();
}
protected String doInBackground(String... args) {
List<NameValuePair> params = new ArrayList<NameValuePair>();
JSONObject json = jParser.makeHttpRequest(ip+"mahasiswa/mahasiswa_show.php", "GET", params);
Log.d("show: ", json.toString());
try {
int sukses = json.getInt(TAG_SUKSES);
if (sukses == 1) {
myJSON = json.getJSONArray(TAG_record);
for (int i = 0; i < myJSON.length(); i++) {
JSONObject c = myJSON.getJSONObject(i);
String kode_mahasiswa= c.getString(TAG_kode_mahasiswa);
String telepon= c.getString(TAG_telepon);
String nama = c.getString(TAG_nama);

HashMap<String, String> map = new HashMap<String, String>();
map.put(TAG_kode_mahasiswa, kode_mahasiswa);
map.put(TAG_nama, nama);
map.put(TAG_telepon, telepon);

arrayList.add(map);
}
} else {
Intent i = new Intent(getApplicationContext(),Mahasiswa.class);
i.putExtra("pk", "");
i.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
startActivity(i);
}
}
catch (JSONException e) {e.printStackTrace();}
return null;
}

protected void onPostExecute(String file_url) {
pDialog.dismiss();
runOnUiThread(new Runnable() {
public void run() {
ListAdapter adapter = new SimpleAdapter(MahasiswaList.this, arrayList,R.layout.desain_list, new String[] { TAG_kode_mahasiswa,TAG_nama,TAG_telepon},new int[] { R.id.kode_k, R.id.txtNamalkp, R.id.txtDeskripsilkp});
setListAdapter(adapter);
}
});}
}

public boolean onCreateOptionsMenu(Menu menu) {
        menu.add(0, 1, 0, "Add New").setIcon(R.drawable.add);
        return true;
    }

    public boolean onOptionsItemSelected(MenuItem item) {
        switch (item.getItemId()) {
        case 1:       
        Intent i = new Intent(getApplicationContext(), Mahasiswa.class);
i.putExtra("pk", "");
startActivityForResult(i, 100);
            return true;
        }
        return false;
    }

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


}
++++++++++++++++++++++++++++++++


mahasiswa.xml

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context=".MainActivity" >
   
<ScrollView
    android:layout_marginBottom="50dip"
 xmlns:android="http://schemas.android.com/apk/res/android"
 android:layout_width="fill_parent"
 android:layout_height="wrap_content"
 android:background="#999999"
 >
<TableLayout android:id="@+id/TableLayout01"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
xmlns:android="http://schemas.android.com/apk/res/android"
android:background="#fff">

<TextView
android:id="@+id/txtMarquee"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text=""
android:textSize="14sp"
android:typeface="sans"
android:textColor="#ffffff"
android:background="#000000"
android:singleLine="true"
android:ellipsize="marquee"
android:marqueeRepeatLimit="marquee_forever">
</TextView>


  <ImageView
   android:id="@+id/myGambar" android:layout_centerHorizontal="true"
   android:src="@drawable/admin"
   android:layout_width="100dp"
   android:layout_height="100dp"
   />

   
<TableRow android:id="@+id/TableRow01" android:layout_width="wrap_content" android:layout_height="wrap_content"> 

      <TextView
          android:layout_width="wrap_content"
          android:layout_height="wrap_content"
          android:text="kode_mahasiswa"
          android:textColor="#000000" />

      <EditText
          android:id="@+id/txtkode_mahasiswa"
          android:textColor="#000000" 
          android:hint="kode_mahasiswa" />

</TableRow>   

<TableRow android:id="@+id/TableRow02" android:layout_width="wrap_content" android:layout_height="wrap_content"> 
      <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:textColor="#000000" 
        android:text="nama" />
      <EditText android:id="@+id/txtnama" 
android:textColor="#000000" 
           />
</TableRow>   


<TableRow android:id="@+id/TableRow03" android:layout_width="wrap_content" android:layout_height="wrap_content"> 
      <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:textColor="#000000" 
        android:text="telepon" />
      <EditText android:id="@+id/txttelepon" 
android:textColor="#000000" 
          android:hint="telepon" 
          />
</TableRow>   


<TableRow android:id="@+id/TableRow04" android:layout_width="wrap_content" android:layout_height="wrap_content"> 
      <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:textColor="#000000" 
        android:text="email" />
      <EditText android:id="@+id/txtemail" 
          android:textColor="#000000" 
          android:hint="email" 
          />
          />
</TableRow>   


<TableRow android:id="@+id/TableRow05" android:layout_width="wrap_content" android:layout_height="wrap_content"> 
      <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:textColor="#000000" 
        android:text="keterangan" />
  <TextView android:text="" />
</TableRow>   
 <EditText android:id="@+id/txtketerangan"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:lines="2"
        android:textColor="#000000" 
        android:hint="keterangan" 
        android:gravity="top"/>
<TableRow android:id="@+id/TableRow06" android:layout_width="wrap_content" android:layout_height="wrap_content"> 
      <TextView
        android:layout_width="wrap_content"
        android:textColor="#000000" 
        android:layout_height="wrap_content"
        android:text="status" />
      <EditText android:id="@+id/txtstatus" 
          android:textColor="#000000" 
          android:hint="status" 
          />
</TableRow>   

  <Button android:id="@+id/btnproses"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:text="Proses"
        android:layout_weight="1"/>
  <Button android:id="@+id/btnhapus"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:text="Hapus"
        android:visibility="gone"
        android:layout_weight="1"/>

</TableLayout>
</ScrollView>
</RelativeLayout>


Mahasiswa.java

package com.lp2maray.json;

import java.util.ArrayList;
import java.util.Calendar;
import java.util.List;
import org.apache.http.NameValuePair;
import org.apache.http.message.BasicNameValuePair;
import org.json.JSONArray;
import org.json.JSONException;
import org.json.JSONObject;
import android.app.Activity;
import android.app.AlertDialog;
import android.app.ProgressDialog;
import android.content.DialogInterface;
import android.content.Intent;
import android.os.AsyncTask;
import android.os.Bundle;
import android.text.Html;
import android.text.TextUtils;
import android.util.Log;
import android.view.KeyEvent;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;

public class Mahasiswa extends Activity {
String ip="";
String kode_mahasiswa;
String kode_mahasiswa0="";

EditText txtKode_mahasiswa;
EditText txtNama;
EditText txtTelepon;
EditText txtEmail;
EditText txtKeterangan;
EditText txtStatus;

Button btnProses;
Button btnHapus;

private ProgressDialog pDialog;
JSONParser jsonParser = new JSONParser();

private static final String TAG_SUKSES = "sukses";
private static final String TAG_record = "record";

private static final String TAG_nama = "nama";
private static final String TAG_telepon = "telepon";
private static final String TAG_email = "email";
private static final String TAG_keterangan = "keterangan";
private static final String TAG_status = "status";

@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.mahasiswa);

ip=jsonParser.getIP();
callMarquee();

txtKode_mahasiswa = (EditText) findViewById(R.id.txtkode_mahasiswa);
txtNama= (EditText) findViewById(R.id.txtnama);
txtEmail= (EditText) findViewById(R.id.txtemail);
txtTelepon= (EditText) findViewById(R.id.txttelepon);
txtKeterangan = (EditText) findViewById(R.id.txtketerangan);
txtStatus= (EditText) findViewById(R.id.txtstatus);

btnProses= (Button) findViewById(R.id.btnproses);
btnHapus = (Button) findViewById(R.id.btnhapus);

Intent i = getIntent();
kode_mahasiswa0 = i.getStringExtra("pk");

if(kode_mahasiswa0.length()>0){
new get().execute();
btnProses.setText("Update Data");
btnHapus.setVisibility(View.VISIBLE);
}
else{
btnProses.setText("Add New Data");
btnHapus.setVisibility(View.GONE);
}

btnProses.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View arg0) {
kode_mahasiswa= txtKode_mahasiswa.getText().toString();
String lnama= txtNama.getText().toString();
String lemail= txtEmail.getText().toString();
String ltelepon= txtTelepon.getText().toString();
String lketerangan= txtKeterangan.getText().toString();
String lstatus= txtStatus.getText().toString();

if(kode_mahasiswa.length()<1){lengkapi("kode_mahasiswa");}
else if(lnama.length()<1){lengkapi("nama");}
else if(lemail.length()<1){lengkapi("email");}
else if(ltelepon.length()<1){lengkapi("telpon");}
else{
if(kode_mahasiswa0.length()>0){
new update().execute();
}
else{
new save().execute();
}
}//else

}});

btnHapus.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View arg0) {
new del().execute();
}});
}

//++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
class get extends AsyncTask<String, String, String> {
@Override
protected void onPreExecute() {
super.onPreExecute();
pDialog = new ProgressDialog(Mahasiswa.this);
pDialog.setMessage("Load data detail. Silahkan tunggu...");
pDialog.setIndeterminate(false);
pDialog.setCancelable(true);
pDialog.show();
}
protected String doInBackground(String... params) {
int sukses;
try {
List<NameValuePair> params1 = new ArrayList<NameValuePair>();
params1.add(new BasicNameValuePair("kode_mahasiswa", kode_mahasiswa0));

String url=ip+"mahasiswa/mahasiswa_detail.php";
Log.v("detail",url);
JSONObject json = jsonParser.makeHttpRequest(url, "GET", params1);
Log.d("detail", json.toString());
sukses = json.getInt(TAG_SUKSES);
if (sukses == 1) {
JSONArray myObj = json.getJSONArray(TAG_record); // JSON Array
final JSONObject myJSON = myObj.getJSONObject(0);
runOnUiThread(new Runnable() {
public void run() {
try {
txtKode_mahasiswa.setText(kode_mahasiswa0);
txtNama.setText(myJSON.getString(TAG_nama));
txtTelepon.setText(myJSON.getString(TAG_telepon));
txtEmail.setText(myJSON.getString(TAG_email));
txtKeterangan.setText(myJSON.getString(TAG_keterangan));
txtStatus.setText(myJSON.getString(TAG_status));
}
catch (JSONException e) {e.printStackTrace();}
}});
}
else{
// jika id tidak ditemukan
}
} catch (JSONException e) {
e.printStackTrace();
}
return null;
}
protected void onPostExecute(String file_url) {pDialog.dismiss();}
}
//++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

class save extends AsyncTask<String, String, String> {
@Override
protected void onPreExecute() {
super.onPreExecute();
pDialog = new ProgressDialog(Mahasiswa.this);
pDialog.setMessage("Menyimpan data ...");
pDialog.setIndeterminate(false);
pDialog.setCancelable(true);
pDialog.show();
}
protected String doInBackground(String... args) {
kode_mahasiswa = txtKode_mahasiswa.getText().toString();
String lnama= txtNama.getText().toString();
String lemail= txtEmail.getText().toString();
String ltelepon= txtTelepon.getText().toString();
String lketerangan= txtKeterangan.getText().toString();
String lstatus= txtStatus.getText().toString();

List<NameValuePair> params = new ArrayList<NameValuePair>();
params.add(new BasicNameValuePair("kode_mahasiswa0", kode_mahasiswa0));
params.add(new BasicNameValuePair("kode_mahasiswa", kode_mahasiswa));
params.add(new BasicNameValuePair("nama", lnama));
params.add(new BasicNameValuePair("email", lemail));
params.add(new BasicNameValuePair("telepon", ltelepon));
params.add(new BasicNameValuePair("keterangan", lketerangan));
params.add(new BasicNameValuePair("status", lstatus));

String url=ip+"mahasiswa/mahasiswa_add.php";
Log.v("add",url);
JSONObject json = jsonParser.makeHttpRequest(url,"POST", params);
Log.d("add", json.toString());
try {
int sukses = json.getInt(TAG_SUKSES);
if (sukses == 1) {
Intent i = getIntent();
setResult(100, i);
finish();
} else {
// gagal update data
}
} catch (JSONException e) {
e.printStackTrace();
}
return null;
}

protected void onPostExecute(String file_url) {pDialog.dismiss();}
}
//++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

class update extends AsyncTask<String, String, String> {
@Override
protected void onPreExecute() {
super.onPreExecute();
pDialog = new ProgressDialog(Mahasiswa.this);
pDialog.setMessage("Mengubah data ...");
pDialog.setIndeterminate(false);
pDialog.setCancelable(true);
pDialog.show();
}
protected String doInBackground(String... args) {
kode_mahasiswa = txtKode_mahasiswa.getText().toString();
String lnama= txtNama.getText().toString();
String lemail= txtEmail.getText().toString();
String ltelepon= txtTelepon.getText().toString();
String lketerangan= txtKeterangan.getText().toString();
String lstatus= txtStatus.getText().toString();

List<NameValuePair> params = new ArrayList<NameValuePair>();
params.add(new BasicNameValuePair("kode_mahasiswa0", kode_mahasiswa0));
params.add(new BasicNameValuePair("kode_mahasiswa", kode_mahasiswa));
params.add(new BasicNameValuePair("nama", lnama));
params.add(new BasicNameValuePair("email", lemail));
params.add(new BasicNameValuePair("telepon", ltelepon));
params.add(new BasicNameValuePair("keterangan", lketerangan));
params.add(new BasicNameValuePair("status", lstatus));

String url=ip+"mahasiswa/mahasiswa_update.php";
Log.v("update",url);
JSONObject json = jsonParser.makeHttpRequest(url,"POST", params);
Log.d("add", json.toString());
try {
int sukses = json.getInt(TAG_SUKSES);
if (sukses == 1) {
Intent i = getIntent();
setResult(100, i);
finish();
} else {
// gagal update data
}
} catch (JSONException e) {
e.printStackTrace();
}
return null;
}

protected void onPostExecute(String file_url) {pDialog.dismiss();}
}
//++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

class del extends AsyncTask<String, String, String> {
@Override
protected void onPreExecute() {
super.onPreExecute();
pDialog = new ProgressDialog(Mahasiswa.this);
pDialog.setMessage("Menghapus data...");
pDialog.setIndeterminate(false);
pDialog.setCancelable(true);
pDialog.show();
}

protected String doInBackground(String... args) {
int sukses;
try {
List<NameValuePair> params = new ArrayList<NameValuePair>();
params.add(new BasicNameValuePair("kode_mahasiswa", kode_mahasiswa0));

String url=ip+"mahasiswa/mahasiswa_del.php";
Log.v("delete",url);
JSONObject json = jsonParser.makeHttpRequest(url, "GET", params);
Log.d("delete", json.toString());
sukses = json.getInt(TAG_SUKSES);
if (sukses == 1) {
Intent i = getIntent();
setResult(100, i);
finish();
}
}
catch (JSONException e) {e.printStackTrace();}
return null;
}

protected void onPostExecute(String file_url) {pDialog.dismiss();}
}
//++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

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


void callMarquee(){
Calendar cal = Calendar.getInstance();
int jam = cal.get(Calendar.HOUR);
int menit= cal.get(Calendar.MINUTE);
int detik= cal.get(Calendar.SECOND);

int tgl= cal.get(Calendar.DATE);
int bln= cal.get(Calendar.MONTH);
int thn= cal.get(Calendar.YEAR);

String stgl=String.valueOf(tgl)+"-"+String.valueOf(bln)+"-"+String.valueOf(thn);
String sjam=String.valueOf(jam)+":"+String.valueOf(menit)+":"+String.valueOf(detik);

TextView  txtMarquee=(TextView)findViewById(R.id.txtMarquee);
txtMarquee.setSelected(true);
String kata="Selamat Datang @lp2maray.com Aplikasi Android  "+stgl+"/"+sjam+" #";
String kalimat=String.format("%1$s",TextUtils.htmlEncode(kata));
txtMarquee.setText(Html.fromHtml(kalimat+kalimat+kalimat));
}

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

}


+++++++++++++++
JSONParser .java

package com.lp2maray.json;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.UnsupportedEncodingException;
import java.util.List;

import org.apache.http.HttpEntity;
import org.apache.http.HttpResponse;
import org.apache.http.NameValuePair;
import org.apache.http.client.ClientProtocolException;
import org.apache.http.client.entity.UrlEncodedFormEntity;
import org.apache.http.client.methods.HttpGet;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.client.utils.URLEncodedUtils;
import org.apache.http.impl.client.DefaultHttpClient;
import org.json.JSONException;
import org.json.JSONObject;

import android.util.Log;

public class JSONParser {

static InputStream is = null;
static JSONObject jObj = null;
static String json = "";

public JSONParser() {}

String getIP() {
return "http://172.20.10.4/2017/masterCSSmysqliAndroid/";
}

public JSONObject makeHttpRequest(String url, String method,List<NameValuePair> params) {
try {
if(method == "POST"){
DefaultHttpClient httpClient = new DefaultHttpClient();
HttpPost httpPost = new HttpPost(url);
httpPost.setEntity(new UrlEncodedFormEntity(params));
HttpResponse httpResponse = httpClient.execute(httpPost);
HttpEntity httpEntity = httpResponse.getEntity();
is = httpEntity.getContent();
}
else if(method == "GET"){
DefaultHttpClient httpClient = new DefaultHttpClient();
String paramString = URLEncodedUtils.format(params, "utf-8");
url += "?" + paramString;
HttpGet httpGet = new HttpGet(url);
HttpResponse httpResponse = httpClient.execute(httpGet);
HttpEntity httpEntity = httpResponse.getEntity();
is = httpEntity.getContent();
}

} catch (UnsupportedEncodingException e) {
e.printStackTrace();
} catch (ClientProtocolException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
try {
BufferedReader reader = new BufferedReader(new InputStreamReader(is, "iso-8859-1"), 8);
StringBuilder sb = new StringBuilder();
String line = null;
while ((line = reader.readLine()) != null) {
sb.append(line + "\n");
}
is.close();
json = sb.toString();
} catch (Exception e) {
Log.e("Buffer Error", "Error converting result " + e.toString());
}

try {
jObj = new JSONObject(json);
} catch (JSONException e) {
Log.e("JSON Parser", "Error parsing data " + e.toString());
}

return jObj;
}
}





Senin, 02 Juli 2018

Gradle Oh Gradle

apply plugin: 'com.android.application'

android {
    compileSdkVersion 27
    defaultConfig {
        applicationId "com.example.lenovo.koperasi"
        minSdkVersion 17
        targetSdkVersion 27
        versionCode 1
        versionName "1.0"
        testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
    }
    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }
    useLibrary 'org.apache.http.legacy'

}

dependencies {
    implementation fileTree(dir: 'libs', include: ['*.jar'])
    implementation 'com.android.support:appcompat-v7:27.1.1'
    implementation 'com.android.support.constraint:constraint-layout:1.1.0'
    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'

    compile 'org.apache.httpcomponents:httpcore:4.4.1'
    compile "cz.msebera.android:httpclient:4.4.1.2"

}

Senin, 16 April 2018

Selisih Waktu Proses




long start;
long end;


 start = System.currentTimeMillis();
//++++++++++++++++++++++++++++++++++++++++proses2
end = System.currentTimeMillis();
String selisih=((end - start) / 1000.0) + " Milidetik"

+++++++++++++++++++++++++++++++++++++++++++++++++++++++JAVA SWINGNYA



import java.awt.Dimension;
import java.awt.Toolkit;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.File;
import java.io.IOException;
import java.util.Calendar;
import java.util.Date;
import javax.swing.JFileChooser;
import javax.swing.JFrame;
import javax.swing.JOptionPane;
import javax.swing.filechooser.FileNameExtensionFilter;

public class mainMenu extends javax.swing.JFrame {
      Dimension UM = Toolkit.getDefaultToolkit().getScreenSize();
    public mainMenu() {
        initComponents();
       
         jam();
        this.setTitle("Wellcome to Cryptograph World");
                setLocation(UM.width/2-getWidth()/2,UM.height/2-getHeight()/2);
show();
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    }

    private void btnPilihSimpanPublicActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_btnPilihSimpanPublicActionPerformed
   if (!(txt_key.getText().equals(""))){
                    try {
                    JFileChooser savedata = new JFileChooser("D:\\");
                    savedata.setFileSelectionMode(JFileChooser.FILES_AND_DIRECTORIES);
                    int returnVal = savedata.showSaveDialog(null);
                    if(returnVal == JFileChooser.APPROVE_OPTION) {

                    txt_public.setText(savedata.getSelectedFile().toString());
                     }
                    } catch (Exception e) {
                    }
                 }else{
                       JOptionPane.showMessageDialog(null,"please input your key name!");
                        }
    }//GEN-LAST:event_btnPilihSimpanPublicActionPerformed

    private void btnHelpActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_btnHelpActionPerformed
    //new Help().setVisible(true);
     // this.dispose();
    }//GEN-LAST:event_btnHelpActionPerformed

    private void btnPilihSimpanPrivateActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_btnPilihSimpanPrivateActionPerformed
       if(!(txt_key.getText().equals("") || txt_public.getText().equals(""))){
               try {
                        JFileChooser savedata = new JFileChooser("D:\\");
                        savedata.setFileSelectionMode(JFileChooser.FILES_AND_DIRECTORIES);
                        int returnVal = savedata.showSaveDialog(null);
                        if(returnVal == JFileChooser.APPROVE_OPTION) {

                        txt_private.setText(savedata.getSelectedFile().toString());
                    }
                 } catch (Exception e) {
               }
                }else{
                   JOptionPane.showMessageDialog(null,"please input key name and choose your save public!");
                }
    }//GEN-LAST:event_btnPilihSimpanPrivateActionPerformed

    private void btnGenerateActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_btnGenerateActionPerformed
        Thread t = new Thread(new Runnable(){
            public void run(){
               
                progressbar.setIndeterminate(true);
                long start;
                long end;

                String namakunci = (txt_key.getText());
                String a         = (txt_public.getText());
                String b         = (txt_private.getText());

                KeysGenerator key = new KeysGenerator();
                if(!(txt_key.getText().equals("") || txt_public.getText().equals(""))){

                try{

                        key.setId(namakunci);
                        key.setDir(a.replace("\\", "/")+"/");
                        key.setDirec(b.replace("\\", "/")+"/");
                        start = System.currentTimeMillis();//menghitung waktu proses dalam detik
                        key.createKeys();                           

                        progressbar.setIndeterminate(false);
                        end = System.currentTimeMillis();
                        //System.out.println("\nWaktu yang diperlukan selama proses adalah " + ((end - start) / 1000.0) + " detik");
                        JOptionPane.showMessageDialog(null, "Generate Key Success with duration : " +((end - start) / 1000.0) + " Milidetik", "Message", JOptionPane.INFORMATION_MESSAGE);

                        key.getLog();
                            txt_private.setText("");
                            txt_key.setText("");
                            txt_public.setText("");

                }catch(Exception e){
                    JOptionPane.showMessageDialog(null, "Failed Generate Key", "Warning", JOptionPane.ERROR_MESSAGE);
                    }
                     }else{
                        JOptionPane.showMessageDialog(null, "Please entry all coloumn", "Warning", JOptionPane.ERROR_MESSAGE);

                }
            }
        });
        t.start();
           
    }//GEN-LAST:event_btnGenerateActionPerformed

    private void btnCancelActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_btnCancelActionPerformed
        txt_private.setText("");
        txt_key.setText("");
        txt_public.setText("");
    }//GEN-LAST:event_btnCancelActionPerformed

    private void btnPilihFileAsalActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_btnPilihFileAsalActionPerformed
        JFileChooser datafile = new JFileChooser("D:\\");
        FileNameExtensionFilter filter = new FileNameExtensionFilter("File Document", "txt","doc","docx","xls","xlsx","ppt","pptx","pdf");
        FileNameExtensionFilter image = new FileNameExtensionFilter("File Images", "jpg","png","bmp");
        FileNameExtensionFilter audio = new FileNameExtensionFilter("File Audio", "wav","amr", "mp3");
        FileNameExtensionFilter files = new FileNameExtensionFilter("File", "zip","rar");
       
        datafile.setFileFilter(image);
        datafile.setFileFilter(files);
        datafile.setFileFilter(audio);
        datafile.setFileFilter(filter);
        datafile.setFileFilter(filter);
       
        int returnVal = datafile.showOpenDialog(null);
        if(returnVal == JFileChooser.APPROVE_OPTION) {
            File file = datafile.getSelectedFile();
            String dir = file.getAbsolutePath();
           
            //System.out.println(dir);
            txt_chose.setText(dir);
        }
    }//GEN-LAST:event_btnPilihFileAsalActionPerformed

    private void btnSimpanHasilActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_btnSimpanHasilActionPerformed
       JFileChooser savedata = new JFileChooser("D:\\");
            savedata.setFileSelectionMode(JFileChooser.FILES_AND_DIRECTORIES);
            int returnVal = savedata.showSaveDialog(null);
            if(returnVal == JFileChooser.APPROVE_OPTION) {
         
            txt_output.setText(savedata.getSelectedFile().toString());
         
        }
    }//GEN-LAST:event_btnSimpanHasilActionPerformed

    private void btnPilihKeyActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_btnPilihKeyActionPerformed
        //pilih PubKey
        JFileChooser datafile = new JFileChooser("D:\\");
        FileNameExtensionFilter filter = new FileNameExtensionFilter("public key","key");
        datafile.setFileFilter(filter);
        int returnVal = datafile.showOpenDialog(null);
        if(returnVal == JFileChooser.APPROVE_OPTION) {
        File file = datafile.getSelectedFile();
        String dir = file.getAbsolutePath();
           
            txt_select.setText(dir);
        }
    }//GEN-LAST:event_btnPilihKeyActionPerformed

    private void btnEnkripActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_btnEnkripActionPerformed

        Thread t = new Thread(new Runnable(){
         
           public void run(){
             
            progressbar.setIndeterminate(true);
            long start;
            long end;

            String Kunci = (txt_select.getText());
            String filename = (txt_chose.getText());//file dipilih
            String fileoutput = (txt_output.getText());//directory-folder mau simpan di?
            int dot = filename.lastIndexOf(".");
            int sep = filename.replace("\\", "/").lastIndexOf("/");
System.out.println("dot="+dot);//22
System.out.println("sep="+sep);//6

            EncryptionFile enk = new EncryptionFile();

            if (!(Kunci.equals("") || filename.equals(""))){

            try {

                    enk.setPublicKey(Kunci);//membaca isi file Public key, set= n dan e
                    //String directory, String filename, String extensi=D:/Lat/en.Sistem Berjalan.doc
                    enk.setFile(fileoutput.replace("\\", "/"), filename.substring(sep + 1, dot), filename.substring(dot + 1)  );
                    System.out.println("file1="+fileoutput.replace("\\", "/"));//D:/Lat
                    System.out.println("file2="+filename.substring(sep + 1, dot));//Sistem Berjalan
                    System.out.println("file3="+filename.substring(dot + 1));//doc
                    System.out.println("file4="+filename.replace("\\", "/"));
                   
                    start = System.currentTimeMillis();//menghitung waktu proses dalam detik
                    enk.encrypt(filename.replace("\\", "/"));//D:/Lat/Sistem Berjalan.doc

                     progressbar.setIndeterminate(false);
                     end = System.currentTimeMillis();
                    //System.out.println("\nWaktu yang diperlukan selama proses adalah " + ((end - start) / 1000.0) + " detik");
                    JOptionPane.showMessageDialog(null, "Encryption Success with duration  : " + ((end - start) / 1000.0) + " Milidetik", "Message", JOptionPane.INFORMATION_MESSAGE);

                   
                } catch (IOException ex) {
                    JOptionPane.showMessageDialog(null, "Failed Encryption", "Warning", JOptionPane.ERROR_MESSAGE);
             }                                         

           }else{
                JOptionPane.showMessageDialog(null, "Please entry all coloumn", "Warning", JOptionPane.ERROR_MESSAGE);
            }
           }
       });
       t.start();
    }//GEN-LAST:event_btnEnkripActionPerformed

    private void btnDekripActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_btnDekripActionPerformed
        Thread t = new Thread(new Runnable(){
             public void run(){
               
                progressbar.setIndeterminate(true);
                long start;
                long end;

                String kunciPrivate = (txt_select.getText());
                String file = (txt_chose.getText());
                String fileoutput = (txt_output.getText());
                int dot = file.lastIndexOf(".");
                int sep = file.replace("\\", "/").lastIndexOf("/");

                DecryptionFile dek = new DecryptionFile();

                if (!(file.equals("") || kunciPrivate.equals(""))){

                    try {
                        dek.setPrivateKey(kunciPrivate);
                        dek.setFile(fileoutput.replace("\\", "/"), file.substring(sep + 1, dot), file.substring(dot + 1)  );
                        start = System.currentTimeMillis();//menghitung waktu proses dalam milidetik
                        dek.decrypt(file.replace("\\", "/"));

                        progressbar.setIndeterminate(false);
                        end = System.currentTimeMillis();
                        //System.out.println("\nWaktu yang diperlukan selama proses adalah " + ((end - start) / 1000.0) + " detik");
                        JOptionPane.showMessageDialog(null, " Decryption Success with duration : "+ ((end - start) / 1000.0) + " Milidetik" , "Message", JOptionPane.INFORMATION_MESSAGE);;

               
                    } catch (Exception e) {
                        JOptionPane.showMessageDialog(null, "Failed Decryption", "Warning", JOptionPane.ERROR_MESSAGE);
                     
                  }

                }else{
                    JOptionPane.showMessageDialog(null, "Entry all data", "Warning", JOptionPane.ERROR_MESSAGE);
                 
              }
           }
       });
       t.start();
    }//GEN-LAST:event_btnDekripActionPerformed


  void Exit () {
try {
    int reply = JOptionPane.showConfirmDialog (this,
"Yakin Ingin Keluar dari Sistem?",
"SISTEM KRIPTOGRAFI FILE", JOptionPane.YES_NO_OPTION, JOptionPane.PLAIN_MESSAGE);
if (reply == JOptionPane.YES_OPTION) {
setVisible (false);
dispose();
System.out.println ("TERIMA KASIH TELAH MENGGUNAKAN SYSTEM INI.");
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
System.exit(0);
}
else{
setDefaultCloseOperation(JFrame.DO_NOTHING_ON_CLOSE);
}
}
catch (Exception e) {
}
}
   
    public void jam(){
       
       ActionListener taskPerformer;
       taskPerformer = new ActionListener() {
           private Object lbljam;
     
           @Override
           public void actionPerformed(ActionEvent evt){
                String nol_jam = "";
                String nol_menit = "";
                String nol_detik = "";
                Date dt = new Date();
                Calendar ca = Calendar.getInstance();

                int tgl = dt.getDate();
                int bln = dt.getMonth()+1;
                int thn = ca.get(Calendar.YEAR);

                int hari = dt.getDay();
                int nilai_jam = dt.getHours();
                int nilai_menit = dt.getMinutes();
                int nilai_detik = dt.getSeconds();
                if (nilai_jam <= 9) {
                    nol_jam = "0";
              }
                if (nilai_menit <= 9) {
                    nol_menit = "0";
              }
                if (nilai_detik <= 9) {
                    nol_detik = "0";
              }
                String jam = nol_jam + Integer.toString(nilai_jam);
                String menit = nol_menit + Integer.toString(nilai_menit);
                String detik = nol_detik + Integer.toString(nilai_detik);
               lbl_jam.setText("<html><center> "+jam+" : "+menit+" : " + detik + "<br>" + tgl+ "/" + bln + "/"+thn+"</center></html>");
              }
        };
            new javax.swing.Timer(0, taskPerformer).start();
    }
}



Minggu, 15 April 2018

Thread Menu Utama Ke Database

Perintah sbb adalah perintah secara periode mengecek database server..jika ada data baru maaka sistem akan memebrikan sinyal notofikasi,,,





package com.example.lp2maray;


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

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

import com.example.notification_android.Login.ceklogin;
import com.example.notification_android.eventList.load;

import android.os.AsyncTask;
import android.os.Bundle;
import android.os.Handler;
import android.preference.PreferenceManager;
import android.support.v4.app.NotificationCompat;
import android.app.Activity;
import android.app.NotificationManager;
import android.app.PendingIntent;
import android.app.ProgressDialog;
import android.content.Context;
import android.content.Intent;
import android.content.SharedPreferences;
import android.util.Log;
import android.view.Menu;
import android.view.View;
import android.widget.ImageView;
import android.widget.ListAdapter;
import android.widget.SimpleAdapter;
import android.widget.Toast;

public class MenuUtama extends Activity {
String ip="",kategori="",PESAN="";
JSONParser jParser = new JSONParser();
JSONArray myJSON = null;
int adabaru=0;
String kode_admin="";
String username="";
Handler mHandler;
private static final String TAG_SUKSES = "sukses";
private static final String TAG_record = "record";
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_menuutama);
    ip=jParser.getIP();
   
        this.mHandler = new Handler();
        m_Runnable.run();
     

//Sistem Pengujian ttg siapakah yg sedang login....
        SharedPreferences sharedPref = PreferenceManager.getDefaultSharedPreferences(MenuUtama.this);
        Boolean Registered = sharedPref.getBoolean("Registered", false);
              if (!Registered){
                  finish();
              }else {
               kode_admin= sharedPref.getString("kode_admin", "");
               username = sharedPref.getString("username", "");
              
              }
           
           
        System.out.print("kode admin   "+kode_admin);
 
        ImageView      history=(ImageView)findViewById(R.id.history);
        history.setOnClickListener(new View.OnClickListener() {
        public void onClick(View arg0) {
          Intent i = new Intent(MenuUtama.this, Kategori.class);
                startActivity(i);
    }});
     
        ImageView      warning=(ImageView)findViewById(R.id.warning);
        warning.setOnClickListener(new View.OnClickListener() {
        public void onClick(View arg0) {
          Intent i = new Intent(MenuUtama.this, eventListWaning.class);
                startActivity(i);
    }});
     
        ImageView      about=(ImageView)findViewById(R.id.about);
        about.setOnClickListener(new View.OnClickListener() {
        public void onClick(View arg0) {
          Intent i = new Intent(MenuUtama.this, About.class);
                startActivity(i);
    }});
     
ImageView      admin=(ImageView)findViewById(R.id.setting);
    admin.setOnClickListener(new View.OnClickListener() {
    public void onClick(View arg0) {
      Intent i = new Intent(MenuUtama.this, admin.class);
            startActivity(i);
}});
 
    }
 
    private final Runnable m_Runnable = new Runnable()    {
        public void run()  {
            Toast.makeText(MenuUtama.this,"cek in runnable",Toast.LENGTH_SHORT).show();
           // addNotification();
      new load().execute();
            MenuUtama.this.mHandler.postDelayed(m_Runnable,5000);            
        }
    };
    
    private void addNotification() {
Toast.makeText(MenuUtama.this,"Info "+PESAN,Toast.LENGTH_SHORT).show();
    NotificationCompat.Builder builder =
          new NotificationCompat.Builder(this)
          .setSmallIcon(R.drawable.logo_kecil)
          .setContentTitle("WARNING, Ada Serangan ! ")
          .setContentText(PESAN);

       Intent notificationIntent = new Intent(this, eventList.class);
       notificationIntent.putExtra("kategori", kategori);
       
       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());

    }  
    
    
    
    class load extends AsyncTask<String, String, String> {
@Override
protected void onPreExecute() {
super.onPreExecute();
}
protected String doInBackground(String... args) {
List<NameValuePair> params = new ArrayList<NameValuePair>();
JSONObject json = jParser.makeHttpRequest(ip+"cek.php", "GET", params);
Log.d("show: ", json.toString());
try {
// Log.v("BACA", "CEK DATA0.....BARU");
adabaru= json.getInt("sukses");
if(adabaru==1){
JSONArray myObj = json.getJSONArray(TAG_record); // JSON Array
final JSONObject myJSON = myObj.getJSONObject(0);
runOnUiThread(new Runnable() {
public void run() {
try {
PESAN=myJSON.getString("PESAN");
kategori="TCP";
if(PESAN.indexOf("UDP")>=0){kategori="UDP";}
else if(PESAN.indexOf("ICMP")>=0){kategori="ICMP";}

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

}


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

protected void onPostExecute(String file_url) {
runOnUiThread(new Runnable() {
public void run() {
//Log.v("BACA0", "CEK DATA.....BARU");
if (adabaru==1){
adabaru=0;
//Log.v("BACA", "ADA DATA.....BARU:"+PESAN);
addNotification();
//Toast.makeText(MenuUtama.this,"ADAAAAAAAAAAAA DATA",Toast.LENGTH_SHORT).show();
}

}
});}
}
    
 
}

//=========
pada bagian manifet:

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

 <activity
            android:name="com.example.notification_android.Notification"
            android:label="Details of notification"
          android:parentActivityName=".MainActivity">
        <meta-data
        android:name="android.support.PARENT_ACTIVITY"
          android:value=".MainActivity"/>
        </activity>


NB: buatkan juga suatu halaman baru bernama Notification.java sebagai halaman target....saat notfi dibuka

Kamis, 01 Maret 2018

AT COMMAND

Versi Python2

SEND:

import serial
import os, time
import RPi.GPIO as GPIO

port = serial.Serial("/dev/ttyS0", baudrate=9600, timeout=1)


#port.write('ATZ\r'.encode('UTF-8'))
port.write('ATZ\r')
rcv = port.read(10)
print(rcv)
time.sleep(1)

port.write('ATE0'+'\r')
rcv = port.read(10)
print (rcv)
time.sleep(1)

port.write('AT+CMGF=1'+'\r')
rcv = port.read(10)
print (rcv)
time.sleep(1)

port.write('AT+CNMI=2,1,0,0,0'+'\r')
rcv = port.read(10)
print (rcv)
time.sleep(1)

port.write('AT+CMGS="085781062193"'+'\r')
rcv = port.read(10)
print (rcv)
time.sleep(1)

port.write('Hello RIANN'+'\r')
rcv = port.read(10)
print (rcv)

#phone.write(bytes([26]))

port.write("\x1A")
for i in range(10):
    rcv = port.read(10)
    print (rcv)

=========================
CALL:

import serial
import os, time
import RPi.GPIO as GPIO

GPIO.setmode(GPIO.BOARD)


port = serial.Serial("/dev/ttyS0", baudrate=9600, timeout=1)

port.write('AT'+'\r')
rcv = port.read(10)
print (rcv)
time.sleep(1)

port.write('AT+CMGF=1'+'\r')
rcv = port.read(10)
print (rcv)
time.sleep(1)

port.write('AT+CMGD=1'+'\r')
rcv = port.read(10)
print (rcv)
time.sleep(1)

port.write('AT+CMGR=1'+'\r')
rcv = port.read(10)
print (rcv)
time.sleep(1)

port.write('ATD085781062193;'+'\r')
rcv = port.read(10)
print (rcv)
time.sleep(1)

while(1):
    rcv = port.read(10)
    print (rcv)


====================================
READ:
import serial
import os, time
import RPi.GPIO as GPIO

GPIO.setmode(GPIO.BOARD)


port = serial.Serial("/dev/ttyS0", baudrate=9600, timeout=1)

port.write('AT'+'\r')
rcv = port.read(10)
print (rcv)
time.sleep(1)

port.write('AT+CMGF=1'+'\r')
rcv = port.read(10)
print (rcv)
time.sleep(1)

#port.write(b'AT+CMGD=1'+b'\r') #VERSI PYTHON3
#rcv = port.read(10)
#print (rcv)
#time.sleep(1)

#port.write(b'AT+CMGR=1'+b'\r')
#rcv = port.read(10)
#print (rcv)
#time.sleep(1)

port.write('AT+CMGL="ALL"'+'\r')
rcv = port.read(20)
print (rcv)
time.sleep(1)

gab=""
#while(1):
for i in range(10):
    rcv = port.read(200)
    gab=gab+str(rcv)

print (gab)


===================
Python PYQT
import sys
from PyQt5.QtWidgets import QWidget, QPushButton
from PyQt5.QtGui import *
from PyQt5.QtCore import *
from PyQt5.QtWidgets import *
import serial
import os, time
import RPi.GPIO as GPIO

class MainForm(QWidget):

   def __init__(self):
      super(MainForm, self).__init__()
      self.setupUi()

   def buttonClick(self):
      global gab
      global port
      global kirim

      print("Status RX=" + str(kirim))
      cmd= self.txtcmd.text()
      cmd2=cmd
      gab2=""
      
      if kirim==1:
         port.write(cmd+'\r')
         rcv = port.read(10)
         print (rcv)
         port.write("\x1A")
         for i in range(10):
            rcv = port.read(10)
            gab2=gab2+str(rcv)
            print (rcv)
            kirim=2   

      if (cmd.find('AT+CMGS')>=0):
         port.write(cmd+'\r')
         self.label1.setText('Tulis Pesan Anda')
         print("Send SMS")
         rcv = port.read(10)
         print (rcv)
         time.sleep(1)
         kirim=1
      elif (cmd.find('AT+CMGL')>=0):
         port.write(cmd+'\r')
         print("Read SMS")
         rcv = port.read(20)
         print (rcv)
         time.sleep(1)
         #while(1):
         for i in range(10):
             rcv = port.read(200)
             print(rcv)
             gab2=gab2+str(rcv)
             kirim=2
             
      elif kirim==0:
         cmd=cmd+"\r"
         port.write(cmd)
         rcv = port.read(200)
         print(rcv)
    

      if kirim==2:
         gab=gab+gab2
         kirim=0
         self.label1.setText('Command')
      else:
         gab=gab+cmd2+"="+str(rcv)+'\n'
         print(gab)

      self.txtresult.setText(gab)
      self.txtcmd.setText('')

   
   def bersih(self):
      self.txtcmd.setText('')
      self.txtresult.setText('')
      
   def setupUi(self):
      self.resize(400, 200)
      self.move(300, 300)
      self.setWindowTitle('AT COMMAND STUDY')
      
      self.label1 = QLabel()
      self.label1.setText('Command')
      
      self.txtcmd = QLineEdit()
      vbox1 = QVBoxLayout()
      vbox1.addWidget(self.label1)
      vbox1.addWidget(self.txtcmd)
      
      self.label2 = QLabel()
      self.label2.setText('Result')      
      self.txtresult = QTextEdit()
      
      vbox2 = QVBoxLayout()
      vbox2.addWidget(self.label2)
      vbox2.addWidget(self.txtresult)    
      
      vbox3 = QVBoxLayout()
      vbox3.addLayout(vbox1)
      vbox3.addLayout(vbox2)
      
      self.sendButton = QPushButton('&EXE')
      self.sendButton.clicked.connect(self.buttonClick)
      
      self.cancelButton = QPushButton('&CLEAR')
      self.cancelButton.clicked.connect(self.bersih)
      
      hbox = QHBoxLayout()
      hbox.addStretch()
      hbox.addWidget(self.sendButton)
      hbox.addWidget(self.cancelButton)
      
      layout = QVBoxLayout()      
      layout.addLayout(vbox3)
      horizontalLine = QFrame();
      horizontalLine.setFrameShape(QFrame.HLine)
      horizontalLine.setFrameShadow(QFrame.Sunken)
      layout.addWidget(horizontalLine)
      layout.addLayout(hbox)
      self.setLayout(layout)

global gab
gab=""
global port
port = serial.Serial("/dev/ttyS0", baudrate=9600, timeout=1)
global kirim
kirim=0
   
if __name__ == '__main__':
   
   a = QApplication(sys.argv)
   form = MainForm()
   form.show()
   a.exec_()

==================================
THREADING:
from PyQt5 import QtCore, QtGui, QtWidgets
import serial
import RPi.GPIO as GPIO
import signal
import MFRC522
import MySQLdb


import time, threading
from PyQt5.QtGui import *
from PyQt5.QtWidgets import *
from PyQt5.QtCore import *
from PyQt5 import QtWidgets

from picamera import PiCamera
from time import sleep

GPIO.setwarnings(False)

db = MySQLdb.connect("localhost","root","","bb_absensinfc")
cursor = db.cursor()

         

class Ui_MainWindow(object):
     
    def setupUi(self,MainWindow):
        desktop = QDesktopWidget()
     
        screenwidth = desktop.screen().width()+100
        screenheight = desktop.screen().height()+100
        top=screenheight/7
        bottom=screenheight-top-top-100
   
        MainWindow.setObjectName("MainWindow")
        MainWindow.resize(screenwidth, screenheight)
        MainWindow.setStyleSheet("background-color: #003366;")
     
        self.centralwidget = QtWidgets.QWidget(MainWindow)
        self.centralwidget.setObjectName("centralwidget")

        self.lbl = QtWidgets.QLabel(self.centralwidget)
        self.lbl.setGeometry(QtCore.QRect(-5, top-100, screenwidth, 30))
        self.lbl.setStyleSheet("color: #FFFFFF;font:Bold")
        self.lbl.setFont(QFont('Xtreme Chrome',25))
        self.lbl.setAlignment(QtCore.Qt.AlignCenter)
        self.lbl.setObjectName("lbl")

        self.lblFoto = QtWidgets.QLabel(self.centralwidget)
        self.lblFoto.setGeometry(QtCore.QRect(-5, top+30, screenwidth, 300))
        self.lblFoto.setStyleSheet("background-color: #000000; color: #FFFF00;font:Bold")
        self.lblFoto.setFixedHeight(300)
        self.lblFoto.setAlignment(QtCore.Qt.AlignCenter)
        self.lblFoto.setFont(QFont('Xtreme Chrome',250))
        #self.lblFoto.resize(1700,1700) #pixmap.width(),pixmap.height()


        self.lblKaryawan = QtWidgets.QLabel(self.centralwidget)
        self.lblKaryawan.setGeometry(QtCore.QRect(-5, bottom, screenwidth, 100))
        self.lblKaryawan.setStyleSheet("background-color: #cccccc; color: #ff0000;font:Bold")
        self.lblKaryawan.setFixedHeight(110)
        self.lblKaryawan.setAlignment(QtCore.Qt.AlignCenter)
        self.lblKaryawan.setFont(QFont('Xtreme Chrome',110))
        self.lblKaryawan.setObjectName("lblKaryawan")
     
    ##################
     
        MainWindow.setCentralWidget(self.centralwidget)
        self.menubar = QtWidgets.QMenuBar(MainWindow)
        self.menubar.setGeometry(QtCore.QRect(0, 0, 259, 21))
        self.menubar.setObjectName("menubar")
     
        MainWindow.setMenuBar(self.menubar)
        self.statusbar = QtWidgets.QStatusBar(MainWindow)
        self.statusbar.setObjectName("statusbar")
        MainWindow.setStatusBar(self.statusbar)

        self.retranslateUi(MainWindow)
        QtCore.QMetaObject.connectSlotsByName(MainWindow)

    def retranslateUi(self, MainWindow):
        _translate = QtCore.QCoreApplication.translate
        MainWindow.setWindowTitle(_translate("MainWindow", "   "))
        #self.lblFoto.setText(_translate("MainWindow", "IMAGE KARYAWAN"))
        pixmap = QPixmap('avatar.jpg')
        self.lblFoto.setPixmap(pixmap)
        #self.lblFoto.resize(pixmap.width()*2,pixmap.height()*2)

        self.lblKaryawan.setText(_translate("MainWindow", "NAMA KARYAWAN (NIPXXXXX)"))
        self.lbl.setText(_translate("MainWindow", "APLIKASI ABSENSI"))
     
        # User Code
        self.timeout = 0
        self.check_serial_event()
     
     
    def check_serial_event(self):
        global camera
        serial_thread = threading.Timer(1, self.check_serial_event)
        serial_thread.start()
     
       # signal.signal(signal.SIGINT, 1)
        MIFAREReader = MFRC522.MFRC522()
        print ("...")
        time.sleep(1)
        (status,TagType) = MIFAREReader.MFRC522_Request(MIFAREReader.PICC_REQIDL)
        if status == MIFAREReader.MI_OK:
            print ("...")
            (status,uid) = MIFAREReader.MFRC522_Anticoll()
         
         
        if status == MIFAREReader.MI_OK:
            AL=str(uid[0])+" "+str(uid[1])+" "+str(uid[2])+" "+str(uid[3])
            print ("UID: "+AL)
            self.lblKaryawan.setText(AL)

            #camera.start_preview(alpha=200)
            #camera.start_preview()
            #sleep(1)
            AL='/home/pi/Desktop/image.jpg'
            camera.capture(AL)
            #camera.stop_preview()

            pixmap = QPixmap(AL)
            self.lblFoto.setPixmap(pixmap)
         

if __name__ == "__main__":
    import sys

    camera = PiCamera()
    #camera.rotation = 180
    camera.resolution = (300, 300)
    #camera.framerate = 15

    app = QtWidgets.QApplication(sys.argv)
    MainWindow = QtWidgets.QMainWindow()
    ui = Ui_MainWindow()
    ui.setupUi(MainWindow)
    MainWindow.show()
    sys.exit(app.exec_())