Modul Struktur Data Halaman 1 (1)

Modul Struktur Data 

STRUKTUR  DATA 
Pertemuan   s.d   

 

 
 

Sasaran: 
 
Meningkatkan: 
ƒ pemahaman  pengetahuan    tentang  teori  dasar  struktur  data  dan  penanganan 
data 
ƒ serta  pembuatan algoritma dan penggunaan  strukturd dalam pemrograman 
 
Materi : 
. Konsep dan Definisi 
- Tipe dan definisi 
- Operasi Data 

. Stack dan Queue 
- Operasi dan aplikasi Stack 
- Operasi dan aplikasi  Queue dan Deque  
. Linked List 
- Konsep pointer dari Linked List 
- Operasi pointer dari Linked List 
- Jenis Linked List  Single dan Double 
. Tree dan Graph 
- Terminologi, karakteristik dan struktur hirarkhi Tree 
- Terminologi, Representasi dan Traversal dari Graph 
 
 

Halaman  1 

Modull Struktur Datta 

Konsep dan Definisi 
Definiisi  Data 


Adalah
h fakta ataau kenyataaan tercataat mengen
nai suatu o
obyek 
 
Pengeertian  dataa  ini  men
nyiratkan    suatu  nillai  bisa  daalam  benttuk  konsttanta  atau

variab
bel 

 

Tipe D
Data 

Tipe Daata
Sedeerhana
Reaal


Terstrukttur
Ordinal

String

Flat

)ntegerr

Record

Double

Characteer

array

Boolean
n


File
Set

Tipe daata sederhaana:
Hanya dimungkinnkan untukk menyimpan satu nilaai dalam saatu variabeel
m
yaaitu:
Ada 5 macam,
1. bilaangan bulatt (integer)
2. bilaangan real presisi
p
tungggal
bilaangan real presisi
p
gannda
3. karaakter
4. tak bertipe (unnsign)
5. booolean (operrator logik))

 


Halaman  2 

Modul Struktur Data 

 
Tipe data terstrukrur 

Adalah tipe data dimana satu variabel dapat menyimpan lebih dari satu nilai data 
Masing‐masing nilai data disebut komponen. 
 
Ada    macam,  yaitu: 
. Data String 
Data  yang berisi sederetan karakter dimana banyaknya karakter bisa berubah‐
ubah sesuai kebutuhan 
Bentuk umum  :         char nama­ variabel[ukuran] 
Contoh :              char nama[ ] 
 
. Larik  array  
dimana variabel larik hanya bisa menyimpan  tipe data saja 

Bentuk umum :  Tipe data     nama­variabel[ukuran]      
Contoh  :             float X[ ] 
                             int    datax[ ] 
. Record 
terdiri  dari  beeberapa  variabel  dimana  masing‐masing  variabel  bisa 
mempunyai tipe yang berbeda 
Bentuk umum  :   
struct   nama_tipe_struct 
                 { 
tipe  field‐ ; 
                          tipe   field‐ ; 
                           ................... 
                           tipe  field‐n; 
                 } var_ struct 
 
Contoh : 
struct  data_tanggal 

int  tanggal; 
      int  bulan; 

       int  tahun; 

struct   data_mhs 
{  
char  nama[ ]; 
       struct  data_tanggal; 
 }  info_mhs;

Halaman  3 

Modul Struktur Data 

nama_mhs 
tanggal 

info_mhs 

data_tanggal

bulan 


tahun 

 
. Set  himpunan  
Memungkinkan  suatu  lokasi  memori  ditempati  oleh  satu  atau  lebih  variabel  
yang tipenya bisa berlainan. 
 
1. union 
Bentuk umum: 
Union     nama_union; 
 
Contoh: 
union 

           unsigned  int   data_int; 
            unsigned  char   data_char[ ];        
        }  bil_x; 
 
2. enumerius 

merupakan himpunan dari konstanta integer yang diberi nama 
Bentuk umum: 
enum    nama_enum 
{   
konstanta_ ,  jonstanta_ ; 
       konstanta_n; 
}  var_ , var_ ; 
 
Contoh: 
enum  manusia  { pria, wanita }; 
enum  manusia  jenis_kelamin; 
 
Bila jenis_kelamin diisi pria maka  nilai jenis kelamin=   dan sebaliknya 
bila diisi wanita nilai jenis_kelamin=  
 
 
 
Halaman  4 

Modull Struktur Datta 


5. Fille 
Filee  merupak
kan  organ
nisasi  darii  sejumlah
h  record  seejenis.  Maasing‐masiing  record

terrdiri dari ssatu atau leebih field d
dan field terdiri darii satu atau
u lebih karrakter. 

File
e

Re
ecord
Field
Charr
 
 


 

Record   

Field
C
Char

Tipe d
data Pointter 

Variabel pointerr berisi  alaamat dari suatu obyek lain  yaaitu obyek
k yang ditu
unjuk oleh

pointerr tersebutt  
Bentuk
k umum: 
tipe   *nama
a_ponter 
 
Contoh
h: 
in
nt   *pa; 
paa  = &x;     &  berartii alamat
 
Artinya  poin
nter pa meenunjuk allamat  x 
 

Algoritm
ma dan Pem
mrogram
man 

 

Perm
masalahan
nnya  adalaah  bagaim
mana  suatu
u  masalah
h  dapat  d
diselesaikaan  dengan

algo
oritma yan
ng tepat. 
 
Dasaar‐dasar A
Algoritma:     
elementerr; dan 
ƒ Statement 
S
ƒ Statement 
S
kontrol 
 
Stateement elementer terdiri dari: 
ƒ Asignment 
A
t X= , X=Y

ƒ Compariso
C

ƒ Arithmatic
A
c  Statemen
nt 
 
Halaman  5 

Modul Struktur Data 

 

Statement kontrol terdiri dari: 
ƒ Alternatif 
ƒ Pengulangan 
ƒ Percabangan 

Statement elementer: 
a. assignment 
Untuk  memberikan  nilai  ke  variabel  yang  telah  diseklarasikan.  Bentuk 
pernyataannya adalah 
Contoh:     total  =  

 
b. comparison 
Untuk  keperluan pengambilan keputusan diperlukan operator relasi seperti 
> ,  0)
{
x = s[top];
pritf (“\n\r x = %d top = %d”, x, top);
top = top – 1;
Halaman  7 

Modul Struktur Data 

}
else { printf(“\n\r

stack

kosong”); }

}

 
Soal: buat fungsi  PUS( 
 
Aplikasi  stack  antara lain : 
. Dalam sistem operasi,  pada  saat  aktivitas  call  dan  return 
. Pada  proses  kompilasi,  untuk  melakukan  pengecekan  kelengkapan  pasangan 
tanda kurung, kurung kotak, dll. 
 

QUEUE  antrian  

Prinsip:   F)FO   First In First Out  
atau 
      FCFS   First Come First Serve  
 
Ada   macam pointer, yaitu: F Front   dan R Rear  
ƒ Untuk pengambilan data menggunakan pointer F sedang untuk pemasukkan data 
menggunakan pointer R  
ƒ Bila  kondisi  kosong    F=   dan  R=   sedang  kondisi  penuh  R=N    maka  syarat  
antrian adalah:   
F  link = first;
first = p;
printf(“\n sisip awal”);
}
else
{
p->link = NULL;
first = p;
printf(“\n create file”);
}
}

 

void insert_tengah(void)
{
struct
simpul *p , *q, *k;
p = (struct simpul *) malloc(sizeof(struct simpul));
strcpy(p->nama, nama);
if (first != NULL)
{
q = first;
while (q-> nama < nama)
{
k = q;
q = q->link;
}
p->link = q;
Halaman  11

Modul Struktur Data 

k->link = p;
printf(“\n sisip

tengah “);

}
else
{
insert_awal()}
}
}
void delete_awal(void)
{
struct simpul *p;
if (first != NULL)
{
p = first;
first = first->link;
p->link = NULL;
strcpy(nama,p->nama);
free(p);
printf(“\n nama = % s”,nana);
}
else
{
printf(“\n list kosong“);
}
}

 

void delete_akhir(void)
{
struct simpul *p, *q;
if (first !=NULL)
{
p = first;
While (p->link != NULL)
{
q = p;
p = p->link;}
q->link = NULL;
strcpy(nama, q->nama);
printf(“\n
nama =5s “, nama);
free(p);
}
}
}
    

 

 

Halaman  12

Modul Struktur Data 

Circular Doubly Linked List 
 
Kondisi kosong : 
head‐>right = head; 
head‐>left = head; 

H

 

Kondisi isi: 
ƒ Record‐  :   head‐>right 
ƒ Record head tidak berisi data 
 

 

 

void insert_tengah(void)
{
struct simpul *p, *q;
p = (struct simpul *) malloc(sizeof(struct
strcpy(p->nama,nama);
if (head->right) != head) {
q = head-> right;
while (q->nama < nama) {
q = q->right;
}
p->right = q
p->left = q->left;
q->left->right = p;
q->left = p;
printf(“ \n sisip tengah”);
} else {
p->right = head;
p->left = heat;
head->right = p;
head->left = p;
printf(“ \n
create file”);
}
}

 

 

simpul);

Halaman  13

Modul Struktur Data 

Circular Doubly Linked List 

 
Kondisi kosong: 
    (ead ‐> right = head; 
    (ead ‐> left = head; 

(ead 

 

 
Kondisi isi: 
Record‐ :   head‐>right; 
Record head tidak berisi data; 
 
(ead 

(ead

void insert_tengah(void)
{ struct simpul *p, *q;
p = (struct simpul *) malloc(sizeof(struct
strcpy(p->nama,nama);
if (head->right) != head){
q = head-> right;
while (q->nama < nama) {
q = q->right;
}
p->right = q
p->left = q->left;
q->left->right = p;
q->left = p;
printf(“sisip tengah”);
} else {
p->right = head;
p->left = heat;
head->right = p;
head->left = p;
printf(“create file”); }
}

simpul);

Halaman  14

Modul Struktur Data 

STRUKTUR DATA NON‐L)N)ER 

 
Terdiri  dari : 
ƒ Struktur  Pohon 
ƒ Graph 
 
STRUKTUR  PO(ON 
 
Definisi  dari  pohon adalah: 
Susunan dari satu atau lebih  simpul  node   yang  terdiri dari satu simpul sebagai 
akar  root  dan sisanya membentuk subtree dari akar. 
 
Gambar pohon secara umum adalah sebagai berikut: 
Level   

A



C



F

D

K

G

(

)
L

Level   
Level   
Level   

Akar dari pohon ini adalah A 
Satu simpul berisi: 
ƒ data atau info 
ƒ alamat  simpul yang dihubungkan dengan link 
 
Jumlah subtree dari satu simpul disebut derajat  degree  
ƒ A  berderajat    
ƒ B       ,,                  
ƒ D       ,,                  
 
Struktur  pohon  yang  terkenal  adalah  struktur  pohon  Biner,  dimana  setiap  simpul 
maksimum derajatnya adalah  . 
 
 

Halaman  15

Modul Struktur Data 

A

D

C



F
(

)

Proses dalam struktur  data akan mudah digambarkan bila diketahui: 
ƒ n = jumlah simpul 
ƒ k = derajat pohon 
maka : 
ƒ Jumlah link = n . k 
ƒ Jumlah null‐link = n  k‐  +  
ƒ Jumlah non‐zero link  = n‐  
 
Dari  pohon biner diatas  terlihat : 
n =   
k =   
maka : 
    jumlah link =   .   =   
    jumlah null‐link =    .   –   +   =   
    jumlah non‐zero link =   –   =   
 

 
Penelusuran  Pohon Biner 

 
Adalah  suatu  ide  untuk  melakukan  penelusuran  traversing   atau  kunjungan 
visiting   masing‐masing simpul sebanyak   kali. 
Penelusuran ini akan menghasilkan urutan linier dari informasi 
 
Ada   cara penelusuran, yaitu: 
ƒ inorder 
ƒ preorder 
ƒ postorder 
 
Penelusuran  inorder: 
ƒ Telusuri subtree kiri  dalam inorder 
ƒ Proses simpul akar 
ƒ Telusuri subtree kanan dalam inorder 
 
Halaman  16

Modul Struktur Data 

+

*

/

D

**

A

B

 
 

E

C

 
(asil penelusuran dari pohon di atas adalah : 
A  /  B  **  C  *  D  +  E 
 
Penelusuran Preorder: 
ƒ Proses simpul akar 
ƒ Telusuri subtree kiri dalam Preorder 
ƒ Telusuri subtree kanan dalam  
ƒ Preorder 
 
Lihat gambar di atas maka hasil penelusuran Preorder adalah: 
+  *  /  A  **  B  C  D  E 
 
Penelusuran Postoeder: 
ƒ Telusuri subtree kiri dalam postorder 
ƒ Telusuri subtree kanan dalam postoeder 
ƒ Proses simpul akar 
 
(asil penelusuran dari pohon di atas adalah: 
A  B  C  **  /  D  *  E  + 
 

Halaman  17