Dhafiq Sagara adalah orang bodoh yang tidak bisa apa-apa, tapi dia selalu berusaha untuk terus menjadi yang lebih baik. Rasa keingin-tahuannya sangat tinggi, selalu berusaha dan terus berusaha, trial dan error adalah prinsip belajarnya.

2 Des 2010

J2ME - Membuat Contact Phonebook J2ME Dengan Memanfaatkan Library JSR-75 Untuk Akses PIM

PIM (Personal Information Management) adalah semacam pengolahan informasi pribadi, yaitu untuk memperoleh, mengatur, memelihara, mengambil, dan menggunakan item informasi untuk penggunaan sehari-hari. Pada aplikasi mobile konsep seperti ini digunakan untuk pengolahan informasi contact phonebook, event calendar yang terintegrasi langsung pada memori mobile phone untuk keperluan sehari-hari. Berangkat dari library yang disediakan java yaitu JSR-75, kita coba untuk membuat aplikasi J2ME untuk mengolah contact atau phonebook. Pada contoh yang saya berikan ini hanya mampu menambahkan contact dan menampilkan list kontak. Source code: ==== ContactPhonebook.java =====
package contact;

import javax.microedition.midlet.*;
import javax.microedition.lcdui.*;
import javax.microedition.pim.*;
import java.util.*;

public class ContactPhonebook extends MIDlet implements CommandListener {

    Form myForm;
    Form newContactForm;
    TextField enterName;
    TextField enterNumber;
    Display display;
    ContactList myContactList = null;
    Enumeration contact;
    Contact c = null;
    Command contactDB;
    Command displayPhonebook;
    Command exit;
    Command enterContact; 
    Command addContact; 
    Alert alert;
    final private static int ERROR = 0;
    final private static int INFO = 1;
    List mainScr;
    //PIMS
    PIM myPIM;

    public ContactPhonebook() {

        myForm = new Form("Contact PIM");

        display = Display.getDisplay(this);
        exit = new Command("Exit", Command.EXIT, 0);
        displayPhonebook = new Command("PhoneBook", Command.OK, 0);
        enterContact = new Command("Add Contact", Command.OK, 0);
        myForm.addCommand(displayPhonebook);
        myForm.addCommand(exit);
        myForm.addCommand(enterContact);
        alert = new Alert("", "", null, AlertType.INFO);
        alert.setTimeout(2000);
        myForm.setCommandListener(this);
        display.setCurrent(myForm);
        myPIM = PIM.getInstance();
        initPIM();

    }

    private void initPIM() {
        myForm.deleteAll();
        myPIM = PIM.getInstance();
        try {
            String ContactList[] =
                    myPIM.listPIMLists(PIM.CONTACT_LIST);
            myContactList = (ContactList) myPIM.openPIMList(PIM.CONTACT_LIST, PIM.READ_WRITE);
            contact = myContactList.items();
        } catch (Exception e) {
            e.printStackTrace();
        }
        DisplayContacts();
    }

    void DisplayNewContactForm() {

        newContactForm = new Form("Add new contact");
        addContact = new Command("Add", Command.OK, 0);

        enterName = new TextField("Name", "", 20, TextField.ANY);
        enterNumber = new TextField("Mobile Number", "", 20, TextField.ANY);

        newContactForm.append(enterName);
        newContactForm.append(enterNumber);
        newContactForm.addCommand(addContact);
        newContactForm.addCommand(displayPhonebook);
        newContactForm.setCommandListener(this);
        display.setCurrent(newContactForm);
    }

    void createNewContact() {

        String getName = enterName.getString();
        String getNumber = enterNumber.getString();
        Contact newContact = myContactList.createContact();

        if (myContactList.isSupportedField(Contact.FORMATTED_NAME)) {
            try {
                newContact.addString(Contact.FORMATTED_NAME, PIMItem.ATTR_NONE, getName);
            } catch (Exception e) {
                e.printStackTrace();
            }
        } else {
            System.out.println("THIS IS NAME");
        }

        if (myContactList.isSupportedField(Contact.TEL)) {
            try {
                newContact.addString(Contact.TEL, PIMItem.ATTR_NONE,
                        getNumber);
            } catch (Exception e) {
                e.printStackTrace();
            }
        }
        try {
            newContact.commit();
            System.out.println("Contact Added \n");
        } catch (Exception e) {
            e.printStackTrace();
        }
    }

    void DisplayContacts() {
        while (contact.hasMoreElements()) {
            c = (Contact) contact.nextElement();
                    myForm.append(c.getString(Contact.FORMATTED_NAME, 0) + " -");
                    myForm.append(c.getString(Contact.TEL, 0) + "\n");
        }
    }

    public void startApp() {
    }

    public void pauseApp() {
    }

    public void destroyApp(boolean unconditional) {
    }

    public void commandAction(Command c, Displayable d) {
        if (c==exit){
            this.destroyApp(true);
            this.notifyDestroyed();
        }
        if (c == displayPhonebook) {
            initPIM();
            display.setCurrent(myForm);
        } else if (c == enterContact) {
            DisplayNewContactForm();
        } else if (c == addContact) {
            createNewContact();
            DisplayNewContactForm();
        }
    }
}
Menampilkan contact list:
void DisplayContacts() {
        while (contact.hasMoreElements()) {
            c = (Contact) contact.nextElement();
                    myForm.append(c.getString(Contact.FORMATTED_NAME, 0) + " -");
                    myForm.append(c.getString(Contact.TEL, 0) + "\n");
        }
    }
Keterangan singkat dari source code di atas:
  1. Untuk menampilkan nama kontak menggunakan fungsi Contact.FORMATTED_NAME
  2. Sedangkan untuk menampilkan nomer telepon menggunakan fungsi Contact.TEL
Menambahkan Kontak baru
void createNewContact() {
        String getName = enterName.getString();
        String getNumber = enterNumber.getString();
        Contact newContact = myContactList.createContact();

        if (myContactList.isSupportedField(Contact.FORMATTED_NAME)) {
            try {
                newContact.addString(Contact.FORMATTED_NAME, PIMItem.ATTR_NONE, getName);
            } catch (Exception e) {
                e.printStackTrace();
            }
        } else {
            System.out.println("THIS IS NAME");
        }

        if (myContactList.isSupportedField(Contact.TEL)) {
            try {
                newContact.addString(Contact.TEL, PIMItem.ATTR_NONE,
                        getNumber);
            } catch (Exception e) {
                e.printStackTrace();
            }
        }
        try {
            newContact.commit();
            System.out.println("Contact Added \n");
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
Keterangan singkat dari source code di atas:
  1. Pada method createNewContact terdapat: newContact.addString(Contact.FORMATTED_NAME, PIMItem.ATTR_NONE, getName); untuk menambahkan contact nama dari textfield nama.
  2. Begitu pula pada contact telpon: newContact.addString(Contact.TEL, PIMItem.ATTR_NONE, getNumber); untuk menambahkan contact telpon berdasarkan value yang diinputkan pada textfield number.
Project souce code penuh dapat di download PIMPhonebook.zip

    Tidak ada komentar:

    Posting Komentar