Showing posts with label algorithm. Show all posts
Showing posts with label algorithm. Show all posts

2/24/12

Project oh Project

In early 2012 i have started my college again. 4th semester, wtf it have been almost a half of my life time in this college. Finally my dream is happened, i will focus about my college , Taekwondo , and HMTI.
1. college project:
a)  Object oriented Programming : i will start programming again, now i use Java. of course programming will be my food, now i will force my self to swallow it. i will let my mind to think logically making program. The topic of big assignment haven't been decided. I still learn until looping, Looping oh looping, actually i still confuse using of each looping. hohoho. The addition is my Lecture is the special one who i can't guess the pepople type. My seniors say to be carefully if i am taught by him. we see latter. hahaha


b) Management Information System i will let my life to  explore my writing ablity. So i decide to develop my witing talent and i am ready to be admin in SIM blog of my class. I will do application of implementation SIM, and i still learn about database and making web too
It's not easy but i have to struggle my challange . I haven't decided the topic too, but i want to make it good as good.
c) Database System: i think this more interesting than progrmming because, here we learn about processsing data and make data easy to be used. I am familiar with, atribute, entity, object, and bbla bla bla. i decide to make database clothing for my big assignment.


12/16/11

Struktur data part 3

Berhubung saya suka sama cara dosen ngejelasinnya mata kuliah ini, maka saya mau bahas tentang tubes saya. Apa yang dijelasin di algoritma yang udah saya post sebelumnya. 

Yang saya bahas cuma double linked list dan binnary tree aja, soalnya tubesnya cuman dua itu aja...

1. Algoritma tree c++ 

Tree merupakan salah satu bentuk struktur data tidak linear yang menggambarkan
hubungan yang bersifat hierarkis (hubungan one to many) antara elemen-elemen.

Tree biasa didefinisikan sebagai kumpulan simpul/node dengan elemen khusus yang disebut Root.  

Node lainnya terbagi menjadi himpunan-himpunan yang saling tak berhubungan
satu sama lain (disebut Subtree). Untuk lebih jelasnya, di bawah akan diuraikan istilah-
istilah 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

Binary Tree
Binary Tree adalah tree dengan syarat bahwa tiap node hanya boleh memiliki maksimal
dua subtree dan kedua subtree tersebut harus terpisah. Sesuai dengan definisi tersebut
tiap node dalam binary tree hanya boleh memiliki paling banyak dua child.

Implementasi Binary Tree
Binary tree dapat diimplementasikan dalam C++ dengan menggunakan double
linkedlist.


dikutip dari : modul algoritma dan struktur data II stikom bali 

2. Double linked list 

implementasi binary tree

Elemen-elemen dihubungkan dengan dua pointer dalam satu elemen. Struktur ini
menyebabkan list melintas baik ke depan maupun ke belakang.
Masing-masing elemen pada double linked list terdiri dari tiga bagian, disamping
data dan pointer next, masing-masing elemen dilengkapi dengan pointer prev yang
menunjuk ke elemen sebelumnya. Double linked list dibentuk dengan menyusun
sejumlah elemen sehingga pointer next menunjuk ke elemen yang mengikutinya dan
pointer prev menunjuk ke elemen yang mendahuluinya.
Untuk menunjukkan head dari double linked list, maka pointer prev dari elemen
pertama menunjuk NULL. Untuk menunjukkan tail dari double linked list tersebut, maka
pointer next dari elemen terakhir menunjuk NULL. Susunan elemen yang dihubungkan
dalam bentuk double linked list dapat dilihat pada Gambar 2.3

Untuk melintas kembali melalui double linked list, kita gunakan pointer prev dari
elemen yang berurutan pada arah tail ke head. Double linked list mempunyai fleksibilitas
yang lebih tinggi daripada single linked list dalam perpindahan pada list. Bentuk ini
sangat berguna ketika akan meletakkan suatu elemen pada list dan dapat memilih
dengan lebih bijaksana bagaimana memindahkannya. Sebagai contoh, salah satu
fleksibilitas dari double linked list adalah dalam hal memindahkan elemen daripada
menggunakan single linked list.






 




12/15/11

struktur data part 2

ok, next post still abou my "big assignments" which i search in google and find out people blog. still about data structure.
i hope it can be useful, lets check it out

binnery seacrh

#include <stdio.h>

void tukar(int *, int *);
int angka,angka1,angka2, key1,key2,key3, pilih, tampung[10], tampung1[10], tampung2[10] , kondisi,mode,jml,jml1,jml2,data[10],data1[10],data2[10];

void selection(int x[], int n)
{
    int i, j, find, index, ubah=0;
    for(i=0; i<n; i++)
        printf("%d ", tampung[i]);
   
    for(i=0; i < n-1; i++) {
        find = i;
        kondisi = 0;
        for(j=i+1; j<n; j++) {           
            if(mode == 1)
                kondisi = x[j] < x[find];
            else
                kondisi = x[j] > x[find];
            if(kondisi) {
                find = j;
                ubah = 1;
            }
        }
       
        if(ubah) {
            tukar(&x[find], &x[i]);
            puts("");
            for(index=0; index<n; index++)
                printf("%d ", x[index]);
        }
    }
}
int modeUrut()
{
    int pil;
    do {
    printf("\n\2\2\2\2\2\2\2\2\2\2\2\2\2\2\2\2\2\2\2\2\2\2\2\2\2\2");
        puts("");
        puts("Pengurutan yang dipilih : ");
        puts("1. Ascending");
        puts("2. Descending");
        printf("Pilihan anda [1/2] : ");
        scanf("%d", &pil);
    printf("\2\2\2\2\2\2\2\2\2\2\2\2\2\2\2\2\2\2\2\2\2\2\2\2\2\2\n");
    } while((pil<1) || (pil>2));
    if(pil == 1)
        return 1;
    else
        return 2;
}
 void tukar (int *a, int *b)
{
    int temp;

    temp = *a;
    *a = *b;
    *b = temp;
}

void input_angka()
{int i;
    printf("\nPROGRAM BINARY SEARCH MENGGUNAKAN METODE SELECTION SEARCH\n ");
    printf("\nMASUKKAN JUMLAH ELEMENNYA(max 10) = ");
    scanf("%d", &jml);
    for(i=0; i<jml; i++)
    {
        printf("data ke-%d = ",i);
        scanf("%d", &data[i]);
        tampung[i] = data[i];
    }
        for(i=0; i<jml; i++)
            data[i] = tampung[i];
   
    mode = modeUrut();
    selection(data, jml);
}
int binary (int k[], int key, int n)   
{
    int low, hi, mid;
    low=0;
    hi=n-1;
    while (low<=hi)
    {
        mid=(low+hi)/2;
        if (key==k[mid])
            return(mid);
        if (key<k[mid])
            hi=mid-1;
        else
            low=mid+1;
    }
    return (-1);
}
void main()
{
    int hasil;
    char ulang;
        input_angka();
        do
        {
            printf("\ncari: ");
            scanf("%d", &key1);
            hasil=binary(data, key1, jml);
            if(hasil==-1)
                printf("\nANGKA TIDAK DITEMUKAN\n");
            else
                printf("\nANGKA %d KETEMU PADA INDEX KE %d\n", key1, hasil);
        fflush(stdin);
        printf("APAKAH ANDA INGIN MENGULANG PENCARIAN (y/t)? ");
        scanf("%c", &ulang);
        }
        while(ulang=='y'||ulang=='Y');
}
 
*******************************************************************************

Algoritma tree c++

#include <iostream.h>
#include <stdlib.h>

class BinarySearchTree
{
    //private:
    struct nodeTree
    {
        nodeTree* kiri;
        nodeTree* kanan;
        int     data;
};
nodeTree* root;

public:
    BinarySearchTree()
{
    root = NULL;
}

bool isEmpty() const { return root==NULL; }
void print_inorder();
void inorder(nodeTree*);
void print_preorder();
void preorder(nodeTree*);
void print_postorder();
void postorder(nodeTree*);
void insert(int);
void remove(int);
};

void BinarySearchTree::insert(int d)
{
    nodeTree* t = new nodeTree;
    nodeTree* parent;
    t->data = d;
    t->kiri = NULL;
    t->kanan = NULL;
    parent = NULL;

    if(isEmpty()) root = t;
    else
    {

        nodeTree* current;
        current = root;

    while(current)
    {
        parent = current;
        if(t->data > current->data) current = current->kanan;
        else current = current->kiri;
        }

            if(t->data < parent->data)
            parent->kiri = t;
            else
            parent->kanan = t;
        }
    }

void BinarySearchTree::remove(int d)
{
    //Locate the element
    bool found = false;
    if(isEmpty())
    {
        cout<<" pohon kosong "<<endl;
    return;
}

nodeTree* current;
nodeTree* parent;
current = root;

while(current != NULL)
{
    if(current->data == d)
    {
        found = true;
        break;
    }
    else
    {
        parent = current;
        if(d>current->data) current = current->kanan;
        else current = current->kiri;
    }
}
if(!found)
{
    cout<<" data tidak di dirikan "<<endl;
    return;
}

// Node dengan single child
if((current->kiri == NULL && current->kanan != NULL)|| (current->kiri != NULL
&& current->kanan == NULL))
{
    if(current->kiri == NULL && current->kanan != NULL)
    {
        if(parent->kiri == current)
        {
            parent->kiri = current->kanan;
            delete current;
        }
        else
        {
            parent->kanan = current->kanan;
            delete current;
        }
    }
    else
    {
    if(parent->kiri == current)
    {
        parent->kiri = current->kiri;
        delete current;
    }
    else
    {
        parent->kanan = current->kiri;
        delete current;
    }
}
return;
}

// node tidak mempunyai child node
if( current->kiri == NULL && current->kanan == NULL)
{
    if(parent->kiri == current ) parent->kiri = NULL;
    else parent->kanan = NULL;
    delete current;
    return;
}

//Node dengan 2 child node
// ganti node dengan nilai terkecil di subtree bagain kanan
if (current->kiri != NULL && current->kanan != NULL)
{
    nodeTree* temp;
    temp = current->kanan;
    if((temp->kiri == NULL) && (temp->kanan == NULL))
    {
        current = temp;
        delete temp;
        current->kanan = NULL;
    }
else
{

    if((current->kanan)->kiri != NULL)
    {
        nodeTree* lcurrent;
        nodeTree* lcurrp;
        lcurrp = current->kanan;
        lcurrent = (current->kanan)->kiri;
    while(lcurrent->kiri != NULL)
    {
        lcurrp = lcurrent;
        lcurrent = lcurrent->kiri;
    }
        current->data = lcurrent->data;
        delete lcurrent;
        lcurrp->kiri = NULL;
}
else
{
    nodeTree* tmp2;
    tmp2 = current->kanan;
    current->data = tmp2->data;
    current->kanan = tmp2->kanan;
    delete tmp2;
}

}
return;
}

}

void BinarySearchTree::print_inorder()
{
    inorder(root);
}

void BinarySearchTree::inorder(nodeTree* p)
{
    if(p != NULL)
    {
        if(p->kiri) inorder(p->kiri);
        cout<<" "<<p->data<<" ";
    if(p->kanan) inorder(p->kanan);
    }
        else return;
}

void BinarySearchTree::print_preorder()
{
    preorder(root);
}

void BinarySearchTree::preorder(nodeTree* p)
{
    if(p != NULL)
    {
        cout<<" "<<p->data<<" ";
        if(p->kiri) preorder(p->kiri);
        if(p->kanan) preorder(p->kanan);
    }
    else return;
}

void BinarySearchTree::print_postorder()
{
    postorder(root);
}

void BinarySearchTree::postorder(nodeTree* p)
{
    if(p != NULL)
    {
        if(p->kiri) postorder(p->kiri);
        if(p->kanan) postorder(p->kanan);
        cout<<" "<<p->data<<" ";
    }
    else return;
}

int main()
{
    BinarySearchTree b;
    int ch,tmp,tmp1;
    while(1)
    {
        cout<<endl<<endl;
        cout<<" Binary Search Tree Operations "<<endl;
        cout<<" ------------- "<<endl;
        cout<<" 1. Input nilai "<<endl;
        cout<<" 2. In-Order Traversal "<<endl;
        cout<<" 3. Pre-Order Traversal "<<endl;
        cout<<" 4. Post-Order Traversal "<<endl;
        cout<<" 5. Hapus "<<endl;
        cout<<" 6. Exit "<<endl;
        cout<<" Masukkan Pilihan : ";
        cin>>ch;
        switch(ch)
        {
            case 1 : cout<<" Input Angka : ";
                cin>>tmp;
                b.insert(tmp);
            break;
            case 2 : cout<<endl;
                cout<<" In-Order Traversal "<<endl;
                cout<<" -------------"<<endl;
                b.print_inorder();
            break;
            case 3 : cout<<endl;
                cout<<" Pre-Order Traversal "<<endl;
                cout<<" -------------"<<endl;
                b.print_preorder();
            break;
            case 4 : cout<<endl;
                cout<<" Post-Order Traversal "<<endl;
                cout<<"-------------"<<endl;
                b.print_postorder();
            break;
            case 5 : cout<<" Masukkan data yang akan dihapus : ";
                cin>>tmp1;
                b.remove(tmp1);
            break;
            case 6 :
                return 0;
        }
    }
*********************************************************************************
 
source : segokarak.blogspot.com




Struktur data part 1

THIS time to make my "big assignment" , but i have to do it with my spirits...
I haven't been able to do algoritm, so i find out from people blog.
i will share what i take, check it out


single linked list

#include "stdio.h"       
#include "stdlib.h"       
#include "iostream.h"

struct node
{
    int no;
    char nama[10];
    float datang, keluar;
    struct node *next; 
};
typedef struct node *simpul; char nama[10];

void main()
{   
simpul baru, head=NULL, tail=NULL, temp;
    int pilih;
    do {
        printf("**************************\n");
        printf("*       MENU NASABAH     *\n");
        printf("*    1. Insert Data      *\n");
        printf("*    2. View Data        *\n");
        printf("*    3. Search Data      *\n");
        printf("*    4. Delete Data      *\n");
        printf("*    5. Update Data      *\n");
        printf("*    6. Exit Program     *\n");
        printf("**************************\n");
        printf("  Silahkan Anda Pilih: ");
        scanf("%d", &pilih);
        printf("__________________________\n");
        switch(pilih)
        {case 1:
            char OK;
            do    {
                baru = (simpul) malloc(sizeof (struct node));
                printf("Masukkan Nomor Nasabah: ");
                scanf("%d", &baru->no);
                fflush(stdin);
                printf("Masukkan Nama: ");
                gets(baru->nama);
                fflush(stdin);
                printf("Masukkan Waktu Kedatangan: ");
                scanf("%g",&baru->datang);
                fflush(stdin);
                printf("Masukkan Waktu Keluar: ");
                scanf("%g",&baru->keluar);
                fflush(stdin);
                baru->next = NULL;
                if (head == NULL)
                {     head = baru; tail = baru;    }
                else
                {    tail->next = baru;    tail = baru;    }
                cout<<"Apakah Anda Ingin Mengulang Meng-Insert Data (y/n) ? ";
                cin>>OK;   
                cout<<endl;    }
            while(OK=='y');   
            break;
        case 2:    do    {    int a;
                printf("tampilkan secara\n1. maju\nmasukkan pilihan:");
                scanf("%d",&a);
                if(a==1)
                {    temp = head; 
                    while(temp!=NULL)
                    {    printf("\n%d ", temp->no);
                        printf("%s\n",temp->nama);
                        printf("%g\n",temp->datang);
                        printf("%g\n",temp->keluar);
                        temp = temp->next;    } printf("\n"); } 
                cout<<"Apakah Anda Ingin Mengulang Meng-View Data (y/n) ? ";
                cin>>OK;   
                cout<<endl;    }
            while(OK=='y');   
            break;
        case 3:    do    {    int cari,a;
                printf("Cari Angka: ");    scanf("%d", &cari);
                printf("pencarian secara\n1. maju\nmasukkan pilihan:");
                scanf("%d",&a);
                if(a==1)
                {    temp = head;
                    while((temp!=NULL)&&(temp->no!=cari))
                    {    temp = temp->next;    }
                    if(temp != NULL && temp->no == cari)
                        printf("SELAMAT...!!! Data Ditemukan\n");
                    else 
                        printf("MAAF...!!! Data Tidak Ditemukan\n");
                    printf("\n");    }
                cout<<"Apakah Anda Ingin Mengulang Meng-Search Data (y/n) ? ";
                cin>>OK;   
                cout<<endl;    }
            while(OK=='y');   
            break;
        case 4:    do    {    int hapus;    char jwb;    simpul next = NULL;
                printf("Hapus Nasabah: ");    scanf("%d", &hapus);    temp = head;
                while((temp!=NULL)&&(temp->no!=hapus))
                { temp = temp->next;    }
                if(temp != NULL && temp->no == hapus)
                {     cout<<"Yakin Dihapus? (y/t)";  cin>>jwb;
                  if(jwb == 'y')
                  {    if(temp->next != NULL )
                    {     temp->next;    }
                    else if (temp == head && head->next == NULL)
                    {    head = NULL;    }
                      else if (temp == head && head->next != NULL)
                    {    (head->next)->next=NULL;    head = head->next;    }
                        free(temp);    }
                  else 
                      printf("OK...!?!!?!, Data Batal Dihapus");}
                else 
                    printf("MAAF...!!! Data Tidak Ditemukan\n\n\n");
                cout<<"Apakah Anda Ingin Mengulang Meng-Delete Data (y/n) ? ";
                cin>>OK;   
                cout<<endl;    }
            while(OK=='y');   
            break;
        case 5:
            do
            {
                //prev=NULL;
                int cari;  
                printf("Cari No Nasabah: ");
                scanf("%d", &cari);
                temp = head;
                while((temp!=NULL)&&(temp->no!=cari))
                {
                    temp = temp->next;
                }
                if(temp != NULL && temp->no == cari)
                {
                    printf("masukkan no baru = ");
                    scanf("%d",&temp->no);
                    printf("masukkan nama baru = ");
                    scanf("%s",&temp->nama);
                    printf("Masukkan Waktu Kedatangan: ");
                    scanf("%g",&baru->datang);
                    printf("Masukkan Waktu Keluar: ");
                    scanf("%g",&baru->keluar);
                }
                else 
                    printf("MAAF...!!! Data Tidak Ditemukan\n");
                cout<<"Apakah Anda Ingin Mengulang Meng-Update Data (y/n) ? ";
                cin>>OK;
                cout<<endl;
            }
            while(OK=='y');
            break;
        }
    }while (pilih!=6);    }
 
*****************************************************************************88

double linked list

#include "stdio.h"       
#include "stdlib.h"       
#include "iostream.h"

struct node
{
    int npm;
    char nama[10];
    struct node *next;
    struct node *prev;  
};

typedef struct node *simpul;  
void main()
{   
simpul baru, head=NULL, tail=NULL, temp, prev;
    int pilih;
    do 
    {
        printf("**************************\n");
        printf("*          MENU          *\n");
        printf("*    1. Insert Data      *\n");
        printf("*    2. View Data        *\n");
        printf("*    3. Search Data      *\n");
        printf("*    4. Delete Data      *\n");
        printf("*    5. Update Data      *\n");
        printf("*    6. Exit Program     *\n");
        printf("**************************\n");
        printf("  Silahkan Anda Pilih: ");
        scanf("%d", &pilih);
        printf("__________________________\n");
        switch(pilih)
        {case 1:
            char OK;
            do   
            {
                baru = (simpul) malloc(sizeof (struct node));
                printf("Masukkan NPM: "); scanf("%d", &baru->npm);fflush(stdin);
                printf("Masukkan Nama: "); gets(baru->nama);
                baru->next = NULL;
                baru->prev = NULL;
                if (head == NULL)
                {
                     head = baru; tail = baru;   
                }
                else
                {    baru->prev = tail;
                    tail->next = baru;    tail = baru;   
                }
                cout<<"Apakah Anda Ingin Mengulang Meng-Insert Data (y/n) ? ";
                cin>>OK;   
                cout<<endl;
            }
            while(OK=='y');   
            break;
        case 2:    do
                {    int a;
                printf("tampilkan secara\n1. maju\n2. mundur\nmasukkan pilihan:");
                scanf("%d",&a);
                    if(a==1)
                    {    temp = head; 
                        while(temp!=NULL)
                        {   
                            printf("\n%d ", temp->npm);
                            cout<<temp->nama<<endl;
                            temp = temp->next;
                        } 
                        printf("\n");
                    } 
                    if(a==2)
                    {    temp = tail;
                        while(temp!=NULL)
                        {   
                            printf("\n%d ", temp->npm);
                            cout<<temp->nama<<endl;
                            temp = temp->prev;
                        } 
                        printf("\n");
                    } 
                    cout<<"Apakah Anda Ingin Mengulang Meng-View Data (y/n) ? ";
                cin>>OK;   
                cout<<endl;
                }
            while(OK=='y');   
            break;
        case 3:    do   
                {    int cari,a;
                printf("Cari Angka: ");    scanf("%d", &cari);
                printf("pencarian secara\n1. maju\n2. mundur\nmasukkan pilihan:");
                scanf("%d",&a);
                    if(a==1)
                    {    temp = head;
                        while((temp!=NULL)&&(temp->npm!=cari))
                            {   
                                temp = temp->next;
                            }
                        if(temp != NULL && temp->npm == cari)
                            printf("SELAMAT...!!! Data Ditemukan\n");
                        else 
                            printf("MAAF...!!! Data Tidak Ditemukan\n");
                            printf("\n");
                    }
                    if (a==2)
                    {    temp = tail;
                        while((temp!=NULL)&&(temp->npm!=cari))
                            {   
                                temp = temp->prev;
                            }
                        if(temp != NULL && temp->npm == cari)
                            printf("SELAMAT...!!! Data Ditemukan\n");
                        else 
                            printf("MAAF...!!! Data Tidak Ditemukan\n");
                            printf("\n");
                    }
                cout<<"Apakah Anda Ingin Mengulang Meng-Search Data (y/n) ? ";
                cin>>OK;   
                cout<<endl;   
                }
            while(OK=='y');   
            break;
        case 4:    do   
                {    int hapus;    char jwb;    simpul prev = NULL;
                printf("Hapus Angka: ");    scanf("%d", &hapus);    temp = head;
                    while((temp!=NULL)&&(temp->npm!=hapus))
                    {   
                        prev = temp;    temp = temp->next;
                    }
                    if(temp != NULL && temp->npm == hapus)
                    {    
                         cout<<"Yakin Dihapus? (y/t)";  cin>>jwb;
                         if(jwb == 'y')
                         {   
                                if(temp->next != NULL && temp->prev != NULL)
                                {   
                                    prev->next = temp->next;
                                    (temp->next)->prev=prev;   
                                }
                                else if (temp->next == NULL)
                                {   
                                    prev->next = NULL;
                                }
                                else if (temp == head && head->next == NULL)
                                {
                                    head = NULL;
                                }
                                  else if (temp == head && head->next != NULL)
                                {   
                                    (head->next)->prev=NULL;   
                                    head = head->next; 
                                }
                                free(temp);   
                        }
                        else 
                            printf("OK...!?!!?!, Data Batal Dihapus");
                    }
                    else 
                        printf("MAAF...!!! Data Tidak Ditemukan\n\n\n");
                cout<<"Apakah Anda Ingin Mengulang Meng-Delete Data (y/n) ? ";
                cin>>OK;   
                cout<<endl;   
                }
            while(OK=='y');   
            break;
        case 5:
            do
            {
                prev=NULL;
                int cari;
                printf("Cari Angka: ");
                scanf("%d", &cari);
                temp = head;
                /*while((temp!=NULL)&&(temp->npm!=cari))
                {
                    temp = temp->next;
                }*/
                if(temp != NULL && temp->npm == cari)
                {
                   
                    printf("masukkan NPM baru = ");
                    scanf("%d",&temp->npm);
                    printf("masukkan Nama baru = ");
                    scanf("%s",&temp->nama);
                }
                else //if(temp == NULL)
                    printf("MAAF...!!! Data Tidak Ditemukan\n");
                cout<<"Apakah Anda Ingin Mengulang Meng-Update Data (y/n) ? ";
                cin>>OK;
                cout<<endl;
            }
            while(OK=='y');
            break;
        }
    }while (pilih!=6);   
}
 
*********************************************************************
 
source: segokarak.blogspot.com