STRUKTUR DATA
Struktur Data adalah : suatu koleksi atau kelompok data yang dapat
dikarakteristikan oleh organisasi serta operasi yang didefinisikan terhadapnya.
Pemakaian Struktur Data yang tepat didalam proses pemrograman, akan
menghasilkan Algoritma yang lebih jelas dan tepat sehingga menjadikan program
secara keseluruhan lebih sederhana.
Pada garis besarnya, Data dapat dikategorikan menjadi :
A. Type Data Sederhana / Data Sederhana
Terdiri dari :
Data Sederhana Tunggal
Misalnya : Integer, Real/Float, Boolean dan Character
2. Data Sederhana Majemuk
Misalnya : String
B. Struktur Data
Terdiri dari :
1. Struktur Data Sederhana
Misalnya Array dan Record
2. Struktur Data Majemuk
Terdiri dari :
a. Linier
Misalnya : Stack, Queue dan Linear Linked List.
b. Non Linier
Misalnya : Pohon (Tree), Pohon Biner (Binary Tree), Pohon Cari
Biner (Binary Search Tree), General Tree serta Graph.
Range
Ukuran ( Byte )
Integer
- 32768..32767
Long
- 2147483648..2147483647
2. FLOAT
Type data yang merupakan bilangan pecahan. Jenis Data float ditulis dgn
menggunakan titik(koma) desimal.
Misalnya : 0.32 4,35 -131.128
M * Re = X
M = Pecahan, R = Radix,
e = Exponen, X = Hasil Bilangan,
Misalnya :
3.2 * 10-1 = 0.32
4.35 * 102 = 435
Type data FLOAT
Type
Range
Ukuran
(Byte)
Float
Double
Long Double
8
10
4. CHARACTER
Type data yang terdiri dari aksara (simbol) yang meliputi digit numerik,
character alfabetik dan spesial character. Untuk menuliskan tipe char, karakter perlu
ditulis di dalam tanda petik tunggal ( ) Contoh :
A :karakter berupa huruf A
1 :karakter berupa angka 1
* :karakter simbol *
5. STRING
Merupakan type data majemuk yang terbentuk dari kumpulan character
sebanyak 256 (default) dengan jangkauan niai 0 - 255. Kumpulan character yang
digunakan untuk membentuk String dinamakan alfabet.
Pemberian nilai String diapit dengan tanda petik ganda ()
Bentuk umum penulisan tipe data ini adalah :
tipe_data pengenal [panjang] ;
pengenal = nama variabel
panjang = bilangan bulat yg menunjukan jumlah karakter
Contoh : char nama[15] ;
1.
2.
3.
4.
5.
Keterangan
Tanda Plus
Tanda Minus
Operator Penambah
Dan Pengurang
++
--
Keterangan
Penambahan
Pengurangan
Keterangan
Sama dengan (assigment)
Tidak sama dengan
Lebih besar
Lebih Kecil
Sama dengan (bukan assignment)
Lebih besar atau sama dengan
Lebih kecil atau sama dengan
Keterangan
Dan (AND)
Atau (OR)
Bukan (NOT)
Keterangan
Not
Shift Left
Shift Right
AND
XOR
OR
PERTEMUAN 2
ARRAY DIMENSI 1 & 2
Karakteristik Array :
1. Mempunyai batasan dari pemesanan alokasi memory
(Bersifat Statis)
2. Mempunyai Type Data Sama (Bersifat Homogen)
3. Dapat Diakses Secara Acak
Contoh aplikasi untuk Array dimensi 1 adalah seperti program input bilangan
dibawah ini :
input 5 bilangan genap : bilangan 1 = 45
bilangan 2 = 50
bilangan 3 = 100
bilangan 4 = 75
bilangan 5 = 30
Dengan hasil output sebagai berikut :
#include <iostream.h>
#include <conio.h>
void main()
{
float bil [5];
clrscr;
cout<<"Masukkan 5 bilangan genap : "<<endl;
for (int i = 0; i < 5; i++)
{
cout<< i + 1 <<" : ";
cin>> bil[i];
cout<<endl;
}
cout<<5 bilangan genap yang dimasukkan : "<<endl;
for (int i = 0; i < 5; i++)
cout<<" "<<bil[i];
getch();
}
Rumus untuk menentukan jumlah elemen dalam Array :
(Elemen Array)
i=1
Contoh :
Suatu Array A dideklarasikan sbb :
int A[10]; maka jumlah elemen Array dimensi satu tersebut
adalah = 10
PEMETAAN (MAPPING) ARRAY DIMENSI SATU KE STORAGE
Rumus : @A[i] = B + (i 1) * L
Dimana :
@A[i] : Posisi Array yg dicari
B : Posisi awal index di memory komputer
i : Subkrip atau indeks array yg dicari
L : Ukuran / Besar memory suatu type data
Contoh :
Suatu Array A dideklarasikan sebagai berikut :
int A[5]; dengan alamat awal index berada di 0011 (H) dan
ukuran memory type data integer = 2
Tentukan berapa alamat array A[3] ?
Contoh Penerapan
Array Dimensi 1 Pada Program C++
1
0
1
2
Contoh aplikasi untuk Array dimensi 2 adalah seperti program input IPK mahasiswa
dengan hasil output seperti berikut :
Nama Mahasiswa
Abdillah
Budiman
Indah
Khalilah
IPK
3.50
2.76
3.25
2.81
Nadya
n
(Elemen array)
i=1
2.93
(4) * (3) = 12
PEMETAAN (MAPPING) ARRAY DIMENSI DUA KE STORAGE
Terbagi Dua cara pandang (representasi) yang berbeda :
1. Secara Kolom Per Kolom (Coloumn Major Order/CMO)
@M[i][j] = M[0][0] + {(j - 1) * K + (i - 1)} * L
2. Secara Baris Per Baris (Row Major Order / RMO)
@M[i][j] = M[0][0] + {(i - 1) * N + (j - 1)} * L
Keterangan :
@M[i][j] = Posisi Array yg dicari,
M[0][0] = Posisi alamat awal index array,
i = Baris,
j = kolom,
L = Ukuran memory type data
K = Banyaknya elemen per kolom,
N = Banyaknya elemen per baris