import java.util.Scanner;
class statistika{
// Scanner Program
Scanner input = new Scanner(System.in);
// Variabel untuk probabilitas
public int j, k;
// Variabel untuk regresi
double[] x,y,x2,y2,xy;
int n;
double a1,a0,b1,b0;
// Variabel untuk median & mean
int banyak;
int data[];
int temp;
statistika(){menu();}
public void menu(){
System.out.println("==========================");
System.out.println("| PROGRAM STATISTIKA |");
System.out.println("==========================");
System.out.println("| 1. Probabilitas |");
System.out.println("| 2. Regresi |");
System.out.println("| 3. Mean & Median |");
System.out.println("| 4. Exit |");
System.out.println("==========================");
System.out.print(" Masukan pilhan Anda : ");
int pil = input.nextInt();
switch(pil){
case 1: clean(); prob(); break;
case 2: clean(); reg(); break;
case 3: clean(); medimean(); break;
case 4: System.exit(0);
default: clean(); menu();
}
}
// UNTUK JARAK MENU SATU DENGAN MENU LAINNYA
public void clean(){
for (int i=0;i<=0.5;i++){
System.out.println("\n");}}
// MENU PROBABILITAS
public void prob(){
System.out.println("==========================");
System.out.println("| Menu Probabilitas |");
System.out.println("==========================");
System.out.println("| 1. Input Nilai |");
System.out.println("| 2. Permutasi |");
System.out.println("| 3. Kombinasi |");
System.out.println("| 4. Menu Utama |");
System.out.println("==========================");
System.out.print(" Masukan pilhan Anda : ");
int pil = input.nextInt();
switch(pil){
case 1: clean(); inputData(); clean(); prob();
case 2: clean(); per(); clean(); prob();
case 3: clean(); kom(); clean(); prob();
case 4: clean(); menu();
default: clean(); prob();
}
}
// MENU REGRESI
public void reg() {
System.out.println("==========================");
System.out.println("| Menu Regresi |");
System.out.println("==========================");
System.out.println("| 1. Input Nilai |");
System.out.println("| 2. Regresi Y kepada X |");
System.out.println("| 3. Regresi X kepada Y |");
System.out.println("| 4. Menu Utama |");
System.out.println("==========================");
System.out.print(" Masukan pilhan Anda : ");
int pil = input.nextInt();
switch(pil) {
case 1: clean();
try{ input(); }
catch(IndexOutOfBoundsException ex){ System.out.println("Ada Kesalahan pada proses IO"); }
clean(); reg();
case 2: clean(); regresiYX(); clean(); reg();
case 3: clean(); regresiXY(); clean(); reg();
case 4: clean(); menu();
default: clean(); reg(); } }
// MENU MEDIAN & MEAN
public void medimean() {
System.out.println("==========================");
System.out.println("| Menu Median & Mean |");
System.out.println("==========================");
System.out.println("| 1. Input Nilai |");
System.out.println("| 2. Median |");
System.out.println("| 3. Mean |");
System.out.println("| 4. Menu Utama |");
System.out.println("==========================");
System.out.print(" Masukan pilhan Anda : ");
int pil = input.nextInt();
switch(pil){
case 1: clean();
try{ prosesinput();}
catch(IndexOutOfBoundsException ex){ System.out.println("Ada Kesalahan pada proses IO!!!"); }
clean(); medimean();
case 2: clean(); median(); clean(); medimean();
case 3: clean(); mean(); clean(); medimean();
case 4: clean(); menu();
default : clean(); medimean(); } }
// INI ADALAH KUMPULAN METHOD YANG DIGUNAKAN MENU PROBABILITAS
public void inputData(){
System.out.print("Masukan Nilai n : ");
j = input.nextInt();
System.out.print("Masukan Nilai k : ");
k = input.nextInt();
prob();
}
public int fak(int j){
int jumlah = 1;
for(int i=1;i<=j;i++){
jumlah = jumlah * i;
}
return jumlah;
}
public void per(){
if(j<k){System.out.println("\nMATH ERROR - n<k");}
else{
System.out.println("\nP("+j+","+k+")"+"= "+(fak(j)/fak(j-k)));
}
prob();
}
public void kom(){
if(j<k){System.out.println("\nMATH ERROR - n<k");}
else{
System.out.println("\nC("+j+","+k+")"+"= "+(fak(j)/(fak(j-k)*fak(k))));
}
prob();
}
// INI ADALAH KUMPULAN METHOD YANG DIGUNAKAN MENU REGRESI
public void input() {
System.out.print("masukan jumlah data :");
n = input.nextInt();
x= new double[n];
y= new double[n];
x2 = new double[n];
y2=new double[n];
xy=new double[n];
System.out.print("\nmasukkan data x :\n");
for(int i=0;i<n;i++) {
System.out.print("data ke-"+(i+1)+":");
x[i]= input.nextInt(); }
System.out.println("\nmasukkan data y :");
for(int i=0;i<n;i++) {
System.out.print("data ke-"+(i+1)+":");
y[i]= input.nextInt(); }
for(int i=0 ; i<n;i++) {
x2[i]=Math.pow(x[i],2);
y2[i]=Math.pow(y[i],2);
xy[i]= x[i] * y[i] ; } }
public double sigma(double k[]) {
double data = 0;
for(int i=0; i<n;i++) {
data = data + k[i]; }
return(data); }
public void regresiYX() {
a1 = ((n*sigma(xy)) - (sigma(x) * sigma(y))) /
((n*sigma(x2))-Math.pow(sigma(x),2));
a0 = ((sigma(y) * sigma(x2)) - (sigma(x) * sigma(xy))) /
((n*sigma(x2))-Math.pow(sigma(x),2));
System.out.println("Persamaan Regrsi Y terhadap X");
if (a1> 0)
System.out.println("Y = "+a0+" + "+a1+"x");
else
System.out.println("Y = "+a0+a1+ "x"); }
public void regresiXY() {
b1 = ((n*sigma(xy)) - (sigma(y) * sigma(x))) /
((n*sigma(y2))-Math.pow(sigma(y),2));
b0 = ((sigma(x) * sigma(y2)) - sigma(y) * sigma(xy)) /
(n* sigma(y2)-Math.pow(sigma(y),2));
System.out.println("Persamaan Regresi X terhadap Y");
if (b1>0)
System.out.println("X = "+b0+" + "+b1+"y");
else
System.out.println("X = "+b0+b1+"y"); }
// INI ADALAH KUMPULAN METHOD YANG DIGUNAKAN MENU MEDIAN & MEAN
public void prosesinput(){
System.out.print("Banyaknya Data : ");
banyak = input.nextInt();
data = new int[banyak];
for(int i=0;i<=banyak-1;i++){
System.out.print("Data ke-"+(i+1)+" : ");
data[i]= input.nextInt();
}
}
public void urut(){
for(int i=0;i<=banyak-1;i++){
for(int j=i+1;j<=banyak-1;j++){
if(data[i] > data[j]){
temp = data[i];
data[i] = data[j];
data[j] = temp;
}
}
}
System.out.print("Data yang sudah diurut : ");
for(int i=0;i<=banyak-1;i++){
System.out.print(data[i]+" ");
}
}
public void mean(){
int jumlah = 0;
System.out.print("Data sudah diurut : ");
for(int i=0; i<=banyak-1; i++){
System.out.print(data[i]+" ");
jumlah = jumlah + data[i];
}
System.out.println("\nMean = "+(jumlah/banyak));
}
public void median(){
urut();
int bil = banyak % 2;
if(bil==0){
int posisi = banyak / 2;
System.out.println("\nDatanya Genap");
double median = ((data[posisi-1] + data[posisi+1]) / 2);
System.out.printf("mediannya = %.2f",median);
}
else{
int posisi = (banyak + 1) / 2;
System.out.println("Datanya Ganjil");
double median = data[posisi-1];
System.out.printf("\nMediannya = %.2f",median);
}
}
public static void main(String[] args){
new statistika();
}
}
Created by : Heriyanto, Muhammad Syahrul & Randi Mubarok (Kelas 2IA21)
dan terima kasih kami ucapkan kepada dosen PBO kami : Ibu Suryaningrum