AGENDA
Tutorials - Blackberry
Login HTTP Connection BlackBerry



Pada tutorial ini Anda akan mencoba melakukan hal berikut:

  1.  Membuat sebuah form untuk menampung User Name dan Password, serta tombol Cancel dan tombol Login
  2.  Melakukan koneksi ke service php
  3.  Berpindah dari 1 form ke form lainnya
  4.  Mengatur layout yang menempatkan beberapa komponen.

Step 1

Buatlah project baru dengan mengklik File »  New Project, kemudian pilihlah BlackBerry Project lalu klik tombol Next.

Selanjutnya klik Next.

Step 2

Kemudian pada jendela New BlackBerry Project ketikkan nama project BasicLoginHTTPConnection, lalu klik tombol Finish.

Step 3

Buatlah sebuah package baru, caranya pada project BasicLoginHTTPConnection [klik kanan] » New » Package


Lalu pada jendela New Java Package, ketikkan Name: www.aplysit.com

Step 4

Pada package www.aplysit.com yang baru saja dibuat tadi, selanjutnya buatlah sebuah class baru, caranya  www.aplysit.com [klik kanan] » New » Class.

Step 5

Selanjutnya akan tampil window New Java Class, lalau berikan Name: FormLogin kemudian tekan tombol Finish.


Lalu akan ditampilkan sebuah editor class seperti gambar berikut:

Step 6

Modifikasilah isinya, sehingga source codenya menjadi seperti berikut ini:

/* Nama file : FormLogin.java
 * Website : www.aplysit.com
 * Deskripsi : – Menampilkan form login dengan memanfaatkan komponen Label,
 TextBox, dan Button
 * – Melakukan koneksi ke php-mysql untuk verivikasi login
 * Author : Ivan Michael Siregar
 **/
package www.aplysit.com;

import java.io.IOException;
import java.io.InputStreamReader;
import javax.microedition.io.HttpConnection;
import net.rim.device.api.io.transport.ConnectionDescriptor;
import net.rim.device.api.io.transport.ConnectionFactory;
import net.rim.device.api.ui.Field;
import net.rim.device.api.ui.FieldChangeListener;
import net.rim.device.api.ui.UiApplication;
import net.rim.device.api.ui.component.ButtonField;
import net.rim.device.api.ui.component.Dialog;
import net.rim.device.api.ui.component.LabelField;
import net.rim.device.api.ui.component.PasswordEditField;
import net.rim.device.api.ui.component.TextField;
import net.rim.device.api.ui.container.HorizontalFieldManager;
import net.rim.device.api.ui.container.MainScreen;

public class FormLogin extends UiApplication implements FieldChangeListener {

    String hasil = "0";

    public static void main(String[] args) {
        FormLogin theApp = new FormLogin();
        theApp.enterEventDispatcher();
    }

    public FormLogin() {

        //Code for MainScreen
        MainScreen screenUtama = new MainScreen();

        screenUtama.setTitle("Login Panel");

        //Username: Label dan Textbox
        LabelField lblUsername = new LabelField("Username");
        TextField txtUsername = new TextField(100);
        txtUsername.setMinimalWidth(100);

        //Password: Label dan Textbox
        LabelField lblPassword = new LabelField("Password");
        PasswordEditField txtPassword = new PasswordEditField();
        txtPassword.setMinimalWidth(100);

        //Ambil lebar screen
        int screenwidth = screenUtama.getContentWidth();

        //Buat container untuk menampung Login dan Cancel
        HorizontalFieldManager hfmContainer = new HorizontalFieldManager();

        //Tombol Cancel
        ButtonField btnCancel = new ButtonField("Cancel", ButtonField.CONSUME_CLICK);
        btnCancel.setMinimalWidth(screenwidth);
        btnCancel.setMargin(30, 0, 0, 20);

        //Tombol Login
        ButtonField btnLogin = new ButtonField("Login", ButtonField.CONSUME_CLICK);
        btnLogin.setMinimalWidth(screenwidth);
        btnLogin.setMargin(30, 0, 50, 70);

        //Tempatkan Login dan Cancel pada container
        hfmContainer.add(btnCancel);
        hfmContainer.add(btnLogin);

        //Tempatkan Username dan Password pada base screen
        screenUtama.add(lblUsername);
        screenUtama.add(txtUsername);
        screenUtama.add(lblPassword);
        screenUtama.add(txtPassword);

        //Tempatkan container pada base screen
        screenUtama.add(hfmContainer);

        //Tampilkan screen utama
        pushScreen(screenUtama);

        //Implementasi event handler untuk table Login
        btnLogin.setChangeListener(new FieldChangeListener() {
            public void fieldChanged(Field field, int context) {

                ThreadSendFriend conn = new ThreadSendFriend();
                conn.start();

                //Pindahkan form ke halaman lain
                pushScreen(new MainMenu());
            }
        });

    }

    public void fieldChanged(Field field, int context) {
        // TODO Auto-generated method stub
    }

    /**
     * ************************************************************
     * {BEGIN: Method yang menangani koneksi ke web server
     * *************************************************************
     */
    class ThreadSendFriend extends Thread {

        String response = "";
        String alamatnya = "http://localhost/project/basicloginhttpconnection/basicloginhttpconnection.php";

        //Anda juga bisa menggunakan alamat berikut, servicenya sudah kami sediakan
        //String alamatnya = "http://aplysit.com/blackberry/project/basicloginhttpconnection.php";
        public void run() {

            final HttpConnection httpConn;
            ConnectionFactory connFact = new ConnectionFactory();
            ConnectionDescriptor connDesc;
            connDesc = connFact.getConnection(alamatnya);
            if (connDesc != null) {

                httpConn = (HttpConnection) connDesc.getConnection();
                try {
                    final int iResponseCode = httpConn.getResponseCode();
                    final String h = httpConn.getURL();
                    UiApplication.getUiApplication().invokeLater(new Runnable() {
                        public void run() {
                            //Dialog.alert("Response code: " + h);
                            int size = 10;
                            StringBuffer tmp = new StringBuffer(size);

                            InputStreamReader input;
                            char[] buffer = new char[size];

                            try {
                                input = new InputStreamReader(httpConn.openInputStream());
                                while ((input.read(buffer, 0, buffer.length)) != -1) {
                                    tmp.append(buffer);
                                    buffer = new char[size];
                                }

                                //Buang seluruh karakter yang tidak terlihat dengan perintah trim
                                response = tmp.toString().trim();

                                //Jika ingin melihat hasilnya tampil pop up
                                //Dialog.alert("Lihat responnya" + response);
                                if (response.equals("1")) {
                                    pushScreen(new MainMenu());
                                } else {
                                    Dialog.alert("Invalid User");
                                }

                            } catch (IOException e) {
                                e.printStackTrace();
                            }
                        }
                    });
                } catch (IOException e) {
                    System.err.println("Caught IOException: " + e.getMessage());
                }
            }

        }
    }

    /**
     * ************************************************************
     * }END: Method yang menangani koneksi ke web server
     * *************************************************************
     */
}

Step 7

Kemudian buatlah pada package www.aplysit.com yang sama, buatlah sebuah class baru bernama MainMenu.java kemudian modifikasilah sourcecodenya menjadi seperti berikut:

/* Nama file : MainMenu.java
 * Website : www.aplysit.com
 * Deskripsi : – Menampilkan form login dengan memanfaatkan komponen
 Label, TextBox, dan Button
 * – Melakukan koneksi ke php-mysql untuk verivikasi login
 * Author : Ivan Michael Siregar
 **/
package www.aplysit.com;

import javax.microedition.media.Manager;
import net.rim.device.api.system.Bitmap;
import net.rim.device.api.ui.Field;
import net.rim.device.api.ui.FieldChangeListener;
import net.rim.device.api.ui.UiApplication;
import net.rim.device.api.ui.component.BitmapField;
import net.rim.device.api.ui.component.ButtonField;
import net.rim.device.api.ui.component.LabelField;
import net.rim.device.api.ui.component.SeparatorField;
import net.rim.device.api.ui.container.MainScreen;
import net.rim.device.api.ui.container.VerticalFieldManager;

public class MainMenu extends MainScreen {

    public MainMenu() {
        setTitle("Selamat Datang");

        //Siapkan sebuah manager and mengatur fasilitas scrolling apabila ada sejumlah
        //komponen yang ditempatkan
        VerticalFieldManager vfmContainer = new VerticalFieldManager();

        //Siapkan sebuah teks
        LabelField txtpesan = new LabelField("This page under construction");
        txtpesan.setMargin(10, 20, 0, 20);

        //Tempatkan teks pada container
        vfmContainer.add(txtpesan);

        ButtonField btnClose = new ButtonField("Tutup Form", ButtonField.CONSUME_CLICK);
        btnClose.setMargin(200, 10, 0, 0);

        //Implementasi event handle untuk tombol Tutup Aplikasi
        btnClose.setChangeListener(new FieldChangeListener() {
            public void fieldChanged(Field field, int context) {
                //Tutup form, dan pindah ke form sebelumnya
                close();
            }
        });

        add(vfmContainer);
        add(new SeparatorField());
        add(btnClose);

    }
}

Step 8

Siapkah sebuah file basicloginhttpconnection.php dan source codenya adalah seperti berikut:

echo "1";

?>

Step 9

Sekarang saatnya melakukan ujioba. Pada proyek BasicLoginHTTPConnection [klik kanan] »  New Project  »  New Project

Step 10

Hasilnya adalah seperti berikut:

 

 

 

Ulasan:
Proyek tersebut telah berhasil melakukan koneksi file server yang dilayani dengan script PHP. Meskipun pada script PHP hanya sekadar melakukan perintah echo “1”, namun tentu saja Anda dapat mengembangkannya dengan koneksi ke MySQL untuk melakukan perintah pemeriksaan username dan password. Caranya sangat simple, yaitu dengan menambahkan parameter pada alamat URL, misalnya seperti berikut ini:

basicloginhttpconnection.php?id=aplysit&password=corp

Lalu untuk mendapatkan variable tersebut, maka pada file php melakukan perintah berikut:

$id = $_POST[‘id’];
$pw = $_POST[‘pw’];

Source code lengkap dapat di download di:www.aplysit.com/kotakbrankas/BasicLoginHTTPConnection.rar

Selamat mengeksplorasi.

Like or Share This Article




COMMENTS ( 0 )
 
Keep connected with us, mobile apps available now !!