Jumat, 03 Desember 2010

Menu Login di J2ME Dengan Koneksi Database

Seperti yang sudah saya bilang sebelumnya kalo saya akan memberikan tutorial bagaimana cara membuat aplikasi login di J2ME dengan koneksi dari database MySQL. Monggo disimak...

1. Langkah pertama buat dulu databasenya di MySQL... CREATE DATABASE 'TestLog'.
2. Kemudian buat tabelnya dengan nama login, seperti ini :
CREATE TABLE 'TestLog'.'login' (
'user' VARCHAR( 10 ) NOT NULL ,
'pass' VARCHAR( 10 ) NOT NULL ,
PRIMARY KEY ('user')
) ENGINE = MYISAM 
3. Setelah database dan tabelnya sudah dibuat, langkah selanjutnya isi tabelnya..
INSERT INTO 'TestLog'.'login' (
'user' ,'pass'
)VALUES ('admin', 'admin');

4. Buat file php-nya, simpan dengan nama login.php
$con = mysql_connect('localhost','root','') or die("Kesalahan koneksi...!!");
mysql_select_db('TestLog', $con) or die("Database error !!");
$user = $_POST['user'];
$pass = $_POST['pass'];

$query = mysql_query("SELECT * FROM login WHERE user='$user' and pass='$pass'", $con) 

or die(mysql_error());
$cek = mysql_num_rows($query);

if ($cek != 0)
{
print "Berhasil";
}
else
{
print "Gagal";
}
5. Setelah semua langkah diatas sudah dilakukan langkah selanjutnya buat aplikasi loginnya. Seperti sebelumnya, buka WTK 2.2 kemudian buat project baru dengan nama TestLog (tidak harus sama dengan saya lho ya namanya... hehe).
6. Setelah itu buka JCreator kemudian buat project baru juga dengan nama yang sama yaitu TestLog lalu pilih lokasi penyimpanan C:\WTK22\apps\TestLog\src\
Ketikkan skrip berikut di JCreator :
/**
 * @(#)TestLog.java
 *
 *
 * @author
 * @version 1.00 2010/12/3
 */

import javax.microedition.lcdui.*;
import javax.microedition.midlet.*;
import javax.microedition.io.*;
import java.io.*;

public class TestLog  extends MIDlet implements CommandListener
{
    public Display dis;
   
    private Form frmLogin;
    private Form frmMenu;
    private Command cmdLogin;
    private Command cmdExit;
    private StringItem siLogin;
    private TextField tfUser;
    private TextField tfPass;
    private String data1;
   
    public TestLog()
    {
        dis = Display.getDisplay(this);
       
        // buat form loginnya
        frmLogin = new Form("Login");
        tfUser = new TextField("User Name : ", "", 10, TextField.ANY);
        tfPass = new TextField("Password : ", "", 10, TextField.PASSWORD);
        siLogin = new StringItem("","");
        cmdLogin = new Command("Login", Command.SCREEN, 1);
        cmdExit = new Command("Exit", Command.EXIT, 2);
        frmLogin.append(tfUser);
        frmLogin.append(tfPass);
        frmLogin.addCommand(cmdLogin);
        frmLogin.addCommand(cmdExit);
        frmLogin.setCommandListener(this);
       
        //form menu utama
        frmMenu = new Form("Selamat Datang");
    }
   
    public void startApp()
    {
        dis.setCurrent(frmLogin);
    }
   
    public void pauseApp()
    {
    }
   
    public void destroyApp(boolean unconditional)
    {
    }
   
    public void commandAction(Command cmd, Displayable d)
    {
        if (cmd == cmdExit)
        {
            destroyApp(false);
            notifyDestroyed();
        }
        else if (cmd == cmdLogin)
        {
            login log = new login();
            log.start();
        }
    }
   
    //buat koneksi ke server
    public String KoneksiURL(String url) throws IOException
    {
        HttpConnection http = null;
        InputStream is = null;
        StringBuffer sb = new StringBuffer();
        OutputStream os = null;
        try
        {
            http = (HttpConnection) Connector.open(url);
            http.setRequestMethod(HttpConnection.POST);
            http.setRequestProperty("Content-Type", "application/x-www-form-urlencoded");
            http.setRequestProperty("Accept_Language","en-US");
            http.setRequestProperty("User-Agent", "Profile/MIDP-2.0 Configuration/CLDC-1.0");
            os = http.openDataOutputStream();
            os.write(data1.getBytes());
            if (http.getResponseCode() == 200)
            {
                int karakter;
                is = (http.openInputStream());
                while ((karakter = is.read()) != -1)
                sb.append((char)karakter);
            }
            is.close();
            String result = sb.toString();
            return result;
        }
        catch (Exception e)
        {
            if (http != null)
            {
                http.close();
            }
        }
        return null;
    }
   
    //buat class loginnya
    class login extends Thread
    {
        public void run()
        {
            try
            {
                String url = "http://localhost/TestLog/Login.php";
                data1 = "user="+tfUser.getString()+"&pass="+tfPass.getString();
                String data = KoneksiURL(url);
                siLogin.setText(""+data);
                verifikasi(siLogin.getText());
            }
            catch(Exception e)
            {
            }
        }
    }
   
    public void verifikasi (String j)
    {
        if (j.equals("Berhasil"))
        {
            Alert al = new Alert("Selamat datang", "Aplikasi PerpusMobile", null, AlertType.CONFIRMATION);
            al.setTimeout(3000);
            dis.setCurrent(frmMenu);
        }
        else
        {
            Alert al = new Alert("Login salah", "Login anda tidak sesuai dengan database kami", null, AlertType.ERROR);
            al.setTimeout(3000);
            dis.setCurrent(al, frmLogin);
        }
    }
}
Setelah itu jalankan aplikasi dengan meng-klik Build kemudian Run...
Kira-kira tampilannya seperti berikut...

isikan Admin pada username dan admin pada kolom password
jika berhasil maka tampilannya seperti berikut...



Selamat mencoba dirumah hehehe

6 komentar:

Unknown mengatakan...

makasih bg artikel nya , bagus banget . Cocok buat referensi TA saya . Sekali lagi terima kasih :)

dreyazt mengatakan...

sama-sama mas/mbak... kebetulan itu juga bahan skripsi saya... semoga sukses skripsinya.. hehe

Mas Didik mengatakan...

terima kasih mas, postingannya sangat membantu saya.

tapi kalo mau di transfer ke hp gimana mas?

kan login.php terletak di xaamp?

mohon bantuannnya,

dreyazt mengatakan...

aplikasinya harus dijadikan .jar dulu mas bias bisa diinstal ke HP :)

imamrosadix mengatakan...

tengkiuu beraatt den !

Master Komputer mengatakan...

setelah saya coba coding di atas kenpa gk bisa login mas...? apa slh nya t mas...?