Juni 23, 2009 by tyaradewi
#include
#include
main()
{
//deklarasi variabel
int a[10], i,j,k,tkr,top,bottom,middle,tm;
//proses penginputan data
for(i=0;i<10;i++)
{
cout<<”Data ke ["<cin>>a[i];
}
cout<
cin>>k;
//proses pengurutan data
for(i=0;i<10;i++)
{
for(j=i+1;j<10;j++)
{
if (a[i]>a[j])
{
tkr=a[i];
a[i]=a[j];
a[j]=tkr;
}
}
}
//proses pencarian data
tm=0;
top=9;
bottom=0;
while(top>=bottom)
{
middle=(top+bottom)/2;
if(a[middle]==k)
{
tm++;
}
if(a[middle]
bottom=middle+1;
}
else
{
top=middle-1;
}
}
if (tm>0)
{
cout<<”Data “<
//jika tidak ditemukan
else
{
cout<<”Data tidak ditemukan dalam array”;
}
getch();
}
Ditulis dalam Uncategorized | Leave a Comment »
PROGRAM SORT
Juni 22, 2009 by tyaradewi
#include
#include
int data[100],data2[100];
int n;
void tukar(int a,int b)
{
int t;
t = data[b];
data[b] = data[a];
data[a] = t;
}
void bubble_sort()
{
for(int i=1;i
for(int j=n-1;j>=i;j–)
{
if(data[j]}
}
cout<<”bubble sort selesai!”<
void exchange_sort()
{
for (int i=0; i
for(int j = (i+1); j
if (data [i] > data[j]) tukar(i,j);
}
}
cout<<”exchange sort selesai!”<
void selection_sort()
{
int pos,i,j;
for(i=0;i
pos = i;
for(j = i+1;j
if(data[j] < data[pos]) pos = j;
}
if(pos != i) tukar(pos,i);
}
cout<<”selection sort selesai!”<
void insertion_sort()
{
int temp,i,j;
for(i=1;i
temp = data[i];
j = i -1;
while(data[j]>temp && j>=0)
{
data[j+1] = data[j];
j–;
}
data[j+1] = temp;
}
cout<<”insertion sort selesai!”<
void QuickSort(int L, int R) //the best sort i’ve ever had :)
{
int i, j;
int mid;
i = L;
j = R;
mid = data[(L+R) / 2];
do
{
while (data[i] < mid) i++;
while (data[j] > mid) j–;
if (i <= j)
{
tukar(i,j);
i++;
j–;
};
} while (i < j);
if (L < j) QuickSort(L, j);
if (i < R) QuickSort(i, R);
}
void Input()
{
cout<<”Masukkan jumlah data = “; cin>>n;
for(int i=0;i
cout<<”Masukkan data ke-”<<(i+1)<<” = “; cin>>data[i];
data2[i] = data[i];
}
}
void Tampil()
{
cout<<”Data : “<
cout<}
cout<
void AcakLagi()
{
for(int i=0;i
data[i] = data2[i];
}
cout<<”Data sudah teracak!”<
void main()
{
int pil;
clrscr();
do
{
clrscr();
cout<<”Program Sorting Komplit!!!”<
switch(pil)
{
case 1:Input(); break;
case 2:bubble_sort(); break;
case 3:exchange_sort(); break;
case 4:selection_sort(); break;
case 5:insertion_sort(); break;
case 6:QuickSort(0,n-1);
cout<<”quick sort selesai!”<
case 7:Tampil(); break;
case 8:AcakLagi(); break;
}
getch();
}while(pil!=9);
}
POINTER
Pointer merupakan tipe data berukuran 32 bit yang berisi satu nilai yang berpadanan
dengan alamat memori tertentu. Sebagai contoh, sebuah variabel P bertipe pointer
bernilai 0×0015FF4Z, berarti P menunjuk pada alamat memori 0015FF4Z. Pointer
dideklarasikan seperti variabel biasa dengan menambahkan tanda * (asterik) yang
mengawali nama variabel.
Bentuk Umum:
Contoh:
float * px;
Statement di atas mendeklarasikan variabel px yang merupakan pointer. Penyebutan
tipe data float berarti bahwa alamat memori yang ditunjuk oleh px dimaksudkan untuk
berisi data bertipe float.
ARRAY
Array adalah suatu struktur yang terdiri dari sejumlah elemen yang memiliki tipe data
yang sama. Elemen-elemen array tersusun secara sekuensial dalam memori komputer.
Array dapat berupa satu dimensi, dua dimensi, tiga dimensi ataupun banyak dimensi
(multi dimensi).
Bentuk umum:
n = jumlah elemen
STRUCTURE
Structure (struktur) adalah kumpulan elemen-elemen data yang digabungkan menjadi
satu kesatuan. Masing-masing elemen data tersebut dikenal dengan sebutan field. Field
data tersebut dapat memiliki tipe data yang sama ataupun berbeda. Walaupun fieldfield
tersebut berada dalam satu kesatuan, masing-masing field tersebut tetap dapat
diakses secara individual.
Field-field tersebut digabungkan menjadi satu dengan tujuan untuk kemudahan dalam
operasinya. Misalnya Anda ingin mencatat data-data mahasiswa dan pelajar dalam
sebuah program, Untuk membedakannya Anda dapat membuat sebuah record
mahasiswa yang terdiri dari field nim, nama, alamat dan ipk serta sebuah record pelajar
yang terdiri dari field-field nama, nonurut, alamat dan jumnilai. Dengan demikian akan
lebih mudah untuk membedakan keduanya.
LINKED LIST
Pada bab sebelumnya telah dijelaskan mengenai variabel array yang bersifat statis
(ukuran dan urutannya sudah pasti). Selain itu, ruang memori yang dipakai olehnya
tidak dapat dihapus bila array tersebut sudah tidak digunakan lagi pada saat program
dijalankan. Untuk memecahkan masalah di atas, kita dapat menggunakan variabel
pointer. Tipe data pointer bersifat dinamis, variabel akan dialokasikan hanya pada saat
dibutuhkan dan sesudah tidak dibutuhkan dapat direlokasikan kembali.
Setiap ingin menambahkan data, Anda selalu menggunakan variabel pointer yang baru,
akibatnya Anda akan membutuhkan banyak sekali pointer. Oleh karena itu, ada
baiknya jika Anda hanya menggunakan satu variabel pointer saja untuk menyimpan
banyak data dengan metode yang kita sebut Linked List. Linked list adalah sekumpulan
elemen bertipe sama, yang mempunyai keterurutan tertentu, yang setiap elemennya
terdiri dari dua bagian.
STACK
Stack adalah suatu tumpukan dari benda. Konsep utamanya adalah LIFO (Last In First
Out), benda yang terakhir masuk dalam stack akan menjadi benda pertama yang
dikeluarkan dari stack.
QUEUE
Jika diartikan secara harafiah, queue berarti antrian, queue merupakan salah satu contoh
aplikasi dari pembuatan double linked list yang cukup sering kita temui dalam
kehiduypan sehari-hari, misalnya saat Anda mengantri di loket untuk membeli tiket.
Istilah yang cukup sering dipakai seseorang masuk dalam sebuah antrian adalah
enqueue. Dalam suatu antrian, yang dating terlebih dahulu akan dilayani lebih dahulu.
Istilah yang sering dipakai bila seseorang keluar dari antrian adalah dequeue.
Walaupun berbeda implementasi, struktur data queue setidaknya harus memiliki
operasi-operasi sebagai berikut :
EnQueue Memasukkan data ke dalam antrian
DeQueue Mengeluarkan data terdepan dari antrian
Clear Menghapus seluruh antrian
IsEmpty Memeriksa apakah antrian kosong
IsFull Memeriksa apakah antrian penuh
TREE
Tree merupakan salah satu bentuk struktur data tidak linear yang menggambarkan
hubungan yang bersifat hierarkis (hubungan one to many) antara elemen-elemen. Tree
bias didefinisikan sebagai kumpulan simpul/node dengan elemen khusus yang disebut
Root. Notde lainnya terbagi menjadi himpunan-himpunan yang saling tak berhubungan
satu sama lain (disebut Subtree). Untuk lebih jelasnya, di bawah akan diuraikan istilahistilah
umum dalam tree.
Predecessor Node yang berada di atas node tertentu
Successor Node yang berada dibawah node tertentu
Ancestor Seluruh node yang terletak sebelum node tertentu dan terletak
pada jalur yang sama
Descendant Seluruh node yang terletak sebelum node tertentu dan terletak
pada jalur yang sama
Parent Predecessor satu level di atas suatu node
Child Successor satu level di bawah suatu node
Sibling Node-node yang memiliki parent yang sama dengan suatu
node
Subtree Bagian dari tree yang berupa suatu node beserta descendantnya
dan memiliki semua karakteristik dari tree tersebut.
Size Banyaknya node dalam suatu tree
Height Banyaknya tingkatan / level dalam suatu tree
Root Satu-satunya node khusus dalam tree yang tak punyak
predecessor
Leaf Node-node dalam tree yang tak memiliki successor
Degree Banyaknya child yang dimiliki suatu node
Ditulis dalam Uncategorized | Leave a Comment »
Apa itu Algoritma dan Struktur Data
Juni 23, 2009 by tyaradewi
Definisi
Algoritma:
prosedur terbatas yang terdiri beberapa operasi menyelesaikan suatu masalah (Ibaraki)
Program:
algoritma yang diimplementasikan dalam bahasa pemrograman tertentu
Struktur data
cara pengaturan data agar bisa disimpan memory komputer secara efisien
Hubungan antara Algoritma dengan Struktur Data
algoritma + struktur data = program
* Algoritma →penyelesaian satu masalah secara matematis
* Turing machine
– Model matematika komputer
– Memiliki tape dengan panjang tak terhingga sebagai alat penyimpan ingatan (memory)
– Running time, kecepatan tak terhingga
* Padahal komputer yang ada sangat terbatas baik memory maupun kecepatannya
Di dunia nyata, kemampuan komputer maupun memory sangat terbatas
* Performa algoritma yang ideal
– Memory yang diperlukan kecil,running time singkat
* Algoritma yang baik + Struktur data yang tepat = program yang baik
– Pemilihan algoritma dan struktur data yang tepat harus mempertimbangkan skala data, CPU, memori, dsb.
– Perlu pengetahuan algoritma dan struktur apa saja yang ada dan mungkin dipakai

Tidak ada komentar:
Posting Komentar