praktikum 1 array, struktur , pointer

11
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> #include <conio.h> #define MAK 10 void main(void) { intbil[MAK]; inti,n; printf("Inputkan 10 bilangan : \n"); for(i=0;i<MAK;i++) { printf("Bilanganke %d : ",i+1); scanf("%d", &bil[i]); } while(1) { printf("\nBilangan ke yang akanditampilkan = "); scanf("%d",&n); if(n==0) break; else if(n>MAK) { printf("S/D Bilanganke %d\n", MAK); continue; } printf("Bilanganke %d adalah = %d ", n, bil[n- i]);

Upload: farah-devi-isnanda

Post on 19-Feb-2015

146 views

Category:

Documents


11 download

DESCRIPTION

Praktikum 1 Struktur Data

TRANSCRIPT

Page 1: Praktikum 1 Array, Struktur , Pointer

PRAKTIKUM 1ARRAY, 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>#include <conio.h>#define MAK 10void main(void){

intbil[MAK];inti,n;printf("Inputkan 10 bilangan : \n");for(i=0;i<MAK;i++){printf("Bilanganke %d : ",i+1);scanf("%d", &bil[i]);}while(1){printf("\nBilangan ke yang akanditampilkan = ");scanf("%d",&n);

if(n==0)break;

else if(n>MAK){

printf("S/D Bilanganke %d\n", MAK);continue;}printf("Bilanganke %d adalah = %d ", n, bil[n-i]);

}getch();

}//end of main

Page 2: Praktikum 1 Array, Struktur , Pointer

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

3. Mendeklarasikan struktur, memasukkan dan menampilkan data struktur

#include <stdio.h>#include <string.h>#include <stdlib.h>#define MAX 10structdtnilai{ charnrp[10];

charnama[20];doublenilai[MAX];

};

main(){ struct dtnilai data;

inti,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 telahdiinputkan : \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]);

}}//end of main

#include <stdio.h>#include <conio.h>#define MAK 3void main(void){

intmatA[MAK][MAK]={{1,1,1},{0,0,0},{1,1,1}};intmatB[MAK][MAK]={{1,1,1},{1,1,1},{1,1,1}};intmatC[MAK][MAK];inti,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();

}

Page 3: Praktikum 1 Array, Struktur , Pointer

4. Memesan tempat di memori, mendeklarasikan, memberikan nilai, mencopy alamat dari pointer.

5. Memesan tempat di memori, mendeklarasikan, memberikan nilai, mengcopy alamat dari pointer dan membebaskan lokasi memori.

6. Memesan tempat di memori, mendeklarasikan, memberikan nilai, mengcopy isi pointer

#include <stdio.h>#include <stdlib.h>void p(void);int *a,*b;/* cara lain deklarasi pointer typedef int

*Integerpointer;IntegerPointera,b;

*/int main(){ p(); }

void p(void){

/* cara lain memesantempat di memoria=(int*) malloc(sizeof(int));b=(int*) malloc(sizeof(int)); */a=(int *) malloc(sizeof(int));b=(int *) malloc(sizeof(int));

*a = 19;*b = 5;a=b; *b = 7;

printf("alamat a = %x\tIsi a =%d\n", a,*a);printf("alamat b = %x\tIsi b =%d\n", b,*b);

}

#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\tIsi a= %d\n", a, *a);printf("Alamat b = %x\tIsi b= %d\n", b, *b);

}//end of void p

#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\tIsi a= %d\n", a, *a);printf("Alamat b = %x\tIsi b= %d\n", b, *b);

}//End of void p

Page 4: Praktikum 1 Array, Struktur , Pointer

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

/* Nama : Farah Devi IsnandaKelas : 1 Tek.KOmputer BNRP : 2210121033Judul : Praktikum 1.2.7

*/#include <stdio.h>#include <stdlib.h>#define MAXSISWA 20struct dtnilai{ char nama[15]; char nrp[20]; double nrata; double nilai [MAXSISWA];};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;}//end For

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.2lf\n", i+1, ptrdata[j]->nilai[i]);}printf("Nilai rata2 siswa ke %d = %6.2lf\n", j+1, ptrdata[j]->nrata);totsiswa+=ptrdata[j]->nrata;}//End of Fornratatot = totsiswa/jsiswa;printf("Nilai rata2 sel.siswa = %6.2lf\n", nratatot);

}}//End of Main

Page 5: Praktikum 1 Array, Struktur , Pointer

8. Program aplikasi array 1D untuk mengurutkan bilangan dengan metode buble sort.

#include <stdio.h>#define MAK 20void input(intjum);voidbuble(intjum);void output(intjum);int n, A[MAK];main(){

printf("Jumlah Bilangan : ");scanf("%d", &n);input(n);buble(n);output(n);

}void input(intjum){

int i;for(i=0;i<jum;i++){ printf("Bilangan ke %d : ", i+1);

scanf("%d", &A[i]);}

}Void buble(intjum){

int i, j,temp;for(i=1;i<=jum-1;i++) //jmltahap{ for(j=i;j<n;j++) //jmlperbandingan{

if(A[i-1]>A[j]){ temp=A[i-1];A[i-1]=A[j];A[j]=temp;}}

}}void output(intjum){

int i;for(i=0;i<jum;i++){ printf("Bilanganke %d = %d\n", i+1, A[i]);

}}

Page 6: Praktikum 1 Array, Struktur , Pointer

1.3 Hasil program percobaan

1.3.1

1.3.2

1.3.3

Page 7: Praktikum 1 Array, Struktur , Pointer

1.3.4

1.3.5

1.3.6

Page 8: Praktikum 1 Array, Struktur , Pointer

1.3.7

1.3.8

Page 9: Praktikum 1 Array, Struktur , Pointer

1.4 Soal-soal Tugas Pemrograman

1. Modifikasilah latihan program nomer 3 dengan menambahkan : Jumlah siswa dimasukkan, tentukan juga maksimum jumlah siswa Elemen struktur berupa nilai rata-rata kemudian tampilkan hasilnya untuk

setiap siswa, tampilkan pula hasil nilai rata-rata untuk seluruh siswa.

Page 10: Praktikum 1 Array, Struktur , Pointer

2. Buatlah struktur pointer dari database telpon yang terdiri dari : Nama bertipe string Alamat bertipe string No.Telpon bertipe string Kemudian lakukan sorting dengan buble sort berdasarkan nama