Mungkin Anda akan bertanya ada apa dengan MySQL, PHP, XML dan J2ME (hehehe)….. Ini berkaitan dengan cara untuk melakukan parsing data-data pada database MySQL pada perangkat bergerak dengan menggunakan J2ME. Nah bagi yang blom tau dan ingin tau baca tulisan ini sampe abis yah…..
Extensible Markup Language (XML) adalah bahasa markup serbaguna yang direkomendasikan W3C untuk mendeskripsikan berbagai macam data. XML menggunakan markup tags seperti halnya HTML namun penggunaannya tidak terbatas pada tampilan halaman web saja.” (wikipedia)
Langkah-langkahnya
  • buat database dahulu dengan perintah sebagai berikut

  • 01CREATE DATABASE `tugas_akhir` DEFAULT CHARACTER SET latin1 COLLATElatin1_general_ci;
    02USE tugas_akhir;
    03 
    04CREATE TABLE `siswa` (
    05  `nama` varchar(30) collate latin1_general_ci NOT NULL,
    06  `nis` varchar(10) collate latin1_general_ci NOT NULL,
    07  `judul` varchar(150) collate latin1_general_ci NOT NULL,
    08  `pembimbing` varchar(30) collate latin1_general_ci NOT NULL,
    09  PRIMARY KEY  (`nis`)
    10) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_general_ci;
    11 
    12INSERT INTO `siswa` VALUES ('Feri I''TI. 101025''Aplikasi untuk Perangkat Bergerak dengan J2ME''Iskandar, MT');
    13INSERT INTO `siswa` VALUES ('Bejo''TI.0254154''Sistem Informasi PT.XXX Berbasis Web dengan PHP dan MySQL''Suak, S.ST');
  • Buat sintak PHP yang nantinya akan digunakan untuk men-generate data-data dalam database mysql di atas menjadi file XML. Perintahnya seperti ini..
  • convert.php
    01
    02 
    03header("Content-Type: text/xml; charset=ISO-8859-1");
    04echo xml();
    05 
    06function xml() {
    07 
    08$conn=mysql_connect("localhost","root",""or die ("Koneksi Error");
    09mysql_select_db("tugas_akhir",$conn);
    10 
    11$sql "select * from siswa";
    12$query = mysql_query($sql);
    13$bantuan "";
    14while ($row=mysql_fetch_array($query)){
    15    $data .="" $row["nama"] ."
    .
    16            "" $row["nis"] . "
    .
    17            "" $row["judul"] . "
    .
    18            "
    19" . $row["pembimbing"] . "
    ";
    20    }
    21    $data .= "
    ";
    22    return $bantuan.$data;
    23}
    24?>
    Nah.. kalo udah coba jalankan dan lihat hasilnya, kalo berhasil akan muncul tampilan seperti pada gambar berikut.
    xml
  • XML udah terbentuk kemudian selanjutnya adalah memparser data XML tersebut ke J2ME. Dalam melakukan parser kita membutuhkan sebuah parser yaitu kXML walaupun bisa menggunakan parser lain seperti NanoXML atau TinyXML. kXML dapat didownload di http://kxml.sourceforge.net . Kemudian dengan menggunakan Sun Java Wireless Toolkit buat proyek baru dengan nama ParsingXML dan tulis sintak Java seperti ini.
  • ParsingXML.java
    001import javax.microedition.midlet.*;
    002import javax.microedition.lcdui.*;
    003import javax.microedition.io.*;
    004import java.io.*;
    005import org.kxml2.io.*;
    006import org.xmlpull.v1.*;
    007 
    008public class ParsingXML extends MIDlet implements CommandListener {
    009    private Display display;
    010    private Form frmUtama;
    011    private StringItem nama[];
    012    private StringItem nis[];
    013    private StringItem judul[];
    014    private StringItem pembimbing[];
    015    private Command cmdExit;
    016    private KXmlParser parser;
    017    private int jumlah = 0;
    018 
    019    public ParsingXML() {
    020        display = Display.getDisplay(this);
    021        frmUtama = new Form("Data Tugas Akhir");
    022        nama = new StringItem[10];
    023        nis = new StringItem[10];
    024        judul = new StringItem[10];
    025        pembimbing = new StringItem[10];
    026        cmdExit = new Command("Exit", Command.EXIT, 0);
    027    }
    028 
    029    public void startApp() {
    030        parseXML();
    031        frmUtama.addCommand(cmdExit);
    032        frmUtama.setCommandListener(this);
    033        display.setCurrent(frmUtama);
    034    }
    035 
    036    public void pauseApp() {
    037    }
    038 
    039    public void destroyApp(boolean unconditional) {
    040    }
    041 
    042    public void commandAction(Command c, Displayable d) {
    043    if (c == cmdExit) {
    044    notifyDestroyed();
    045    destroyApp(false);
    046    }
    047 
    048    }
    049    public void parseXML() {
    050        HttpConnection conn;
    051        DataInputStream dis;
    052        DataOutputStream dos;
    053        try {
    054        conn = (HttpConnection) Connector.open("http://localhost/coba/convert.php");
    055        conn.setRequestMethod(HttpConnection.GET);
    056        conn.setRequestProperty("Content-Type""text/xml");
    057        dos = new DataOutputStream(conn.openDataOutputStream());
    058 
    059        dis = new DataInputStream(conn.openDataInputStream());
    060        if (conn.getResponseCode() == HttpConnection.HTTP_OK) {
    061 
    062        doParse(dis);
    063 
    064        for (int i = 0; i < jumlah; i++) {
    065            frmUtama.append(nama[i]);
    066            frmUtama.append(nis[i]);
    067            frmUtama.append(judul[i]);
    068            frmUtama.append(pembimbing[i]);
    069            frmUtama.append("\n");
    070            frmUtama.append("------------");
    071        }
    072 
    073        else {
    074            frmUtama.append("Koneksi Error");
    075        }
    076 
    077        catch (Exception e) {
    078            frmUtama.append("Error: " + e);
    079        }
    080    }
    081 
    082    public void doParse(InputStream isxml) {
    083        parser = new KXmlParser();
    084        try {
    085        parser.setInput(new InputStreamReader(isxml));
    086 
    087        parser.next();
    088        parser.require(XmlPullParser.START_TAG, null"ta");
    089 
    090        while (parser.nextTag() != XmlPullParser.END_TAG) {
    091            parser.require(XmlPullParser.START_TAG, null"nama");
    092                nama[jumlah] = new StringItem("Nama : ",parser.nextText());
    093            parser.require(XmlPullParser.END_TAG,null,"nama");
    094 
    095            parser.nextTag();
    096            parser.require(XmlPullParser.START_TAG, null"nis");
    097                nis[jumlah] = new StringItem("NIS : ",parser.nextText());
    098            parser.require(XmlPullParser.END_TAG,null,"nis");
    099 
    100            parser.nextTag();
    101            parser.require(XmlPullParser.START_TAG, null"judul");
    102                judul[jumlah] = new StringItem("Judul : ",parser.nextText());
    103            parser.require(XmlPullParser.END_TAG,null,"judul");
    104 
    105            parser.nextTag();
    106            parser.require(XmlPullParser.START_TAG, null,"pembimbing");
    107                pembimbing[jumlah] = new StringItem("Pembimbing : ",parser.nextText());
    108            parser.require(XmlPullParser.END_TAG,null,"pembimbing");
    109 
    110            jumlah++;
    111        }
    112            parser.require(XmlPullParser.END_TAG, null"ta");
    113        catch (Exception e) {
    114        e.printStackTrace();
    115        }
    116    }
    117}
  • Nah… kalo udah klik build dan kemudian di run dan hasilnya …….. seperti pada gambar berikut.hasil
    Nah…. Dah dulu ya , selamat mencoba dan semoga berhasil ….semoga tulisan ini dapat bermanfaat…