Top Banner
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
16

proyek MCS

Jun 19, 2015

Download

Documents

Aplikasi Ramal jodoh menggunakan netbeans
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: proyek MCS

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

Page 2: proyek MCS

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.

Page 3: proyek MCS

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.

Page 4: proyek MCS

Start

Pengisian TextBox Nama

Penentuan DateField Tanggal

Lahir

Tampilan Program Ramalan

(form awal)

Selesai Melakukan

Penginputan data

Hasil Ramal

Melakukan Ramal

Alert

pemberitahuan

kesalah

End

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

Page 5: proyek MCS

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.

Page 6: proyek MCS
Page 7: proyek MCS

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

*/

Page 8: proyek MCS

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);

Page 9: proyek MCS

}

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)){

Page 10: proyek MCS

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;

}

Page 11: proyek MCS

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")){

Page 12: proyek MCS

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()));

Page 13: proyek MCS

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.";

Page 14: proyek MCS

} 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");

Page 15: proyek MCS

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;

Page 16: proyek MCS

b=b.substring(i+delimeter.length(),b.length());

if (b.length()<=0 || i<0 )

break;

}

return c;

}

}