STRUKTUR
DATA
Disusun Untuk Memenuhi Salah Satu Tugas Mata Kuliah
Struktur Data

Disusun
Oleh :
Fachni
Anggriani (1123022)
D3/TI/1A
POLITEKNIK POS INDONESIA
Jl.Sari
Asih No.54 Bandung
Struktur Data
Pengertian
Struktur
data adalah kumpulan elemen data (mulai dari byte) yang
ditentukan tipe datanya, diorganisasi (dibentuk, disusun, atau dikelompokkan) dan akan
diproses sesuai dengan tipe datanya.
Struktur data sangat penting dalam sistem komputer. Terhadap setiap variabel di dalam
program, secara eksplisit ataupun implisit, didefinisikan struktur data yang akan
menentukan operasi yang berlaku terhadap variabel tersebut. Struktur data yang dibicarakan ini merupakan struktur data logika. Bukan penyajian
secara fisik pada storage (memori komputer).
Pada garis besarnya, data dapat kita kategorikan menjadi :
A. Tipe data sederhana atau data sederhana, yang terdiri atas :
ditentukan tipe datanya, diorganisasi (dibentuk, disusun, atau dikelompokkan) dan akan
diproses sesuai dengan tipe datanya.
Struktur data sangat penting dalam sistem komputer. Terhadap setiap variabel di dalam
program, secara eksplisit ataupun implisit, didefinisikan struktur data yang akan
menentukan operasi yang berlaku terhadap variabel tersebut. Struktur data yang dibicarakan ini merupakan struktur data logika. Bukan penyajian
secara fisik pada storage (memori komputer).
Pada garis besarnya, data dapat kita kategorikan menjadi :
A. Tipe data sederhana atau data sederhana, yang terdiri atas :
·
Data sederhana
tunggal, misalnya integer, real, boolean, serta karakter
Integer,tipe data ini
digunakan untuk menyatakan bilangan bulat karena tidak mempunyai titik decimal
sehingga tidak diperbolehkan menggunakan karakter koma antara dua bilangan.
Real,tipe
real adalah bilangan pecahan yang mengandung titik desimal. Sebagai orang Indonesia
maka simbol koma yang dipergunakan tetapi untuk orang Amerika maka simbol yang
dipergunakan adalah titik. Dan karena yang membuat bahasa Pemrograman Pascal
adalah orang Amerika maka kita harus menyesuaikan diri. Gunakanlah simbol
titik. Atau dalam kata lain yang mengandung pecahan.
Boolean, tipe data boolean mempunyai dua buah nilai, yaitu True dan False.
Kita dapat mendeklarasikan suatu variabel dan mengisi variabel tersebut dengan
nilai data boolean True atau False.
Karakter, untuk membuat sebuah Karakter maka yang dibutuhkan adalah
Tipe Data char . char merupakan kependekan dari character (Karakter).
·
Data sederhana
majemuk, misalnya string.Tipe data ini, dengan berbagai cara tertentu, dapat
diorganisasikan menjadi berbagai struktur data.
B. Struktur data, meliputi :
·
Struktur data
sederhana, misalnya array dan record

Larik dapat diakses
berdasarkan indeksnya. Indeks larik umumnya dimulai dari 0 dan ada pula yang
dimulai dari angka bukan 0. Pengaksesan larik biasanya dibuat dengan menggunakan
perulangan (looping).

Field 1 Field 2 Field 3 Field 4
Cara pendeklarasian dari record adalah sbb:
• Mendefinisikan tipe dari record (jumlah field, jenis tipe data yang dipakai),
• Mendefinisikan variabel untuk dilakukan operasi.
·
Struktur data majemuk,
terdiri atas :
o
Linear, misalnya
stack, queue, serta linear linked list.
List linier adalah sekumpulan elemen bertipe sama yang mempunyai
keturutan tertentu, dan setiap elemen nya terdiri dari dua bagian, yaitu
informasi mengenai elemen nya dan informasi mengenai alamat elemen suksesornya.
List linier memiliki 2 jenis, yaitu:
List linier memiliki 2 jenis, yaitu:
Stack: Struktur data linear dimana
penambahan atau pengurangan komponen dilakukan di satu ujung saja dan merupaan
suatu bentuk khusus dari linear list di mana operasi penyisipan dan penghapusan
atas elemen-elemennya hanya dapat dilakukan pada satu sisi saja.
Operasi pada stack:
1). Push : Operator
ini berfungsi untuk menambahkan satu elemen ke dalam stack.
2). Pop : Operator
ini berfungsi untuk mengeluarkan satu elemen dari dalam stack.
Queue: Struktur data linear dimana penambahan
komponen dilakukan di satu ujung, sementara pengurangan dilakukan di ujung
lain.
o
Nonlinear, misalnya
pohon binar (binary tree), pohon cari binary (binary
search tree), pohon cari m-way (m-way search tree), general tree, serta graph.
Kedua kategori di atas, terutama diperuntukkan bagi data di dalam storage utama.
Data yang diperuntukkan bagi storage tambahan, mempunyai struktur data yang dikenal
sebagai organisasi file. Tipe organisasi file di antaranya adalah organisasi sequential,
organisasi relative, organisasi indexed sequential, dan organisasi multikey.
Dua buah struktur data sederhana adalah array atau larik, dan record. Array
merupakan struktur data yang terurut dan homogen, terdiri dari item data (kumpulan byte
yang membentuk satu kesatuan, misalkan kumpulan huruf yang membentuk nama) yang
sama tipenya. Sedangkan record merupakan struktur data yang boleh terdiri atas
serangkaian item data dengan berbagai tipe data di setiap item datanya.
Struktur data dari tatanan yang lebih tinggi, terbentuk dari record, di sini termasuk
daftar linear atau linear list (terutama antrean dan tumpukan), dan graph. Pemakaian struktur data yang tepat di dalam proses pemrograman, akan menghasilkan algoritma yang
lebih jelas dan tepat, sehingga menjadikan program secara keseluruhan lebih sederhana.
Struktur
data Non linear: adalah sistem yang tidak linier yakni sistem yang tidak memenuhi prinsip superposisi. Sedikit lebih
teknis, sistem nonlinier adalah sembarang soal dimana peubah yang disolusi
tidak dapat ditulis sebagai jumlah linier komponen-komponen tak gayut. Sistem nonhomogen, yang linier terpisah dari
keberadaan fungsi peubah-peubah
tak gayut, adalah nonlinier menurut definisi yang tegas, namun sistem demikian
biasanya dipelajari disamping sistem linier, karena mereka dapat ditransformasi
menuju sistem linier sepanjang solusi khusus diketahui.
Contoh :
Binary search tree
#include<iostream.h>
#include<conio.h>
#include<stdio.h>
#include<stdlib.h>
struct node
{
int data;
node *left;
node *right;
};
node *tree=NULL;
node *insert(node *tree,int ele);
void preorder(node *tree);
void inorder(node *tree);
void postorder(node *tree);
int count=1;
void main()
{
clrscr();
int ch,ele;
do
{
clrscr();
cout<<"\n\t\a\a1----INSERT A NODE IN A BINARY TREE.\a\a";
cout<<"\n\t\a\a2----PRE-ORDER TRAVERSAL.\a\a";
cout<<"\n\t\a\a3----IN-ORDER TRAVERSAL.\a\a";
cout<<"\n\t\a\a4----POST-ORDER TRAVERSAL.\a\a";
cout<<"\n\t\a\a5----EXIT.\a\a";
cout<<"\n\t\a\aENTER CHOICE::\a\a";
cin>>ch;
switch(ch)
{
case 1:
cout<<"\n\t\a\aENTER THE ELEMENT::\a\a";
cin>>ele;
tree=insert(tree,ele);
break;
case 2:
cout<<"\n\t\a\a****PRE-ORDER TRAVERSAL OF A TREE****\a\a";
preorder(tree);
break;
case 3:
cout<<"\n\t\a\a****IN-ORDER TRAVERSAL OF A TREE****\a\a";
inorder(tree);
break;
case 4:
cout<<"\n\t\a\a****POST-ORDER TRAVERSAL OF A TREE****\a\a";
postorder(tree);
break;
case 5:
exit(0);
}
}while(ch!=5);
}
node *insert(node *tree,int ele)
{
if(tree==NULL)
{
tree=new node;
tree->left=tree->right=NULL;
tree->data=ele;
count++;
}
else
if(count%2==0)
tree->left=insert(tree->left,ele);
else
tree->right=insert(tree->right,ele);
return(tree);
}
void preorder(node *tree)
{
if(tree!=NULL)
{
cout<<tree->data;
preorder(tree->left);
preorder(tree->right);
getch();
}
}
void inorder(node *tree)
{
if(tree!=NULL)
{
inorder(tree->left);
cout<<tree->data;
inorder(tree->right);
getch();
}
}
void postorder(node *tree)
{
if(tree!=NULL)
{
postorder(tree->left);
postorder(tree->right);
cout<<tree->data;
getch();
}
#include<conio.h>
#include<stdio.h>
#include<stdlib.h>
struct node
{
int data;
node *left;
node *right;
};
node *tree=NULL;
node *insert(node *tree,int ele);
void preorder(node *tree);
void inorder(node *tree);
void postorder(node *tree);
int count=1;
void main()
{
clrscr();
int ch,ele;
do
{
clrscr();
cout<<"\n\t\a\a1----INSERT A NODE IN A BINARY TREE.\a\a";
cout<<"\n\t\a\a2----PRE-ORDER TRAVERSAL.\a\a";
cout<<"\n\t\a\a3----IN-ORDER TRAVERSAL.\a\a";
cout<<"\n\t\a\a4----POST-ORDER TRAVERSAL.\a\a";
cout<<"\n\t\a\a5----EXIT.\a\a";
cout<<"\n\t\a\aENTER CHOICE::\a\a";
cin>>ch;
switch(ch)
{
case 1:
cout<<"\n\t\a\aENTER THE ELEMENT::\a\a";
cin>>ele;
tree=insert(tree,ele);
break;
case 2:
cout<<"\n\t\a\a****PRE-ORDER TRAVERSAL OF A TREE****\a\a";
preorder(tree);
break;
case 3:
cout<<"\n\t\a\a****IN-ORDER TRAVERSAL OF A TREE****\a\a";
inorder(tree);
break;
case 4:
cout<<"\n\t\a\a****POST-ORDER TRAVERSAL OF A TREE****\a\a";
postorder(tree);
break;
case 5:
exit(0);
}
}while(ch!=5);
}
node *insert(node *tree,int ele)
{
if(tree==NULL)
{
tree=new node;
tree->left=tree->right=NULL;
tree->data=ele;
count++;
}
else
if(count%2==0)
tree->left=insert(tree->left,ele);
else
tree->right=insert(tree->right,ele);
return(tree);
}
void preorder(node *tree)
{
if(tree!=NULL)
{
cout<<tree->data;
preorder(tree->left);
preorder(tree->right);
getch();
}
}
void inorder(node *tree)
{
if(tree!=NULL)
{
inorder(tree->left);
cout<<tree->data;
inorder(tree->right);
getch();
}
}
void postorder(node *tree)
{
if(tree!=NULL)
{
postorder(tree->left);
postorder(tree->right);
cout<<tree->data;
getch();
}
}
Langganan:
Posting Komentar (Atom)
Cek Resi
Pembayaran
Pembayaran melalui Bank berikut :
Norek : 030-3131-724
An. Fachni Anggriani
Norek : 618-0100-551-165
An. Fachni Angrriani
Pengiriman Melalui
0 komentar:
Posting Komentar