Anda di halaman 1dari 10

Struktur Data Pada Array

A. Array (Set)
1. Menjumlahkan semua isi data pada array
#include <stdio.h>
void main (){
int billy [] = {16, 2, 77, 40, 12};
int n, result=0;
for ( n=0 ; n<5 ; n++ )
{
result += billy[n];
}
printf("%d",result);
}

2. Mengisi dan menampilkan beberapa variabel array


/* File program : isi.c */
#include <stdio.h>
main()
{
int nilai[10];
int indeks;
/* menginisialisasi array supaya berisi 0 */
for(indeks=0; indeks<10; indeks++)
nilai[indeks]= 0;
nilai[0] = 197;
nilai[2] = -100;
nilai[5] = 350;
nilai[3] = nilai[0] + nilai[5];
nilai[9] = nilai[5] / 10;
--nilai[2];
for(indeks = 0; indeks < 10; indeks++)
printf("nilai[%d] = %d\n", indeks, nilai[indeks]);
}
3. Menginisialisasi elemen array bertipe integer
/* File program : inisial1.c */
#include <stdio.h>
main()
{
int i;
static int nilai[10] = {0, 1, 4, 9, 16};
/* dgn sendirinya nilai lainnya diset nol */
for(i=5; i<10; i++)
nilai[i] = i * i;
for(i=0; i<10; i++)
printf("nilai[%d] = %d\n", i, nilai[i]);
}

4. Menginisialisasi elemen array bertipe karakter.


/* File program : inisial2.c */
#include <stdio.h>
main()
{
int i;
static char word[] = {'H', 'e', 'l', 'l', 'o', '!'};
for(i=0; i<6; i++)
printf("%c", word[i]);

printf("\n");
}

5. Mencetak 15 angka pertama dalam deret Fibonacci.


/* fibonacci1.c */
#include <stdio.h>
main()
{
int fibo[15], i;
fibo[0] = 0;
fibo[1] = 1;
for(i = 2; i < 15; i++)
{
fibo[i] = fibo [i-1] + fibo[i-2];
printf("%5d", fibo[i]);
}
printf("\n\n");
}

6. Menentukan nilai maksimum dari sederetan nilai yang sudah diinisialisasi dan disimpan
dalam array; mengirim array sebagai parameter sebuah fungsi.
/* File program : maksimum.c */
#include <stdio.h>
int findmax(int [], int); /* prototype fungsi dlm ANSI */
main()
{
static int data1[] = { 5, 34, 56, -12, 3, 19 };
static int data2[] = { 1, -2, 34, 207, 93, -12 };

printf("nilai maksimum dari data1[] adalah %d\n",


findmax(data1, 6));
printf("nilai maksimum dari data2[] adalah %d\n",
findmax(data2, 6));
}
int findmax(int nilai[], int jml_data)
{
int terbesar, i;
terbesar = nilai[0];
for(i = 1; i < jml_data; ++i )
if(nilai[i] > terbesar)
terbesar = nilai[i];
return terbesar;
}
7. Menghapus data pada array
/* program menghapus data pada array */
#include <stdio.h>
#include <conio.h>
void main ()
{
int A [5]={20,9,19,20,13},n,edit;

printf("Data yang lama\n");


for (n=0;n<5;n++){
printf("%i ",A[n]);
}
printf("\nData yang baru : \n");
A[0]=4;
A[1]=2;
A[2]=1;
A[3]=3;
A[4]=5;
for (n=0;n<5;n++)
{
printf("%i ",A[n]);
}
}

6. Tugas dan Pertanyaan


1. Buat program untuk menghitung nilai rata-rata sbb :
Input : jumlah data (n), data ke-1 s/d data ke-n
Output : nilai maks, nilai min, nilai rata-rata

2. Buat program untuk menampilkan deret Fibonacci sbb :


Input : jumlah deret
Output : deret[i] = deret[i-1] + deret[i-2]
Contoh : jumlah deret = 10
0 1 1 2 3 5 8 13 21 34
3. Buat program untuk mengurutkan data masukan dengan urutan naik (ascending)
Input : jumlah data (n), data ke-1 s/d data ke-n
Output : Tampilan data dalam keadaan terurut
Contoh :
Jumlah data = 3
Data ke-1 = 50
Data ke-2 = 43
Data ke-3 = 45
Data terurut naik:
Data ke-1 = 43
Data ke-2 = 45
Data ke-3 = 50
4. Data nilai mahasiswa :
No. Nama Mhs Alpro Basis Data Web
1. Ruslan 81 90 62
2. Efraim 50 83 87
3. Johanes 89 55 65
4. Musyawir 77 70 92

Dapatkan output dengan tampilan sbb :


No. Mhs Rata-rata
--------------------------
1 77.67
2 73.33
3 69.67
4 79.67
---------------------------
Petunjuk :
Nilai pada masing-masing kelas dijumlahkan dan dihitung rata-ratanya (gunakan array 2
dimensi)

B. Struct/ Record

1. Membuat struct untuk buku dengan deklarasi manual.


Ketentuan : yang harus disimpan adalah judul buku, tahun terbit dan harga buku
#include <stdio.h>
#include <conio.h>
typedef struct buku{
char judul[15];
int tahun_terbit;
int harga;
};
void main(){
buku book;
printf("Judul buku : ");
scanf("%s",&book.judul); // gunakan gets untuk judul buku lebih
dari satu kata
printf("Tahun terbit: ");
scanf("%i",&book.tahun_terbit);
printf("Harga : ");
scanf("%i",&book.harga);
printf("\nJudul buku : %s\n",book.judul);
printf("Tahun terbit : %i\n",book.tahun_terbit);
printf("Harga : %i",book.harga);
}

2, Memasukkan nama dan tanggal lahir


#include<stdio.h>
#include<conio.h>
#include<string.h>
void main()
{
struct data_tanggal{ //definisi tipe data_tunggal
int tanggal;
int bulan;
int tahun;
};

struct data_rekan //definisi tipe data_rekan


{
char nama[31];
struct data_tanggal tgl_lahir;
};
struct data_rekan info_rekan; //deklarasi variabel
strcpy(info_rekan.nama,"Boa Salosa");
info_rekan.tgl_lahir.tanggal=15;
info_rekan.tgl_lahir.bulan=5;
info_rekan.tgl_lahir.tahun=1985;

//penampilan elemen variabel struktur


printf("Nama : %s\n",info_rekan.nama);
printf("Tanggal lahir : %d-%d-%d\n",
info_rekan.tgl_lahir.tanggal,
info_rekan.tgl_lahir.bulan,
info_rekan.tgl_lahir.tahun);
}

1. Menampilkan tanggal ulang tahun seorang mahasiswa


/* File program student1.c
Mengisi field dr variabel struktur kemudian menampilkannya */
#include <stdio.h>
#include <string.h>
struct date { /* definisi global dari tipe date */
int month;
int day;
int year;
};
struct student{ /* definisi global dari tipe student */
char name[30];
struct date birthday;
};
/* deklarasi global dari variabel mhs*/
struct student mhs;
main()
{
/* memberikan nilai kepada field dari struktur mhs */
strcpy(mhs.name, "MUHAMMAD IRFAN");
mhs.birthday.month = 8;
mhs.birthday.day = 10;
mhs.birthday.year =1970;
/* menampilkan isi semua field dari struktur mhs */
printf("Nama %s\n", mhs.name);
printf("Birthday %d-%d-%d\n", mhs.birthday.month,
mhs.birthday.day, mhs.birthday.year);
}

2. Mengecek zodiak seseorang


/* File program zodiak.c
Menentukan zodiak berdasarkan data tanggal lahir masukan */
#include <stdio.h>
main()
{
struct zodiak {
char nama[11];
int tgl_awal;
int bln_awal;
int tgl_akhir;
int bln_akhir;
};
struct zodiak bintang = {"Sagitarius",22,11,21,12};
int tgl_lhr, bln_lhr, thn_lhr;
printf("Masukkan tgl lahir Anda (XX-XX-XXXX) ");
scanf("%d-%d-%d",&tgl_lhr, &bln_lhr, &thn_lhr);
if(tgl_lhr-bintang.tgl_awal+(bln_lhr-bintang.bln_awal) *30 > 0 &&
bintang.tgl_akhir-bintang.tgl_awal + (bintang.bln_akhir-
bintang.bln_awal) * 30)
printf("Bintang Anda adalah %s\n",bintang.nama);
else
printf("Bintang Anda bukan %s\n",bintang.nama);
}
3. Melewatkan struktur ke dalam fungsi
#include"stdio.h"
#include"conio.h"
struct data_tanggal
{
int tanggal;
int bulan;
int tahun;
};
void cetak_info_tanggal(struct data_tanggal unit_tgl);
void main()
{
struct data_tanggal saat_proses = {12,9,1989};
cetak_info_tanggal(saat_proses);
getch();
}
void cetak_info_tanggal(struct data_tanggal unit_tgl)
{
static char *nama_bulan[]= {"Kode bulan salah!",
"Januari","Februari","Maret","April","Mei",
"Juni","Juli","Agustus","September","Oktober",
"November","Desember"};
printf("%d %s %d\n",unit_tgl.tanggal,
nama_bulan[unit_tgl.bulan], unit_tgl.tahun);
}

6. Tugas dan Pertanyaan


1. Buatlah struct untuk data lagu yang berisi tentang judul lagu, penyanyi, tahun produksi,
nomor track dan kode album.
Ketentuan :
 program ini akan memiliki dua buah struct, yaitu struct lagu dan struct kodeRBT.
 Jumlah data yang diinputkan dinamis (maks. 3 lagu)
2. Definisikan sebuah struktur (misalkan namanya = record) yang memiliki 3 buah field
berupa sebuah integer (misalkan namanya = loop), sebuah array karakter dengan 5 elemen
(misalkan namanya = word) dan sebuah float (misalkan namanya = sum).
3. Deklarasikan sebuah variabel struktur (misalkan namanya = sample) yang didefinisikan
memiliki tipe struktur record.
4. Masukkan nilai 10 kepada field loop dari struktur sample yang bertipe struktur record
tsb.
5. Tampilkan ke layar (menggunakan fungsi printf()) string yang tersimpan dalam array
word dari struktur sample
6. Definisikan sebuah struktur (misalkan namanya = date) yang memiliki 3 field bertipe
int (misalkan namanya = day, month dan year). Kemudian tuliskan potongan program untuk
memasukkan 5 buah tanggal yang disimpan

Anda mungkin juga menyukai