Anda di halaman 1dari 16

PROYEK REGULER ATA 2009/2010

PRAKTIKUM MOBILE COMPUTING SOFTWARE (MCS)


APLIKASI RAMALAN

Disusun oleh :

M. Fatihurrizqi 20106829

Syahri Siky 21106684

Wandes Hansen Pratama 21106459

LABORATORIUM LANJUT SISTEM KOMPUTER

UNIVERSITAS GUNADARMA

2009
Penjelasan Aplikasi Ramalan

Dasar-dasar Midlet

Midlet adalah aplikasi yang dibuat dengan menggunakan Java 2 Micro Edition dengan profile
Mobile Information Device Profile (MIDP). MIDP dikhususkan untuk digunakan pada
handset dengan kemampuan CPU, memori, keyboard, dan layar yang terbatas misalnya pada
handphone, PDA dan sebagainya. Secara umum terdapat beberapa hal yang terpenting dalam
membuat sebuah aplikasi MIDLET yaitu mengangkut lifecycle, user interface, command
handling dan aplikasi management.

Lifecycle dari sebuah midlet ditangani oleh application management software (AMS), AMS
ini adalah sebuah lingkungan tempat siklus dari sebuah MIDlet mampu diciptakan,
dijalankan, dihentikan, maupun dihilangkan. MIDlet memiliki beberapa state yaitu pause,
active, dan destroy. Ketika masing-masing state dipanggil, beberapa method standar yang
bersesuaian dipanggil. Method-method ini merupakan bawaan dari J2ME.

Sebuah MIDlet yang pertama yang akan diciptakan pertama kali akan berada di state pause,
jika terjadi kesalahan akan berpindah ke status destroy dan MIDlet akan batal diciptakan
dengan jalan memanggil fungsi standar destoyApp(). Selanjutnya jika MIDlet dijalankan
MIDlet akan berada pada state active dalam hal ini fungsi standar yang dipanggil adalah
startApp(). Akan tetapi jika di tengah MIDlet dihentikan sementara MIDlet akan berada di
sate pause dengan jalan memanggil fungsi standar pauseApp(). Dan pada state ini diperlukan
proses cleanup terhadap garbage collector yang dihasilkan.

User interface dari MIDP terdiri dari API – API yang High level dan Low Level. Low Level
API berbasis pada canvas sedangkan high level API berbasi sebagai screen. Contoh dari high
level API adalah Alert, Form, List, dan TextBox.

Ketika selesai membuat sebuah aplikasi, aplikasi akan dikemas dalam sebuah paket yang
berekstensi *.JAR. selain itu dikenal pula file *.JAD yang disebut sebagai application
descriptor yang berguna untuk mendeskripsikan isi dari file JAR. Kedua file harus diupload
ke ponsel pengguna agar aplikasi dapat dijalankan.
Aplikasi Ramalan

Aplikasi ramalan adalah aplikasi yang dibuat dengan midlet yang digunakan untuk meramal
kita dan pasangan kita dengan menggunakan metode weton atau hari pasaran. Hari pasaran
dan weton dapat sedikit banyak mempengaruhi kehidupan seseorang. Seseorang dan dapat
dilihat tingkah laku dan wataknya melalui hari dan pasaran kelahirannya, hal ini juga bisa
memprediki masa depan orang tersebut.

Dengan menggunakan aplikasi Ramalan ini pengguna akan mudah mengetahui hari weton
dan pasaran serta prospek hubungan dengan pasangan kita ke depan walau Ramalan adalah
merupakan hal yang prokontra dalam menyikapinya, tetapi di sini kami mengabaikan pro dan
kontra mengenai Ramalan.
Pada gambar di atas adalah tampilan awal aplikasi Ramalan yang kami buat dengan nama
projek dan MIDlet Class name sesuai dengan judul yaitu Ramalan.

Flowchart

Start

Tampilan Program Ramalan


(form awal)

Pengisian TextBox Nama

Penentuan DateField Tanggal


Lahir

Selesai Melakukan Alert


Penginputan data pemberitahuan
kesalah

Melakukan Ramal

Hasil Ramal

End
Hasil

Bisa kita perhatikan tampilan hasil aplikasi Ramalan ini pada gambar di atas, jika semua
inputan berupa textbox dan datefield terisi semua maka proses ramal akan berlangsung dan
menghasilkan ramalan seperti pada gambar di atas, tetapi jika ada inputan belum terisi maka
akan muncul alert peringatan yang meminta mengisi input baik itu textbox dan datefield
dengan benar.

Misalnya kita belum mengisi inputan pada textbox maka akan alert pesan “Form Nama ada
yang kosong” sedangkan jika datefield tanggal lahir belum terisi maka alert pesan berbunyi
“Tanggal Lahir Masih Kosong” sehingga proses ramal pun tidak keluar dan mengharuskan
kembali untuk mengisi ulang form inputannya.
Kesimpulan

Aplikasi Ramalan ini sangat bermanfaat bagi orang yang ingin mengetahui prospek hubungan
dengan pasangannya melalui weton. Pada pembuatan apliksi Ramalan ini menggunakan
Wireless TooKit 2.5.1 dan editplus 3 untuk menulis dan mengedit skrip aplikasi ramalan
dalam skrip java. Aplikasi ramalan ini mempunyai tampilan input atau masukan
menggunakan TextField dan DateField. TextField digunakan untuk memasukan data Nama
Calon yang ingin diramal dan nama pasangannya sedangkan DateField digunakan untuk
memasukan inputan berupa tanggal lahir orang yang akan diramal dengan tanggal lahir
pasangannya.

Harapan

Harapan dari pembuatan aplikasi Ramalan oleh kami adalah semoga aplikasi ini bermanfaat
bagi orang yang membutuhkan dalam hal untuk mengetahui weton kelahirannya dan lain-
lain. Penulis juga berharap dengan pembuatan aplikasi ini tugas proyek praktikum MCS
dapat penulis bisa menambah kreatifitas dalam pembuatan aplikasi yang lainnya dengan
menggunakan pemograman java khususnya dengan menggunakan java 2.

Program

Berikut skrip aplikasi ramalan dimana project name dan MIDlet Class Name nya adalah
Ramalan :

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

/**
* @PROYEK PRAKTIKUM MCS LAB LANJUT SK
*/
public class Ramalan extends MIDlet implements CommandListener {
private Display display;
private Form fmMain,fmHasil;
private TextField textNama1,textNama2;
private DateField textTgl1,textTgl2;
private Command cmdKeluar,cmdRamal,cmdBack;
private Command okAllert;

public RamalJodoh1(){
display = Display.getDisplay(this);
fmMain = new Form("Ramalan Jodoh");
fmHasil = new Form ("Hasil Ramalan :");
textNama1 = new TextField("Nama",null,50,TextField.ANY);
textNama2 = new TextField("Nama Pasangan Kamu ",null,50,TextField.ANY);
textTgl1 = new DateField("Tanggal Lahir ",DateField.DATE);
textTgl2 = new DateField("Tanggal Lahir Pasangan Kamu",DateField.DATE);
cmdKeluar = new Command("Keluar", Command.EXIT, 1);
cmdRamal = new Command("Ramal", Command.OK, 2);
cmdBack = new Command("Kembali",Command.BACK,3);
okAllert = new Command("OK",Command.EXIT,3);
fmMain.append(textNama1);
fmMain.append(textTgl1);
fmMain.append(textNama2);
fmMain.append(textTgl2);
fmMain.append("www.putupondokbalong.blogmalhikdua.com");
fmMain.addCommand(cmdKeluar);
fmMain.addCommand(cmdRamal);
fmMain.setCommandListener(this);
}
public void startApp() {
display.setCurrent(fmMain);
}

public void pauseApp() {


}

public void destroyApp(boolean unconditional) {


notifyDestroyed();
}

public void commandAction(Command c, Displayable d) {


if(c == cmdKeluar){
destroyApp(true);
}else if (c == cmdRamal){
ramal();
}else if(c == okAllert){
display.setCurrent(fmMain);
}else if(c == cmdBack){
display.setCurrent(fmMain);
fmHasil.deleteAll();
}
}

private boolean cekDataNama(){


boolean hs = false;
if ((textNama1.getString().length() != 0)
&&(textNama2.getString().length() != 0)){
hs = true;
}
return hs;
}

private static String namaHari(Date datanya){


String hs = null;
String a;
String[] b;
a=datanya.toString();
b=split(a," ");
String data = b[0];
if(data.equals("Sun")){
hs="Minggu";
}else if(data.equals("Mon")){
hs="Senin";
}else if(data.equals("Tue")){
hs="Selasa";
}else if(data.equals("Wed")){
hs="Rabu";
}else if(data.equals("Thu")){
hs="Kamis";
}else if(data.equals("Fri")){
hs="Jumat";
}else if(data.equals("Sat")){
hs="Sabtu";
}
return hs;
}
private static String namaPasaran(Date data){
String hs = null;
Date inisial = new Date(61200000);
double hasilbagi = data.getTime() - inisial.getTime();
hasilbagi = hasilbagi+86400000;
hasilbagi = hasilbagi/432000000;
int sisa = (int) (((hasilbagi - Math.floor(hasilbagi)) * 10) / 2);
if (sisa==0) hs="Wage";
if (sisa==1) hs="Kliwon";
if (sisa==2) hs="Legi";
if (sisa==3) hs="Pahing";
if (sisa==4) hs="Pon";
return hs;
}
public static int indexHariPasaran(String hari,String pasaran){
int indexhari = 0,indexpasaran = 0;
if (hari.equals("Minggu")){
indexhari = 5;
}else if (hari.equals("Senin")){
indexhari = 4;
}else if (hari.equals("Selasa")){
indexhari = 3;
}else if (hari.equals("Rabu")){
indexhari = 7;
}else if (hari.equals("Kamis")){
indexhari = 8;
}else if (hari.equals("Jumat")){
indexhari = 6;
}else if (hari.equals("Sabtu")){
indexhari = 9;
}
if (pasaran.equals("Pahing")){
indexpasaran = 9;
}else if (pasaran.equals("Pon")){
indexpasaran = 7;
}else if (pasaran.equals("Wage")){
indexpasaran = 4;
}else if (pasaran.equals("Kliwon")){
indexpasaran = 8;
}else if (pasaran.equals("Legi")){
indexpasaran = 5;
}
return indexhari+indexpasaran;
}

private void ramal(){


if (cekDataNama() == false){
alertnya("Kesalahan","Form Nama ada yang kosong");
}else{
try {
String textweton = null;
String textRamal = null;
int indexKamu;
int indexPasangan;
double indexTot;
double indexdibagi;
double sisatemp;
indexKamu = indexHariPasaran(namaHari(textTgl1.getDate()),
namaPasaran(textTgl1.getDate()));
indexPasangan = indexHariPasaran(namaHari(textTgl2.getDate()),
namaPasaran(textTgl2.getDate()));
indexTot = indexKamu + indexPasangan;
indexdibagi = indexTot / 7;
sisatemp = (indexdibagi - Math.floor(indexdibagi));
int sisa = (int) (sisatemp*7);
String pasarankamu = namaPasaran(textTgl1.getDate());

if (pasarankamu.equals("Wage")) {
textweton = "Kamu termasuk orang yang memiliki pendirian teguh dan tidak mudah
terpengaruh oleh orang lain, tidak banyak bicara namun berhati keras. Sayangnya, dalam
beberapa hal koq kayaknya kamu agak lemah dalam berpikir.";
} else if (pasarankamu.equals("Kliwon")) {
textweton = "Kamu tergolong orang yang cerdas, pandai bicara dan pandai dalam mencari
rejeki sekalipun tidak pandai menyimpan uang (alias boros). Kamu termasuk tipe orang yang
suka menolong, namun demikian sifatmu yang mudah tersinggung perlu lebih dikendalikan.";
} else if (pasarankamu.equals("Legi")) {
textweton = "Beruntunglah kamu, karena kamu termasuk orang yang banyak disukai orang
lain karena sikap ksatriamu. Kamu mempunyai rasa tanggung jawab yang tinggi. Disisi lain,
kamu punya budi pekerti yang halus dan sopan santun. Mau menerima dan suka memberi.
Satu kelemahanmu, jika mempunyai keinginan sulit dibantah.";
} else if (pasarankamu.equals("Pahing")) {
textweton = "Kamu termasuk orang yang berotak cerdas dan tidak mudah terpengaruh oleh
orang lain, suka apa saja yang kamu lihat, suka menyendiri. Kekuranganmu adalah kurang
bisa bergaul dan suka pamrih dalam memberikan bantuan pada orang lain.";
} else if (pasarankamu.equals("Pon")) {
textweton = "Kamu termasuk orang yang cerdas, pandai mencari rejeki dan tidak boros.
Berani berkorban, banyak bicara, suka memamerkan harta kekayaan dan yang perlu diingat
adalah jika kamu marah sangat menakutkan!";
}

if (sisa == 0) {
textRamal = "Keluargamu sebenarnya pandai mencari penghasilan, tapi sering ditipu orang
sehingga sering mendapat kesengsaraan dan kesulitan. \n" + "Sebutan untuk pasangan ini:
Garangan Macan.";
} else if (sisa == 1) {
textRamal = "Keluargamu besar wibawaannya dan luas pengalamannya, tetapi kalo punya
anak satu, Jika laki-laki, ayahnya yang kalah. Jika perempuan, ibunya yang kalah.\n" +
"Sebutan untuk pasangan ini: Pisang Pinugel";
} else if (sisa == 2) {
textRamal = "Keluargamu akan tenang, tentram, dan selamat serta bahagia rumah tangganya,
serta mendapat rejeki yang langsung dan lumintu.\n" + "Sebutan untuk pasangan ini: Sanggar
Waringin.";
} else if (sisa == 3) {
textRamal = "Keluargamu akan selalu mendapat kemuliaan dan mendapat penghormatan,
cepat kaya, tapi sering kemalingan.\n" + "Sebutan untuk pasangan ini: Gedong Rembulan.";
} else if (sisa == 4) {
textRamal = "Keluargamu bisa menjadi pemimpin atau memberi teladan pada tetangga kanan
kirinya, tetapi panas di tempat tidur, artinya sering sakit-sakitan.\n" + "Sebutan untuk
pasangan ini: Bale Kedhawang.";
} else if (sisa == 5) {
textRamal = "Keluargamu akan selamat, tapi kalo mempunyai anak sudah dewasa akan
meninggal. Sering menderita kesulitan dan mendapat malu.\n" + "Sebutan untuk pasangan
ini: Gajah Plasungan.";
} else if (sisa == 6) {
textRamal = "Keluargamu bisa cari penghasilan, tapi tidak bisa menyimpan uang. Tabah
dalam menghadapi segala penderitaan, tetapi agak gelap hati.\n" + "Sebutan untuk pasangan
ini: Warak Pangrungrungan.";
}

String ramalTot = null;


ramalTot = "Halo " + textNama1.getString() + "\nHari kelahiran (Weton) kamu adalah " +
namaHari(textTgl1.getDate()) + " " + namaPasaran(textTgl1.getDate()) + "\n" + "Sedangkan
hari kelahiran (Weton) pasanganmu adalah " + namaHari(textTgl2.getDate()) + " " +
namaPasaran(textTgl2.getDate()) + "\n" + textweton + "\n\n" + "Dan ini kondisi keluargamu
jika kamu menikah dengan " + textNama2.getString() + "\n" + textRamal + "\n\n" + "Tapi
Ingat..!\nSemuanya berpulang kepada Tuhan Yang Maha Kuasa, karena manusia tidak bisa
menentukan Takdir dan Kodrat...\n\n\n";

fmHasil.append(ramalTot);
fmHasil.append("www.putupondokbalong.blogmalhikdua.com");
fmHasil.addCommand(cmdBack);
fmHasil.setCommandListener(this);
display.setCurrent(fmHasil);

} catch(NullPointerException en){
alertnya("Kesalahan","Tanggal Lahir Masih Kosong");
}
}
}

private void alertnya(String title,String msg){


Alert alert = new Alert(title,msg,null,AlertType.INFO);
alert.addCommand(okAllert);
alert.setCommandListener(this);
display.setCurrent(alert);
}
private static String[] split (String a,String delimeter){
String c[]=new String[0];
String b=a;
while (true){
int i=b.indexOf(delimeter);
String d=b;
if (i>=0)
d=b.substring(0,i);
String e[]=new String[c.length+1];
for (int k=0;k<c.length;k++)
e[k]=c[k];
e[e.length-1]=d;
c=e;
b=b.substring(i+delimeter.length(),b.length());
if (b.length()<=0 || i<0 )
break;
}

return c;
}
}