Anda di halaman 1dari 6

Praktikum 1

Array, Struktur, dan Pointer

1.1 Tujuan
Setelah melakukan praktikum ini siswa diharapkan mengerti :
1. Struktur data bukan sekedar tipe data
2. Macam-macam cara menyimpan data
3. Definisi dari array dan bagaimana menggunakannya.
4. Definisi dari struktur dan bagaimana menggunakannya.
5. Definisi pointer dan bagaimana menggunakannya.

1.2 Latihan Program


1. Mendeklarasikan, memasukkan data, dan menampilkan data pada array 1D
#include <stdio.h>
#define MAK 10
void main (void)
{
int bil [MAK];
int i,n;
printf (“Inputkan 10 bilangan :\n”);
for (i=0;i<MAK;i++)
{
printf (“Bilangan ke %d :”, i+1);
scanf (“%d”, &bil[i]);
}
while (1)
{
printf (“\nBilangan ke yang akan ditampilkan = ”);
scanf (“%d”, &n);
if(n==0)
break;
else if(n>MAK)
{
printf (“S/D Bilangan ke %d\n”, MAK);
continue;
}
printf (“Bilangan ke %d adalah = %d”, n, bil[n-1]);
}
}

2. Mendeklarasikan, menganalisa, proses dan menampilkan data pada array 2D


#include <stdio.h>
#define MAK 3
void main (void)
{
int matA [MAK] [MAK] = {{1,1,1},{0,0,0},{1,1,1}};
int matB [MAK] [MAK] = {{1,1,1},{1,1,1},{1,1,1}};
int matC [MAK] [MAK];
int i,j;
for (i=0;i<MAK;i++)
{
for (j=0;j<MAK;j++)
{
matC [i] [j] = matA [i] [j] + matB [i] [j];
printf (“%d\t”, matC [i] [j]);
}
printf (“\n”);
}
getch();
}

3. Mendeklarasikan, menginisialisasi, proses dan menampilkan data struktur


#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#define MAX 10
struct dtnilai
{ char nrp [10];
char nama [20];
double nilai [MAX]; } ;
main ()
{ struct dtnilai data;
int i, jml; char strnilai [5],strjum [5];
printf (“NRP : ”); gets(data.nrp);
printf (“Nama : ”); gets(data.nama);
printf (“JML Test : ”); gets(strjum); jml=atoi(strjum);
for (i=0;i<jml;i++)
{
printf (“Nilai Test %d :”,i+1);
gets(strnilai); data.nilai[i]=atof(strnilai);}
printf (“Data mahasiswa yang telah diinputkan :\n”);
printf (“NRP : %s\n”,data.nrp);
printf (“Nama : %s\n”,data.nama);
for (i=0;i<jml;i++)
{
printf(“Nilai Test %d : %1f\n”,i+1,data.nilai[i]);
}
getch()
}
4. Memesan tempat di memori, mendeklarasikan, memberikan nilai, mengcopy alamat dari pointer.
#include <stdio.h>
#include <stdlib.h>
void p (void);
int *a, *b;
void main ()
{ p (); }
void p (void)
{
a=(int *)malloc(sizeof(int));
b=(int *)malloc(sizeof(int));
*a=19;
*b=5;
a=b;
*b=7;
printf(“Alamat a= %x\t Isi a= %d\n”,a, *a);
printf(“Alamat b= %x\t Isi b= %d\n”,b,*b);
}

5. Memesan tempat di memori, mendeklarasikan, memberikan nilai, mengcopy alamat dari pointer dan
membebaskan lokasi memori.
#include <stdio.h> printf(“Alamat a= %x\t Isi a= %d\n”,a, *a);
#include <stdlib.h> printf(“Alamat b= %x\t Isi b= %d\n”,b,*b);
void p (void); }
int *a, *b;
void main ()
{ p (); }
void p (void)
{
a=(int *)malloc(sizeof(int));
b=(int *)malloc(sizeof(int));
*a=19;
*b=5;
free(a);
a=b;
*b=7;
6. Memesan tempat di memori, mendeklarasikan, memberikan nilai, mengcopy isi dari pointer.
#include <stdio.h>
#include <stdlib.h>
void p (void);
int *a, *b;
void main ()
{ p (); }
void p (void)
{
a=(int *)malloc(sizeof(int));
b=(int *)malloc(sizeof(int));
*a=19;
*b=5;
free(a);
*a=*b;
*b=7;
printf(“Alamat a= %x\t Isi a= %d\n”,a, *a);
printf(“Alamat b= %x\t Isi b= %d\n”,b,*b);
}

7. Menginisialisasi pointer struktur, memasukkan, memproses dan menampilkan data.


#include <stdio.h>
#include <stdlib.h>
main ()
{
struct dtnilai data [MAXSISWA], *ptrdata [MAXSISWA];
int i, j, jml, jsiswa;
double total, nratatot, totsiswa=0;
char strnilai [5], strjum [5], strsiswa [5];
for (i=0;i<MAXSISWA;i++)
{ ptrdata [i] = data+i; }
printf (“Banyaknya siswa :”); gets(strsiswa);
jsiswa=atoi(strsiswa);
for (j=0; j<jsiswa; j++)
{ printf (“Siswa ke %d\n”, j+1);
printf (“NRP :”); gets(ptrdata[j]->nrp);
printf(“Nama :”); gets(ptrdata[j]->nama);
printf(“JML Test :”); gets(strjum);
jml=atoi(strjum);total=0;
for (i=0; i<jml; i++)
{ printf (“Nilai Test %d :”, i+1);
gets(strnilai);
ptrdata [j] > nilai [i] = atof (strnilai);
total+=ptrdata [j] -> nilai [i];
}
ptrdata [j] -> nrata = total/jml;
}
printf (“Data mahasiswa yang telah diinputkan :\n”);
for (j=0;j<jsiswa;j++)
{ printf(“Siswa ke %d\n”,j+1);
printf(“NRP : %s\n”,ptrdata[j] ->nrp );
printf(“Nama : %s\n”,ptrdata[j] ->nama);
for (i=0;i<jml;i++)
{
printf (“Nilai Test%d : %6.21f\n”,i+1,ptrdata[j] ->nilai [i]);
printf (“Nilai Rata2 Siswa ke %d = %621f\n”, j+1, ptrdata [j] > nrata);
totsiswa +=ptrdata [j] ->nrata;
}
nratatot=totsiswa/jsiswa;
printf(“Nilai Rata2 Sel. Siswa = %6.21f\n”, nratatot);
}

8. Program aplikasi array 1D untuk megurutkan bilangan dengan metode buble sort
#include <stdio.h>
#define MAX 20

void input(int jum);


void buble (int jum);
void output(int jum);
int n, A[MAX];
main()
{
printf("Jumlah Bilangan :");
scanf("%d", &n);
input(n);
buble(n);
output(n);
}
void input(int jum)
{ int i;
for (i=0;i<jum;i++)
{ printf("Bilangan ke %d :",i+1);
scanf("%d",&A[i]);
}
}
void buble(int jum)
{ int i,j,temp;
for (i=1;i<=jum-1;i++)
{ for (j=i;j<n;j++)
{
if(A[i-1]>A[j])
{ temp=A[i-1];
A[i-1]=A[j];
A[j]=temp;
}
}
}
}
void output(int jum)
{
int i;
for(i=0;i<jum;i++)
{
printf("Bilangan ke %d = %d\n", i+1,A[i]);
} getch();
}

Anda mungkin juga menyukai