Distribusi Bilangan + Grafik
iseng-iseng posting soal latihan uts-nya pak arif…yg ikut pemrog1 psti masi inget soal yang dikasih pak arif, cz kluar d uts-nya mirip2 gini..(tp ampun uts-nya lebih susah hehe)
soalnya gini,…
random 50 bilangan antara 0-9, trus dikelompokkan (distribusi). hitung jumlah masing-masing disribusi trus dbuat grafiknya ke bawah (bukan kesamping) dalam bentuk bintang
maaf codingnya amburadul, masi newbi
just for sharing ajah hehe..
fungsi-fungsinya sengaja saya taroh bawah setelah program utama (haha kliatan kacaunya)
benernya masih banyak cara yg lebih mudah dan simple, ini cuma salah satunya aja
import java.util.*;
import java.io.*;
public class grafikmenurun{
//program utama
public static void main(String[] args){
int[] data= new int [50];
int[] dis= new int[10];
int maxdis=0;
Random Rbil = new Random();
System.out.println("DATA BILANGAN:");
for (int i=0;i<data.length;i++){
data[i]=Rbil.nextInt(10);
System.out.println("data ke-"+i+" = "+data[i]);
}
sort(data); //data di sorting dulu
distribusi(data,dis);
System.out.println('\n');
System.out.println("DATA DISTRIBUSI BILANGAN 0-9:");
//cetak distribusi
for (int i=0;i<dis.length;i++) {
System.out.println("bilangan "+i+" sebanyak "+dis[i]);
}
System.out.println('\n');
//mencari distribusi terbanyak
for (int i=0; i<dis.length;i++){
if (dis[i]>maxdis){
maxdis=dis[i];
}
}
dis_max(maxdis,dis);
System.out.println('\n'+"GRAFIK SEBARAN DISTRIBUSI: "+'\n');
grafik(dis,maxdis); //manggil fungsi grafik untuk mencetak grafik distribusi
}
// fungsi untuk mengurutkan dari bilangan terkecil hingga terbesar
static void sort(int[] z){
int temp;
for (int a=0;a<z.length;a++){
for(int b=0;b<z.length-1;b++){
if(z[b]>z[b+1]){
temp=z[b];
z[b]=z[b+1];
z[b+1]=temp;
}
}
}
}
//fungsi untuk menentukan banyak anggota masing-masing distribusi (setelah dsorting datanya)
static void distribusi(int[] y, int[] x){
int smtr=y[0],k=0;
for (int a=0;a<y.length;a++){
if (y[a]>smtr){
smtr=y[a];
k++;
x[k]++;
}
else{
x[k]++;
}
}
}
//fungsi untuk cetak data
static void cetak(int[] c){
for (int i=0;i<c.length;i++) {
System.out.println(i+". "+c[i]);
}
}
//fungsi untuk menginisialisasi nama distribusi terbanyak
static void dis_max(int dm,int[] arr_dis){
String nama_dm="";
if (dm==arr_dis[0]){
nama_dm="Kelompok distribusi yang paling banyak adalah bilangan 0";
}
else if (dm==arr_dis[1]){
nama_dm="Kelompok distribusi yang paling banyak adalah bilangan 1";
}
else if (dm==arr_dis[2]){
nama_dm="Kelompok distribusi yang paling banyak adalah bilangan 2";
}
else if (dm==arr_dis[3]){
nama_dm="Kelompok distribusi yang paling banyak adalah bilangan 3";
}
else if (dm==arr_dis[4]){
nama_dm="Kelompok distribusi yang paling banyak adalah bilangan 4";
}
else if (dm==arr_dis[5]){
nama_dm="Kelompok distribusi yang paling banyak adalah bilangan 5";
}
else if (dm==arr_dis[6]){
nama_dm="Kelompok distribusi yang paling banyak adalah bilangan 6";
}
else if (dm==arr_dis[7]){
nama_dm="Kelompok distribusi yang paling banyak adalahi bilangan 7";
}
else if (dm==arr_dis[8]){
nama_dm="Kelompok distribusi yang paling banyak adalahi bilangan 8";
}
else if (dm==arr_dis[9]){
nama_dm="Kelompok distribusi yang paling banyak adalahi bilangan 9";
}
System.out.println(nama_dm+" mempunyai "+dm+" anggota ");
}
//fungsi untuk cetak grafik kebawah
static void grafik(int[] d,int m){
int g=0,a=1;
System.out.println("0 1 2 3 4 5 6 7 8 9 ");
while (g!=10){
for(int b=0;b<d.length;b++){
if(d[b]>=a){
System.out.print("* ");
}
else{
System.out.print(" ");
}
}
a++;
System.out.println("");
if(a>m)
g=10;
}
}
}
Posted on November 18, 2009, in Java, Kuliah, Pemrograman. Bookmark the permalink. Leave a Comment.


Leave a Comment
Comments (0)