1/ 31 NIM/ No. Reg. : 49013075
Nama : Mhd. Syarif
Email : mhdsyarif.ms@gmail.com Blog/Website : www.mhdsyarif.com
Laporan : Modul VI
Coding 1
Source Code Latihan a pada program IV.1.1:int ANGKA2D[5][2]={{10,100},{20,200},{30,300},{40,400},{50,500}}; /*Perhatikan penulisan susunan data pada deklarasi array 2-dimensi ini*/
int n,m;
for (n=0;n<5;++n)
for(m=0;m<2;++m)
printf("Data ANGKA2D[%d][%d] = %d\n",n,m,ANGKA2D[n][m]);
Deskripsi singkat:
Program diatas menjelaskan tentang penggunaan array 2-dimensi. Program diatas bila dijalankan masih terdapat kesalahan, berikut program yang telah diperbaiki.
#include <stdio.h>//Mengakses library stdio.h untuk fungsi printf() #include <stdlib.h>//Mengakses library stdlib.h untuk fungsi system() int main(void)//Fungsi yang harus ada pada setiap program C
{
int ANGKA2D[5][2]={{10,100},{20,200},{30,300},{40,400},{50,500}};/*Perhatikan penulisan susunan data pada deklarasi array 2-dimensi ini*/
int n,m;//Deklarasi variabel, n dan m merupakan variabel yang bertipe integer for (n=0;n<5;++n)//Fungsi pengulangan
for(m=0;m<2;++m) //Fungsi pengulangan
printf("Data ANGKA2D[%d][%d] = %d\n",n,m,ANGKA2D[n][m]);//Menampilkan informasi system("pause");//Salah satu fungsi dari library stdio.h
2/ 31 }
Keterangan
Tanda kuning merupakan perbaikan/penambahan
Pada potongan program
int ANGKA2D[5][2]={{10,100},{20,200},{30,300},{40,400},{50,500}};
dimana terdapat 5 kolom dan 2 baris yaitu 10 kolom 1 dan 100 kolom dua dibaris 1, 20 kolom 1 dan 200 kolom 2 dibaris 2, 30 kolom 1 dan 300 kolom dua dibaris 3, 40 kolom 1 dan 400 kolom 2 dibaris 4, 50 kolom 1 dan 500 kolom 2 dibaris 5.
3/ 31 Source Code Latihan b:
Pada program latihan a, ganti potongan program
int ANGKA2D[5][2]={{10,100},{20,200},{30,300},{40,400},{50,500}}; menjadi int ANGKA2D[5][2]={10,100,20,200,30,300,40,400,50,500};
Deskripsi singkat:
Berikut program yang telah dirubah.
#include <stdio.h>//Mengakses library stdio.h untuk fungsi printf() #include <stdlib.h>//Mengakses library stdlib.h untuk fungsi system() int main(void)//Fungsi yang harus ada pada setiap program C
{
int ANGKA2D[5][2]={10,100,20,200,30,300,40,400,50,500};/*Perhatikan penulisan susunan data pada deklarasi array 2-dimensi ini*/
int n,m;//Deklarasi variabel, n dan m merupakan variabel yang bertipe integer
for (n=0;n<5;++n)//Fungsi pengulangan for(m=0;m<2;++m) //Fungsi pengulangan
printf("Data ANGKA2D[%d][%d] = %d\n",n,m,ANGKA2D[n][m]);//Menampilkan informasi
system("pause");//Salah satu fungsi dari library stdio.h return(0);//Nilai balikan dari fungsi main() adalah 0 }
Keterangan
Tanda kuning merupakan perubahan pada latihan a Pada potongan program
int ANGKA2D[5][2]={10,100,20,200,30,300,40,400,50,500};
dimana terdapat 5 kolom dan 2 baris yaitu 10 kolom 1 dan 100 kolom dua dibaris 1, 20 kolom 1 dan 200 kolom 2 dibaris 2, 30 kolom 1 dan 300 kolom dua dibaris 3, 40 kolom 1 dan 400 kolom 2 dibaris 4, 50 kolom 1 dan 500 kolom 2 dibaris 5.
4/ 31 Berikut ini hasil dari program diatas.
5/ 31 Source Code Latihan c:
Pada program latihan a, ganti potongan program
int ANGKA2D[5][2]={{10,100},{20,200},{30,300},{40,400},{50,500}}; menjadi int ANGKA2D[5][2]={{10,100},{20,200},{50,500}};
Deskripsi singkat:
Berikut program yang telah dirubah.
#include <stdio.h>//Mengakses library stdio.h untuk fungsi printf() #include <stdlib.h>//Mengakses library stdlib.h untk fungsi system() int main(void)//Fungsi yang harus ada pada setiap program C
{
int ANGKA2D[5][2]={{10,100},{20,200},{50,500}};/*Perhatikan penulisan susunan data pada deklarasi array 2-dimensi ini*/
int n,m;//Deklarasi variabel, n dan m merupakan variabel yang bertipe integer
for (n=0;n<5;++n)//Fungsi pengulangan for(m=0;m<2;++m) //Fungsi pengulangan
printf("Data ANGKA2D[%d][%d] = %d\n",n,m,ANGKA2D[n][m]);//Menampilkan informasi
system("pause");//Salah satu fungsi dari library stdio.h return(0);//Nilai balikan dari fungsi main() adalah 0 }
Keterangan
Tanda kuning merupakan perubahan pada latihan a Pada potongan program
int ANGKA2D[5][2]={{10,100},{20,200},{50,500}}; dimana terdapat 5 kolom
dan 2 baris yaitu 10 kolom 1 dan 100 kolom dua dibaris 1, 20 kolom 1 dan 200 kolom 2 dibaris 2, 50 kolom 1 dan 500 kolom dua dibaris 3, 0 kolom 1 dan 0 kolom 2 dibaris 4, 0 kolom 1 dan 0 kolom 2 dibaris 5. Kenapa baris 4 dan 5 bernilai dengan 0, karna jumlah data array hanya ada 3 baris, sedangkan deklarasi array mempunyai 5 baris dan 2 kolom.
6/ 31 Berikut hasil dari program diatas.
7/ 31 Source Code Latihan d:
int k;
char warna[4][7] =
{'m','e','r','a','h',},{'k','u','n','i','n','g'},{'h','i','j','a','u'},{'b','i','r ','u'}};
for (k=0;k<4;++k) printf("%s\n",warna[k]);
Deskripsi singkat:
Program diatas menggunakan array dua dimensi. Namun jika program dijalankan masih terdapat kesalahan, berikut ini program yang telah diperbaiki. #include <stdio.h>//Mengakses library stdio.h untuk fungsi printf()
#include <stdlib.h>//Mengakses library stdlib.h untuk fungsi system() int main(void)//Fungsi yang harus ada pada setiap program C
{
int k;//Deklarasi variabel, k merupakan variabel integer char warna[4][7]
={{'m','e','r','a','h',},{'k','u','n','i','n','g',},{'h','i','j','a','u'},{'b','i','r' ,'u'}};//Deklarasi array 2 dimensi, variabel warna mempunyai 4 baris dan 7 kolom yang bertipe karakter
for (k=0;k<4;++k) //Fungsi perulangan
printf("%s\n",warna[k]); //Menampilkan fungsi perulangan dimana merah akan ditampilkan terlebih dahulu kemudian dilakukan perulangan sampai k bernilai kecil dari 4
system("pause");//Salah satu fungsi dari library stdio.h return(0);//Nilai balikan dari fungsi main() adalah 0 }
Keterangan
Tanda kuning merupakan penambahan/perbaikan Pada potongan program
char warna[4][7]
={{'m','e','r','a','h',},{'k','u','n','i','n','g',},{'h','i','j','a','u'},{'b','i','r' ,'u'}};
Menjelaskan dimana terdapat variable warna yang menggunakan array 2-dimensi yang bertipe karakter. Ada 4 baris dan 7 kolom, dimana kata pada kurung kerawal buka tutup {'m','e','r','a','h',} merupakan baris satu begitu seterusnya, dengan maksimal kolom 7.
9/ 31 Source Code Latihan e:
int k;
char warna[4][7] = {"merah","kuning","hijau","biru"};
for (k=0;k<4;++k)
printf("%s\n",warna[k]);
Deskripsi singkat:
Program diatas menggunakan array dua dimensi. Namun jika program dijalankan masih terdapat kesalahan, berikut ini program yang telah diperbaiki. #include <stdio.h> //Mengakses library stdio.h untuk fungsi printf()
#include <stdlib.h> //Mengakses library stdlib.h untuk fungsi system() int main(void) //Fungsi yang harus ada pada setiap program C
{
int k;
char warna[4][7] = {"merah","kuning","hijau","biru"}; //Deklarasi array 2 dimensi, variabel warna mempunyai 4 baris dan 7 kolom yang bertipe karakter
for (k=0;k<4;++k) //Fungsi perulangan
printf("%s\n",warna[k]); //Menampilkan hasil dari fungsi perulangan dimana data yang akan ditampilkan terlebih dahulu adalah merah, kemudian begitu selanjutnya hingga k bernilai kecil dari 4
system("pause"); //Salah satu fungsi dari library stdio.h return(0); //Nilai balikan dari fungsi main() adalah 0 }
Keterangan
Tanda kuning merupakan penambahan/perbaikan Potongan program diatas
char warna[4][7] = {"merah","kuning","hijau","biru"};
isi array menggunakan tanda " disetiap awal dan akhir kata dari setiap array sedangkan pada potongan program latihan d
char warna[4][7]
={{'m','e','r','a','h',},{'k','u','n','i','n','g',},{'h','i','j','a','u'},{'b','i','r' ,'u'}};
isi array menggunakan tanda { di awal setiap kata dan tanda } di akhir setiap kata pada array.
11/ 31 Source Code Latihan f:
Soal : Buatlah array 2-dimensi yang merepresentasikan warna pelangi.
Deskripsi singkat:
Program ini menjelaskan tentang penggunaan array 2-dimensi, dimana program menampilkan warna-warna dalam pelangi
#include <stdio.h>//Mengakses library stdio.h #include <stdlib.h>//Mengakses library stdlib.h
int main(void)//Fungsi yang harus ada pada setiap program C {
int k; //Deklarasi variabel, k merupakan variabel bertipe integer
char warna[7][7] = {"Merah","Jingga","Kuning","Hijau","Biru","Nila","Ungu",}; //Deklarasi array 2 dimensi, variabel warna mempunyai 7 baris dan 7 kolom yang bertipe karakter
printf("\t=====================================\n"); printf("\t==Program Menampilkan Warna Pelangi==\n"); printf("\t=====================================\n"); for (k=0;k<7;++k) //Fungsi perulangan
printf("\t%s\n",warna[k]); //Menampilkan hasil dari fungsi perulangan dimana data yang akan ditampilkan terlebih dahulu adalah merah, kemudian begitu selanjutnya hingga k bernilai kecil dari 4
system("pause");//Salah satu fungsi dari library stdio.h return(0);//Nilai balikan dari fungsi main() adalah 0 }
12/ 31
Coding 7
Source Code Latihan g:Soal : Buatlah array 2-dimensi yang merepresentasikan 100 titik pada garis y = 2x − 3
Deskripsi singkat:
Program ini menjelaskan tentang penggunaan array 2-dimensi, yang merepresentasikan 100 titik pada garis y = 2x -3, dimana program menampilkan hasil dari nilai jika x=1 sampai x=100.
#include <stdio.h> //Mengakses fungsi library stdio.h untuk printf() #include <stdlib.h> //Mengakses fungsi library stdlib.h untuk system()
int main(void) //Fungsi yang selalu ada pada program C {
int x, y; //Deklarasi variabel, x dan y merupakan data bertipe integer
int hitungX =0; //Deklarasi variabel, hitungX bertipe data integer.Fungsi untuk proses hitung nilai X
int titik = 100; //Deklarasi variabel, titik bertipe data integer. Proses perulangan sebanyak 100 kali
int arrTitik[100][2]; //Deklarasi variabel, arrTitik bertipe data integer. arrTitik[100] merupakan banyak data dan arrTitik[2] merupakan panjang karakter
for(x = 1; x < 2; x++) //Perulangan, x=1, 1 kecil dari 2, 1+1
for(y = 1; y <= titik; y++) //Perulangan, membuat array sebanyak 100 kali arrTitik[x][y] = (2 * y) - 3; //Membuat array terlebih dahulu dimana nantinya nilai akan [1][1]=1
printf("================================================\n");
printf("Array 2 dimensi 100 titik pada garis y = 2x -3\n");//Menampilkan informasi
printf("================================================\n"); for(x = 1; x < 2; x++) //Perulangan, x=1, 1 kecil dari 2, 1+1 {
for(y = 1; y <= titik; y++) //Perulangan, membuat array sebanyak 100 kali, y=1, 1 kecil sama dengan 100, 1+1
{
hitungX++; //Artinya hitungX : 0 + 1=1, looping sampai nilai titik sama dengan 100
printf("Jika x = %d, maka y = %d\n", hitungX, arrTitik[x][y]); //Menampilkan informasi,
} }
system("pause"); //Salah satu fungsi yang ada pada library stdlib.h return (0); //Nilai balikan dari fungsi main() adalah 0
15/ 31 Source Code Latihan h pada program IV.2.1: int A = 5, H;
int *ptrA, *ptrH; /* deklarasi pointer sebagai integer */
ptrA = &A; /* alamat lokasi memori dari variabel A disimpan pada ptrA */
H = *ptrA; /* nilai data yang alamat lokasi memorinya disimpan pada ptrA, disimpan di variabel H */
ptrH = &H; /* alamat lokasi memori dari variabel H disimpan pada ptrH */
printf("A=%d\n &A=%X\n ptrA=%X\n *ptrA=%d", A, &A, ptrA, *ptrA);/* %X menampilkan nilai hexa*/
printf("\n\nH=%d\n &H=%X\n ptrH=%X\n *ptrH=%d\n\n", H, &H, ptrH,*ptrH);
Deskripsi singkat:
Program ini menjelaskan tentang penggunaan pointer, pointer merupakan variabel yang menyimpan alamat lokasi memori dari suatu data, bukan nilai data tersebut. Ketika program diatas dijalankan masih terdapat kesalahan, berikut program yang telah dilakukan perbaikan.
#include <stdio.h> //Mengakses library stdio.h untuk printf() #include <stdlib.h> //Mengakses library stdlip.h untuk system() int main(void) //Fungsi yang selalu ada pada program C
{
int A = 5, H; //Deklarasi variabel dimana A = 5 dan H merupaka data bertipe integer
int *ptrA, *ptrH; /* deklarasi pointer sebagai integer */
ptrA = &A; /* alamat lokasi memori dari variabel A disimpan pada ptrA*/
H = *ptrA; /* nilai data yang alamat lokasi memorinya disimpan pada ptrA, disimpan di variabel H */
ptrH = &H; /* alamat lokasi memori dari variabel H disimpan pada ptrH */
printf("A=%d\n &A=%X\n ptrA=%X\n *ptrA=%d", A, &A, ptrA, *ptrA);/* %X menampilkan nilai hexa*/
printf("\n\nH=%d\n &H=%X\n ptrH=%X\n *ptrH=%d\n\n", H, &H, ptrH,*ptrH);
system("pause");//Salah satu fungsi dari library stdlib.h return(0);//Nilai balikan dari fungsi main() adalah 0
}
Keterangan
16/ 31 Berikut hasil dari program diatas.
17/ 31 Source Code Latihan h pada program IV.2.2: int a1,a2;
int H = 5;
int *ptrH; /* deklarasi pointer ptrH */ a1 = 2*(H+5) ; /* ekspresi biasa */ ptrH = &H;
a2 = 2*(*ptrH+5) ; /* ekspresi dengan pointer */ printf("al=%d\n\na2=%d\n",a1 ,a2);
Deskripsi singkat:
Program ini menjelaskan tentang penggunaan pointer. Ketika program diatas dijalankan masih terdapat kesalahan, berikut program yang telah dilakukan perbaikan.
#include <stdio.h> //Mengakses library stdio.h untuk fungsi printf() #include <stdlib.h> //Mengakses library stdlib.h untuk fungsi system() int main(void) //Fungsi yang harus ada pada setiap program bahasa C
{
int a1,a2; //Deklarasi variabel, a1 dan a2 bertipe data integer int H = 5; //Deklarasi variabel dimana H = 5 dan H merupaka data bertipe integer
int *ptrH; //Deklarasi pointer ptrH
a1 = 2*(H+5) ; //Ekspresi biasa, dimana a1=2 dikali (5+5)
ptrH = &H; //Alamat lokasi memori dari variabel H disimpan pada ptrH*/
a2 = 2*(*ptrH+5) ; //Ekspresi dengan pointer
printf("al=%d\n\na2=%d\n",a1 ,a2); //Menampilkan informasi
system("pause"); //Salah satu fungsi yang ada pada library stdio.h
system(0); //Nilai balikan yang ada pada fungsi main() adalah 0
}
Keterangan
Tanda kuning merupakan penambahan/perbaikan Berikut hasil dari program diatas.
18/ 31
Coding 10
Source Code Latihan h pada program IV.2.3:void fungsi1(int U,int V); /*prototipe fungsi*/ void fungsi2(int *ptrU,int *ptrV);
int main(void) {
int U = 1;
int V = 3;
printf("Passing by Value");
printf("\nSebelum memanggil fungsi1: U=%d V=%d",U,V); fungsi1(U,V);
printf("\nSetelah memanggil fungsi1: U=%d V=%d",U,V); printf("\n\nPassing by Reference");
printf("\nSebelum memanggil fungsi2: U=%d V=%d",U,V); fungsi2(&U,&V);
printf("\nSetelah memanggil fungsi2: U=%d V=%d",U,V); printf("\n\n");
system("pause");
return 0; }
void fungsi1(int U, int V) {
U = 0; V = 0;
printf("\nDi dalam fungsi1: U=%d V=%d",U,V);
return; }
void fungsi2(int *ptrU, int *ptrV) {
*ptrU = 0; *ptrV = 0;
printf("\nDi dalam fungsi2: ptrU=%d ptrV=%d",*ptrU,*ptrV);
return; }
Deskripsi singkat:
Program ini menjelaskan tentang penggunaan fungsi dengan cara passing by value dan cara passing by reference, menggunakan pointer. Ketika program diatas dijalankan masih terdapat kesalahan, berikut program yang telah dilakukan perbaikan.
#include <stdio.h> //Mengakses library stdio.h untuk fungsi printf() #include <stdlib.h> //Mengakses library stdlib.h untuk fungsi system() void fungsi1(int U,int V); /*Prototipe fungsi*/
void fungsi2(int *ptrU,int *ptrV); //Prototipe fungsi menggunakan pointer int main(void) //Fungsi yang harus ada pada setiap program C
{
int U = 1; //Deklarasi variabel lokal, bertipe data integer int V = 3; //Deklarasi variabel lokal, bertipe data integer
19/ 31 fungsi1
printf("\nSetelah memanggil fungsi1: U=%d V=%d",U,V); printf("\n\nPassing by Reference");
printf("\nSebelum memanggil fungsi2: U=%d V=%d",U,V);
fungsi2(&U,&V); //Alamat lokasi memori dari variabel U dan V disimpan pada fungsi2
printf("\nSetelah memanggil fungsi2: U=%d V=%d",U,V); printf("\n\n");
system("pause"); //Salah satu fungsi dari library stdlib.h return (0); //Nilai balikan dari fungsi main() adalah 0 }
void fungsi1(int U, int V) //Definisi fungsi pada fungsi1 {
U = 0; V = 0;
printf("\nDi dalam fungsi1: U=%d V=%d",U,V); return;
}
void fungsi2(int *ptrU, int *ptrV) //Definisi fungsi pointer pada fungsi2 {
*ptrU = 0; //Nilai data yang alamat lokasi memorinya pada pointer ptrU adalah 0 *ptrV = 0; //Nilai data yang alamat lokasi memorinya pada pointer ptrV adalah 0 printf("\nDi dalam fungsi2: ptrU=%d ptrV=%d",*ptrU,*ptrV);
return; } Keterangan
Tanda kuning merupakan penambahan/perbaikan
20/ 31
Coding 11
Source Code Latihan h pada program IV.2.4:int k, ANGKA[5]={10,20,30,40,50};
char *kal = "Hubungan antara Pointer dan Array"; printf("%s\n\n",kal);
for (k=0;k<5;++k) {
printf("ANGKA[%d] = %d *(ANGKA+%d) = %d \n", k, ANGKA[k], k,*(ANGKA+k)); }
Deskripsi singkat:
Program ini menjelaskan hubungan antara pointer dan array. Ketika program diatas dijalanlan masih terdapat kesalahan, berikut program yang telah dilakukan perbaikan.
#include <stdio.h> //Mengakses library stdio.h untuk fungsi printf() #include <stdlib.h> //Mengakses library stdlib.h untuk fungsi system() int main(void) //Fungsi yang harus ada pada setiap program C
{
int k, ANGKA[5]={10,20,30,40,50}; //Deklarasi array 1-dimensi dengan nama ANGKA yang terdiri dari 5 susunan data bertipe integer
char *kal = "Hubungan antara Pointer dan Array"; printf("%s\n\n",kal);
for (k=0;k<5;++k) //Perulangan, dimana perulangan akan berhenti jika nilai k kecil dari 5
{
printf("ANGKA[%d] = %d *(ANGKA+%d) = %d \n", k, ANGKA[k], k,*(ANGKA+k)); }
system("pause"); //Salah satu fungsi dari library stdlib.h return (0); //Nilai balikan dari fungsi main() adalah 0 }
Keterangan
Tanda kuning merupakan penambahan/perbaikan
21/ 31
Coding 12
Source Code Latihan h pada program IV.2.5:int *umur; //Deklarasi array dengan pointer int jml_sak, k = 0;
printf("Ketikan jumlah saudara kandung Anda>"); scanf("%d",&jml_sak);
umur = (int*)malloc(sizeof(int)*jml_sak); /*alokasi memori dinamis*/ if(!umur)
{
printf("Memory tidak tersedia!\n"); system("pause");
return 0; }
/*input data umur*/
printf("Ketikan umur saudara kandung Anda\n");
for (k = 0;k < jml_sak;k++) {
printf("#%d ",k+1); scanf("%d",&umur[k]); }
/*menampilkan data umur*/
printf("Data umur yang tadi Anda masukan:\n");
for (k=0;k<jml_sak;k++)
printf("#%d %d\n",k+1,umur[k]); /*men-dealokasikan memori dinamis*/ free(umur);
umur = NULL; system("pause");
return (0);
Deskripsi singkat:
Program ini menjelaskan penggunaan pointer dalam merepresentasikan array memerlukan alokasi memory sebelum setiap elemen array diproses. Fungsi-fungsi yang digunakan untuk keperluan ini diantaranya : malloc() dan free(). Kedua fungsi ini terdapat pada library stdlib.h.
Ketika program diatas dijalankan masih terdapat kesalahan, berikut program yang telah dilakukan perbaikan.
#include <stdio.h> //Mengakses library stdio.h untuk fungsi printf()
#include <stdlib.h> //Mengakses library stdlib.h untuk fungsi system(), malloc() dan free()
int main(void) //Fungsi yang harus ada pada setiap program C {
int *umur; //Deklarasi array dengan pointer
int jml_sak, k = 0; //Deklarasi variabel, jml_sak dan k merupakan tipe data integer
22/ 31
printf("Ketikan jumlah saudara kandung Anda>");
scanf_s("%d",&jml_sak); //Fungsi untuk meminta/menerima nilai yang akan dikonversikan ke nilai integer
umur = (int*)malloc(sizeof(int)*jml_sak); /*alokasi memori dinamis*/ if(!umur)
{
printf("Memory tidak tersedia!\n"); system("pause");
return (0); }
/*input data umur*/
printf("Ketikan umur saudara kandung Anda\n"); for (k = 0;k < jml_sak;k++) //Fungsi perulangan
{
printf("#%d ",k+1);
scanf_s("%d",&umur[k]); //Fungsi untuk meminta/menerima nilai yang akan dikonversikan ke nilai integer dalam bentuk array 1-dimensi
}
/*menampilkan data umur*/
printf("Data umur yang tadi Anda masukan:\n"); for (k=0;k<jml_sak;k++) //Fungsi perulangan
printf("#%d %d\n",k+1,umur[k]); /*men-dealokasikan memori dinamis*/ free(umur);
umur = NULL;
system("pause"); //Salah satu fungsi dari library stdlib.h return (0); //Nilai balikan dari fungsi main() adalah 0 }
Keterangan
Tanda kuning merupakan penambahan/perbaikan
Program akan meminta memasukkan jumlah saudara kandung, dan mengisi data umur saudara kandung sesuai dengan jumlah saudara kandung yang dimasukkan, kemudian program akan menampilkan data umur yang telah dimasukkan. Berikut hasil program dimana program menerima 5 bilangan input.
23/ 31
Coding 13
Source Code Latihan h pada program IV.2.6:int ANGKA[5]={10,20,30,40,50};
int k;
for (k=0;k<5;k++) {
printf("ANGKA+%d=%d\n",k,ANGKA+k);
printf("*(ANGKA+%d)=%d\n\n",k,*(ANGKA+k)); }
Deskripsi singkat:
Program ini menjelaskan interpretasi penerapan operasi penjumlahan (+), pengurangan dll (-) pada variabel pointer. Ketika program diatas dijalankan masih terdapat kesalahan, berikut program yang telah dilakukan perbaikan. #include <stdio.h> //Mengakses library stdio.h untuk fungsi printf()
#include <stdlib.h> //Mengakses library stdlib.h untuk fungsi system() int main(void) //Fungsi yang harus ada pada setiap program C
{
int ANGKA[5]={10,20,30,40,50}; //Deklarasi array 1-dimensi dengan nama ANGKA yang terdiri dari 5 susunan data bertipe integer
int k; //Deklarasi variabel dengan nama k yang bertipe data integer for (k=0;k<5;k++) //Perulangan
{
printf("ANGKA+%d=%d\n",k,ANGKA+k); //Menampilkan
printf("*(ANGKA+%d)=%d\n\n",k,*(ANGKA+k)); //Menampilkan data pointer }
system("pause"); //Salah satu fungsi dari library stdlib.h return (0); //Nilai balikan dari fungsi main() adalah 0 }
Keterangan
24/ 31 Berikut hasil dari program diatas
25/ 31 Source Code Latihan h pada program IV.3.1: int k; struct tanggal { int hari; int bulan; int tahun; }; struct biodata { char nama[20];
struct tanggal lahir; //Struktur di dalam struktur
char asal[20]; };
struct biodata pribadi[7] = {"Uban", 11, 4, 1997,"Pinrang", "Jono", 5, 11, 1986,"Jakarta", "Mora", 17, 5, 1992,"Denpasar", "Marla", 11, 9, 2001,"Subang", "Nira", 2, 4, 1987,"Samarinda", "Sharon",12, 9, 1993,"Ambon", "Susan", 4, 12, 2000,"Padang"};
printf("Nama \t Tahun Lahir \t Asal \n"); printf("---- \t --- \t ---- \n"); for (k=0;k<7;k++) { printf("%s ",pribadi[k].nama); printf("%d ",pribadi[k].lahir.tahun); printf("%s \n",pribadi[k].asal); } Deskripsi singkat:
Program ini menjelaskan tentang struktur susunan data yang terdiri dari berbagai tipe data.. Ketika program diatas dijalankan masih terdapat kesalahan, berikut program yang telah dilakukan perbaikan.
#include <stdio.h> //Mengakses library stdio.h untuk fungsi printf() #include <stdlib.h> //Mengakses library stdlib.h untuk fungsi system() int main(void) //Fungsi yang harus ada pada setiap program C
{
int k;
struct tanggal {
int hari; //Deklarasi variabel di dalam struktur, hari bertipe data integer int bulan; //Deklarasi variabel di dalam struktur, bulan bertipe data integer int tahun; //Deklarasi variabel di dalam struktur, tahun bertipe data integer };
struct biodata {
char nama[20]; //Deklarasi string berukuran 19 karakter struct tanggal lahir; //Struktur di dalam struktur char asal[20]; //Deklarasi string berukuran 19 karakter };
struct biodata pribadi[7] = {"Uban", 11, 4, 1997,"Pinrang", "Jono", 5, 11, 1986,"Jakarta",
26/ 31 "Mora", 17, 5, 1992,"Denpasar",
"Marla", 11, 9, 2001,"Subang", "Nira", 2, 4, 1987,"Samarinda", "Sharon",12, 9, 1993,"Ambon",
"Susan", 4, 12, 2000,"Padang"}; //Struktur, biodata pribadi mempunyai banyak baris 7
printf("Nama \t Tahun Lahir \t Asal \n"); printf("---- \t --- \t ---- \n"); for (k=0;k<7;k++) //Perulangan
{
printf("%s ",pribadi[k].nama); //Mencetak variabel isi nama dari biodata pribadi
printf("\t %d ",pribadi[k].lahir.tahun); //Mencetak variabel isi ltahun lahir dari biodata pribadi
printf("\t\t%s \n",pribadi[k].asal); //Mencetak variabel isi asal dari biodata pribadi
}
system("pause"); //Salah satu fungsi dari library stdlib.h return (0); //Nilai balikan dari fungsi main() adalah 0 }
Keterangan
Tanda kuning merupakan penambahan/perbaikan
Berikut hasil dari program diatas, dimana program akan menampilkan isi dari variable biodata pribadi yang terdapat dalam struktur.
27/ 31 Source Code Latihan h pada program IV.3.2: int hh = 11, bb = 4, tttt = 1997;
struct biodata {
char *nama;//pointer sebagai anggota dari struktur
int *hari; int bulan; int *tahun; char *asal; }pribadi,*ptrPrib; ptrPrib = &pribadi; pribadi.nama = "Asri"; pribadi.hari = &hh; pribadi.bulan = bb; pribadi.tahun = &tttt; pribadi.asal = "Pinrang"; printf("%s \t %d \t %d \t %d \t %s\n",ptrPrib->nama,*ptrPrib->hari, ptrPrib->bulan, *ptrPrib->tahun, ptrPrib->asal);
Deskripsi singkat:
Program ini menjelaskan pointer yang variable menyimpan alamat lokasi memori dari suatu data, bukan nilai data tersebut. Ketika program diatas dijalankan masih terdapat kesalahan, berikut program yang telah dilakukan perbaikan.
#include <stdio.h> //Mengakses library stdio.h untuk fungsi printf() #include <stdlib.h> //Mengakses library stdlib.h untuk fungsi system() int main(void) //Fungsi yang harus ada pada setiap program C
{
int hh = 11, bb = 4, tttt = 1997; //Deklarasi variabel, hh, bb dan tttt merupakan variabel yang bertipe int
struct biodata {
char *nama;//Pointer sebagai anggota dari struktur int *hari; //Deklarasi pointer sebagai integer int bulan; //Deklarasi dalam struktur
int *tahun; //Deklarasi pointer sebagai integer char *asal; //Deklarasi pointer sebagai karakter }
pribadi,*ptrPrib; //Nilai data yang alamat lokasi memorinya disimpan pada ptrPrib, disimpan di variabel pribadi
ptrPrib = &pribadi; //Alamat lokasi memori dari variabel pribadi disimpan pada ptrPrib
pribadi.nama = "Asri"; //Variabel pointer pribadi merujuk pada variabel nama yang berisi data Asri
pribadi.hari = &hh; //Variabel pointer pribadi merujuk pada variabel hari yang berisi data variabel hh= 11
pribadi.bulan = bb; //Variabel pointer pribadi merujuk pada variabel bulan yang berisi data variabel bb= 4
28/ 31 tahun yang berisi data variabel tttt= 1997
pribadi.asal = "Pinrang"; //Variabel pointer pribadi merujuk pada variabel asal yang berisi data Pinrang
printf("%s \t %d \t %d \t %d \t %s\n" ,ptrPrib->nama,*ptrPrib->hari,ptrPrib->bulan, *ptrPrib->tahun, ptrPrib->asal); //Menampilkan informasi
system("pause"); //Salah satu fungsi dari library stdlib.h return (0); //Nilai balikan dari fungsi main() adalah 0 }
Keterangan
Tanda kuning merupakan penambahan/perbaikan
29/ 31 Source Code Latihan i:
Soal :
Buatlah sistem pendataan nilai mahasiswa menggunakan struktur yang terdiri dari: Nomor
NIM
Nama Mahasiswa
Nilai (misalnya A, B atau D)
Sistem pendataan nilai tersebut mengijinkan kita untuk memasukan (input) seluruh data tersebut untuk maksimum 10 mahasiswa saja. Setelah seluruh data selesai dimasukan, lalu pada layar akan ditampilkan (output) seluruh data tadi.
Deskripsi singkat:
Program ini menjelaskan penggunaan struktur. Berikut program yang telah dibuat berdasarkan soal diatas.
#include <stdio.h> //Mengakses library stdio.h untuk fungsi printf() #include <stdlib.h> //Mengakses library stdlib.h untuk fungsi system() #include <string.h> //Mengakses library string.h untuk fungsi gets()
struct biodata { //Struktur dengan nama tag biodata
int no; //Deklarasi variabel dalam strukur, no merupakan variabel integer char nim[9]; //Deklarasi string berukuran 8 karakter
char nama[30]; //Deklarasi string berukuran 19 karakter char nilai[5]; //Deklarasi string berukuran 4 karakter
} mahasiswa[5];//Deklarasi variabel string berukuran 9 karakter int main(void) //Fungsi yang harus ada pada setiap program C
{
int j,k; //Deklarasi variabel lokal.
printf("================================\n"); printf("10 Daftar Mahasiswa D4 TKJMD ITB\n"); printf("================================\n\n"); for (j=1; j<=10; j++){ //Perulangan
printf("Data Mahasiswa ke %d\n\n",j); mahasiswa[j].no=j;
printf("NIM :");
gets_s(mahasiswa[j].nim); //Input string printf("Nama :");
gets_s(mahasiswa[j].nama); //Input string printf("Nilai :");
gets_s(mahasiswa[j].nilai); //Input string printf("===================\n");
}
printf("============================================\n"); printf("Berikut ini 10 Daftar Mahasiswa D4 TKJMD ITB\n"); printf("============================================\n\n"); printf("No\tNIM \t\t Nama \t Nilai \n");
30/ 31 printf("--\t--- \t\t---\t--- \n");
for (k=1; k<=10; k++) { //Perulangan, data akan berhenti jika nilai k kecil sama dengan 10
printf("%d ",mahasiswa[k].no); //Menampilkan informasi, mahasiswa pada variabel data no
printf("\t%s ",mahasiswa[k].nim); //Menampilkan informasi, mahasiswa pada variabel data nim
printf("\t%s ",mahasiswa[k].nama); //Menampilkan informasi, mahasiswa pada variabel data nama
printf("\t\t%s \n",mahasiswa[k].nilai); //Menampilkan informasi, mahasiswa pada variabel data nilai
}
system("pause"); //Salah satu fungsi dari library stdlib.h return (0); //Nilai balikan dari fungsi main() adalah 0 }
Berikut hasil dari program diatas.
Program akan menerima maksimum 10 inputan, dan menampilkan data sesuai dengan yang telah dimasukkan