2. nama array : nilai_mhs 3. jumlah elemen array : 12 data, yaitu nilai_mhs[1],
nilai_mhs[2],...., nilai_mhs[12].
Nilai
elemen
array
dapat
dimasukkan
melalui
keyboard
atau
dimasukkan saat didefinisikan pada program.
2.2.2 Array Berdimensi Dua
Array berdimensi dua adalah sekumpulan data/elemen yang disimpan secara berurutan dalam suatu tempat/subscript yang terdiri atas 2 (dua) unsur, yaitu baris dan kolom. Array berdimensi dua berarti meiliki dua dimensi data. Contoh sederhana adalah data yang tertulis dalam gambar tabel berikut ini :
Gambar 2.1 Array Berdimensi 2
Jika dibuat programnya adalah sebagai berikut :
int data_mobil [3] [4]; Keterangan : 1. baris 1 → baris 3 : menunjukkan merek mobil. 2. kolom 1 → kolom 4 : menunjukkan tahun penjualan 3. tipe array : integer (bilangan bulat). 4. nama array : data_mobil. 5. jumlah elemen array : [3,4] 6. [2,3] dibaca : penjualan mobil merek Daihatsu pada tahun 1994 adalah 70 unit. 12
2.2.3 Array Sebagai Argumen Fungsi
Array juga dapat berkedudukan sebagi parameter di dalam fungsi. Contoh pendefinisian :
const int MAKS = 5 Int data[MAKS]; Fungsi adalah bagian program yang berisi sejumlah pernyataan tertentu yang dapat dipanggil berulang kali. Tujuan pembuatan fungsi adalah : 1. Memudahkan dalam mengembangkan program 2. Menghemat ukuran program Beberapa hal yang harus diperhatikan dalam pembuatan fungsi adalah : 1. Fungsi menerima masukan yang disebut argumen atau parameter. 2. Masukan diproses oleh fungsi dan memberikan hasil akhir yang disebut nilai balik (return value). 3. Agar fungsi dapat dipanggil, fungsi harus didekl arasikan. Prototipe Deklarasi fungsi disebut prototype fungsi yang berupa : 1. nama fungsi 2. tipe nilai balik fungsi 3. jumlah dan tipe argument 4. serta diakhiri dengan titik koma (;). Contoh :
Long kuadrat(long l) dimana menyatakan kuadrat() adalah nama fungsi, long adalah tipe argument, long (kedua) menunjukkan nilai balik yang bertipe long. Void garis() menyatakan fungsi tanpa nilai balik Pernyataan return digunakan untuk memberikan nilai balik fungsi. Dalam fungsi diatas berarti nilai 13
kuadrat dari argument. Fungsi dengan pernyataan void tidak memberikan nilai balik. Biasanya tidak diakhiri pernyataan return. Jenis variabel dalam kaitannya dengan lingkup fungsi terdapat tiga macam yaitu : variabel otomatis, variabel eksternal dan variabel statis. Variabel Lokal (otomatis) Variabel yang didefinisikan di dalam fungsi disebut variabel local. Variabel ini hanya dikenal dalam fungsi tersebut. Variabel Global (eksternal) Variabel yang didefinisikan di bagian luar manapun dari fungsi dan dikenal oleh semua fungsi. Disebut juga variabel global, karena dikenal de semua fungsi. Variabel Statis Baik variabel local maupun global dapat berfungsi sebagai variabel statis dengan cara menambahkan pada kedua variabel tersebtu pernyatan
static. Kemudian pada kedua variabel tersebtu berlaku hal sebagai berikut : 1. Jika variabel local berdiri sebagai variabel statis maka variabel tetap hanya dapat diakses pada fungsi yang mendefinisikannya, variabel tidak hilang saat eksekusi fungsi berakhir. Nilainya akan tetap dipertahankan, sehingga akan dikenali pada pemanggilan fungsi untuk tahap berikutnya. 2. Inisialisasi oleh pemrogram akan dilakukan sekali saja selama program dijalankan. Jika tidak ada inisialisasi secara eksplisit, variabel diisi dengan nol. 3. Jika variabel eksternal dijadikan sebagai variabel statis, variabel ini dapat diakses oleh semua file yang didefinisikan pada file yang sama dengan variabel eksternal tersebut .
14
Rekursi Suatu fungsi dapat memanggil fungsi yang merupakan dirinya sendiri. Misal untuk menghitung Xn. 2.3 Struktur
Struktur bermanfaat untuk mengelompokkan sejumlah data dengan tipe yang berlainan. Sebuah contoh deklarasi struktur adalah sebagai berikut :
Struct data_mahasiswa { char nim[6]; char nama[100]; int umur; }; Pada contoh tersebut, tampak dideklarasikan sebuah struktur bernama data_mahasiswa yang terdiri dari tiga buah ang gota berupa :
Nim Nama Umur Apabila struktur tersebut telah dideklarasikan, struktur dapat digunakan untuk mendefinisikan suatu variabel, misalnya :
data_mahasiswa mhs1; merupakan pendefinisian sebuah variabel struktur mhs1 yang b ertipe struktur data_mahasiswa. 2.4 Sorting
Sorting atau pengurutan data adalah salah satu mekanisme pengelolaan data yang sering dipergunakan untuk beragam keperluan. Dengan sorting, seseorang bisa mendapatkan suatu keadaan data yang lebih informatif dan berarti. Terdapat beberapa macam model sorting diantarnya Exchange
15
Sorting, Bubble Sorting dan Insertion Sorting. Berikut akan ditampilkan programnya satu demi satu :
//Sorting Data dengan Metode Bubble Sort #include
#include #include void main() { int numList[8]={5,34,32,25,75,42,22,2}; int swap; //Prose Menampilkan Data Belum terurut cout<<"Data sebelum di urutkan"<numList[ii+1]) { swap = numList[ii]; numList[ii]=numList[ii+1]; numList[ii+1]=swap; } } } //Proses menampilkan data terurut cout<<"Data setelah diurutkan"<
//SELECTION SORT void main() { ... cout<<"\nInputkan banyak data yang akan diurutkan : "; cin>>n; Urut = 1; for(i = 0; i < n; i++) { cout<<"Masukan data ke "<<(i + 1)<<" : "; cin>>Arr[i]; } for(i = 0; i < n - 1; i++) { iMin = i; for(j = Urut; j < n; j++) { if(Arr[j] < Arr[iMin]) { iMin = j; if(Arr[i] != Arr[iMin]) { Tmp = Arr[i]; if(Arr[i] > Arr[iMin]) { Arr[i] = Arr[iMin]; Arr[iMin] = Tmp; } } } } Urut = Urut + 1; } cout<<"\nSetelah Pengurutan\n"; for(i = 0; i < n; i++) { cout<<"Elemen ke "<<(i + 1)<<" adalah "<
cout<<"\nInputkan banyak data yang akan diurutkan : "; cin>>n; for(i = 0; i < n; i++) { cout<<"Masukan data ke "<<(i + 1)<<" : "; cin>>Arr[i]; } for(i = 1; i < n; i++) { Tmp = Arr[i]; j = i - 1; while(Arr[j] >= Tmp && j > 0) { Arr[j + 1] = Arr[j]; j = j - 1; } if(Tmp >= Arr[j]) { Arr[j + 1] = Tmp; } else { Arr[j + 1] = Arr[j]; Arr[j] = Tmp; } } cout<<"\nSetelah Pengurutan\n"; for(i = 0; i < n; i++) { cout<<"Elemen ke "<<(i + 1)<<" adalah "<
18
BAB III PEMBAHASAN PRAKTIKUM 3.1 Analisa Praktikum 3.1.1 Praktikum I
Pada Praktikum I membahas tentang Array sebagai argument fungsi dengan script sebagai berikut :
#include #include void main() { const int JUM_DATA = 5; float suhu [JUM_DATA]; float total; clrscr(); cout<<"Masukkan data suhu" <>suhu[i]; } total=0; for (int i=0;i
cout<<(i+1)<<" : "; cin>>suhu[i]; } Setelah proses penginputan selesai maka program akan mengeksekusi data tersebut sesuai dengan rumus berikut, dimana nilai total awal mulanya yaitu 0, kemudian dari ke 5 data suhu akan dijumlahkan kemudian dimasukkan kedalam variable total.
total=0; for (int i=0;i
cout<<"Suhu rata-rata = <
3.1.2 Praktikum II
Pada praktikum II dengan mengetikkan source berikut pada editor program.
#include #include #include main() { clrscr; float nilai_jual [3][4]= { {70,50,80,30}, {60,40,65,45}, {80,60,75,50} 21
}; //Deklarasi untuk baris float jml_nilai0, jml_nilai1, jml_nilai2; float rerata0, rerata1, rerata2; jml_nilai0=0; jml_nilai1=0; jml_nilai2=0; //Deklarasi untuk kolom float jml_nilaicol0, jml_nilaicol1, jml_nilaicol2, jml_nilaicol3; float reratacol0, reratacol1, reratacol2, reratacol3; jml_nilaicol0=0; jml_nilaicol1=0; jml_nilaicol2=0; //Per Baris for (int i=0;i<=2;i++) { if (i==0) { for (int j=0;j<=3;j++) jml_nilai0=jml_nilai0+nilai_jual[i][j]; } else if (i==1) { for (int j=0;j<=3;j++) jml_nilai1=jml_nilai1+nilai_jual[i][j]; 22
} else { for (int j=0;j<=3;j++) jml_nilai2=jml_nilai2+nilai_jual[i][j]; } } rerata0=jml_nilai0/4; rerata1=jml_nilai1/4; rerata2=jml_nilai2/4;
cout<<"Rarata baris ke 1 = "<
for (int i=0;i<=2;i++) jml_nilaicol1=jml_nilaicol1+nilai_jual[i][j]; } else if (j==2) { for (int i=0;i<=2;i++) jml_nilaicol2=jml_nilaicol2+nilai_jual[i][j]; } else { for (int i=0;i<=2;i++) jml_nilaicol3=jml_nilaicol3+nilai_jual[i][j]; } } reratacol0=jml_nilaicol0/3; reratacol1=jml_nilaicol1/3; reratacol2=jml_nilaicol2/3; reratacol3=jml_nilaicol3/3; cout<<"Rerata kolom ke 1 = "<
Dari program diatas ketika dieksekusi maka akan menghasilkan output keluaran seperti gambar dibawah ini.
Gambar 3.3 Output Pr ogram Pembahasan Praktik um I I
Pada program tersebut diketahui bahwa banyak data nilai yang akan di proses yaitu terdiri dari 3 baris dan 4 kolom.
clrscr; float nilai_jual [3][4]= { {70,50,80,30}, {60,40,65,45}, {80,60,75,50} }; Kemudian untuk pendeklarasian program untuk baris ditunjukkan pada statement berikut.
float jml_nilai0, jml_nilai1, jml_nilai2; float rerata0, rerata1, rerata2; jml_nilai0=0; jml_nilai1=0; jml_nilai2=0; 25
Untuk pendeklarasian program untuk kolom ditunjukkan pada statement berikut.
float jml_nilaicol0, jml_nilaicol1, jml_nilaicol2, jml_nilaicol3; float reratacol0, reratacol1, reratacol2, reratacol3; jml_nilaicol0=0; jml_nilaicol1=0; jml_nilaicol2=0; kemudian setelah program dideklarasikan, selanjutnya program tersebut
diproses
dengan
menggunakan
perulangan
for dan
percabangan if else untuk data perbarisnya. Dalam prosesnya yaitu jumlah data pada baris 1,2,3 akan di bagi 4 dengan banyaknya kolom, kemudian menghasilkan keluaran baris 1,baris 2,baris 3 dari
rerata 0, rerata 1, rerata 2. for (int i=0;i<=2;i++) { if (i==0) {
for (int j=0;j<=3;j++) jml_nilai0=jml_nilai0+nilai_jual[i][j];}
else if (i==1) {
for (int j=0;j<=3;j++) jml_nilai1=jml_nilai1+nilai_jual[i][j];}
else {
for (int j=0;j<=3;j++) jml_nilai2=jml_nilai2+nilai_jual[i][j];}
} rerata0=jml_nilai0/4; 26
rerata1=jml_nilai1/4; rerata2=jml_nilai2/4; cout<<"Rarata baris ke 1 = "<
Pada pembahasan praktikum III dengan mengetikkan source code berikut pada editor program.
#include #include #include void main() {
int data[8] = {5, 2, 1, 6, 7,9,8, 3}; int cari= 6; int i=0; int flag=0;
while(i<8){ if(data[i]==cari) {
flag=1; break; } i++;
} if(flag==1) cout<<"ketemu."<
Sehingga ketika program tersebut dieksekusi maka akan menghasilkan keluaran output seperti gambar berikut ini :
Gambar 4.3 Output Pr ogr am Pembahasan P raktikum I I I
Pada program diatas diketahui bahwa tipe data yang digunakan yaitu
integer, dari digunakan variable string yaitu data [8], selain itu terdapat juga variable cari dengan nilai tetap yaitu 6, dan juga variable i dan flag dengan nilai tetap sama dengan 0.
int data[8] = {5, 2, 1, 6, 7,9,8, 3}; int cari= 6; int i=0; int flag=0; Selanjutnya, digunakan juga perulangan while dimana kondisi variable cari akan mencari angka yang sama dari 6 pada string data[8]
= {5, 2, 1, 6, 7,9,8, 3}; dimana jika kondisi flag sama dengan 1 maka akan menampilkan keluaran ‘ketemu’ dan jika tidak program akan menampilkan output ‘tidak ketemu’.
28
while(i<8){ if(data[i]==cari) { flag=1; break; } i++;} if(flag==1) cout<<"ketemu."<
Pada pembahasan praktikum IV ini membahas tentang algoritma
Bubble sort, dimana data yang akan diurutkan secara acak untuk kemudian diproses dan di eksekusi untuk menghasilkan keluaran dalam bentuk Ascending. Untuk lebih jelasnya pada source code berikut ini.
//Program Bubble.cpp //Untuk penggunaan cout #include //untuk penggunaan clrscr #include //untuk penggunaan setw atau pengaturan format #include void main() {clrscr(); //Deklarasi,nama
array
(input)
dan
penampung int Numlist [8]={5,34,32,25,75,42,22,2}; int swap;//untuk menampilkan input cout<<"Data sebelum diurutkan : for (int ctr=0; ctr<8; ctr++) 29
"<
variabel
{cout<
swap=Numlist[ii]; Numlist[ii]=Numlist[ii+1]; Numlist[ii+1]=swap; }
cout<<"Data setelah diurutkan: \n"; //Menampilkan output for(int iii=0; iii<8; iii++) cout<
Gambar 3.5 Output Program Pembahasan Pr aktikum I V
30
Dari gambar diatas diketahui bahwa deklarasi nama array sebagai input (Numlist) dan variable penampung (Swap) dengan tipe data yaitu integer akan menampilkan input data sebelum diurutkan dengan menggunakan perulangan for, dan setw dengan nilai tetap yaitu 3 untuk mengatur lebar layar tampilan.
//Deklarasi,nama array (input) dan variabel penampung int Numlist [8]={5,34,32,25,75,42,22,2}; int swap; //untuk menampilkan input cout<<"Data sebelum diurutkan :
"<
for (int ctr=0; ctr<8; ctr++) {cout<
//Proses membandingkan data index ke index dengan variabel penampung swap for (int i=0; i<7; i++) for (int ii=0; ii<7; ii++) if(Numlist[ii] < Numlist[ii +1]) {swap=Numlist[ii]; Numlist[ii]=Numlist[ii+1]; Numlist[ii+1]=swap; 31
}
cout<<"Data setelah diurutkan: \n"; Kemudian setelah data berhasil diurutkan selanjutnya data tersebut akan ditampilkan dalam bentuk output, dimana digunakan variable iii untuk memanggil data yang telah diurutkan tadi untuk segera ditampilkan.
for(int iii=0; iii<8; iii++) cout<
3.1.5 Praktikum V
Pada pembahasan Praktikum V membahas tentang macam-macam metode
sorting diantaranya Selection, Buble dan insertion baik dalam bentuk Ascending maupun Descending. Untuk output program pengguna dapat memilih pilihan mana yang akan digunakan dari program tersebut diantaranya:
1. Selection Sorting (Ascending) 2. Selection Sorting (Descending) 3. Bubble Sorting (Ascending) 4. Bubble Sorting (Descending) 5. Insertion Sorting (Ascending) 6. Insertion Sorting (Descending) Bentuk source code-nya adalah sebagai berikut.
#include #include #include void main () {int i,j,iMin; int n, Urut; int Tmp,code; 32
int Arr[100]; do{ cout<<"=====================================\n"; cout<<"| Pilihan Program Sorting |\n"; cout<<"=====================================\n"; cout<<"| 1. Selection Sorting (Ascending)|\n"; cout<<"| 2. Selection Sorting (Descending)|\n"; cout<<"| 3. Bubble Sorting (Ascending) |\n"; cout<<"| 4. Bubble Sorting (Descending) |\n"; cout<<"| 5. Insertion Sorting (Ascending) |\n"; cout<<"| 6. Insertion Sorting (Descending) |\n"; cout<<"| 7. Keluar... |\n"; cout<<"=====================================\n\n "; cout<<"Masukkan Pilihan Anda : "; cin>>code; switch (code){ case 1 : cout<<"\nInputkan banyak data yang akan diurutkan: ";cin>>n; Urut: 1; for (i = 0; i < n; i++) {cout<<"Masukkan data ke "<< (i + 1)<<" : "; cin>>Arr[i];} for (i = 0; i < n- 1; i++) { iMin = i; for (j = Urut; j < n; j++){ if (Arr [j] < Arr [iMin]) { iMin = j; 33
if (Arr [i] != Arr [iMin]){ Tmp = Arr[i]; if (Arr[i] > Arr [iMin]){ Arr[i] = Arr [iMin]; Arr[iMin] = Tmp;}}}} Urut = Urut + 1;} cout<<"\nsetelah Pengurutan\n"; for(i = 0; i < n; i++) { cout<<"Elemen
ke
"<<(i
+
1)<<"
adalah
"<>n; Urut = 1; for (i = 0; i < n; i++){ iMin = i; for (j= Urut; j < n; j++){ if (Arr[j] > Arr [iMin]) { iMin = j; if (Arr[i] != Arr[iMin]){ Tmp = Arr[i]; if(Arr[i] < Arr [iMin]) { Arr[i] = Arr[iMin]; Arr[iMin] = Tmp;}}}} Urut = Urut + 1;} cout<<"\nSetelah Pengurutan\n"; for(i = 0; i < n; i++) { 34
cout<<"Elemen
ke
"<<(i
+
1)<<"
adalah
"<>n; for(i = 0; i < n; i++){ cout<<"Masukkan data ke "<<(i + 1)<<" : "; cin>>Arr[i];} for (i = 1; i < n; i++) { for (j = 0; j < n - 1; j++) { if(Arr[j] > Arr [j + 1]) { Tmp = Arr[j]; Arr[j] = Arr[j + 1]; Arr[j + 1] = Tmp;}}} cout<<"\nSetelah Pengurutan\n"; for(i = 0; i < n; i++) { cout<<"Elemen
ke
"<<(i
+
1)<<"
adalah
"<
4:
cout<<"\nInputkan
banyak
data
yang
diurutkan : "; cin>>n; for(i = 0; i < n; i++){ cout<<"Masukkan data ke "<<(i + 1)<<" : "; cin>>Arr[i]; } for (i = 1; i < n; i++) { for (j = 0; j < n - 1; j++) { if(Arr[j] > Arr [j + 1]) { Tmp = Arr[j]; 35
akan
Arr[j] = Arr[j + 1]; Arr[j + 1] = Tmp;}}} cout<<"\nSetelah Pengurutan\n"; for(i = 0; i < n; i++) { cout<<"Elemen
ke
"<<(i
+
1)<<"
adalah
"<
5:
cout<<"\nInputkan
banyak
data
yang
akan
diurutkan : "; cin>>n; for(i = 0; i < n; i++){ cout<<"Masukkan data ke "<<(i + 1)<<" : "; cin>>Arr[i]; } for (i = 1; i < n; i++) { Tmp = Arr[i]; j = i - 1; while(Arr[j] >= Tmp && j > 0) { Arr[j + 1] = Arr[j]; j = j - 1; } if(Tmp >= Arr [j]){ Arr [j + 1] = Tmp; } else { Arr [j + 1] = Arr[j]; Arr [j] = Tmp; } } cout<<"\nSetelah Pengurutan\n"; for(i = 0; i < n; i++) { cout<<"Elemen
ke
"<<(i
"<
36
+
1)<<"
adalah
case
6:
cout<<"\nInputkan
banyak
data
yang
akan
diurutkan : "; cin>>n; for(i = 0; i < n; i++){ cout<<"Masukkan data ke "<<(i + 1)<<" : "; cin>>Arr[i]; } for (i = 1; i < n; i++) { Tmp = Arr[i]; j = i - 1; while(Arr[j] >= Tmp && j > 0) { Arr[j + 1] = Arr[j]; j = j - 1; } if(Tmp >= Arr [j]){ Arr [j + 1] = Tmp; } else { Arr [j + 1] = Arr[j]; Arr [j] = Tmp; } } cout<<"\nSetelah Pengurutan\n"; for(i = 0; i < n; i++) { cout<<"Elemen
ke
"<<(i
+
1)<<"
adalah
"<
Tekan
Enter
."<=1 && code <=6); }
37
Untuk
Keluar
.
.
Setelah program tersebut di eksekusi maka akan menghasilkan keluaran output seperti gambar dibawah ini.
Gambar 3.6 Output Program dengan metode Shorting
Pada program diatas menggunakan percabangan Switch
karena
mempunyai kemungkinan yang cukup banyak. Struktur itu akan melaksanakan salah satu dari dari beberapa pernyataan “Case” tergantung dengan kondisi yang ada dalam switch. Tipe data yang digunakan yaitu
integer dengan variable i, j, iMin, n, Urut, Tmp,code dan Array arr[100]. Pengguna dapat memilih dari 7 pilihan metode program sorting berikut ini:
cout<<"=====================================\n"; cout<<"| Pilihan Program Sorting |\n"; cout<<"=====================================\n"; cout<<"| 1. Selection Sorting (Ascending)|\n"; cout<<"| 2. Selection Sorting (Descending)|\n"; cout<<"| 3. Bubble Sorting (Ascending) |\n"; cout<<"| 4. Bubble Sorting (Descending) |\n"; cout<<"| 5. Insertion Sorting (Ascending) |\n"; cout<<"| 6. Insertion Sorting (Descending) |\n"; cout<<"| 7. Keluar... |\n"; 38
cout<<"=====================================\n\n"; cout<<"Masukkan Pilihan Anda : "; cin>>code; Sehingga, 7 pilihan dari 6 metode Sorting yang akan dipilih User untuk selanjutnya diproses oleh program dan menghasilkan keluaran berupa Output.
3.2 Tugas Praktikum 3.2.1 Praktikum I
Pada pembahasan tugas pada Praktikum I bentuk Script Program-nya adalah sebagai berikut.
#include #include void main() {int JUM_DATA; float suhu[100]; float total; clrscr(); cout<<"Masukkan banyaknya data = "; cin>>JUM_DATA; cout<<"Masukkan Data Suhu"<>suhu[i];} total=0; for( int i=0;i
banyaknya data = "; dan data yang diinputkan user tersebut akan di masukkan ke variable jumlah data suhu cin>>JUM_DATA; untuk selanjutnya dipanggil dan diproses kemudian akan menghasilkan keluaran nilai rata-rata dari banyaknya data suhu (n)yang di inputkan user.
3.2.2 Praktikum II
Pada pembahasan tugas pada Praktikum II bentuk Script Program-nya adalah sebagai berikut.
#include #include #include main() {clrscr; float nilai_jual [3][4]= {{70,60,80,90}, {70,75,90,90}, {70,70,70,90}}; //Deklarasi untuk baris 44
float jml_nilai0, jml_nilai1, jml_nilai2; float rerata0, rerata1, rerata2; jml_nilai0=0; jml_nilai1=0; jml_nilai2=0; //Deklarasi untuk kolom float jml_nilaicol0, jml_nilaicol1, jml_nilaicol2, jml_nilaicol3; float reratacol0, reratacol1, reratacol2, reratacol3; jml_nilaicol0=0; jml_nilaicol1=0; jml_nilaicol2=0; //Per Baris for (int i=0;i<=2;i++) {if (i==0) { for (int j=0;j<=3;j++) jml_nilai0=jml_nilai0+nilai_jual[i][j];} else if (i==1) { for (int j=0;j<=3;j++) jml_nilai1=jml_nilai1+nilai_jual[i][j];} else {for (int j=0;j<=3;j++) jml_nilai2=jml_nilai2+nilai_jual[i][j];}} rerata0=jml_nilai0/4; rerata1=jml_nilai1/4; rerata2=jml_nilai2/4; cout<<"Rarata baris ke 1 = "<
cout<<"Rarata baris ke 2 = "<
else if (j==2) {for (int i=0;i<=2;i++)
jml_nilaicol2=jml_nilaicol2+nilai_jual[i][j]; } else {for (int i=0;i<=2;i++) jml_nilaicol3=jml_nilaicol3+nilai_jual[i][j];}} reratacol0=jml_nilaicol0/3; reratacol1=jml_nilaicol1/3; reratacol2=jml_nilaicol2/3; reratacol3=jml_nilaicol3/3; cout<<"Rerata kolom ke 1 = "<
getche();return(0); } Setelah program tersebut di eksekusi maka akan menghasilkan keluaran
output seperti gambar dibawah ini.
Gambar 3.8 Output Program Pembahasan Tugas Praktik um I I
47
48
Pada program utama pembahasan praktikum II, program dengan deklarasi array sebagai berikut
float nilai_jual [3][4]= {{70,50,80,30}, {60,40,65,45}, {80,60,75,50}}; Diganti dengan deklarasi program dengan nilai array sebagai berikut.
float nilai_jual [3][4]= {{70,60,80,90}, {70,75,90,90}, {70,70,70,90}}; Sehingga data yang akan diproses berbeda dengan program utama akan tetapi bentuk prosesnya tetap sama dimana jumlah nilai baris
1,2,3
akan dibagi dengan banyaknya kolom (4) sehingga
menghasilkan nilai rerata baris 1,2,3. Dan begitupula untuk mendapatkan rerata dari tiap kolomnya dengan proses yang sama yaitu jumlah nilai kolom
1,2,3,4 dibagi dengan banyaknya baris
sehingga menghasilkan nilai rerata kolom 1,2,3,4. 3.2.3 Praktikum III
Pada pembahasan tugas pada Praktikum III bentuk Script Program-nya adalah sebagai berikut.
#include #include #include void main() { int data[8] = {5,2,1,6,7,9,8,3}; int cari=0; 49
int i=0; int flag=0; cout<<"Diketahui deretan data"<<" {5 2 1 6 7 9 8 3} "<>cari; while (i<8){if (data[i]==cari) {flag=1; break;}i++;} if (flag==1) cout <<"Data Ditemukan "<
Gambar 3.9 Output Program Pembahasan Tugas Praktikum I I I
50
51
Pada program utama pembahasan praktikum III, program dengan nilai masukan variable Cari telah diinisialisasi atau ditetapkan oleh program, dan pada pembahasan tugas praktikum III ini inisialisasi tersebut diganti dengan perintah masukkan, agar nilai data yang akan di inputkan sesuai dengan keinginan pengguna (User). Maka, dengan menghapus nilai tetap variable cari=6 menjadi
cari=0
dan
memasukkan
membuat
nilai
data
kondisi yang
dimana
akan
di
user cari
diminta dengan
cout<<"Masukkan data yang saudara cari
untuk
perintah
"<<" :
"; dan data yang diinputkan user tersebut akan di masukkan ke variable cari cin>>cari untuk selanjutnya diproses untuk mencari nilai yang di inputkan oleh User untuk kemudian akan menghasilkan keluaran jika nilai yang dicari ditemukan akan menampilkan “Data Ditemukan” dan jika tidak “Data tidak Ditemukan”.
3.2.4 Praktikum IV
Pada pembahasan tugas pada Praktikum IV bentuk Script Program-nya adalah sebagai berikut.
//Program Bubble.cpp //Untuk penggunaan cout #include //untuk penggunaan clrscr #include //untuk penggunaan setw atau pengaturan format #include void main() {clrscr(); 52
//Deklarasi,nama array (input) dan variabel penampung int Numlist [8]={5,34,32,25,75,42,22,2}; int swap; //untuk menampilkan input cout<<"Data sebelum diurutkan
:
"<
for (int ctr=0; ctr<8; ctr++) { cout<
swap=Numlist[ii]; Numlist[ii]=Numlist[ii+1]; Numlist[ii+1]=swap;
} cout<<"Data setelah diurutkan: \n"; //Menampilkan output for(int iii=0; iii<8; iii++) cout<
53
Setelah program tersebut di eksekusi maka akan menghasilkan keluaran output seperti gambar dibawah ini.
Gambar 10 Output Program Pembahasan Tugas Pr aktik um I V
54
55
Pada program utama pembahasan praktikum IV, hasil program ditampilkan secara Ascending atau urut dari nilai terkecil hingga nilai terbesar. Sehingga pada pembahasan Tugas praktikum IV ini ditugaskan untuk mengganti hasil Sorting keluaran program untuk menampilkan secara “Descending” atau urut dari nilai terbesar hingga nilai terkecil. Maka, untuk merubah keluaran sorting Ascending menjadi
Descending yaitu dengan mengganti statement perbandingan lebih dari (>) menjadi kurang dari (<) dari kondisi if(Numlist[ii]
< Numlist[ii +1]) sehingga keluaran yang dihasilkan akan secara sorting dari nilai terbesar hingga nilai terkecil. 3.2.5 Praktikum V
Pada pembahasan tugas pada Praktikum V bentuk Script Program-nya adalah sebagai berikut.
#include #include #include void main () {int i,j,iMin; int n, Urut; int Tmp,code; int Arr[100]; do{ cout<<"=====================================\n"; cout<<"| Pilihan Program Sorting |\n"; cout<<"=====================================\n"; cout<<"| 1. Selection Sorting (Ascending)|\n"; cout<<"| 2. Selection Sorting (Descending)|\n"; 56
cout<<"| 3. Bubble Sorting (Ascending) |\n"; cout<<"| 4. Bubble Sorting (Descending) |\n"; cout<<"| 5. Insertion Sorting (Ascending) |\n"; cout<<"| 6. Insertion Sorting (Descending) |\n"; cout<<"| 7. Keluar... |\n"; cout<<"=====================================\n\n "; cout<<"Masukkan Pilihan Anda : "; cin>>code; switch (code){ case 1 :cout<<"\nInputkan banyak data yang akan diurutkan : ";cin>>n; Urut: 1; for (i = 0; i < n; i++) {cout<<"Masukkan data ke "<< (i + 1)<<" : "; cin>>Arr[i];} for (i = 0; i < n- 1; i++) { iMin = i; for (j = Urut; j < n; j++){ if (Arr [j] < Arr [iMin]) { iMin = j; if (Arr [i] != Arr [iMin]){ Tmp = Arr[i]; if (Arr[i] > Arr [iMin]){ Arr[i] = Arr [iMin]; Arr[iMin] = Tmp;}}}} Urut = Urut + 1;} cout<<"\nsetelah Pengurutan\n"; for(i = 0; i < n; i++) { 57
cout<<"Elemen ke "<<(i + 1)<<" adalah "<>n; Urut = 1; for (i = 0; i < n; i++){ iMin = i; for (j= Urut; j < n; j++){ if (Arr[j] > Arr [iMin]) { iMin = j; if (Arr[i] != Arr[iMin]){ Tmp = Arr[i]; if(Arr[i] < Arr [iMin]) { Arr[i] = Arr[iMin]; Arr[iMin] = Tmp;}}}} Urut = Urut + 1;} cout<<"\nSetelah Pengurutan\n"; for(i = 0; i < n; i++) { cout<<"Elemen ke "<<(i + 1)<<" adalah "<>n; for(i = 0; i < n; i++){ cout<<"Masukkan data ke "<<(i + 1)<<" : "; cin>>Arr[i];} for (i = 1; i < n; i++) { for (j = 0; j < n - 1; j++) { 58
if(Arr[j] > Arr [j + 1]) { Tmp = Arr[j]; Arr[j] = Arr[j + 1]; Arr[j + 1] = Tmp;}}} cout<<"\nSetelah Pengurutan\n"; for(i = 0; i < n; i++) { cout<<"Elemen ke "<<(i + 1)<<" adalah "<>n; for(i = 0; i < n; i++){ cout<<"Masukkan data ke "<<(i + 1)<<" : "; cin>>Arr[i];} for (i = 1; i < n; i++) { for (j = 0; j < n - 1; j++) { if(Arr[j] > Arr [j + 1]) { Tmp = Arr[j]; Arr[j] = Arr[j + 1]; Arr[j + 1] = Tmp;}}} cout<<"\nSetelah Pengurutan\n"; for(i = 0; i < n; i++) { cout<<"Elemen ke "<<(i + 1)<<" adalah "<>n; for(i = 0; i < n; i++){ cout<<"Masukkan data ke "<<(i + 1)<<" : "; 59
cin>>Arr[i];} for (i = 1; i < n; i++) { Tmp = Arr[i]; j = i - 1; while(Arr[j] >= Tmp && j > 0) { Arr[j + 1] = Arr[j]; j = j - 1;} if(Tmp >= Arr [j]){ Arr [j + 1] = Tmp; } else { Arr [j + 1] = Arr[j]; Arr [j] = Tmp;}} cout<<"\nSetelah Pengurutan\n"; for(i = 0; i < n; i++) { cout<<"Elemen ke "<<(i + 1)<<" adalah "<>n; for(i = 0; i < n; i++){ cout<<"Masukkan data ke "<<(i + 1)<<" : "; cin>>Arr[i];} for (i = 1; i < n; i++) { Tmp = Arr[i]; j = i - 1; while(Arr[j] >= Tmp && j > 0) { Arr[j + 1] = Arr[j]; j = j - 1;} if(Tmp >= Arr [j]){ 60
Arr [j + 1] = Tmp; } else { Arr [j + 1] = Arr[j]; Arr [j] = Tmp;}} cout<<"\nSetelah Pengurutan\n"; for(i = 0; i < n; i++) { cout<<"Elemen ke "<<(i + 1)<<" adalah "<=1 && code <=6);} Setelah program tersebut di eksekusi maka akan menghasilkan keluaran output seperti gambar dibawah ini.
Gambar 3.11 Output Program Pembahasan Tugas Pr aktikum V
61
62
63
64
Pada program diatas menggunakan percabangan Switch karena mempunyai kemungkinan yang cukup banyak. Struktur itu akan melaksanakan salah satu dari dari beberapa pernyataan “Case” tergantung dengan kondisi yang ada dalam switch. Tipe data yang digunakan yaitu integer dengan variable i, j, iMin, n,
Urut, Tmp,code dan Array arr[100]. Pengguna dapat memilih 7 pilihan dan 6 metode program sorting berikut ini:
1. Selection Sorting (Ascending) 2. Selection Sorting (Descending) 3. Bubble Sorting (Ascending) 4. Bubble Sorting (Descending) 5. Insertion Sorting (Ascending) 6. Insertion Sorting (Descending) 7. Keluar Berikut ini, jika user memilih pilihan 1 yaitu Metode Algoritma
Selection Sorting secara Ascending, maka user akan diminta untuk menginputkan banyak data yang akan diurutkan sebagai contoh banyak data yang akan diurutkan yaitu 3, kemudian menginputkan data ke 1 hingga data ke 3 sehingga program akan membacanya dan memproses secara Selection
Sorting (Ascending)sehingga
menghasilkan output program seperti gambar berikut ini.
65
Gambar 3.12 Metode Algori tma Selection Sorting secara Ascending
Jika user memilih pilihan 2 yaitu Metode Algoritma Selection Sorting
secara
Descending,
maka
user
akan
diminta
untuk
menginputkan banyak data yang akan diurutkan sebagai contoh banyak data yang akan diurutkan yaitu 6, kemudian menginputkan data ke 1 hingga data ke 6 sehingga program akan membacanya dan memproses secara
Selection
Sorting
(Descending)sehingga
menghasilkan output program seperti gambar berikut ini
Gambar 3.13 M etode Algori tma Selection Sorti ng secara Descending
66
Kemudian jika user memilih pilihan 3 yaitu yaitu Metode
Algoritma Bubble Sorting secara Ascending, maka user akan diminta untuk menginputkan banyak data yang akan durutkan sebagai contoh banyak data yang akan diurutkan yaitu 6, kemudian menginputkan data ke 1 hingga data ke 6 sehingga program akan membacanya
dan
memproses
secara
Bubble
Sorting
(Ascending)sehingga menghasilkan output program seperti gambar berikut ini.
Gambar 3.14 Metode Algori tma Bubble Sorting secara Ascending
Kemudian
jika
user
memilih
pilihan 4 yaitu
Metode
Algoritma Bubble Sorting secara Descending, maka user akan diminta untuk menginputkan banyak data yang akan durutkan sebagai contoh banyak data yang akan diurutkan yaitu 6, kemudian menginputkan data ke 1 hingga data ke 6 sehingga program akan membacanya
dan
memproses
(Descending)sehingga
secara
menghasilkan
gambar berikut ini.
67
Bubble output
Sorting
program
seperti
Gambar 3.15 M etode Algori tma Bubble Sorting secara Descending
68
BAB IV KESIMPULAN 1. Kesimpulan Praktikum I
Dari pembahasan praktikum I dapat disimpulkan bahwa Array adalah kumpulan data bertipe sama dan menggunakan nama yang sama pula. Antara satu variabel dengan variabel lain di dalam array dibedakan berdasarkan “subscript”.
Subscript berupa bilangan di dalam kurung siku [...].
Melalui subscript inilah masing-masing elemen dapat diakses. Array terdiri dari Array berdimensi satu, Array berdimensi dua selain itu
Array juga dapat berkedudukan sebagai parameter di dalam fungsi.
2. Kesimpulan Praktikum II
Pada pembahasan Praktikum II dapat disimpulkan bahwa program menggunakan Array berdimensi dua, yaitu kondisi dimana sekumpulan data/elemen yang disimpan secara berurutan dalam suatu tempat/subscript yang terdiri atas 2 (dua) unsur, yaitu baris dan kolom. Array berdimensi dua berarti memiliki dua dimensi data.
3. Kesimpulan Praktikum III
Pada
Pembahasan
Praktikum
III
dijelaskan
tentang
bagaimana
menerapkan aplikasi algoritma untuk pencarian data dari pengelompokkan data dengan tipe yang berlainan (Struct). Kemudian dengan mengganti variable yang telah ditentukan oleh program maka pengguna (user) dapat memasukkan nilai yang akan dicari sesuai dengan keinginan.
69