Source Code untuk Informasi
package RPL_B;import javax.microedition.midlet.*;import javax.microedition.lcdui.*;
public class myGroup extends MIDlet
implements CommandListener {
private Display display;
private Form form;
private Alert alert;
private Command cmdKeluar;
private Command cmdAlert;
private Ticker ticker;
private String teksTicker = “Mata Kuliah Rekayasa Perangkat Lunak (Kelas B)”;
public myGroup() {
display = Display.getDisplay(this);
form = new Form(“Informasi”);
form.append(” TUGAS MOBILE APPLICATION\n Mata Kuliah Rekayasa Perangkat Lunak\n (Kelas B)\n\n\n\n Jurusan Teknik Informatika\n Fakultas Teknologi Informasi\n Institut Teknologi Sepuluh Nopember\n Surabaya\n 2006 / 2007″);
cmdKeluar = new Command(“Keluar”, Command.EXIT, 1);
cmdAlert = new Command(“Lihat Anggota”, Command.SCREEN, 2);
ticker = new Ticker(teksTicker);
form.setTicker(ticker);
form.addCommand(cmdKeluar);
form.addCommand(cmdAlert);
form.setCommandListener(this);
}
public void startApp() {
display.setCurrent(form);
}
public void pauseApp() {
}
public void destroyApp(boolean unconditional) {
}
private void showAlert() {
try
{
Image img = Image.createImage(“/gambar.png”);
String info = “Putu Pitri Wiarini (5105100001) \n” +
“Nur Chasiani (5105100017) \n” +
“Ratna Dewi Eskharini (5105100054)\n” +
“Shintami Chusnul Hidayati (5105100144)”;
alert = new Alert(“Daftar Anggota”, info, img, AlertType.INFO);
ticker = new Ticker(teksTicker);
alert.setTicker(ticker);
alert.setTimeout(5000); // 5000 berarti 5 detik
}
catch (Exception e)
{
System.out.println(e.getMessage());
}
display.setCurrent(alert, form);
}
public void commandAction(Command c, Displayable s) {
if (c == cmdKeluar) {
destroyApp(true);
notifyDestroyed();
} else if (c == cmdAlert) {
showAlert();
}
}
}
Source Code untuk membuat Jadwal
package RPL_B;import java.io.ByteArrayInputStream;import java.io.ByteArrayOutputStream;
import java.io.DataInputStream;
import java.io.DataOutputStream;
import java.io.IOException;
import javax.microedition.midlet.*;
import javax.microedition.lcdui.*;
import javax.microedition.rms.*;
public class mySchedule extends MIDlet
implements CommandListener {
private Display display;
private Form form;
private RecordStore rs;
private RecordEnumeration re;
private ChoiceGroup choicegroup;
private Alert alert;
private List list;
//untuk proses entri data
private Form entri;
private TextField tfNama, tfHari, tfJam, tfDosen, tfNoTelp, tfCari;
private final Command cmdKeluar =
new Command(“Keluar”, Command.EXIT, 1);
private final Command cmdPilih =
new Command(“Pilih”, Command.OK, 1);
private final Command cmdSimpan =
new Command(“Simpan”, Command.SCREEN, 1);
private final Command cmdHapus =
new Command(“Hapus”, Command.SCREEN, 1);
private final Command cmdKembali =
new Command(“Kembali”, Command.BACK, 1);
public mySchedule()
{
display = Display.getDisplay(this);
alert = new Alert(null);
alert.setTimeout(Alert.FOREVER);
list = new List(null, Choice.IMPLICIT);
rs = null;
// membuat atau membuka record store
try {
rs = RecordStore.openRecordStore(“Pencatatan Jadwal”, true);
} catch (RecordStoreException rse) {
alert.setString(“Record store tidak dapat dibuka. ” +
“Aplikasi akan dihetikan”);
alert.setType(AlertType.ERROR);
display.setCurrent(alert, null);
System.exit(1);
}
}
public void startApp() {
form = new Form(“Kalender”);
choicegroup = new ChoiceGroup(“Menu:”, Choice.EXCLUSIVE);
choicegroup.append(“Lihat Jadwal”, null);
choicegroup.append(“Tambah Jadwal”, null);
form.append(choicegroup);
form.addCommand(cmdKeluar);
form.addCommand(cmdPilih);
form.setCommandListener(this);
display.setCurrent(form);
}
public void pauseApp() {
}
public void destroyApp(boolean unconditional) {
}
public void commandAction(Command c, Displayable s) {
if (c == cmdKeluar) {
destroyApp(false);
notifyDestroyed();
} else if (c == cmdPilih) {
switch (choicegroup.getSelectedIndex()) {
case 0: {
lihatRecord();
break;
}
case 1: {
entriData();
break;
}
}
} else if (c == cmdKembali) {
display.setCurrent(form);
} else if (c == cmdSimpan) {
alert.setType(AlertType.INFO);
String sNama = tfNama.getString();
String sHari = tfHari.getString();
String sJam = tfJam.getString();
String sDosen = tfDosen.getString();
if (sNama.length() != 0 && sHari.length() != 0 && sJam.length() != 0 && sDosen.length() != 0)
{
tambahRecord(tfNama.getString(), tfHari.getString(), tfJam.getString(), tfDosen.getString(), tfNoTelp.getString());
alert.setString(“Data baru telah berhasil disimpan”);
display.setCurrent(alert, form);
} else {
alert.setString(“Data NAMA MATA KULIAH, HARI, PUKUL, dan NAMA DOSEN ” +
“tidak boleh kosong. Oke?”);
display.setCurrent(alert, entri);
}
} else if (c == cmdHapus) {
int pos =
list.getString(list.getSelectedIndex()).indexOf(” \n”);
String nama = list.getString(
list.getSelectedIndex()).substring(0, pos);
hapusRecord(nama);
}
}
public void tambahRecord(String nama, String hari, String jam, String dosen, String noTelp) {
byte[] temp = null;
try {
ByteArrayOutputStream baos = new ByteArrayOutputStream();
DataOutputStream dos = new DataOutputStream(baos);
dos.writeUTF(nama);
dos.writeUTF(hari);
dos.writeUTF(jam);
dos.writeUTF(dosen);
dos.writeUTF(noTelp);
temp = baos.toByteArray();
} catch (IOException ioe) {
ioe.printStackTrace();
}
try {
rs.addRecord(temp, 0, temp.length);
} catch (RecordStoreNotOpenException rsnoe) {
rsnoe.printStackTrace();
} catch (RecordStoreException rse) {
rse.printStackTrace();
}
}
public void lihatRecord() {
byte[] temp = null;
list.setTitle(“Daftar Record”);
list.deleteAll();
try {
re = rs.enumerateRecords(null, null, false);
while (re.hasNextElement()) {
int i = re.nextRecordId();
temp = rs.getRecord(i);
ByteArrayInputStream bais =
new ByteArrayInputStream(temp);
DataInputStream dis = new DataInputStream(bais);
try {
String nama = dis.readUTF();
String hari = dis.readUTF();
String jam = dis.readUTF();
String dosen = dis.readUTF();
String noTelp = dis.readUTF();
list.append(nama + ” \n Jadwal : ” + hari + ” – ” + jam + ” \n” + ” Pengajar: ” + dosen + ” – ” + noTelp + “\n”, null);
} catch (IOException ioe) {
ioe.printStackTrace();
}
}
list.addCommand(cmdKembali);
list.addCommand(cmdHapus);
list.setCommandListener(this);
display.setCurrent(list);
} catch (InvalidRecordIDException invID) {
invID.printStackTrace();
} catch (RecordStoreNotOpenException rsnoe) {
rsnoe.printStackTrace();
} catch (RecordStoreException rse) {
rse.printStackTrace();
}
}
public void hapusRecord(String nama) {
byte[] temp = null;
try {
re = rs.enumerateRecords(null, null, false);
while (re.hasNextElement()) {
int i = re.nextRecordId();
temp = rs.getRecord(i);
ByteArrayInputStream bais =
new ByteArrayInputStream(temp);
DataInputStream dis = new DataInputStream(bais);
try {
String vNama = dis.readUTF();
if (vNama.equals(nama)) {
rs.deleteRecord(i);
break;
}
} catch (IOException ioe) {
ioe.printStackTrace();
}
}
re.rebuild();
lihatRecord();
} catch (RecordStoreNotOpenException rsnoe) {
rsnoe.printStackTrace();
} catch (RecordStoreException rse) {
rse.printStackTrace();
}
}
public Form entriData() {
entri = new Form(“Entri Data”);
tfNama = new TextField(“Mata Kuliah:”, null, 30, TextField.ANY);
tfHari = new TextField(“Hari: “, null, 6, TextField.ANY);
tfJam = new TextField(“Pukul:”, null, 5, TextField.DECIMAL);
tfDosen = new TextField(“Nama Dosen:”, null, 25, TextField.ANY);
tfNoTelp = new TextField(“No. Telepon Dosen:”, null, 15, TextField.PHONENUMBER);
entri.append(tfNama);
entri.append(tfHari);
entri.append(tfJam);
entri.append(tfDosen);
entri.append(tfNoTelp);
entri.addCommand(cmdSimpan);
entri.addCommand(cmdKembali);
entri.setCommandListener(this);
display.setCurrent(entri);
return entri;
}
}
Source Code untuk membuat Calculator
package RPL_B;import javax.microedition.midlet.MIDlet;
import javax.microedition.lcdui.*;
public final class CalculatorMIDlet extends MIDlet implements CommandListener {
private static final int NUM_SIZE=20;
private Ticker ticker;
private String teksTicker = “Mata Kuliah Rekayasa Perangkat Lunak (Kelas B)”;
private final Command cmdKeluar =
new Command(“Keluar”, Command.EXIT, 2);
private final Command cmdHitung =
new Command(“Hitung”, Command.SCREEN, 1);
private final TextField t1 =
new TextField(“Angka pertama”, “”, NUM_SIZE, TextField.DECIMAL);
private final TextField t2 =
new TextField(“Angka kedua”, “”, NUM_SIZE, TextField.DECIMAL);
private final TextField t3 =
new TextField(“Angka ketiga”, “”, NUM_SIZE, TextField.DECIMAL);
private final TextField tr =
new TextField(“Hasil kalkulasi pertama”, “”, NUM_SIZE, TextField.UNEDITABLE);
private final TextField tr2 =
new TextField(“Hasil kalkulasi kedua (kalkulasi hasil pertama dengan angka ketiga)”, “”, NUM_SIZE, TextField.UNEDITABLE);
private final ChoiceGroup cg =
new ChoiceGroup(“”, ChoiceGroup.POPUP, new String[] {“tambah [+]“, “kurang [-]“, “kali [x]“, “bagi [:]“}, null);
private final ChoiceGroup cg2 =
new ChoiceGroup(“”, ChoiceGroup.POPUP, new String[] { “tambah [+]“, “kurang [-]“, “kali [x]“, “bagi [:]” }, null);
private final Alert alert = new Alert(“Error”, “”, null, AlertType.ERROR);
private boolean isInitialized = false;
protected void startApp() {
if (isInitialized) {
return;
}
Form f = new Form(“Kalkulator”);
ticker = new Ticker(teksTicker);
f.setTicker(ticker);
f.append(t1);
f.append(cg);
f.append(t2);
f.append(tr);
f.append(cg2);
f.append(t3);
f.append(tr2);
f.addCommand(cmdKeluar);
f.addCommand(cmdHitung);
f.setCommandListener(this);
Display.getDisplay(this).setCurrent(f);
alert.addCommand(new Command(“Kembali”, Command.SCREEN, 1));
isInitialized = true;
}
protected void destroyApp(boolean unconditional) {}
protected void pauseApp() {}
public void commandAction(Command c, Displayable d) {
if (c == cmdKeluar) {
destroyApp(false);
notifyDestroyed();
return;
}
double res = 0.0;
double res2 = 0.0;
try {
double n1 = getNumber(t1, “Angka Pertama”);
double n2 = getNumber(t2, “Angka Kedua”);
switch (cg.getSelectedIndex()) {
case 0: res = n1 + n2; break;
case 1: res = n1 – n2; break;
case 2: res = n1 * n2; break;
case 3: res = n1 / n2; break;
default:
}
} catch (NumberFormatException e) {
return;
} catch (ArithmeticException e) {
alert.setString(“Divide by zero.”);
Display.getDisplay(this).setCurrent(alert);
return;
}
String res_str = Double.toString(res);
if (res_str.length() > tr.getMaxSize()) {
tr.setMaxSize(res_str.length());
}
tr.setString(res_str);
try
{
double n3 = getNumber(t3, “Angka Ketiga”);
switch (cg2.getSelectedIndex())
{
case 0: res2 = res + n3; break;
case 1: res2 = res – n3; break;
case 2: res2 = res * n3; break;
case 3: res2 = res / n3; break;
default:
}
}
catch (NumberFormatException e)
{
return;
}
catch (ArithmeticException e)
{
alert.setString(“Divide by zero.”);
Display.getDisplay(this).setCurrent(alert);
return;
}
String res_str2 = Double.toString(res2);
if (res_str2.length() > tr2.getMaxSize())
{
tr2.setMaxSize(res_str2.length());
}
tr2.setString(res_str2);
}
private double getNumber(TextField t, String type)
throws NumberFormatException {
String s = t.getString();
if (s.length() == 0) {
alert.setString(“Anda belum memasukan ” + type + “.”);
Display.getDisplay(this).setCurrent(alert);
throw new NumberFormatException();
}
double n;
try {
n = Double.parseDouble(s);
} catch (NumberFormatException e) {
alert.setString(type + ” melebihi batas.”);
Display.getDisplay(this).setCurrent(alert);
throw e;
}
return n;
}
}
Source Code untuk Setting Tanggal dan atau Waktu
package RPL_B;import javax.microedition.midlet.*;import javax.microedition.lcdui.*;
public class DateAndTime extends MIDlet
implements CommandListener {
private Display display;
private List list;
private Form form;
private DateField datefield;
private Ticker ticker;
private String judulForm;
private String teksTicker = “Mata Kuliah Rekayasa Perangkat Lunak (Kelas B)”;
private String[] daftarMenu = {
“Setting Tanggal”,
“Setting Waktu”,
“Setting Tanggal dan Waktu”
};
private final Command cmdKeluar =
new Command(“Keluar”, Command.EXIT, 1);
private final Command cmdOK = new Command(“OK”, Command.OK, 1);
private final Command cmdKembali =
new Command(“Kembali”, Command.BACK, 1);
public DateAndTime()
{
display = Display.getDisplay(this);
form = new Form(“Setting Tanggal dan atau Waktu”);
form.addCommand(cmdKembali);
form.setCommandListener(this);
}
public void startApp() {
list = new List(“Setting Tanggal dan atau Waktu”, Choice.EXCLUSIVE, daftarMenu, null);
ticker = new Ticker(teksTicker);
list.setTicker(ticker);
list.addCommand(cmdKeluar);
list.addCommand(cmdOK);
list.setCommandListener(this);
display.setCurrent(list);
}
public void pauseApp() {
}
public void destroyApp(boolean unconditional) {
}
public void commandAction(Command c, Displayable s) {
form.setTicker(ticker);
if (c == cmdKeluar) {
destroyApp(false);
notifyDestroyed();
} else if (c == cmdKembali) {
display.setCurrent(list);
} else {
datefield = null;
switch (list.getSelectedIndex()) {
case 0: {
datefield = new DateField(“Setting Tanggal”, DateField.DATE);
break;
}
case 1: {
datefield = new DateField(“Setting Waktu”, DateField.TIME);
break;
}
case 2: {
datefield = new DateField(“Setting Tanggal dan Waktu”, DateField.DATE_TIME);
break;
}
}
form.deleteAll();
form.append(datefield);
display.setCurrent(form);
}
}
}
