Rabu, 20 Maret 2013

Makalah Struktur Data


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 :

·         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 (Bahasa Inggris: array), dalam ilmu komputer, adalah suatu tipe data terstruktur yang dapat menyimpan banyak data dengan suatu nama yang sama dan menempati tempat di memori yang berurutan (kontigu) serta bertipe data sama pula.
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).
*      Sebuah record rekaman disusun oleh beberapa field. Tiap field berisi data dari tipe dasar / bentukan tertentu. Record mempunyai kelebihan untuk menyimpan suatu sekumpulan elemen data yang berbeda-beda tipenya (di banding array). Contoh , sebuah record dengan empat buah field.

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:
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();
}
}




Tidak ada komentar:

Poskan Komentar