Anda di halaman 1dari 26

Array dan Struktur

Struktur Data

nur.zahrati@polibatam.ac.id
 Tipe data sederhana
 Tipe data sederhana tunggal
 Integer, real, boolean, karakter
 Tipe data sederhana majemuk
 string
Struktur Data  Struktur data
 Struktur data sederhana
 Array dan record (struktur)
 Struktur data majemuk
 Linier: stack, queue, list
 Non linier: tree, graph
 Pemakaian struktur data yang tepat di dalam proses
pemrograman akan menghasilkan algoritma yang lebih
jelas dan tepat  program secara keseluruhan lebih
Pentingnya efisien dan sederhana
Struktur Data
 Apa saja tipe datanya?
 Satu variabel isinya satu data saja
Tipe Data Contoh
A
X
Sederhana  char X;
 X = ‘A’;
 Kumpulan elemen-elemen data
 Susunan tertentu dan teratur
 Jumlah elemen terbatas
 Harus diketahui jumlah elemen maksimalnya sebelum
dideklarasikan
 Semua elemen memiliki tipe data yang sama
 Umumnya disimpan di memory komputer secara berturutan
Array
Jenis:
 Array satu dimensi
 Array dua dimensi
 Array tiga dimensi
 Dst.
Contoh
 int A[10];

A
Array 0 1 2 3 4 5 6 7 8 9

 float nilaiUjian[40];
 char nama[10][30];
Indeks kolom
Contoh array dua dimensi:
 int X[4][3]; X 0 1 2
0
1
Indeks baris
2
Array 3

X[2][1]

Array X menempati memory dengan susunan:


0 1 2 0 1 2 0 1 2 0 1 2

Baris 0 Baris 1 Baris 2 Baris 3


 Dilakukan dengan pengaksesan langsung
 Nilai masing-masing elemen dapat diambil tanpa
melewati posisi-posisi lain

Operasi pada  Dua tipe operasi:


Array
 Operasi terhadap satu elemen array:
 Penyimpanan nilai, contoh: A[10] = 34;
 Pengambilan nilai, contoh: b = A[3];

 Operasi terhadap array secara keseluruhan


 Sangat cocok untuk akses acak  elemen dapat diacu
langsung tanpa melalui elemen lain
Keunggulan
 Jika berada di suatu lokasi elemen, sangat mudah
Array menelusuri ke elemen tetangga (pendahulu atau
penerusnya)
Fleksibilitas rendah:
 Harus bertipe homogen, semua elemennya bertipe
sama
 Bersifat statik, tidak dapat diubah ukurannya saat
Kelemahan eksekusi
Array  Jika panjang array yang dibutuhkan bertambah dan
berkurang:
 Tidak efisien penggunaan memory
 Menyiakan banyak waktu komputasi
 Pada aplikasi tertentu, representasi statis tidak
dimungkinkan
 Tipe data bentukan yang berisi kumpulan variabel-
variabel yang bernaung dalam satu nama yang sama
dan memiliki kaitan satu sama lain
 Bisa memiliki variabel-variabel yang bertipe data sama
Struktur atau berbeda, bahkan bisa menyimpan variabel yang
bertipe data array atau struct itu sendiri
 Struktur sering juga disebut record, dan elemennya
disebut field
 Contoh:

typedef struct{
float x;
float y;
} Titik;
Struktur
typedef struct{
char depan[15];
char belakang[15];
} Nama;
P
X float
Y float

Contoh typedef struct{


Struktur float x;
float y;
} Titik;

Titik P;
typedef struct{
int no;
char nama[25];
float harga;
Contoh } Barang;

Struktur Barang B; B
no integer
nama string
harga float
Bentuk umum:

typedef struct{
tipe_field1 nama_field1;
tipe_field2 nama_field2;

tipe_fieldn nama_fieldn;
} nama_tipe_struktur;
Struktur
Membuat variabel struktur:

nama_tipe_struktur variabel_struktur;
 Mengakses elemen dari struktur:
variabel_struktur.nama_field
Struktur
 Setiap field diperlakukan sesuai dengan tipe data
asalnya
 Array dapat juga berisi data bertipe struktur
Contoh:
 Nama daftarNama[20];

Array Struktur 0
depan belakang

1
.
.
.
19
 Bagian dari program yang dibuat terpisah untuk
melaksanakan sebagian dari tugas yang harus
dilaksanakan dari suatu program
Prosedur  Dideklarasikan di luar program utama
 Dipanggil di program utama atau bagian lain dalam
program
 Dapat memiliki parameter
memanggil
int main() void TampilkanPilihan()
{ {

Contoh TampilkanPilihan();
scanf("%i", pil);
printf("Pilihan:\n");
printf("1. Lingkaran\n");
printf("2. Persegi\n");
Prosedur switch (pil){
1: ProsesLingkaran(); break;
printf("3. Segitiga\n");
printf("Pilihan Anda: ");
2: ProsesPersegi(); break; }
3: ProsesSegiTiga(); break; eksekusi selesai
} kembali ke program yang memanggil
return 0;
}
 Bagian dari program yang dibuat terpisah untuk melaksanakan
fungsi tertentu
 Menghasilkan suatu nilai yang dikembalikan ke program utama
(atau bagian lain yang memanggil fungsi)

Fungsi
Memanggil fungsi LuasLingkaran dengan jari = r
printf("%f", LuasLingkaran(r));

Contoh Fungsi float LuasLingkaran(int jari)


{
float luas = PI * jari * jari;
return luas;
}
Mengembalikan hasil perhitungan luas
kepada program pemanggil
 Variabel yang dideklarasikan pada header
prosedur
 Ketika subprogram dipanggil, bisa dilakukan
pertukaran data antara program utama dan
prosedur
Parameter
 Dua macam:
 Parameter Aktual: disertakan saat pemanggilan
prosedur/fungsi, disebut juga argumen
 Parameter Formal: dituliskan pada definisi
subprogram
 Jumlah parameter aktual = jumlah parameter formal
 Tipe parameter aktual = tipe parameter formal yang
bersesuaian

Aturan Jadi, ketika memanggil prosedur/fungsi,


Parameter pastikan jumlah & tipe parameter yang
dimasukkan sama dengan jumlah & tipe
parameter di deklarasi prosedur/fungsi
 Parameter masukan (input parameter)
 Parameter keluaran (output parameter)
 Parameter masukan sekaligus keluaran (input/output parameter)
Parameter Parameter jenis apa di fungsi berikut?
Formal
float LuasLingkaran(int jari)
{
float luas = PI * jari * jari;
return luas;
}
void HitungLuasSegitiga(float alas, float tinggi, float *luas)
Contoh: {
*luas = 0.5 * alas * tinggi;
}

int main()
{
float a,t,L;
scanf("%f %f", &a, &t);
HitungLuasSegitiga(a,t,&L);
printf("Luasnya = %f", L);
return 0;
}

 Jumlah parameter sesuai


 Tipe data parameter sesuai
void Tukar(int *A, int *B)
{
int temp = *A;
*A = *B;
*B = temp;
}

Contoh:

Anda mungkin juga menyukai