MODUL IV ARRAY DAN STRUCTURE

advertisement
MODUL IV
ARRAY DAN STRUCTURE
I.
II.
TUJUAN
1.
Memahami konsep dasar array 1 dimesi dan array multidimensi
2.
Mampu menerapkan konsep array dalam studi kasus nyata
3.
Memahami konsep dasar structure dan mampu menerapkannya dalam studi kasus nyata
DASAR TEORI
1.
ARRAY
a.
Pengertian Array
Array adalah
kumpulan
data
yang bertipe
sama. Dengan menggunakan array,
sama yang
menggunakan
nama yang
sejumlah variabel dapat memakai nama yang sama.
Antara satu variabel dengan variabel lain di dalam array dibedakan berdasarkan
nomor elemen (subscript/indeks) Variabel dapat dideklarasikan ber-type array dari suatu
type tertentu. Setiap elemen array diakses dengan alamat berupa indeks yang bertype
integer.
Contoh : int TabInt[10];
 Array bernama TabInt
 Setiap elemen bertype integer,
 Dengan ukuran 10 elemen,
 Dengan alamat setiap elemen array (indeks) adalah dari indeks ke-0 s.d. 9.
b. Deklarasi Array
int main() {
// Kamus
int TabJumlahHari[12];
float TabNilai[15];
char TabHuruf[100];
string TabKata[100];
Point TabTitik[20];
// Algoritma
…..
//
//
//
//
//
indeks
indeks
indeks
indeks
indeks
0..11
0..14
0..99
0..99
0..19
Elemen dari array dapat diakses langsung jika dan hanya jika indeks terdefinisi
Cara mengacu sebuah elemen :
TabInt[2]
TabInt[i] jika i terdefinisi
IV - 1
c. Mengisi Array
Mengisi array merupakan aktifitas memberi nilai elemen array
Pemberian nilai satu elemen
Contoh :
TabInt[0]=31;
Pemberian nilai beberapa elemen
for (i=0;i<10;i++) {
TabInt[i]=i*10;
}
d.
Mengisi Dan Membaca Isi Array
Elemen array yang telah diberi nilai dapat diakses kembali.
Contoh : menampilkan semua isi array ke layar
#include <iostream>
using namespace std;
int main ()
{ // Kamus
int TabInt[10]; int i;
// Algoritma mengisi array
for (i=0; i<10; i++) {
TabInt[i]=i*10;
}
// Algoritma membaca dan menuliskan // isi array ke layar
for (i=0; i<10; i++) {
cout << TabInt[i] << endl;
}
return 0;
2. STRUCTURE
a. Pengertian Structure
Structure adalah kumpulan data yang saling berhubungan, yang disimpan dalam satu
unit penyimpanan. Misalkan pada suatu database peyimpanan data pegawai, dimana setiap
pegawai akan menyimpan nama, alamat dan gaji. Bila menggunakan array biasa, maka
diperlukan tiga variable yang bebas satu dengan yang lain, yaitu variabel nama, alamat
dan
gaji.
Dengan
menggunakan
structure, data tersebut diorganisasikan dalam satu
kesatuan.
Gambar IV.1. Perbedaan Array dan Structure
IV - 2
b. Deklarasi Dan Menginisialisai Structure
Contoh :
Biodata pegawai mempunyai properties nama, alamat, dan gaji. Bila menggunakan array biasa,
maka diperlukan tiga variable yang bebas satu dengan yang lain, yaitu variabel nama,
alamat dan gaji dengan deklarasi sebagai berikut.
int main() {
// Kamus
string TabNama[10];
string TabAlamat[10];
int TabGaji[10];
// Algoritma
// indeks 0..9
// indeks 0..9
// indeks 0..9
Dengan menggunakan structure, data tersebut diorganisasikan dalam satu kesatuan
struct data //Deklarasi structure
{
char name[20];
char address[20];
int salary;
};
data employee1; //Inisialisasi variabel structure
c.
Memanggil Elemen Tertentu Dari Suatu Structure
int main()
{
printf("Tanggal lahir : %s-%s-%s",
tgl_lahir.tanggal,
tgl_lahir.bulan,
tgl_lahir.tahun);
return 0;
}
return 0;
}
Memanggil elemen
tanggal pada
structure tgl_lahir
(Inisialisasi variabel
structure Data)
IV - 3
III.
GUIDED ARRAY
1. Array Dengan Elemen Diinisialiasi
#include <stdio.h>
int main() {
int A[5] = {10, 20, 30, 40, 50};
int B[5] = {10};
int C[5] = {10, 0, 30};
int j;
/* Menampilkan nilai dari elemen array */
for (j=0; j<5; j++) {
printf("A[%d] = %2d, B[%d] = %2d, C[%d] = %2d\n", j,
A[j],j, B[j], j, C[j]);
}
return 0;
}
2.
Pencarian Data Dalam Array
#include <stdio.h>
#define MAX_ELEMEN 100
int main() {
int BIL[MAX_ELEMEN];
int N, X;
printf("Masukkan banyaknya elemen yang diinginkan: ");
scanf("%d",&N);
/* Mengisikan elemen array */
for (int j=0; j<N; j++) {
printf("BIL[%d] = ", j); scanf("%d", &BIL[j]);
}
printf("Masukkan nilai yang akan dicari : ");
scanf("%d", &X);
/* Melakukan pencarian elemen array */
int k=0;
while ((k<N) && (BIL[k] != X)) {
k++;
}
/* Menyimpulkan hasil pencarian */
if (BIL[k] == X) {
printf("%d ditemukan dalam array, yaitu pada indeks ke%d", X, k);
} else {
printf("%d tidak ditemukan dalam array", X);
}
return 0;
}
IV - 4
3.
Membuat Matrik Dengan Array Multidimensi
#include <stdio.h>
int main(void) {
/* Membuat tipe data bentukan untuk merepresentasikan
matrik ordo 3x2 */
typedef int Matrik32 [3][2];
/* Mendeklarasikan variabel A,B dan C yang bertipe
Matrik32 */
Matrik32 A, B, C;
/*Mendeklarasikan variabel j dan k untuk indeks
pengulangan */
int j, k;
/* Mengisikan nilai ke dalam elemen-elemen matrikA */
printf(“Mengisikan elemen matrik A:\n”);
for (j=0; j<3; j++) {
for (k=0; k<2; k++) {
printf(“A[%d][%d] = ”, j, k); scanf(“%d”, &A[j][k]);
}
}
/* Mengisikan nilai ke dalam elemen-elemen matrikB */
printf(“\nMengisikan elemen matrik B:\n”);
for (j=0; j<3; j++) {
for (k=0; k<2; k++) {
printf(“B[%d][%d] = ”, j, k); scanf(“%d”, &B[j][k]);
}
}
/* Melakukan penjumlahan matrik A dan B dan menyimpannya
ke dalam matrik C */
for (j=0; j<3; j++) {
for (k=0; k<2; k++) {
C[j][k] = A[j][k] + B[j][k];
}
}
/* Menampilkan hasil penjumlahan matrik di atas */
printf(“\nHasil penjumlahan matrik A dan B:\n”);
for (j=0; j<3; j++) {
for (k=0; k<2; k++) {
printf(“C[%d][%d] = %d\n”, j, k, C[j][k]);
}
}
return 0;
}
IV - 5
IV.
UNGUIDED ARRAY
Buatlah program dalam bahasa C yang berisi menu dengan sturktur perulangan sebagai berikut :
MENU
1. Input Array
2. Tampil Array
3. Cari Nilai Minimum
4. Cari Nilai Maksimum
5. EXIT
Cari Nilai Minimum  untuk menampilkan isi array yang nilainya paling kecil
Cari Nilai Maksimum  untuk menampilkan isi array yang nilainya paling besar
Gunakan prosedur untuk melakukan setiap fungsi menunya.
V.
GUIDED STRUCTURE
1.
Membuat Titik Koordinat
#include <stdio.h>
/* Mendefinisikan struktur TITIK sekaligus mendeklarasikan
variabel T1 */
struct TITIK {
int x;
int y;
} T1;
/ * struktur T1 merupakan variabel global */
int main(void) {
/* Mendeklarasikan struktur T2 */
struct TITIK T2;
/* struktur T2 merupakan variabel lokal
dalam fungsi main() */
/* Membaca nilai x dan y untuk struktur T1 */
printf("Menentukan koordinat T1:\n");
printf("Nilai x = "); scanf("%d", &T1.x);
printf("Nilai y = "); scanf("%d", &T1.y);
/* Membaca nilai x dan y untuk struktur T2 */
printf("\nMenentukan koordinat T2:\n");
printf("Nilai x = "); scanf("%d", &T2.x);
printf("Nilai y = "); scanf("%d", &T2.y);
/* Menampilkan nilai yang terdapat pada struktur */
printf("\nT1(%d,%d)\n", T1.x, T1.y);
printf("\nT2(%d,%d)\n", T2.x, T2.y);
return 0;
}
IV - 6
2. Membuat Segi Empat DenganTitik Koordinat
struct SEGIEMPAT {
struct TITIK T1;
struct TITIK T2;
};
int main(void) {
struct SEGIEMPAT S;
int panjang, lebar, luas;
/* Mengisikan nilai ke struktur SEGIEMPAT */
printf("Titik ke-1:\n");
printf("Nilai x = "); scanf("%d", &S.T1.x);
printf("Nilai y = "); scanf("%d", &S.T1.y);
printf("\nTitik ke-2:\n");
printf("Nilai x = "); scanf("%d", &S.T2.x);
printf("Nilai y = "); scanf("%d", &S.T2.y);
/* Menggunakan fungsi abs untuk mendapatkan nilai absolut
*/
panjang = abs(S.T2.x - S.T1.x);
lebar = abs(S.T2.y - S.T1.y);
/* Menghitung luas segiempat */
luas = panjang * lebar;
/* Menampilkan hasil perhitungan */
printf("\nLuas segi empat = %d", luas);
return 0;
}
IV - 7
Download