Postingan lainnya
Mengapa Run dari Terminal Linux dan Run NetBeans berbeda Output?
Hallo, Ini Source Code saya, nah saat Run di NetBeans lancar, sesuai tanpa adanya bug dan sesuai. Tapi saat run di CMD maupun Terminal Linux menghasilkan output yang berbeda. Ada suatu Branch yang tidak dijalankan saat run di CMD maupun Terminal Linux. Ada yang tau penyebabnya?
<?java
package days.searching;
import javax.swing.*;
public class DaysSearching {
public static void main(String[] args) {
InputConsole ic = new InputConsole();
Proses ar = new Proses();
System.out.println("=======================================================================================================");
System.out.println(" Java's Days Searching");
System.out.println("=======================================================================================================");
System.out.println("");
System.out.println("");
System.out.print(" Masukkan Tanggal : ");
int h=ic.arI();
System.out.print(" Masukkan Bulan : ");
String m=ic.arS();
System.out.print(" Masukkan Tahun : ");
int t=ic.arI();
if(t>1800&t<2300){
int arx=ar.tahun(h, m, t);
if (arx==0) {
}
else{
String yui="";
String kania="";
if (arx%7==0) yui="Senin";
if (arx%7==1) yui="Selasa";
if (arx%7==2) yui="Rabu";
if (arx%7==3) yui="Kamis";
if (arx%7==4) yui="Jumat";
if (arx%7==5) yui="Sabtu";
if (arx%7==6) yui="Minggu";
if (arx%5==0) kania="Pahing";
if (arx%5==1) kania="Pon";
if (arx%5==2) kania="Wage";
if (arx%5==3) kania="Kliwon";
if (arx%5==4) kania="Legi";
System.out.println("");
System.out.println("");
System.out.println("=======================================================================================================");
System.out.println(" HASIL:");
System.out.println("");
System.out.println(" Pada Tanggal "+h+" "+m+" "+t+" adalah Hari "+yui+" "+kania);
System.out.println("");
System.out.println("=======================================================================================================");
System.out.println(" by Arata Reito");
}
}
else{
JOptionPane.showMessageDialog(null,"TAHUN TERLALU JAUH UNTUK DIPREDIKSI,AKAN ADA KESALAHAN PERHITUNGAN KARENA TERJADINYA PERLAMBATAN ROTASI","ALLERT",1);
}
}
}
?>
<?java
package days.searching;
import java.io.*;
public class InputConsole {
BufferedReader buf = new BufferedReader(new InputStreamReader(System.in),1);
public String arS(){
String arcox="";
try{
arcox=buf.readLine();
}
catch(IOException ex){
System.out.println(ex);
}
return arcox;
}
public int arI(){
return Integer.parseInt(arS());
}
}
?>
<?java
public int bulankabisat(String mm){
int b;
/*Sama seperti Method awal, ini adalah method 1.2
*/
if ("Januari".equalsIgnoreCase(mm)) b=0;
else if ("Februari".equalsIgnoreCase(mm)) b=31;
else if ("Maret".equalsIgnoreCase(mm)) b=60;
else if ("April".equalsIgnoreCase(mm)) b=91;
else if ("Mei".equalsIgnoreCase(mm)) b=121;
else if ("Juni".equalsIgnoreCase(mm)) b=152;
else if ("Juli".equalsIgnoreCase(mm)) b=182;
else if ("Agustus".equalsIgnoreCase(mm)) b=213;
else if ("September".equalsIgnoreCase(mm)) b=244;
else if ("Oktober".equalsIgnoreCase(mm)) b=274;
else if ("November".equalsIgnoreCase(mm)) b=305;
else if ("Desember".equalsIgnoreCase(mm)) b=335;
else b=-1;
return b;
}
public int tahun(int h, String mm, int t){
/** Ini adalah method 2 dimana proses penginputan nilai b dari method 1 atau method 1.2
* Disini nilai b akan diseleksi
*/
int arx=0;
if(((t%4==0)|(t%100!=0))&(t%400==0)){
//seleksi apakah tahun kabisat atau tidak
int b=bulankabisat(mm);
if (b>=0){
// Seleksi nilai b di tahun kabisat
if (h<=31&h>0){
if((b==31&&h>29)|(b==91&&h>30)|(b==152&&h>30)|(b==244&&h>30)|(b==305&&h>30)){
//seleksi ketika input tanggal melebihi kalender
JOptionPane.showMessageDialog(null, "INPUT SALAH!","ERROR!",0);
}
else{
if(b>=60){
//seleksi tahun kabisat setelah bulan februari
int p=t/4;
int kab=t/100;
int kab2=t/400;
arx=((t-1)*365)+(p-kab+kab2)+(b)+(h-1);
//rumus hari
}
else{
//jika di tahun kabisat dibawah bulan februari
int p=(t-1)/4;
//dikurang satu karena menurut aturan baku, jika bulan diatas februari
int kab=(t-1)/100;
int kab2=(t-1)/400;
arx=((t-1)*365)+(p-kab+kab2)+(b)+(h-1);
//rumus hari
}
}
}
else{
//Ketika input tanggal salah atau tidak terdaftar
JOptionPane.showMessageDialog(null,"INPUT TANGGAL SALAH","ERROR!!",0);
}
}else{
//Nilai b negatif yang menandakan nama bulan tidak terdaftar
JOptionPane.showMessageDialog(null,"NAMA BULAN TIDAK ADA!!","ERROR",0);
}
}
else{
int b=bulan(mm);
if (b>=0){
//seleksi nilai b pada tahun bukan kabisat
if (h<=31&h>0){
//seleksi jika melebihi tanggalan
if((b==31&h>28)|(b==90&h>30)|(b==151&h>30)|(b==243&h>30)|(b==304&h>30)){
//seleksi jika melebihi tanggalan
JOptionPane.showMessageDialog(null, "INPUT SALAH!","ERROR!",0);
}
else{
if(b>=60){
//seleksi diatas bulan februari
int p=Math.round(t)/4;
int bul=t/100;
int bul2=t/400;
arx=((t-1)*365)+(p-bul+bul2)+(b)+(h-1);
//rumus hari
}
if(b<60){
//dijalankan ketika input bulan januari atau februari
int p=(t-1)/4;
//dikurang satu karena menurut aturan baku, jika bulan diatas februari
int bul=(t-1)/100;
int bul2=(t-1)/400;
arx=((t-1)*365)+(p-bul+bul2)+(b)+(h-1);
//rumus hari
}
}
}
else{
//ketika input tanggal tidak valid
JOptionPane.showMessageDialog(null,"INPUT TANGGAL SALAH","ERROR!!",0);
}
}else{
// ketika input bulan tidak terdaftar atau tidak valid
JOptionPane.showMessageDialog(null,"BULAN TIDAK ADA!","ERROR!!",0);
}
}
return arx;
}
}
?>
Output di NetBeans
Output di Terminal Linux
0
Belum ada Jawaban. Jadi yang pertama Jawaban
Login untuk ikut Jawaban