Anda di halaman 1dari 17

LAPORAN PRAKTIKUM PEMROGRAMAN DASAR

ARRAY

Disusun oleh :

Nama : Satria Mulya Insanilah


NIM : 105060813111003
Asisten 1 : Leo Tiofan Justicia Silalahi
Asisten 2 : Husnul Anwari
Asisten 3 : Yunastria Christine Irwanti
Dosen Pengampu : Ahmad Afif Supianto, S. Si,
M. Kom

LABORATORIUM KOMPUTER DASAR


PROGRAM TEKNOLOGI INFORMASI DAN ILMU KOMPUTER
UNIVERSITAS BRAWIJAYA
2013

Pengesahan
Tanggal:
Asisten
A. Definisi Masalah
Buat sebuah program penghitung distribusi frekuensi dan statistik data
dengan menggunakan suatu array di mana program tersebut memiliki
menu sebagai berikut:

1. Input data, jika dipilih program akan:

 Meminta inputan jumlah data dari user.

 Menginputkan isi data yang pertama hingga jumlah yang


ditentukan.

2. View data, jika dipilih program akan:

 Menampilkan isi data.

3. Distribusi frekuensi, jika dipilih program akan:

 Menampilkan jumlah nilai frekuensi untuk masing-masing


range nilai (dengan interval 20).

4. Statistik, jika dipilih program akan:

 Menampilkan nilai minimum, nilai maksimum, nilai rata-rata,


nilai rata-rata, nilai tengah, nilai yang sering muncul, dan
jumlah kemunculan dari data yang ada.

5. Exit, keluar/akhir dari program.


B. Source Code

1 package Bab5;
2
3 import java.util.ArrayList;
4 import java.util.Scanner;
5
6 public class Soal_501 {
7 static int[] distribusiFrekuensi(int data[]){
8 int distribusi[] = new int[6];
9 for(int i=0; i<data.length; i++){
10 if(data[i]>=1 && data[i]<=20)
11 distribusi[0]++;
12 else if(data[i]>=21 && data[i]<=40)
13 distribusi[1]++;
14 else if(data[i]>=41 &&
15 data[i]<=60)distribusi[2]++;
16 else if(data[i]>=61 && data[i]<=80)
17 distribusi[3]++;
18 else if(data[i]>=81 && data[i]<=100)
19 distribusi[4]++;
20 else distribusi[5]++;
21 }
22 return distribusi;
23 }
24
25 static int min(int data[]){
26 int min = data[0];
27 for(int i=0; i<data.length; i++)
28 if(data[i]<min)
29 min = data[i];
30 return min;
31 }
32
33 static int max(int data[]){
34 int max = data[0];
35 for(int i=0; i<data.length; i++)
36 if(data[i]>max)
37 max = data[i];
38 return max;
39 }
40
41 static double mean(int data[]){
42 double jmlh=0.0;
43 for(int i=0; i<data.length; i++)
44 jmlh += data[i];
45 return jmlh/data.length;
46 }
47
48 static int[] sorting(int data[]){
49 int temp;
50 for(int i=0; i<data.length-1; i++){
51 for(int j=data.length-1; j>i; j--){
52 if(data[j-1]>data[j]){
53 temp = data[j];
54 data[j] = data[j-1];
55 data[j-1] = temp;
56 }
57 }
58 }
59 return data;
60 }
61
62 static double median(int data[]){
63 double median=0.0;
64 int temp [] = new int [data.length];
65 System.arraycopy(data, 0, temp, 0,
66 data.length);
67 sorting(temp);
68 if(temp.length % 2 == 1)
69 median = temp[temp.length/2];
70 else
71 median = ((double)(temp[temp.length/2]
72 + temp[(temp.length/2)-1])) / 2;
73 return median;
74 }
75
76
77 static ArrayList<Integer> uniqueNumber(int
78 data[]){
79 ArrayList<Integer> store = new
80 ArrayList<Integer>();
81 for (int i=0; i<data.length; i++)
82 if (!store.contains(data[i]))
83 store.add(data[i]);
84 return store;
85 }
86
87 static int[] jmlh_tiap_unique_number(int
88 data[]){
89 int jmlh[] = new
90 int[uniqueNumber(data).size()];
91 for (int i=0; i<jmlh.length; i++){
92 int count=0;
93 for (int j=0; j<data.length; j++)
94 if(uniqueNumber(data).get(i)==data[j]) count++;
95 jmlh[i] = count;
96 }
97 return jmlh;
98 }
99
100 static ArrayList<Integer> modus(int data[]){
101 ArrayList<Integer> modus = new
102 ArrayList<Integer>();
103 for (int i=0;
104 i<jmlh_tiap_unique_number(data).length; i++)
105 if(jmlh_tiap_unique_number(data)
106 [i]==max(jmlh_tiap_unique_number(data)))
107 modus.add(uniqueNumber(data).get(i));
108 return modus;
109 }
110
111 static int jmlhModus(int data[]){
112 return max(jmlh_tiap_unique_number(data));
113 }
114
115 public static void main(String[] args) {
116 Scanner masukan = new Scanner(System.in);
117 int pilihan;
118 int data[] = new int[0];
119 do{
120
121 System.out.printf("===============================
122 ===============\n");
123 System.out.printf(" Frequency
124 Distribution and Statistic Program\n");
125
126 System.out.printf("===============================
127 ===============\n");
128 System.out.println("Main menu : ");
129 System.out.println("1. Input Data");
130 System.out.println("2. View Data");
131 System.out.println("3. Frequency
132 Distribution");
133 System.out.println("4. Statistic");
134 System.out.println("5. Exit");
135 System.out.print("Menu option: ");
136 pilihan = masukan.nextInt();
137
138 System.out.printf("-------------------------------
139 ---------------\n");
140 if(pilihan == 1){
141 System.out.print("Input total
142 data: ");
143 int jmlh = masukan.nextInt();
144 data = new int[jmlh];
145 for(int i=0; i<data.length; i++){
146 System.out.print("Input data
147 "+(i+1)+": ");
148 data[i] = masukan.nextInt();
149 }
150 }
151 else if(pilihan == 2){
152 if(data.length != 0){
153 for(int i=0; i<data.length; i+
154 +)
155 System.out.println("Data
156 "+(i+1)+" = "+data[i]);
157 }
158 else
159 System.out.println("Data is
160 empty");
161 }
162 else if(pilihan == 3){
163 if(data.length != 0){
164 for(int i=0;
165 i<distribusiFrekuensi(data).length; i++){
166 System.out.print("Total
167 data ");
168 if(i==0)
169 System.out.println("1-20 :
170 "+distribusiFrekuensi(data)[i]);
171 else if(i==1)
172 System.out.println("21 - 40 :
173 "+distribusiFrekuensi(data)[i]);
174 else if(i==2)
175 System.out.println("41 - 60 :
176 "+distribusiFrekuensi(data)[i]);
177 else if(i==3)
178 System.out.println("61 - 80 :
179 "+distribusiFrekuensi(data)[i]);
180 else if(i==4)
181 System.out.println("81 - 100 :
182 "+distribusiFrekuensi(data)[i]);
183 else
184 System.out.printf("outside \nthe range :
185 "+distribusiFrekuensi(data)[i]+"\n");
186 }
187 System.out.println();
188 }
189 else
190 System.out.println("Data is
191 empty");
192 }
193 else if(pilihan == 4){
194 if(data.length != 0){
195 System.out.println("Minimum
196 value = "+min(data));
197 System.out.println("Maksimum
198 value = "+max(data));
199 System.out.printf("Mean value
200 = %.2f", mean(data));
201 System.out.println();
202 System.out.println("Median
203 value = "+median(data));
204 System.out.print("Modus value
205 = ");
206 if(jmlhModus(data)!=1)
207 for(int x: modus(data))
208 System.out.print(x+", ");
209 else
210
211 System.out.print("Nothing");
212 System.out.println();
213 System.out.println("Total
214 emergence = "+jmlhModus(data));
215 }
216 else
217 System.out.println("Data is
218 empty");
219 }
220 else if(pilihan==5)
221 System.out.println("Program
222 Finished");
223 else
224 System.out.println("Options of
225 program begin 1 - 5");
226
227 System.out.printf("===============================
228 ===============\n");
229 }while(pilihan != 5);
230 }
231 }
C. Pembahaasan

1 Meletakkan program pada package dengan nama Bab5.


3-4 Melakukan import ArrayList dan Scanner pada library java
6-7 Dekalarasi kelas dengan nama Soal_501.
7 Deklarasi fungsi distribusiFrekuensi dengan tipe int[] dan formal
parameter data dengan tipe array int.
8 Deklarasi variabel distribusi bertipe data array int dengan
panjang elemen berjumlah 6.
9 Melakukan perulangan mulai dari 0 hingga kurang dari
data.length atau panjang elemen dari data.
10-11 Melakukan seleksi jika data pada elemen i lebih dari sama
dengan 1 dan kurang dari sama dengan 20 maka nilai dari
distribusi dengan indeks 0 ditambah satu.
12-13 Melakukan seleksi jika data pada elemen i lebih dari sama
dengan 21 dan kurang dari sama dengan 40 maka nilai dari
distribusi dengan indeks 1 ditambah satu.
14-15 Melakukan seleksi jika data pada elemen i lebih dari sama
dengan 41 dan kurang dari sama dengan 60 maka nilai dari
distribusi dengan indeks 2 ditambah satu.
16-17 Melakukan seleksi jika data pada elemen i lebih dari sama
dengan 61 dan kurang dari sama dengan 80 maka nilai dari
distribusi dengan indeks 3 ditambah satu.

18-19 Melakukan seleksi jika data pada elemen i lebih dari sama
dengan 81 dan kurang dari sama dengan 100 maka nilai dari
distribusi dengan indeks 4 ditambah satu.
20 Melakukan seleksi lain jika tidak sesuai dengan seleksi yang ada
maka nilai dari distribusi dengan indeks 5 ditambah satu.
22 Mengembalikan dari variabel distribusi.
25 Deklarasi dari fungsi min dengan tipe int dan dengan formal
parameter data yang bertipe array int.
26 Deklarasi variabel min yang diisi dengan variabel data dengan
indeks 0.
27 Melakukan perulangan mulai dari 0 hingga kurang dari panjang
data.
28-29 Melakukan seleksi jika data indeks I kurang dari min maka min
sama dengan data indeks i.
29 Mengembalikan nilai dari variabel min.
33 Deklarasi fungsi max dengan tipe int dan dengan formal
parameter data yang bertipe aray int.
34 Deklarasi variabel max yang diisi dengan variabel data dengan
indeks 0.
35 Melakukan perulangan mulai dari 0 hingga kurang dari panjang
data.
36-37 Melakukan seleksi jika data indeks i lebih dari max maka max
sama dengan data indeks i.
38 Mengembalikan nilai dari variabel max.
41 Deklarasi fungsi mean dengan tipe double dan dengan formal
parameter data yang bertipe array int.
42 Inisialisasi variabel jmlh yang disi dengan nilai 0.0.
43 Melakukan perulangan dari 0 hingga kurang dari panjang
element data.
44 Melakukan operasi aritmatika jmlh ditambah dengan isi dari data
dengan indeks i kemudian disimpan dalam variabel jmlh.
45 Mengambalikan nilai dari jmlh dibagi dengan panjang dari
elemen variabel data.
48 Deklarasi fungsi sorting dengan tipe int[] dan dengan formal
parameter data dengan tipe aray int
49 Deklarasi variabel temp.
50 Melakukan perulangan dengan variabel i mulai dari 0 hingga
kurang dari panjang dari elemen data dikurangi 1.
51 Melakukan perulangan variabel j di dalam perulangan variabel i
dimulai dari j sama dengan panjang dari elemen data dikurangi
1 hingga j selama j lebih dari i.
52-55 Melakukan seleksi jika nilai dari data dengan indeks j-1 lebih
dari data dengan indeks j maka nilai variabel temp diisi dengan
nilai data dengan indek j. Kemudian nilai data dari indek j diisi
dengan nilai data dengan indeks j-1. Selanjutnya data dengan
indeks j-1 diisi dengan nilai dari variabel temp.
59 Mengembalikan nilai dari variabel data.
62 Deklarasi fungsi median dengan tipe double dan dengan formal
parameter data dengan tipe array int
63 Inisialisasi variabel median dengan tipe double yang diisi
dengan nilai 0.0.
64 Deklarasi variabel array temp dengan tipe data int yang
mempunyai panjang elemen sebanyak panjang elemen data.
65-66 Mengcopy nilai yang ada dalam array data ke dalam array temp
67 Memanggil fungsi sorting dengan actual parameter temp.
68-69 Melakukan seleksi jika panjang elemen dari variabel temp
bernilai ganjil maka variabel median diisi dengan variabel temp
dengan indeks panjang elemen temp dibagi 2.
70-72 Melakukan seleksi lain jika tidak memenuhi kondisi if, maka
nilai variabel median diisi dengan nilai dari variabel temp
dengan indeks panjang elemen temp dibagi 2 kemudian
ditambah nilai variabel temp dengan indeks panjang elemen
temp dibagi 2 kemudian dikuRangi 1. Hasil penjumlahan
tersebut kemudian dibagi 2.
73 Mengembalikan nilai median.
77-78 Deklarasi variabel uniqueNumber dengan tipe
ArrayList<Integer> dan dengan formal parameter data dengan
tipe array int.
79-80 Deklarasi variabel store dengan tipe ArrayList<Integer>.
81 Melakukan perulangan pada variabel I dimulai dari 0 hingga
panjang elemen dari variabl data.
82-83 Melakukan seleksi jika varibel store tidak tersedia data dari
indeks I maka data indeks I ditambahkan pada variabel store.
84 Mengembalikan nilai dari variabel store.
87-88 Deklarasi variabel jmlh_tiap_unique_number dengan tipe int[]
dan dengan formal parameter data dengan tipe array int.
89-90 Deklarasi array jmlh bertipe int dengan panjang elemen dari
ukuran uniqueNumber(data).
91 Melakukan perulangan variabel I dimulai dengan 0 hingga
panjang elemen jmlh.
92 Inisialisasi variabel count sama dengan 0.
93 Melakukan perulangan variabel j dimulai dengan 0 hingga
kunrang dari elemen data.
94 Melakukan seleksi jika nilai dari uniqueNumber indeks I sama
dengan data dengan indeks j maka nilai count ditambah 1.
95 Mengisi nilai jmlh indeks I dengan nilai count.
97 Mengembalikan nilai variabel jmlh.
100 Deklarasi fungsi modus dengan tipe ArrayList<Integer> dan
dengan formal parameter data dengan tipe array int.
101- Deklarasi variabel modus dengan tipe ArrayList<Integer>.
102
103- Melakukan perulangan variabel I mulai dari 0 hingga kurang
104 dari panjang elemn dari jumlah tiap unique number dari data.
106- Melakukan seleksi jika jumlah tiap number indeks I sama
108 dengan nilai max dari jumlah tiap uniqe number maka variabel
modus diisi dengan unique number indeks i.
109 Mengembalikan nilai variabel modus.
112 Deklarasi fungsi jmlhModus dengan tipe int dan dengan formal
parameter data dengan tipe array int.
113 Mengembalikan nilai maksimum dari jumlah tiap unique
number.
116 Deklarasi fungsi main.
117 Deklarasi objek scanner dengan nama masukan.
118 Deklarasi variabel pilihan
119 Deklarasi array data dengan panjang elemen 0.
120 Memulai melakukan perulangan do-while.
122- Menampilkan “Frequency Distribution and Statistic Program”
128 sebagai judul program.
129 Menampilkan “Main menu: “.
130 Menampilkan “1. Input Data”.
131 Menampilkan “2. View Data”.
132- Menampilkan “3. Frequency Distribution”.
133
134 Menampilkan “4. Statistic”.
135 Menampilkan “5. Exit”.
136 Menampilkan “Menu option: “.
137 Memberikan nilai dari variabel pilihan yang mana nilainya
diperoleh dari inputan user.
140- Melakukan seleksi jik variabel pilihan bernilai 1 maka
142 menampilkan “Input total data:”.
143 Mengisi variabel jmlh dengan nilai yang dimasukkan oleh user.
144 Mengisi panjang elemen dari data di man panjangnya diperoleh
dari variabel jmlh.
145 Melakukan perulangan variabel I mulai dari 0 hingga kurang
dari panjang variabel data.
146- Meninputkan tiap-tiap indeks data.
148
151 Melakukan seleksi jika variabel pilihan bernilai 2.
152- Melakukan seleksi jika panjang elemen data tidak sama dengan
157 0 maka melakukan perulangan untuk menampilkan data dari
tiap-tiap indeksnya.
159- Melakukan seleksi dengan kondisi lain maka menampilkan
160 “Data is empty”.
162 Melakukan seleksi jika variabel pilihan bernilai 3.
163- Melakukan seleksi jika panjang elemen data tidak sama dengan
165 0. Maka akan melakukan perulangan untuk menampilkan jumlah
dari distribusi frekuensinya dari tiap-tiap intervalnya.
168- Melakukan seleksi jika nilai i sama dengan 0 mka menampilkan
170 jumlah distribusi frekuensi dengan interval 1-20.
171- Melakukan seleksi jika nilai i sama dengan 1 mka menampilkan
173 jumlah distribusi frekuensi dengan interval 21-40.
174- Melakukan seleksi jika nilai i sama dengan 2 mka menampilkan
176 jumlah distribusi frekuensi dengan interval 41-60.
177- Melakukan seleksi jika nilai i sama dengan 3 mka menampilkan
179 jumlah distribusi frekuensi dengan interval 61-80.
180- Melakukan seleksi jika nilai i sama dengan 4 mka menampilkan
182 jumlah distribusi frekuensi dengan interval 81-100.
183- Melakukan seleksi jika nilai i memiliki kondisi lain mka
185 menampilkan jumlah distribusi frekuensi di luar interval 1-100.
187 Mencetak baris baru.
189- Melakukan seleksi jika elemen datanya kosong maka akan
191 menampilkan “Data is empty”.
193 Melakukan seleksi jika pilihan sama dengan 4.
194- Melakukan seleksi jika elemen data tidak sama dengan 0. Maka
214 akan menampilkan nilai minimum, nilai maksimum, nilai rata-
rata, nilai modus, dan jumla kemunculan.
216- Melakukan seleksi jika elemen data sama dengan 0 maka akan
218 menampilkan “Data is empty”.
220- Melakukan seleksi jika pilihan sama dengan 5 maka akan
222 menampilkan “Program Finished”.
223- Melakukan seleksi jika pilihan memiliki kondisi lain maka
225 menampilkan “Option of program begin 1-5”.
229 Melakukan cek pada kondisi variabel pilihan jika bernilai 5
maka perulangan do-while dihentikan.
D. Screenshoot Program
E. Kesimpulan
Array merupakan kumpulan-kumpulan data yang sejenis dan
bertipe sama dalam suatu urutan tertentu. Fungsi dari Array itu sendiri
digunakan untuk menyelesaikan masalah menampung data yang
banyak dalam suatu variabel. Letak suatu data berdasarkan pada
indeks. Indeks pada Array dimulai dari 0. Dalam pemrograman dasar,
Array yang biasa digunakan dibagi menjadi 2 jenis, yaitu:

1. Array 1 Dimensi
Merupakan sebuah variabel yang menyimpan sekumpulan data
yang memiliki tipe sama dan elemen yang akan diakses hanya
melalui 1 indeks.

Bentuk Penulisan pada Array 1 Dimensi:


tipedata variabel[jumlah_array];

Contoh Penulisan :
int data[4];
int data[4] = {1,2,3,4};

2. Array 2 Dimensi
Merupakan sebuah variabel yang menyimpan sekumpulan data
yang memiliki tipe sama dan elemen yang akan diakses melalui 2
indeks.

Bentuk Penulisan pada Array 1 Dimensi


tipedata variabel[jumlah_element1][jumlah_element2];

Contoh Penulisan :
int data[2][3];
int data[2][3]={{1,2,3},{4,5,6}};

Anda mungkin juga menyukai