Thursday, February 28, 2013

Program animasi Stack dengan C++

#include <string>
#include <iostream>

using namespace std;

int top = -1;
char stack[128]; // secara program, jika stack sudah berisi lebih dari 128 item, ERROR.
char x;

void push()
{
        cout << "Masukkan satu karakter ";
        cin >> x;

        top++;
        stack[top] = x;

        cin.clear();
        cin.ignore(1, '\n');
}

void pop()
{
        if(top < 0)
        {
               cout << "Stack kosong" << endl;
               return;
        }

        x = stack[top];
        top--;

        cout << "Karakter yang terakhir masuk adalah " << x << endl;
}

void cetak()
{
        if(top < 0)
        {
               cout << "Stack kosong" << endl;
               return;
        }

        int i = 0;
        for(i = top; i >= 0; i--)
               cout << stack[i] << endl;

        // kalo mau dicetak dari yang pertama masuk pakai script dibawah
        //for(i = 0; i <= top; i++)
        //      cout << stack[i] << endl;
}

int main()
{
        string input = "";
        cout << "Pilihan yang dikenal adalah" << endl;
        cout << "\tpush" << endl;
        cout << "\tpop" << endl;
        cout << "\tcetak stack" << endl;
        cout << "\tquit" << endl;

        while(true)
        {
               cout << "Masukkan pilihan: ";

               getline(cin, input);

               if(input == "push")
               {
                       push();
               }
               else if(input == "pop")
               {
                       pop();
               }
               else if(input == "cetak stack")
               {
                       cetak();
               }
               else if(input == "quit")
               {
                       break;
               }
               else
               {
                       cout << "Perintah '" << input << "' tidak dikenal" << endl;
               }
        }

        cout << "Program Akan berhenti" << endl;

Wednesday, February 20, 2013

STRUKTUR DATA


Struktur data adalah cara menyimpan atau merepresentasikan data di dalam komputer agar bisa dipakai secara efisien Sedangkan data adalah representasi dari fakta dunia nyata. Fakta atau keterangan tentang kenyataan yang disimpan, direkam atau direpresentasikan dalam bentuk tulisan, suara, gambar, sinyal atau symbol

Secara garis besar type data dapat dikategorikan Menjadi :
a.       Type data sederhana tunggal, misalnya Integer, real, boolean dan karakter
b.       Type data sederhana majemuk, misalnya String

Struktur Data, meliputi.
a. Struktur data sederhana, misalnya array danrecord
b. Struktur data majemuk, yang terdiri
                 Linier         : Stack,
 Queue, serta
  List dan Multilist
                 Non Linier : Pohon Biner dan Graph

Perbedaan Tipe Data dan Obyek data

Tipe data adalah jenis data yang mampu ditangani oleh suatu bahasa pemrograman pada komputer.
Tiap-tiap bahasa pemrograman memiliki tipe data yang memungkinkan: Deklarasi terhadap variabel tipe data tersebut Menyediakan kumpulan operasi yang mungkin terhadap variabel bertipe data tersebut Jenis obyek data yang mungkin

Obyek Data adalah kumpulan elemen yang mungkin untuk suatu tipe data tertentu. 
Mis: integer mengacu pada obyek data -32768 s/d 32767, byte 0 s/d 255, string adalah kumpulan karakter maks 255 huruf
Struktur Data adalah cara penyimpanan dan pengorganisasian data-data pada memori komputer maupun file secara efektif sehingga dapat digunakan secara efisien, termasuk operasi-operasi di dalamnya.






Sort Algoritma

Definisi Sort
Sort adalah proses pengurutan data yang sebelumnya disusun secara acak sehingga menjadi tersusun secara teratur menurut suatu aturan tertentu. Pada umumnya terdapat 2 jenis pengurutan :
l Ascending (Naik)
l Descending (Turun)
Contoh Pengurutan Data
Contoh :
l Data Acak : 5 6 8 1 3 25 10
l Terurut
Ascending : 1 3 5 6 8 10 25
l Terurut
Descending : 25 10 8 6 5 3 1

Metode Pengurutan Data
Untuk melakukan proses pengurutan tersebut dapat digunakan berbagai macam cara / metode. Beberapa metoda diantaranya :
l Buble / Exchange Sort
l Selection Sort
l Insertion Sort
l Quick Sort

Bubble / Exchange Sort
Memindahkan elemen yang sekarang dengan elemen yang berikutnya, jika elemen sekarang > elemen berikutnya, maka tukar

Proses Pengurutan
Data paling akhir dibandingkan dengan data di depannya, jika ternyata lebih kecil maka tukar. Dan pengecekan yang sama dilakukan terhadap data yang selanjutnya sampai dengan data yang paling awal. 

Selection Sort
Membandingkan elemen yang sekarang dengan elemen yang berikutnya sampai dengan elemen yang terakhir. Jika ditemukan
elemen lain yang lebih kecil dari elemen sekarang maka dicatat posisinya dan kemudian ditukar. Dan begitu seterusnya.

Insertion Sort
Pengurutan dilakukan dengan cara membandingkan data ke-I (dimana I dimulai dari data ke-2 sampai dengan data terakhir)
dengan data berikutnya. Jika ditemukan data yang lebih kecil maka data tersebut disisipkan ke depan sesuai posisi yang seharusnya.

QUICK SORT
Membandingkan suatu elemen (disebut pivot) dengan elemen yang lain dan menyusunnya sedemikian rupa sehingga elemen- elemen lain yang lebih kecil daripada pivot tersebut terletak di sebelah kirinya dan elemen-elemen lain yang lebih besar daripada pivot tersebut terletak di sebelah kanannya. Sehingga dengan demikian telah terbntuk dua sublist, yang terletak di sebelah kiri dan kanan dari pivot. Lalu pada sublist kiri dan sublist kanan kita anggap sebuah list baru dan kita kerjakan proses yang sama seperti sebelumnya. Demikian seterusnya sampai tidak terdapat sublist lagi. Sehingga didalamnya telah terjadi proses Rekursif.