11
LAPORAN PRAKTIKUM PEMROGRAMAN TERSTRUKTUR
"ARRAY"
PRAKTIKUM 2
NAMA : ARINA WIDDA FARADIS
NIM : 135090800111003
TGL PRAKTIKUM :21 April 2015 pukul 09.45
LABORATURIUM KOMPUTER
JURUSAN FISIKA
FAKULTAS MATEMATIKA DAN ILMU PENGETAHUAN ALAM
UNIVERSITAS BRAWIJAYA
MALANG
2015
Instruksi
Instruksi dari laporan praktikum ini adalah sebagai berikut;
Membuat program untuk array 4x4.
Membuat array dengan operasi pembagian
Menjelaskan logika program berikut;
1 #include 2 using namespace std; 3 4 int foo [] = {16, 2, 77, 40, 12071}; 5 int n, result=0; 6 7 int main () 8 { 9 for ( n=0 ; n<5 ; ++n ) 10 { 11 result += foo[n]; 12 } 13 cout << result; 14 return 0; 15 1 #include 2 using namespace std; 3 4 int foo [] = {16, 2, 77, 40, 12071}; 5 int n, result=0; 6 7 int main () 8 { 9 for ( n=0 ; n<5 ; ++n ) 10 { 11 result += foo[n]; 12 } 13 cout << result; 14 return 0; 15
1 #include
2 using namespace std;
3
4 int foo [] = {16, 2, 77, 40, 12071};
5 int n, result=0;
6
7 int main ()
8 {
9 for ( n=0 ; n<5 ; ++n )
10 {
11 result += foo[n];
12 }
13 cout << result;
14 return 0;
15
1 #include
2 using namespace std;
3
4 int foo [] = {16, 2, 77, 40, 12071};
5 int n, result=0;
6
7 int main ()
8 {
9 for ( n=0 ; n<5 ; ++n )
10 {
11 result += foo[n];
12 }
13 cout << result;
14 return 0;
15
Script Program
Praktikum pertama kali ini membahas tentang pemrograman array 4x4 dan cara menampilkannya. Script yang digunakan adalah bahasa C. Untuk menjawab instruksi 1, maka program array 4x4 dibuat sebagai berikut;
1 #include 2 3 float matriks [4][4]; 4 5 int array() 6 { 7 printf("\t\t\tMasukkan angka dari matriks 4x4:\n\n\nnote:setiap angka pada tiap kolom dipisahkan oleh spasi\ndan setiap angka pada tiap baris dipisahkan oleh enter\n"); 8 printf("\n\tcontoh: \n\t1 1 1 1\n\t2 2 2 2\n\t3 3 3 3\n\t4 4 4 4\n\n"); 9 10 int i=0,j=0; //input matriks 11 for(i=0; i<4; i++) 12 for(j=0; j<4; j++) 13 scanf("%f",&matriks[i][j]); 14 15 printf("\n\n\nsehingga matriksnya adalah: \n"); 16 for(i=0; i<4; i++){ //print matriks di atas 17 for(j=0; j<4; j++) 18 printf("%.2f ",(matriks[i][j])); 19 printf("\n"); 20 } 21 return 0; 22 } 23 24 void bagi() 25 { 26 int i,j; 27 double pembagian [4][4]; 28 float konstanta; 29 printf("\n\n\tmasukkan nilai konstanta sebagai bilangan pembagi\n\t\t\tdari matriks di atas:\n\n\tcontoh: 2\n\n"); 30 scanf("%f",&konstanta); 31 printf("\n\n"); 32 printf("setelah dilakukan proses pembagian, maka matriks yang dihasilkan adalah\n"); 33 for(i=0; i<4; i++){ 34 for(j=0; j<4; j++){ 35 pembagian[i][j] = matriks[i][j]/konstanta; 36 printf("%.2f ", pembagian[i][j]); 37 } 38 printf("\n"); 39 } 40 printf("\n\n\nterimakasih"); 41 getch(); 42 } 43 44 int main () 45 { 46 int i,j; 47 printf("\tSelamat datang di fungsi array bilangan bulat 4x4 dua dimensi \n"); 48 printf("\t------------------------------------------------------------- \n\n\n"); 49 array(); 50 bagi(); 51 return 0; 52 } 1 #include 2 3 float matriks [4][4]; 4 5 int array() 6 { 7 printf("\t\t\tMasukkan angka dari matriks 4x4:\n\n\nnote:setiap angka pada tiap kolom dipisahkan oleh spasi\ndan setiap angka pada tiap baris dipisahkan oleh enter\n"); 8 printf("\n\tcontoh: \n\t1 1 1 1\n\t2 2 2 2\n\t3 3 3 3\n\t4 4 4 4\n\n"); 9 10 int i=0,j=0; //input matriks 11 for(i=0; i<4; i++) 12 for(j=0; j<4; j++) 13 scanf("%f",&matriks[i][j]); 14 15 printf("\n\n\nsehingga matriksnya adalah: \n"); 16 for(i=0; i<4; i++){ //print matriks di atas 17 for(j=0; j<4; j++) 18 printf("%.2f ",(matriks[i][j])); 19 printf("\n"); 20 } 21 return 0; 22 } 23 24 void bagi() 25 { 26 int i,j; 27 double pembagian [4][4]; 28 float konstanta; 29 printf("\n\n\tmasukkan nilai konstanta sebagai bilangan pembagi\n\t\t\tdari matriks di atas:\n\n\tcontoh: 2\n\n"); 30 scanf("%f",&konstanta); 31 printf("\n\n"); 32 printf("setelah dilakukan proses pembagian, maka matriks yang dihasilkan adalah\n"); 33 for(i=0; i<4; i++){ 34 for(j=0; j<4; j++){ 35 pembagian[i][j] = matriks[i][j]/konstanta; 36 printf("%.2f ", pembagian[i][j]); 37 } 38 printf("\n"); 39 } 40 printf("\n\n\nterimakasih"); 41 getch(); 42 } 43 44 int main () 45 { 46 int i,j; 47 printf("\tSelamat datang di fungsi array bilangan bulat 4x4 dua dimensi \n"); 48 printf("\t------------------------------------------------------------- \n\n\n"); 49 array(); 50 bagi(); 51 return 0; 52 }
1 #include
2
3 float matriks [4][4];
4
5 int array()
6 {
7 printf("\t\t\tMasukkan angka dari matriks 4x4:\n\n\nnote:setiap angka pada tiap kolom dipisahkan oleh spasi\ndan setiap angka pada tiap baris dipisahkan oleh enter\n");
8 printf("\n\tcontoh: \n\t1 1 1 1\n\t2 2 2 2\n\t3 3 3 3\n\t4 4 4 4\n\n");
9
10 int i=0,j=0; //input matriks
11 for(i=0; i<4; i++)
12 for(j=0; j<4; j++)
13 scanf("%f",&matriks[i][j]);
14
15 printf("\n\n\nsehingga matriksnya adalah: \n");
16 for(i=0; i<4; i++){ //print matriks di atas
17 for(j=0; j<4; j++)
18 printf("%.2f ",(matriks[i][j]));
19 printf("\n");
20 }
21 return 0;
22 }
23
24 void bagi()
25 {
26 int i,j;
27 double pembagian [4][4];
28 float konstanta;
29 printf("\n\n\tmasukkan nilai konstanta sebagai bilangan pembagi\n\t\t\tdari matriks di atas:\n\n\tcontoh: 2\n\n");
30 scanf("%f",&konstanta);
31 printf("\n\n");
32 printf("setelah dilakukan proses pembagian, maka matriks yang dihasilkan adalah\n");
33 for(i=0; i<4; i++){
34 for(j=0; j<4; j++){
35 pembagian[i][j] = matriks[i][j]/konstanta;
36 printf("%.2f ", pembagian[i][j]);
37 }
38 printf("\n");
39 }
40 printf("\n\n\nterimakasih");
41 getch();
42 }
43
44 int main ()
45 {
46 int i,j;
47 printf("\tSelamat datang di fungsi array bilangan bulat 4x4 dua dimensi \n");
48 printf("\t------------------------------------------------------------- \n\n\n");
49 array();
50 bagi();
51 return 0;
52 }
1 #include
2
3 float matriks [4][4];
4
5 int array()
6 {
7 printf("\t\t\tMasukkan angka dari matriks 4x4:\n\n\nnote:setiap angka pada tiap kolom dipisahkan oleh spasi\ndan setiap angka pada tiap baris dipisahkan oleh enter\n");
8 printf("\n\tcontoh: \n\t1 1 1 1\n\t2 2 2 2\n\t3 3 3 3\n\t4 4 4 4\n\n");
9
10 int i=0,j=0; //input matriks
11 for(i=0; i<4; i++)
12 for(j=0; j<4; j++)
13 scanf("%f",&matriks[i][j]);
14
15 printf("\n\n\nsehingga matriksnya adalah: \n");
16 for(i=0; i<4; i++){ //print matriks di atas
17 for(j=0; j<4; j++)
18 printf("%.2f ",(matriks[i][j]));
19 printf("\n");
20 }
21 return 0;
22 }
23
24 void bagi()
25 {
26 int i,j;
27 double pembagian [4][4];
28 float konstanta;
29 printf("\n\n\tmasukkan nilai konstanta sebagai bilangan pembagi\n\t\t\tdari matriks di atas:\n\n\tcontoh: 2\n\n");
30 scanf("%f",&konstanta);
31 printf("\n\n");
32 printf("setelah dilakukan proses pembagian, maka matriks yang dihasilkan adalah\n");
33 for(i=0; i<4; i++){
34 for(j=0; j<4; j++){
35 pembagian[i][j] = matriks[i][j]/konstanta;
36 printf("%.2f ", pembagian[i][j]);
37 }
38 printf("\n");
39 }
40 printf("\n\n\nterimakasih");
41 getch();
42 }
43
44 int main ()
45 {
46 int i,j;
47 printf("\tSelamat datang di fungsi array bilangan bulat 4x4 dua dimensi \n");
48 printf("\t------------------------------------------------------------- \n\n\n");
49 array();
50 bagi();
51 return 0;
52 }
24 void bagi() 25 { 26 int i,j; 27 double pembagian [4][4]; 28 float konstanta; 29 printf("\n\n\tmasukkan nilai konstanta sebagai bilangan pembagi\n\t\t\tdari matriks di atas:\n\n\tcontoh: 2\n\n"); 30 scanf("%f",&konstanta); 31 printf("\n\n"); 32 printf("setelah dilakukan proses pembagian, maka matriks yang dihasilkan adalah\n"); 33 for(i=0; i<4; i++){ 34 for(j=0; j<4; j++){ 35 pembagian[i][j] = matriks[i][j]/konstanta; 36 printf("%.2f ", pembagian[i][j]); 37 } 38 printf("\n"); 39 } 40 printf("\n\n\nterimakasih"); 41 getch(); 42 } 43 44 int main () 45 { 46 int i,j; 47 printf("\tSelamat datang di fungsi array bilangan bulat 4x4 dua dimensi \n"); 48 printf("\t------------------------------------------------------------- \n\n\n"); 49 array(); 50 bagi(); 51 return 0; 52 } 24 void bagi() 25 { 26 int i,j; 27 double pembagian [4][4]; 28 float konstanta; 29 printf("\n\n\tmasukkan nilai konstanta sebagai bilangan pembagi\n\t\t\tdari matriks di atas:\n\n\tcontoh: 2\n\n"); 30 scanf("%f",&konstanta); 31 printf("\n\n"); 32 printf("setelah dilakukan proses pembagian, maka matriks yang dihasilkan adalah\n"); 33 for(i=0; i<4; i++){ 34 for(j=0; j<4; j++){ 35 pembagian[i][j] = matriks[i][j]/konstanta; 36 printf("%.2f ", pembagian[i][j]); 37 } 38 printf("\n"); 39 } 40 printf("\n\n\nterimakasih"); 41 getch(); 42 } 43 44 int main () 45 { 46 int i,j; 47 printf("\tSelamat datang di fungsi array bilangan bulat 4x4 dua dimensi \n"); 48 printf("\t------------------------------------------------------------- \n\n\n"); 49 array(); 50 bagi(); 51 return 0; 52 }
24 void bagi()
25 {
26 int i,j;
27 double pembagian [4][4];
28 float konstanta;
29 printf("\n\n\tmasukkan nilai konstanta sebagai bilangan pembagi\n\t\t\tdari matriks di atas:\n\n\tcontoh: 2\n\n");
30 scanf("%f",&konstanta);
31 printf("\n\n");
32 printf("setelah dilakukan proses pembagian, maka matriks yang dihasilkan adalah\n");
33 for(i=0; i<4; i++){
34 for(j=0; j<4; j++){
35 pembagian[i][j] = matriks[i][j]/konstanta;
36 printf("%.2f ", pembagian[i][j]);
37 }
38 printf("\n");
39 }
40 printf("\n\n\nterimakasih");
41 getch();
42 }
43
44 int main ()
45 {
46 int i,j;
47 printf("\tSelamat datang di fungsi array bilangan bulat 4x4 dua dimensi \n");
48 printf("\t------------------------------------------------------------- \n\n\n");
49 array();
50 bagi();
51 return 0;
52 }
24 void bagi()
25 {
26 int i,j;
27 double pembagian [4][4];
28 float konstanta;
29 printf("\n\n\tmasukkan nilai konstanta sebagai bilangan pembagi\n\t\t\tdari matriks di atas:\n\n\tcontoh: 2\n\n");
30 scanf("%f",&konstanta);
31 printf("\n\n");
32 printf("setelah dilakukan proses pembagian, maka matriks yang dihasilkan adalah\n");
33 for(i=0; i<4; i++){
34 for(j=0; j<4; j++){
35 pembagian[i][j] = matriks[i][j]/konstanta;
36 printf("%.2f ", pembagian[i][j]);
37 }
38 printf("\n");
39 }
40 printf("\n\n\nterimakasih");
41 getch();
42 }
43
44 int main ()
45 {
46 int i,j;
47 printf("\tSelamat datang di fungsi array bilangan bulat 4x4 dua dimensi \n");
48 printf("\t------------------------------------------------------------- \n\n\n");
49 array();
50 bagi();
51 return 0;
52 }
Hasil Output
Sebelum data dimasukkan
Setelah semua data dimasukkan
Pembahasan
Baris pertama dalam program ini menggunakan fungsi #include yang berfungsi untuk memungkinkan compiler agar dapat memanggil syntax yang ada dalam file header stdio.h. Hal ini memudahkan bagi programmer karena dengan menggunakan syntax dengan file header tersebut, Programmer hanya menggunakan kode program umum yang tersimpan pada file stdio.h tanpa mengetik ulang kode yang ada di dalamnya.
Baris ketiga merupakan pendeklarasian variabel yang akan dipakai pada ketua fungsi yang ada. Variabel-variabel ini mempunyai tipe data tertentu yang nantinya berguna untuk mengidentifikasi jenis data yang dapat dimasukkan. Pada program ini, tipe data yang dideklarasikan secara umum dan digunakan pada seluruh fungsi termasuk fungsi utama adalah adalah float matriks [4][4]; untuk penanda masukan berupa bilangan real decimal (ada angka di belakang koma). Secara umum, keseluruhan kode bahasa C berakhiran tanda titik koma (;).
Terdapat tiga fungsi pada program ini, yaitu int array(),void bagi(), dan int main (). Baris kelima ini menggunakan fungsi array sebagai fungsi yang berisi instruksi untuk memunculkan array 4x4. Baris ke-23 merupakan fungsi yang berisi instruksi operasi pembagian array. Baris ke-43 merupakan fungsi utama dari program ini. Fungsi array() dan main () menggunakan int artinya program tersebut memberikan nilai balik menurut tipe datanya, dan karena memiliki nilai balik maka diberikan perintah return nilai atau return 0;. main() adalah nama dari fungsi utama pada program ini. Semua kode program setiap fungsi berada diantara dua kurung kurawal {}, yaitu kurung kurawal buka "{" dan kurung kurawal penutup "}" .
44 int main () 45 { 46 int i,j; 47 printf("\tSelamat datang di fungsi array bilangan bulat 4x4 dua dimensi \n"); 48 printf("\t------------------------------------------------------------- \n\n\n"); 49 array(); 50 bagi(); 51 return 0; 52 } 44 int main () 45 { 46 int i,j; 47 printf("\tSelamat datang di fungsi array bilangan bulat 4x4 dua dimensi \n"); 48 printf("\t------------------------------------------------------------- \n\n\n"); 49 array(); 50 bagi(); 51 return 0; 52 }
44 int main ()
45 {
46 int i,j;
47 printf("\tSelamat datang di fungsi array bilangan bulat 4x4 dua dimensi \n");
48 printf("\t------------------------------------------------------------- \n\n\n");
49 array();
50 bagi();
51 return 0;
52 }
44 int main ()
45 {
46 int i,j;
47 printf("\tSelamat datang di fungsi array bilangan bulat 4x4 dua dimensi \n");
48 printf("\t------------------------------------------------------------- \n\n\n");
49 array();
50 bagi();
51 return 0;
52 }
Baris ke-44 hingga ke-55 merupakan fungsi utama yang ditandai penulisan int main ()pada baris ke-44. Fungsi utama yang digunakan adalah fungsi int. Di dalam fungsi utama terdapat deklarasi variabel lokal pada baris ke-46, yaitu int i,j;. Pendeklarasian ini menggunakan tipe data int sebagai penanda bahwa variabel i dan j merupakan bilangan bulat.
Baris ke-47 terdapat printf(""); digunakan untuk menampilkan komentar. Isi komentar ini diletakkan kedalam kurung petik (""). Komentar ini bertujuan untuk memberitahu pengguna secara umum tentang program yang dijalankan, yaitu program untuk membuat array 4x4. Squence \t digunakan untuk mengatur susunan barisan komentar sehingga pada baris komentar setelah squence \t lebih menjorok ke dalam saat program dijalankan (sebagai horizontal tab). Squence \n digunakan untuk mengatur susunan barisan komentar sehingga kedudukan komentar setelah \n berada pada satu baris lebih bawah dari komentar komentar sebelum squence \n.
Baris ke-49 merupakan nama fungsi lain yang terdapat di dalam program ini. Sehingga di dalam fungsi utama, akan dijalankan juga fungsi array(); dan akan dilanjutkan pula dengan menjalankan fungsi bagi();pada baris ke-51. Dikarenakan fungsi utama bertipe int maka sebagai konsekuensinya dibutuhkan return 0;pada baris ke-52.
Berikut akan dipaparkan mengenai kode program di dalam fungsi int array() yang dimulai pada baris kelima hingga ke -22.
5 int array() 6 { 7 printf("\t\t\tMasukkan angka dari matriks 4x4:\n\n\nnote:setiap angka pada tiap kolom dipisahkan oleh spasi\ndan setiap angka pada tiap baris dipisahkan oleh enter\n"); 8 printf("\n\tcontoh: \n\t1 1 1 1\n\t2 2 2 2\n\t3 3 3 3\n\t4 4 4 4\n\n"); 9 10 int i=0,j=0; //input matriks 11 for(i=0; i<4; i++) 12 for(j=0; j<4; j++) 5 int array() 6 { 7 printf("\t\t\tMasukkan angka dari matriks 4x4:\n\n\nnote:setiap angka pada tiap kolom dipisahkan oleh spasi\ndan setiap angka pada tiap baris dipisahkan oleh enter\n"); 8 printf("\n\tcontoh: \n\t1 1 1 1\n\t2 2 2 2\n\t3 3 3 3\n\t4 4 4 4\n\n"); 9 10 int i=0,j=0; //input matriks 11 for(i=0; i<4; i++) 12 for(j=0; j<4; j++)
5 int array()
6 {
7 printf("\t\t\tMasukkan angka dari matriks 4x4:\n\n\nnote:setiap angka pada tiap kolom dipisahkan oleh spasi\ndan setiap angka pada tiap baris dipisahkan oleh enter\n");
8 printf("\n\tcontoh: \n\t1 1 1 1\n\t2 2 2 2\n\t3 3 3 3\n\t4 4 4 4\n\n");
9
10 int i=0,j=0; //input matriks
11 for(i=0; i<4; i++)
12 for(j=0; j<4; j++)
5 int array()
6 {
7 printf("\t\t\tMasukkan angka dari matriks 4x4:\n\n\nnote:setiap angka pada tiap kolom dipisahkan oleh spasi\ndan setiap angka pada tiap baris dipisahkan oleh enter\n");
8 printf("\n\tcontoh: \n\t1 1 1 1\n\t2 2 2 2\n\t3 3 3 3\n\t4 4 4 4\n\n");
9
10 int i=0,j=0; //input matriks
11 for(i=0; i<4; i++)
12 for(j=0; j<4; j++)
Baris ketujuh hingga kedelapan adalah bagian kode instruksi untuk melakukan antar muka pada pengguna. Fungsi printf(""); digunakan untuk menampilkan komentar. Isi komentar ini diletakkan kedalam kurung petik (""). Komentar ini bertujuan untuk memudahkan pengguna guna memahami proses program yang akan dijalankan. Squence \t digunakan untuk mengatur susunan barisan komentar sehingga pada baris komentar setelah squence \t lebih menjorok ke dalam saat program dijalankan (sebagai horizontal tab). Squence \n digunakan untuk mengatur susunan barisan komentar sehingga kedudukan komentar setelah \n berada pada satu baris lebih bawah dari komentar komentar sebelum squence \n. Semakin banyak pemakaian squence-squence ini dan dituliskan secara berurutan, maka untuk squence \t kedudukan barisnya akan semakin menjorok ke dalam (fungsinya mirip seperti tombol tab ) dan untuk penggunaan squence \n, jarak antar barisnya semakin panjang dan panjangnya sesuai dengan jumlah penulisan squence \n (mirip seperti tombol enter pada papan ketik).
Baris ke-10 merupakan pendeklarasian variabel lokal (hanya berlaku di dalam fungsi array()dengan tipe data int sebagai penanda masukan berupa bilangan bulat. Variabel yang dideklarasikan adalah variabel i yang diberi nilai 0 dan variabel j yang didefinisikan mempunyai nilai awal sebesar 0.
Baris ke-11 dan ke-12 adalah baris pembentuk array 4x4 dengan menggunakan fungsi pengulangan for. Alurnya adalah sebagai berikut. Maksud dari for(i=0; i<4; i++) adalah mula-mula i bernilai 0, jika i bernilai kurang dari 4, maka nilai i ditambah 1 dan disimpan sebagai nilai i yang baru untuk dilakukan proses identifikasi selanjutnya hingga syarat i<4 tidak terpenuhi lagi. Bila syarat tersebut tidak dipenuhi, maka perintah dalam pembuatan array untuk identifikasi baris selanjutnya terhenti. Nilai i mewakili posisi elemen array tiap barisnya. Misal jika i=0 maka i mewakili posisi elemen array untuk baris pertama. Pada setiap baris akan dispesifikkan lagi kedudukan elemen array untuk tiap kolomnya, sehingga penulisan for(j=0; j<4; j++) ada pada baris ke-12 dengan penjelasan bahwa mula-mula j bernilai 0, jika j bernilai kurang dari 4, maka nilai j ditambah 1 dan disimpan sebagai nilai j yang baru untuk dilakukan proses identifikasi selanjutnya hingga syarat j<4 tidak terpenuhi lagi. Bila syarat tersebut tidak dipenuhi, maka perintah dalam pembuatan array untuk identifikasi kolom selanjutnya terhenti. Nilai j mewakili posisi elemen array pada posisi tiap barisnya. Misal jika j=0 maka j mewakili nilai posisi elemen array untuk kolom pertama. Secara matematis dapat dituliskan sebagai berikut. Jika a mewakili elemen array, maka array yang terbentuk adalah sebagai berikut;
aijaijaijaijaijaijaijaijaijaijaijaijaijaijaijaij=a00a01a02a03a10a20a30a11a21a31a12a22a32a13a23a33aijaijaijaijaijaijaijaijaijaijaijaijaijaijaijaij=a00a01a02a03a10a20a30a11a21a31a12a22a32a13a23a33
aijaijaijaijaijaijaijaijaijaijaijaijaijaijaijaij=a00a01a02a03a10a20a30a11a21a31a12a22a32a13a23a33
aijaijaijaijaijaijaijaijaijaijaijaijaijaijaijaij=a00a01a02a03a10a20a30a11a21a31a12a22a32a13a23a33
13 scanf("%f",&matriks[i][j]); 14 15 printf("\n\n\nsehingga matriksnya adalah: \n"); 16 for(i=0; i<4; i++){ //print matriks di atas 17 for(j=0; j<4; j++) 18 printf("%.2f ",(matriks[i][j])); 19 printf("\n"); 20 } 21 return 0; 22 } 13 scanf("%f",&matriks[i][j]); 14 15 printf("\n\n\nsehingga matriksnya adalah: \n"); 16 for(i=0; i<4; i++){ //print matriks di atas 17 for(j=0; j<4; j++) 18 printf("%.2f ",(matriks[i][j])); 19 printf("\n"); 20 } 21 return 0; 22 }
13 scanf("%f",&matriks[i][j]);
14
15 printf("\n\n\nsehingga matriksnya adalah: \n");
16 for(i=0; i<4; i++){ //print matriks di atas
17 for(j=0; j<4; j++)
18 printf("%.2f ",(matriks[i][j]));
19 printf("\n");
20 }
21 return 0;
22 }
13 scanf("%f",&matriks[i][j]);
14
15 printf("\n\n\nsehingga matriksnya adalah: \n");
16 for(i=0; i<4; i++){ //print matriks di atas
17 for(j=0; j<4; j++)
18 printf("%.2f ",(matriks[i][j]));
19 printf("\n");
20 }
21 return 0;
22 }
Baris ke-13 merupakan fungsi scanf("%d",&?? ); yang digunakan untuk memindai interaksi dilakukan pengguna. Pada praktikum ini, bentuk interaksinya adalah nilai masukan keyboard yang diberikan oleh pengguna. Biasanya data yang dipindai adalah data alfanumerik. Data ini ditandai oleh format spesifikasi yang ditulis dengan squence %f karena data yang dipindai adalah data dengan tipe float. Syntax &?? Berfungsi untuk menyimpan hasil pindaian pada variable sesuai nama variable yang telah dideklarasikan, yaitu disimpan pada variabel utama matriks[i][j].
Baris ke-15 terdapat fungs printf(""); digunakan untuk menampilkan komentar. Isi komentar ini diletakkan kedalam kurung petik (""). Pada baris ini komentar yang dimunculkan adalah untuk memberikan pemberitahuan bahwa matriks yang telah dimasukkan ke dalam program akan dimunculkan oleh program. Baris ke-16 dan ke-17 adalah fungsi pengulangan untuk membentuk array 4x4 dengan pemberian nilai pada masing-masing elemen array dimasukkan sesuai dengan instruksi pada baris ke-18. Baris ke-18 menggunakan printf("%2.f ",&?? ); berfungsi untuk memunculkan nilai variabel matriks[i][j] dan nilainya berasal dari nilai masukan dari pengguna sebelumnya, dengan tipe data 2 angka di belakang koma. Pada masing-masing elemen dalam satu baris akan ditulis dengan spasi sebanyak 4 buah (sesuai dengan banyaknya spasi setelah penulisan ("%2.f). Setelah elemen array pada baris pertama terbentuk, pada baris ke-19 terdapat printf("\n"); yang berfungsi agar elemen array pada baris selanjutnya ditampilkan pada baris di bawah elemen array pertama. Karena for merupakan fungsi perulangan, maka elemen array untuk baris kedua hingga keempat akan ditampilkan sesuai dengan alur yang sama untuk elemen pertama. Karena fungsi array() merupakan fungsi int, maka diperlukan penulisan return 0; pada baris ke-21.
24 void bagi() 25 { 26 int i,j; 27 double pembagian [4][4]; 28 float konstanta; 29 printf("\n\n\tmasukkan nilai konstanta sebagai bilangan pembagi\n\t\t\tdari matriks di atas:\n\n\tcontoh: 2\n\n"); 30 scanf("%f",&konstanta); 31 printf("\n\n"); 32 printf("setelah dilakukan proses pembagian, maka matriks yang dihasilkan adalah\n"); 33 for(i=0; i<4; i++){ 34 for(j=0; j<4; j++){ 35 pembagian[i][j] = matriks[i][j]/konstanta; 36 printf("%.2f ", pembagian[i][j]); 37 } 38 printf("\n"); 39 } 40 printf("\n\n\nterimakasih"); 41 getch(); 42 } 43 24 void bagi() 25 { 26 int i,j; 27 double pembagian [4][4]; 28 float konstanta; 29 printf("\n\n\tmasukkan nilai konstanta sebagai bilangan pembagi\n\t\t\tdari matriks di atas:\n\n\tcontoh: 2\n\n"); 30 scanf("%f",&konstanta); 31 printf("\n\n"); 32 printf("setelah dilakukan proses pembagian, maka matriks yang dihasilkan adalah\n"); 33 for(i=0; i<4; i++){ 34 for(j=0; j<4; j++){ 35 pembagian[i][j] = matriks[i][j]/konstanta; 36 printf("%.2f ", pembagian[i][j]); 37 } 38 printf("\n"); 39 } 40 printf("\n\n\nterimakasih"); 41 getch(); 42 } 43
24 void bagi()
25 {
26 int i,j;
27 double pembagian [4][4];
28 float konstanta;
29 printf("\n\n\tmasukkan nilai konstanta sebagai bilangan pembagi\n\t\t\tdari matriks di atas:\n\n\tcontoh: 2\n\n");
30 scanf("%f",&konstanta);
31 printf("\n\n");
32 printf("setelah dilakukan proses pembagian, maka matriks yang dihasilkan adalah\n");
33 for(i=0; i<4; i++){
34 for(j=0; j<4; j++){
35 pembagian[i][j] = matriks[i][j]/konstanta;
36 printf("%.2f ", pembagian[i][j]);
37 }
38 printf("\n");
39 }
40 printf("\n\n\nterimakasih");
41 getch();
42 }
43
24 void bagi()
25 {
26 int i,j;
27 double pembagian [4][4];
28 float konstanta;
29 printf("\n\n\tmasukkan nilai konstanta sebagai bilangan pembagi\n\t\t\tdari matriks di atas:\n\n\tcontoh: 2\n\n");
30 scanf("%f",&konstanta);
31 printf("\n\n");
32 printf("setelah dilakukan proses pembagian, maka matriks yang dihasilkan adalah\n");
33 for(i=0; i<4; i++){
34 for(j=0; j<4; j++){
35 pembagian[i][j] = matriks[i][j]/konstanta;
36 printf("%.2f ", pembagian[i][j]);
37 }
38 printf("\n");
39 }
40 printf("\n\n\nterimakasih");
41 getch();
42 }
43
Baris ke-24 hingga ke-42 merupakan bagian dari fungsi void bagi(). Baris ke-26 terdapat int i,j; sebagai pendeklarasian lokal variabel i dan j bertipe bilangan bulat. Baris ke-27 terdapat double pembagian [4][4]; sebagai pendeklarasian lokal variabel array 4x4 dengan tipe data bilangan bulat. Baris ke-28 terdapat float konstanta; sebagai pendeklarasian lokal variabel konstanta dengan tipe data float (bilangan bulat dengan beberapa angka di belakang koma).
Baris ke-29 terdapat printf("??")sebagai komentar untuk memberitahukan kepada pengguna agar memasukkan satu nilai sebagai konstanta pembagi matriks[i][j] yang telah dimasukkan sebelumnya. Baris ke-30 terdapat scanf("%f",&konstanta); agar nilai masukan yang diberikan oleh pengguna disimpan sebagai variabel konstanta dengan tipe data float.
Baris ke-31 berfungsi untuk memberikan jeda secara vertikal ke bawah sebanyak 2 kali jeda(enter). Baris ke-32 terdapat printf("??") sebagai komentar untuk memberitahukan kepada pengguna tentang nilai elemen array yang baru setelah dilakukan operasi pembagian oleh konstanta yang dimasukkan.
Baris ke-33 hingga baris ke-35 merupakan baris untuk operasi pembagian. . Maksud dari for(i=0; i<4; i++) adalah mula-mula i bernilai 0, jika i bernilai kurang dari 4, maka nilai i ditambah 1 dan disimpan sebagai nilai i yang baru untuk dilakukan proses identifikasi selanjutnya hingga syarat i<4 tidak terpenuhi lagi. Bila syarat tersebut tidak dipenuhi, maka perintah dalam pembuatan array untuk identifikasi baris selanjutnya terhenti. Nilai i mewakili posisi elemen array tiap barisnya. Pada setiap baris akan dispesifikkan lagi kedudukan elemen array untuk tiap kolomnya, sehingga penulisan for(j=0; j<4; j++) ada pada baris ke-34 dengan penjelasan bahwa mula-mula j bernilai 0, jika j bernilai kurang dari 4, maka nilai j ditambah 1 dan disimpan sebagai nilai j yang baru untuk dilakukan proses identifikasi selanjutnya hingga syarat j<4 tidak terpenuhi lagi. Bila syarat tersebut tidak dipenuhi, maka perintah dalam pembuatan array untuk identifikasi kolom selanjutnya terhenti. Nilai j mewakili posisi elemen array pada posisi tiap barisnya. Misal jika j=0 maka j mewakili nilai posisi elemen array untuk kolom pertama. Pada saat program mengidentifikasi posisi elemen array, misal posisi [i][j]=00 untuk elemen array matriks[i][j] baris pertama pada kolom pertama, maka nilai pada elemen tersebut akan dibagi dengan nilai konstanta dan dari hasil operasi pembagian tersebut maka nilainya akan disimpan dan diberikan kepada variabel array pembagian[i][j].
36 printf("%.2f ", pembagian[i][j]); 37 } 38 printf("\n"); 39 } 40 printf("\n\n\nterimakasih"); 41 getch(); 42 } 43 36 printf("%.2f ", pembagian[i][j]); 37 } 38 printf("\n"); 39 } 40 printf("\n\n\nterimakasih"); 41 getch(); 42 } 43
36 printf("%.2f ", pembagian[i][j]);
37 }
38 printf("\n");
39 }
40 printf("\n\n\nterimakasih");
41 getch();
42 }
43
36 printf("%.2f ", pembagian[i][j]);
37 }
38 printf("\n");
39 }
40 printf("\n\n\nterimakasih");
41 getch();
42 }
43
Setelah didapatkan nilai dari variabel pada 1 elemen array pembagian[i][j], maka sesuai dengan instruksi pada baris ke-36, hasil pembagian tersebut ditampilkan dengan instruksi printf("%.2f ", pembagian[i][j]);. Artinya, elemen dari array pembagian[i][j] ditampilkan dengan tipe data bilangan bulat dengan dua angka di belakang koma (ditunjukkan dengan ("%.2f " ). Pada baris ke-38 terdapat printf("\n"); agar setelah elemen array dalam satu baris yang sama terbentuk, maka elemen array pada baris selanjutnya akan diletakkan di bawahnya.
Instruksi operasi pembagian hingga instruksi penampilan elemen array berada di dalam kurung kurawal pembuka { pada baris ke-33 dan kurawal penutup } pada baris ke-39 bermaksud untuk pengulangan instruksi hingga memenuhi i<4 dan j<4.
Baris ke-40 terdapat printf("\n\n\nterimakasih"); yang berfungsi untuk menampilkan komentar terimakasih dengan jeda vertikal ke bawah sebanyak 3 enter. Beberapa baris dibiarkan kosong untuk memberikan jeda saja. Hal tersebut tidak mempengaruhi hasil program. Baris ke-41 terdapat getch();yang berfungsi untuk membaca satu karakter dari keyboard tetapi tidak ditampilkan di layar.
Pembahasan Instruksi poin ke-3
1 #include 2 using namespace std; 3 4 int foo [] = {16, 2, 77, 40, 12071}; 5 int n, result=0; 6 7 int main () 8 { 9 for ( n=0 ; n<5 ; ++n ) 10 { 11 result += foo[n]; 12 } 13 cout << result; 14 return 0; 15 1 #include 2 using namespace std; 3 4 int foo [] = {16, 2, 77, 40, 12071}; 5 int n, result=0; 6 7 int main () 8 { 9 for ( n=0 ; n<5 ; ++n ) 10 { 11 result += foo[n]; 12 } 13 cout << result; 14 return 0; 15
1 #include
2 using namespace std;
3
4 int foo [] = {16, 2, 77, 40, 12071};
5 int n, result=0;
6
7 int main ()
8 {
9 for ( n=0 ; n<5 ; ++n )
10 {
11 result += foo[n];
12 }
13 cout << result;
14 return 0;
15
1 #include
2 using namespace std;
3
4 int foo [] = {16, 2, 77, 40, 12071};
5 int n, result=0;
6
7 int main ()
8 {
9 for ( n=0 ; n<5 ; ++n )
10 {
11 result += foo[n];
12 }
13 cout << result;
14 return 0;
15
Program pada instruksi poin ke-3 ini menggunakan bahasa C++. Baris pertama merupakan fungsi #include yang berfungsi untuk memungkinkan compiler agar dapat memanggil syntax yang ada dalam file header iostream. Hal ini memudahkan bagi programmer karena dengan menggunakan syntax dengan file header tersebut, Programmer hanya menggunakan kode program umum yang tersimpan pada file iostream tanpa mengetik ulang kode yang ada di dalamnya.
Baris kedua terdapat using namespace std; yang bertujuan untuk memanggil namespace yang memiliki nama 'std'. Namespace 'std' merupakan standar namespace dari C++ yang dapat digunakan untuk memanggil class, obyek, atau fungsi yang terdapat dalam namespace tersebut.
Baris keempat berfungsi untuk mendeklarasikan array satu dimensi bernama "foo" dengan tipe data di dalamnya adalah bilangan bulat. Terlihat bahwa elemen array foo adalah 16, 2, 77, 40, dan 12071. Baris kelima berfungsi untuk mendeklarasikan variabel n dan variabel result dengan tipe data bilangan bulat sekaligus pemberian nilai untuk variabel result sebesar 0.
7 int main () 8 { 9 for ( n=0 ; n<5 ; ++n ) 10 { 11 result += foo[n]; 12 } 13 cout << result; 14 return 0; 15 7 int main () 8 { 9 for ( n=0 ; n<5 ; ++n ) 10 { 11 result += foo[n]; 12 } 13 cout << result; 14 return 0; 15
7 int main ()
8 {
9 for ( n=0 ; n<5 ; ++n )
10 {
11 result += foo[n];
12 }
13 cout << result;
14 return 0;
15
7 int main ()
8 {
9 for ( n=0 ; n<5 ; ++n )
10 {
11 result += foo[n];
12 }
13 cout << result;
14 return 0;
15
Baris ketujuh hingga ke-14 merupakan fungsi utama program ini, ditandai dengan penulisan int main () pada baris ketujuh. Di dalam fungsi utama tersebut terdapat fungsi perulangan for. Maksud dari for(n=0; n<5; ++n) adalah mula-mula pada posisi dengan n 0, jika n bernilai kurang dari 5, maka nilai n ditambah 1 dan disimpan sebagai nilai n yang baru untuk dilakukan proses instruksi selanjutnya yang termuat pada baris ke-11 hingga syarat i<5 tidak terpenuhi lagi. Bila syarat tersebut tidak dipenuhi, maka perintah array untuk instruksi selanjutnya terhenti. Variabel di sini menunjukkan posisi elemen kolom. Instruksi result += foo[n]; yang ada pada baris ke-11 merupakan operasi penjumlahan. Untuk pengulangan pertama, operasi penjumlahannya adalah result += foo[n];, dimana nilai result ini diidentifikasi dari pendeklarasian sebelumnya, yaitu 0. Sedangkan foo[n] untuk pengulangan pertama dengan n=0 dapat mereferensikan elemen array pada kolom ke 0, yaitu 16. Sehingga operasinya adalah result= result + foo[n];. Hasil operasi penjumlahan tersebut menghasilkan nilai 16, dan nilai tersebut disimpan ke dalam variabel result. Pada pengulangan selanjutnya, operasi penjumlahannya antara nilai 16 sebagai nilai result terakhir dengan elemen foo pada kolom ke-1, yaitu 2. Pola penjumlahan seperti itu akan berulang hingga kolom ke-4. Berikut adalah gambaran dari operasi penjumlahan pada program di atas;
Foo[n]
result
16
16
2
18
77
95
40
135
12071
12206
Sehingga dapat diambil kesimpulan bahwa hasil akhir dari operasi penjumlahan di atas adalah 12206. Hal ini sesuai saat program dijalankan, yaitu sebagai berikut;
Pola ini dapat dibuktikan dengan mengganti angka-angka pada elemen array foo.
1 #include 2 using namespace std; 3 4 int foo [] = {21, 53, 3, 710, 632}; 5 int n, result=0; 6 7 int main () 8 { 9 for ( n=0 ; n<5 ; ++n ) 10 { 11 result += foo[n]; 12 } 13 cout << result; 14 return 0; 15 1 #include 2 using namespace std; 3 4 int foo [] = {21, 53, 3, 710, 632}; 5 int n, result=0; 6 7 int main () 8 { 9 for ( n=0 ; n<5 ; ++n ) 10 { 11 result += foo[n]; 12 } 13 cout << result; 14 return 0; 15
1 #include
2 using namespace std;
3
4 int foo [] = {21, 53, 3, 710, 632};
5 int n, result=0;
6
7 int main ()
8 {
9 for ( n=0 ; n<5 ; ++n )
10 {
11 result += foo[n];
12 }
13 cout << result;
14 return 0;
15
1 #include
2 using namespace std;
3
4 int foo [] = {21, 53, 3, 710, 632};
5 int n, result=0;
6
7 int main ()
8 {
9 for ( n=0 ; n<5 ; ++n )
10 {
11 result += foo[n];
12 }
13 cout << result;
14 return 0;
15
Setelah program dijalankan, maka
Hal ini dapat dibuktikan dengan tabel peritungan berikut;
Foo[n]
result
21
21
53
74
3
77
710
787
632
1419