Subscribe For Free Updates!

We'll not spam mate! We promise.

Sabtu, 22 Agustus 2015

PENGENALAN BAHASA PEMROGRAMAN PYTHON

Python merupakan salah satu bahasa pemrograman open source yang ringkas, sederhana, dan bisa digunakan di beberapa sistem operasi. Python bersifat gratis dan bisa diunduh dengan mudah melalui situs resmi : www.python.org dengan berbagai versi yang ada.

Dengan menggunakan bahasa python kita dapat membuat program desktop seperti sistem informasi penjualan (kasir), Sistem informasi perhotelan, sistem informasi perpustakaan, inventory, dan sebagainya serta dapat membuat program multimedia seperti animasi untuk media pembelajaran.

Pemrograman desktop di Python bisa menggunakan berbagai library, seperti PyGTK, wxPython, dan sebagainya. Library yang saya gunakan adalah wxPython. Python juga sebenaranya bisa digunakan untuk berbagai keperluan, antara lain : untuk pemrograman Console (tampilan berbasis teks), GUI/ desktop, mobile (pemrograman di HP), ataupun pemrograman WEB.

Python dikatakan mudah karena tidak perlu mendeklarasikan variable seperti pada pemrograman JAVA, C, PASCAL, dan sebagainya. Kode python pun juga sangat ringkas, untuk pemecahan masalah dengan python dibutuhkan jumlah baris kode yang lebih sedikit dibandingkan dengan bahasa pemrograman lainnya.

Berikut ini contoh pemrograman console untuk menghitung luas persegi panjang, dengan membandingkan pemrograman menggunakan bahasa lain, misalnya java :

Kode menghitung luas persegi panjang dengan Python :

p = input(“Panjang :”)
l = input(“lebar :”)
Luas = p*l
print “Luas :”, Luas 

Kode menghitung luas persegi panjang dengan Java :

import java.util.Scanner;
public class LuasPersegi {
public static void main (String[] args){
Scanner masukan = new Scanner(System.in);
int p,l, Luas;
System.out.print(“Panjang :”);
p = masukan.nextInt();
System.out.print(“Lebar :”);
l = masukan.nextInt();
Luas = p*l;
System.out.println(“Luas Persegi Panjang : “+Luas);
}
} 

Ada 2 yang perlu diperhatikan saat menggunakan bahasa Python 


  • Indentation, indentasi atau spasi adalah blok program yang ditandai dengan kesamaan jarak permulaan huruf kode dari ujung kiri layar. Jika terdapat blok baru, seperti percabangan (if), perulangan (while dan for), atau fungsi tertentu (dimulai dengan def) maka blok tersebut harus diketikkan lebih menjorok kedalam. Baris-baris kode yang berada dalam satu blok harus memiliki indentasi yang sama. Lihat penulisan kode dibawah ini :
  • Case Sensitive, sama seperti pada Java dan C, Python memiliki sifat Case Sensitiv. Artinya, penulisan variable dengan huruf kecil dianggap berbeda dengan variable dengan huruf capital

Software yang Dibutuhkan

Software yang dibutuhkan untuk membangun sebuah aplikasi desktop di windows dengan database MySQL adalah :
  1. IDLE Python Interpreter adalah software dasar untuk membangun sebuah aplikasi, software ini berfungsi menerjemahkan file berekstensi .py agar bisa dieksekusi di komputer
  2. WxPython, sebuah software library GUI.
  3. Boa Constructor, salah satu IDE (Integrated Development Environment) atau bisa dibilang lingkungan pemrograman terintegrasi untuk membangun aplikasi berbasis GUI dengan Library WxPython
  4.  MySQL Server, sebagai manajemen databasenya untuk softwarenya kita bisa gunakan XAMPP yang didalamnya sudah terintegrasi dengan PHP dan Apache.
  5. Connector Python ke MySQL, software ini akan menghasilkan modul MySQLdb. Versi yang digunakan harus kompatibel dengan versi IDLE Python Interpreter-nya.

Baca juga Cara menginstal Python 2.5 dan wxPython. Terima kasih atas kunjungannya semoga bermanfaat J

Sumber : Kholid H, Kharisman.2013.Pemrograman Desktop Database Python-MySQL dengan BOA Constructor.Yogyakarta:ANDI

Jumat, 21 Agustus 2015

Aplikasi CRUD Android Menggunakan database Mysql

Hai, kawan-kawan kali ini saya akan membuat tutorial CRUD (Create Read Update Delete) Android dengan menggunakan database Mysql untuk perantaranya menggunakan file php. Program yang saya buat adalah data produk dimana nantinya kita bisa membuat(create), mengedit(Update), membaca(read), dan menghapus(delete) data.
Sebelum saya mulai, ada yang perlu kawan-kawan ketahui bahwa seringkali saat pembuatan program kita selalu salah membedakan variable, nah mulai sekarang saya akan membedakan variable dari file php dan kelas java yang ada di android, agar kawan-kawan bisa membedakan dan belajar dengan lebih mudah.

 Yosh Langsung saja, pertama buat database terlebih dahulu, database = “crud_ar” table=”produk” dengan field sebagai berikut : 



Kedua buatlah file php sebagai aksi CRUD, disini saya berinama aksi.php dengan kode sebagai berikut :

<?php
mysql_connect("localhost","root","");
mysql_select_db("crud_ar"); //database name
switch($_GET['a']){
case "insert" :
                $id = $_GET['kd'];
                $nm = $_GET['nm'];
                $hrg = $_GET['hrg'];
                $des = $_GET['deskripsi'];
                $result = mysql_query("INSERT INTO produk(kd,nm,hrg,deskripsi) VALUES('$id','$nm','$hrg','$des')");
                if($result){
                                echo "berhasil insert data";
                }else{
                                echo "nm".$nm;
                }
break;
case "update":
                $kd = $_GET['kd'];
                $nm = $_GET['nm'];
                $hrg = $_GET['hrg'];
                $des = $_GET['des'];
                $result = mysql_query("UPDATE produk SET nm='$nm' , hrg='$hrg', deskripsi='$des' WHERE kd='$kd'");
                if($result){
                                echo "berhasil ubah data";
                }else{
                                echo "gagal ubah data";
                }
break;
case "delete":
                $id = $_GET['kd'];
                $result = mysql_query("DELETE FROM produk WHERE kd='$id'");
                if($result){
                                echo "berhasil hapus data";
                }else{
                                echo "gagal hapus data";
                }
break;
case "read":
                $kd=$_GET['kd'];
                /* Source code untuk Menampilkan Data */
                $q = mysql_query("SELECT * FROM produk where kd='$kd'");
                $v = '{"data" : [';
                while($r=mysql_fetch_array($q))
                {
                                $ob = array('"','<br>','</br>');
                                $v .='{"kd" : "'.$r['kd'].'", "nm" : "'.str_replace($ob,' ',strip_tags($r["nm"])).'","hrg" : "'.str_replace($ob,' ',strip_tags($r["hrg"])).      '","deskripsi" : "'.str_replace($ob,' ',strip_tags($r["deskripsi"])).'"}';
                }
                $v .= ']}';
                echo $v;
}
?>

Fungsi dari kode di atas adalah untuk menerima request dari client kepada server.Ketiga buatlah project Androidnya di Eclipse, seperti gambar dibawah ini :

Keterangan project Android :
Project name = prak_Crud
Package Name = arum.jiyu.com
SDK = Android 2.3.1 (min 9)

Keempat buat kelas object Json (bagi yang belum tahu membuat kelas object caranya : klik kanan package “arum.jiyu.com” >> New >> Class >> isi (Name = JSONParser  Superclass=java.lang.Object hilangkan centang pada “Inherited abstract methods” >> Finish)), berikut SourceCode JSONParser.java :

package arum.jiyu.com;   

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

import org.apache.http.HttpEntity;
import org.apache.http.HttpResponse;
import org.apache.http.client.ClientProtocolException;
import org.apache.http.client.methods.HttpPost;
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 JSONObject AmbilJson(String url) {

              try {
                     DefaultHttpClient httpClient = new DefaultHttpClient();
                     HttpPost httpPost = new HttpPost(url);

                     HttpResponse httpResponse = httpClient.execute(httpPost);
                     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);
                     }
                     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;

       }
}

Kelima buatlah layout seperti berikut, di main.xml :




















Source code main.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" >

    <TextView
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:text="@string/hello" />

    <TextView
        android:id="@+id/textView1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Kode" >
    </TextView>

    <LinearLayout
        android:id="@+id/linearLayout2"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:orientation="horizontal" >

        <EditText
            android:id="@+id/editKode"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_weight="1" />

        <Button
            android:id="@+id/btnCek"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="Cek" />

    </LinearLayout>

    <TextView
        android:id="@+id/textView2"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Nama" >
    </TextView>


    <EditText
        android:id="@+id/editNama"
        android:layout_width="match_parent"
        android:layout_height="wrap_content" >

    </EditText>

    <TextView
        android:id="@+id/textView4"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Harga" />

    <EditText
        android:id="@+id/editHarga"
        android:layout_width="match_parent"
        android:layout_height="wrap_content" />

    <TextView
        android:id="@+id/textView5"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Deskripsi" />


    <EditText
        android:id="@+id/editDes"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_weight="0.27"
        android:inputType="textMultiLine" />

    <LinearLayout
        android:id="@+id/linearLayout1"
        android:layout_width="match_parent"
        android:layout_height="wrap_content" >

        <Button
            android:id="@+id/buttonInsert"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="insert" >
        </Button>

        <Button
            android:id="@+id/buttonUpdate"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="update">
        </Button>

        <Button
            android:id="@+id/buttonDelete"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="delete" >
        </Button>
    </LinearLayout>

</LinearLayout>

Keenam, tulis source code di bawah ini di kelas Prak_CrudActivity.java :

package arum.jiyu.com;

import java.io.BufferedReader;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.UnsupportedEncodingException;
import java.net.URLEncoder;

import org.apache.http.HttpResponse;
import org.apache.http.client.HttpClient;
import org.apache.http.client.methods.HttpGet;
import org.apache.http.impl.client.DefaultHttpClient;
import org.json.JSONArray;
import org.json.JSONException;
import org.json.JSONObject;

import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;
import android.widget.Toast;

public class Prak_CrudActivity extends Activity {
       /** Called when the activity is first created. */
       private EditText kode, nama, harga, deskripsi;
       private Button insert, update, delete, cek;
       private String kode1, nama1, harga1, deskripsi1;
       JSONArray data = null;

       @Override
       public void onCreate(Bundle savedInstanceState) {
              super.onCreate(savedInstanceState);
              setContentView(R.layout.main);
              kode = (EditText) findViewById(R.id.editKode);
              nama = (EditText) findViewById(R.id.editNama);
              harga = (EditText) findViewById(R.id.editHarga);
              deskripsi = (EditText) findViewById(R.id.editDes);
              cek = (Button) findViewById(R.id.btnCek);
              insert = (Button) findViewById(R.id.buttonInsert);
              update = (Button) findViewById(R.id.buttonUpdate);
              delete = (Button) findViewById(R.id.buttonDelete);

              insert.setOnClickListener(new OnClickListener() {

                     @Override
                     public void onClick(View v) {
                           // TODO Auto-generated method stub
                           String url = "";
                           // karena saya menggunakan Genymotion sebagai emulator
// jadi IP address = 10.0.3.2 namun jika kawan kawan
// menggunakan emulator bawaan eclipse
                           // silahkan gunakan IP Address 10.0.2.2
                           url = "http://10.0.3.2/crud/aksi.php";

                           try {
                           String ko = URLEncoder.encode(kode.getText().toString(),
                                                "utf-8");
                           String n = URLEncoder.encode(nama.getText().toString(),
                                                "utf-8");
                           String hr = URLEncoder.encode(harga.getText().toString(),
                                                "utf-8");
                           String d = URLEncoder.encode(
deskripsi.getText().toString(), "utf-8");

                           url += "?a=insert&kd=" + ko + "&nm=" + n + "&hrg=" + hr
                                                + "&deskripsi=" + d;

                                  getRequest(url);
                           } catch (UnsupportedEncodingException e) {
                                  e.printStackTrace();
                           }

                     }
              });
             
              update.setOnClickListener(new OnClickListener() {

                     @Override
                     public void onClick(View v) {
                           String url = "";
                           // karena saya menggunakan Genymotion sebagai emulator
// jadi IP address = 10.0.3.2 namun jika kawan kawan
// menggunakan emulator bawaan eclipse
                           // silahkan gunakan IP Address 10.0.2.2
                            url = "http://10.0.3.2/crud/aksi.php";

                           try {
                           String ko = URLEncoder.encode(kode.getText().toString(),
                                                "utf-8");
                           String n = URLEncoder.encode(nama.getText().toString(),
                                                "utf-8");
                           String hr = URLEncoder.encode(harga.getText().toString(),
                                                "utf-8");
                           String d = URLEncoder.encode(
                                         deskripsi.getText().toString(), "utf-8");

                           url += "?a=update&kd=" + ko + "&nm=" + n + "&hrg=" + hr
                                                + "&des=" + d;

                                  getRequest(url);
                           } catch (UnsupportedEncodingException e) {
                                  e.printStackTrace();
                           }  
                     }
              });
              delete.setOnClickListener(new OnClickListener() {

                     @Override
                     public void onClick(View v) {
                           // TODO Auto-generated method stub
                           String url = "";
                           kode1 = kode.getText().toString();
                           url = "http://10.0.3.2/crud/aksi.php?a=delete&kd="
                                         + kode1;
                           getRequest(url);
                     }
              });
              cek.setOnClickListener(new OnClickListener() {

                     @Override
                     public void onClick(View v) {
                           // TODO Auto-generated method stub
                           kode1 = kode.getText().toString();
                     String url = "http://10.0.3.2/crud/aksi.php?a=read&kd=" + kode1;
                           JSONParser jParser = new JSONParser();

                           JSONObject json = jParser.AmbilJson(url);

                           try {
                                  data = json.getJSONArray("data");

                                  for (int i = 0; i < data.length(); i++) {
                                         JSONObject ar = data.getJSONObject(i);

                                         String kode_d = ar.getString("kd");
                                         String nama_d = ar.getString("nm");
                                         String harga_d = ar.getString("hrg");
                                         String des_d = ar.getString("deskripsi");

                                         kode.setText(kode_d);
                                         nama.setText(nama_d);
                                         harga.setText(harga_d);
                                         deskripsi.setText(des_d);
                                  }
                           } catch (JSONException e) {
                                  e.printStackTrace();
                           }   

                     }
              });

       }

       public void getRequest(String url) {
              Toast.makeText(this, url, Toast.LENGTH_LONG).show();
              HttpClient client = new DefaultHttpClient();
              HttpGet request = new HttpGet(url);
              try {
                     HttpResponse response = client.execute(request);
                     Toast.makeText(this, request(response) + ":)",
                                  Toast.LENGTH_SHORT).show();
              } catch (Exception ex) {
                     Toast.makeText(this, "data gagal", Toast.LENGTH_SHORT).show();
              }

       }

       public static String request(HttpResponse reponse) {
              String result = "";

              try {
                     InputStream in = reponse.getEntity().getContent();
                     BufferedReader reader = new BufferedReader(
                                  new InputStreamReader(in));
                     StringBuilder str = new StringBuilder();
                     String line = null;

                     while ((line = reader.readLine()) != null) {
                           str.append(line + "\n");
                     }

                     in.close();
                     result = str.toString();
              } catch (Exception e) {
                     result = "Error";
              }

              return result;
       }
}

Terakhir, jangan lupa untuk menambah uses permission di AndroidManifest.xml sebagai berikut :


Jika sudah silahkan jalankan maka hasilnya sebagai berikut :







Terima kasih sudah berkunjung, semoga tutorial saya bermanfaat untuk kawan-kawan J semangat !!
Untuk download program dan tutorial silahkan klik menu DOWNLOAD