Minggu, 18 Maret 2012

TUGAS PBO

Nama : Subhan Rubyansyah
NPM : 56410702

Nama : Ari Surya Gunawan
NPM : 51410041




PROGRAM STATISTIKA

mencari mean, median, modus
*coding:

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
class Stat {
public static void main(String args[]) {
BufferedReader B=new BufferedReader (new InputStreamReader(System.in));
int arrInput []; arrInput = new int[100];
int arrUrut []; arrUrut = new int[100];
int arrModus [][]; arrModus = new int[100][3];
int inputCount=0;
int N;
int i, a, b, c, d, j, temp;

/*----mean*/
float jumlah;
float mean=0;
try {
System.out.print("Masukkan banyaknya data : ");
N=Integer.parseInt (B.readLine());
System.out.println();
jumlah = 0;
try {
for (i=1; i<=N; i++) {
System.out.print("Masukkan data ke " + i + " : ");
arrInput[i]=Integer.parseInt (B.readLine());
jumlah = jumlah + arrInput[i];
arrUrut[i] = arrInput[i];
}
mean = jumlah/N;

//pengurutan
for (a=1; a<=N; a++){
b=a;
while ((b>0 ) && (arrUrut[b]<arrUrut[b-1] )) {
temp = arrUrut[b];
arrUrut[b] = arrUrut[b-1];
arrUrut[b-1] = temp;
b--;
}
}
int Nm = N/2;
int median = arrUrut[(N+1)/2];
int Q1 = arrUrut[(median+1)/2];
int Q3 = arrUrut[(N+median)/2];
int lastEmpty = 1;
int posx;
for (i=1; i<=N; i++) {
posx = 0;
for (j=1; j<=N; j++) {
if (arrInput[i]==arrModus[j][1]) posx = j;
}
if (posx!=0) {
arrModus[posx][2]++;
} else {
arrModus[lastEmpty][1] = arrInput[i];
arrModus[lastEmpty][2] = 1;
lastEmpty++;
}
}
int modus = 0;
int banyak = 0;
for (i=1; i<=N; i++) {
if (arrModus[i][2]>banyak) {
modus = arrModus[i][1];
banyak = arrModus[i][2];
}
}
System.out.println("\nData terurut::");
for (i=1; i<=N; i++) {
System.out.print(" "+ arrUrut[i]);
}
System.out.println("\n");
System.out.println("Mean = " + mean);
System.out.println("Median = " + median);
System.out.println("Q1 = " + Q1);
System.out.println("Q3 = " + Q3);
System.out.println("Modus = " + modus);
} catch (IOException e) {
System.out.println ("Error!" +e);
}
} catch (IOException e) {
System.out.println ("Error!" +e);
}
System.exit(0);
}
}




OUTPUT
init:
deps-jar:
Compiling 1 source file to C:\Documents and Settings\user\My Documents\NetBeansProjects\dws\build\classes
Copied 1 empty directory to 1 empty directory under C:\Documents and Settings\user\My Documents\NetBeansProjects\dws\build\classes
compile:
run:
Masukkan banyaknya data :
5

Masukkan data ke 1 :
2
Masukkan data ke 2 :
2
Masukkan data ke 3 :
4
Masukkan data ke 4 :
5
Masukkan data ke 5 :
6

Data terurut::
 2 2 4 5 6

Mean = 3.8
Median = 4
Q1 = 2
Q3 = 5
Modus = 2
BUILD SUCCESSFUL (total time: 26 seconds)



LOGIKA

Dalam pengerjaan Program Statistika mencari Mean, Median, Modus dengan menggunakan program Java, aplikasi yang dipakai menggunakan Netbean, dengan sintax code import java.io = BufferedReader, IOException, InputStreamReader, tanpa public class untuk pengolahan masukkan coding pada satu project didalam netbean, dengan menggunakan sintax BufferedReader B=new BufferedReader (new InputStream Reader(System.in)) dengan integer 100 dengan tujuan menghasilkan integer hingga mencapai 100 dalam pemasukan angka input. dengan penjelasan BufferedReader adalah kelas abstrak yang menangani baca tulis ke suatu media. Kelas ini membutuhkan kelas lain sebagai pekerjanya, yaitu InputStreamReader Dan InputStreamReader membutuhkan media tempat baca tulis dilakukan, yaitu System.


Type data float, yang berisikan jumlah dan nilai, yg merupakan tipe data numerik yang berisi bagian bagian terkecil. Yang direpresentasikan dengan adanya angka desimal. Nilai dengan menggunakan float pada java, maka java akan otomatis akan mengubah type tersebut menjadi double, apabila ingin membuat suatu type data float. Jika kita lupa dengan aturannya, maka saat kita melakukan kompilasi akan terjadi eror. float jumlah; ,float mean=0;,try { untuk try disini difungsikan sebagai pencobaan fungtion buatan,

Pada sintax “for (i=1; i<=N; i++)” digunakan dalam penambahan data urut yang diinputkan secara numerik. Dan pada sintax ini “System.out.print("Masukkan data ke " + i + " : ") digunakan pada pemasukkan awal data yang ingin kita masukkan pada output. “jumlah = jumlah + arrInput[i]; , arrUrut[i] = arrInput[i]; } mean = jumlah/N;” coding tersebut digunakan untuk rumus mean pada pengolahan nilai rata rata di Statistika.




int median = arrUrut[(N+1)/2];
int Q1 = arrUrut[(median+1)/2];
int Q3 = arrUrut[(N+median)/2];
int lastEmpty = 1;
Dalam sintax tersebut memiliki rumus untuk mencari Median dalam data, Q1 dan Q3 adalah nilai tengah pada bagian kedua median data.
arrModus[lastEmpty][1] = arrInput[i];

arrModus[lastEmpty][2] = 1;
lastEmpty++;
Dalam sintax ini digunakan untuk model rumus dalam pencarian nilai Modus, angka yang sering muncul pada data statistika, lastEmpty untuk menjelaskan fungsi atau field bersangkutan.



PROGRAM RELASI


*mencari data relasi

listing:


import javax.swing.*;
class relasi {
public static void main ( String [] args ) {
int [] a = new int [10];
int [] b = new int [10];
int x = Integer.parseInt(JOptionPane.showInputDialog("masukkan jumlah elemen dari A >>> "));
for (int i = 0 ; i < x ; i++ ) {
int w = Integer.parseInt(JOptionPane.showInputDialog("masukkan elemen ke >>> " + ( i + 1)));
a[i] = w; }
int y = Integer.parseInt(JOptionPane.showInputDialog("masukkan jumlah elemen dari B >>>"));
for (int j = 0 ; j < y ; j++ ) {
int z = Integer.parseInt(JOptionPane.showInputDialog("masukkan elemen ke >>> " + ( j + 1)));
b[j] = z; }
System.out.print(" A = { ");
for (int i = 0 ; i < x ; i++ ) {
if (i==(x-1)) {
System.out.print(a[i]); }
else { System.out.print(a[i] + " , "); }}
System.out.print(" } ");
System.out.print("\t" + "\t" + " B = { ");
for (int j = 0 ; j < y ; j++ ) {
if (j==(y-1)) {
System.out.print(b[j]); }
else { System.out.print(b[j] + " , "); }}
System.out.println(" } ");
System.out.println("kemungkinan relasi...");
for (int i = 0 ; i < x ; i++ ) {
for (int j = 0 ; j < y ; j++ ) {
System.out.println(" { "+a[i]+" } " + " >>> " + " { "+b[j]+" } ");}}}}

pada gambar:



OUTPUT:

init:
deps-jar:
Compiling 1 source file to C:\Documents and Settings\user\My Documents\NetBeansProjects\JavaApplication7\build\classes
Copied 1 empty directory to 1 empty directory under C:\Documents and Settings\user\My Documents\NetBeansProjects\JavaApplication7\build\classes
compile:
run:
 A = { 1 , 2 } B = { 3 , 3 , 3 }
kemungkinan relasi...
 { 1 }  >>>  { 3 }
 { 1 }  >>>  { 3 }
 { 1 }  >>>  { 3 }
 { 2 }  >>>  { 3 }
 { 2 }  >>>  { 3 }
 { 2 }  >>>  { 3 }
BUILD SUCCESSFUL (total time: 17 seconds)


LOGIKA

- pada program ini menggunakan JOptionPane.. agar pemasukan input melalui kotak dialog berisi kotak input.

- membuat 2 array untuk pembuatan relasi, dimaksudkan agar tiap elemen array yang satu akan dihubungkan ada elemen lain pada array yang lain
- dibuat batasan array agar jumpah output tidak terlalu banyak,
- setelah membuat bahan input, membuat kode dari banyaknya elemen yang ada dari 0 sampai jumlah angka yang terinput
- array tersebut di samakan oleh variabel hasil dari input sehingga dapat dihubungkan pada kalkulasi lain
- membuat susunan elemen menggunakan metode if, dimana input elemen pertama disortir sampai input terakhir sesuai urutan penginputan
- membuat kemungkinan relasi,, didapat menggunakan pengggabungan array yang pertama dengan yang kedua
  menggunakan metode for,,, dimana setiap elemen dari array mendapatkan masing elemen dari array yang satunya.
  hasil output menjadikan relasi antara elemen pertama yang mendapatkan masing2 elemen kedua......






Tidak ada komentar:

Posting Komentar