Membuat Permainan Meramal Jodoh untuk ponsel dengan J2ME
Senin, Mei 5, 2008 19:10Setelah sebelumnya bikin pake VB 6.0, sekarang masih juga dengan iseng iseng aku bikin pake J2ME. jadi program ini untuk di install di ponsel. Ponsel yang bisa di installin program ini adalah semua ponsel yang sudah mendukung Java MIDP 2.0.
Oya karena aku bikinnya iseng iseng, maka hasil dari permainan meramal ini juga gak boleh dibikin serius. Ntar dosa kata mas candra, soalnya katanya meramal itu perbuatan yang dilarang dalam agama. Apa lagi meramalnya sama dukun.hehehe.
Ok…jadi buat yang juga mau iseng iseng nginstall di Ponselnya, dan iseng iseng buat bermain meramal tentang kecocokan jodoh, langsung aja program nya bisa di download disini:
File hasil download-an diatas adalah file zip berisi file file jar dan jad. Masukan kedua file tsb, atau file jar nya saja kedalam ponsel kemudian install.
untuk yang mau belajar bikin sendiri programnya, dibawah ini aku sertakan source codenya. mungkin masih banyak kekeliruan pada program diatas atau pada source dibawah ini, jadi mohon ralatnya.
source codenya :
import java.io.IOException;
import java.util.*;
import javax.microedition.midlet.*;
import javax.microedition.lcdui.*;
/**
* @author MasWawa
*/
public class RamalJodoh extends MIDlet implements CommandListener {
private Display display;
private Form fmMain,fmHasil;
private TextField textNama1,textNama2;
private DateField textTgl1,textTgl2;
private Command exitCom,ramalCom,backCom;
private Command okAllert = new Command("OK",Command.EXIT,3);
public RamalJodoh(){
display = Display.getDisplay(this);
fmMain = new Form("Ramalan Jodoh");
fmHasil = new Form ("Hasil Ramalan :");
textNama1 = new TextField("Namamu",null,50,TextField.ANY);
textNama2 = new TextField("Nama Doi",null,50,TextField.ANY);
textTgl1 = new DateField("Tanggal Lahir mu",DateField.DATE);
textTgl2 = new DateField("Tanggal Lahir Doi",DateField.DATE);
exitCom = new Command("Keluar", Command.EXIT, 1);
ramalCom = new Command("Ramal", Command.OK, 2);
backCom = new Command("Kembali",Command.BACK,3);
fmMain.append(textNama1);
fmMain.append(textTgl1);
fmMain.append(textNama2);
fmMain.append(textTgl2);
fmMain.append("=============\n");
fmMain.append("by MasWawa\nwww.maswawa.web.id");
fmMain.addCommand(exitCom);
fmMain.addCommand(ramalCom);
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 == exitCom){
destroyApp(true);
}else if (c == ramalCom){
ramal();
}else if(c == okAllert){
display.setCurrent(fmMain);
}else if(c == backCom){
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.maswawa.web.id");
fmHasil.addCommand(backCom);
fmHasil.setCommandListener(this);
display.setCurrent(fmHasil);
} catch(NullPointerException en){
alertnya("Kesalahan","Mohon cek Isian tanggal");
}
}
}
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;
}
}
Related posts:









bb says:
Oktober 15th, 2008 at 07:24
mas bisa kasi contoh source code untuk mathcing jodoh di java ga???
aku ada tugas ni.. tp ga th logikanya
MasWawa says:
Oktober 16th, 2008 at 00:36
Matching Jodoh..Wah kayaknya harus harus jadi Dukun dulu nih. heheh.
Harus cari primbonnya dulu kali mas ya. trus dipelajari gimana cara ngitung manualnya, nah ini saya yang gak tau. mungkin kalo udah ada cara manualnya bisa dirubah ke java. coba cari cari referensinya mas di google.
saputra aries p says:
November 21st, 2008 at 04:38
ka punya source code j2me untuk kompressi file gak?? khususnya file audio..
tolong kirim ke emailku dunk ka kalau ada plis….makasi sebelumnya
saputra_neutron@yahoo.co.id
Firman says:
Desember 9th, 2008 at 21:26
Hay..MasWawa aq udah cb jalankan program RamalJodoh.. ta error.. gmn neh solusi nya..?
uuz says:
Januari 9th, 2009 at 12:12
mas wawa eror tuh….
udh d compile trus d run tp ga bisa
MasWawa says:
Januari 9th, 2009 at 12:32
@uuz dan All
Error nya dimana mas.?
MOhon di cek ulang source code yang anda copy sebelum di compile.
Jika anda langsung copy paste dari halaman ini kemungkinan error nya ada.
soalnya ada karakter2 html yang ikut ke copy.
sebagai contoh di baris 69. lihat ada karakter “& amp ;” pada html yang aslinya adalah karakter “&” . oleh javascript nya plugin di wordpress ini karakter “&” diubah menjadi “& amp ;”.
jadi silakan sebelum di compile ganti dengan “&” yang merupakan oprator perbandingan AND.
MasWawa says:
Januari 9th, 2009 at 13:12
Baris 69 sudah saya betulkan. silakan copy kembali.
meysa says:
Maret 7th, 2010 at 12:57
ada ga source code buat bikin multimedia audia Lebih tepatnya mp3 tapi ada Infonya gtu..
Teguh says:
Maret 7th, 2010 at 15:22
Kok gak jalan y mas..
Kesalahannya pada method floor
letaknya di math.flloor
tlg bantuannya y mas…
kirim k ragil_sms@yahoo.com
dhienz says:
April 5th, 2010 at 21:24
mas koq tglnya sama tahunnya ga bisa semua ya…
koq hasilnya suka cek isian tgl??
padahal tglnya udh bener..
tolong dun krimin program yang benernya mas…
kirim ke email ya dhienz_89@yahoo.com..
makasih..
inne says:
Mei 4th, 2010 at 20:16
mas,,aku dapet tugas kampus tentang horoscope kayak gini tapi ada tambahannya pake tes kecocokan yang hasilnya berupa persentasenya,,punya gak mas source codenya,,kirim yagh mas kemail quw kalo ada,,,thanx bgt yagh mas,,,
fauzan says:
Juni 2nd, 2010 at 19:31
mas klo mo nambahin gambar ma suara gmna ya di koding ituh,,tlong bantuannya donk,,kirimin ke email saya yah jawabannya…
Dhelezeph says:
Juli 22nd, 2010 at 11:47
Mas, mau tanya tentang perhitungan weton-nya dapat angka 61200000 di data inisial gmana rumusnya? 86400000, 432000000 gmana cara dapatnya?