Rabu, 01 Juli 2009

tugas terakhir

Program Binary Search C++
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<cout<<”Masukkan data yang akan anda cari : “;
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 : “<for(int i=0;i{
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!!!”<cout<<”*********************************************”<cout<<” 1. Input Data”<cout<<” 2. Bubble Sort”<cout<<” 3. Exchange Sort”<cout<<” 4. Selection Sort”<cout<<” 5. Insertion Sort”<cout<<” 6. Quick Sort”<cout<<” 7. Tampilkan Data”<cout<<” 8. Acak Data”<cout<<” 9. Exit”<cout<<” Pilihan Anda = “; cin>>pil;
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!”<break;
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:

namaVariabel;

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:

NamaArray[n] = {elemen0, elemen1, elemen2,…..,n};

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