12/10/2017

contoh program selection sort, insertion sort, bubble sort, binary search, dan sequential search

halooo... pada kesempatan kali ini saya akan share 3 jenis program sorting(selection sort, insertion sort, bubble sort) dan 2 program searching(binary search, dan sequential search) dalam 1 program.


selection sort




















prinsip dalam teknik selection sort ini adalah:

 

1.  melakukan pengecekan dari data 1 sampai data ke n.
2.  jika dalam pengecekan ditemukan data yg nilainya lebih kecil dari data 1, maka akan dilakukan pertukaran. (jika data 1 adalah data terkecil maka lanjut saja ke data 2 dst)
3. jika data 1 sudah di sorting, lanjutkan ke data 2 dengan mengikuti langkah 1 dan 2


insertion sort














prinsip dalam teknik insertion sort ini adalah:

1. melakukan pengecekan dari data 1 sampai data ke n.
2. bandingkan data ke x(x=data ke 2 s/d data ke n)
3. bandingkan data ke x tersebut dengan data sebelumnya (x-1) jika nilainya lebih kecil dapat dilakukan pertukaran seperti yang seharusnya.
4. lakukan langkah 2-3 untuk data berikutnya(x+1 dst) sampai pengurutan selesai/optimal

 

bubble sort 













prinsip kerja dari teknis bubble sort ini adalah:

1. melakukan pengecekan dari data 1 sampai data ke n.
2. bandingkan data ke n dengan data sebelumnya(n-1).
3. jika data(n) lebih kecil maka dapat dilakukan pemindahan ke data yg sebelumnya satu per satu.
4. jika data(n) lebih besar tidak terjadi pemindahan.
5. lakukan langkah 2-3 sampai pengurutan sempurna


definisi binary search 

Binary search adalah metode pencarian suatu data atau elemen di dalam suatu array dengan kondisi data dalam keadaan terurut. Proses pencarian binary search hanya dapat dilakukan pada sekumpulan data yang sudah diurutkan terlebih dahulu.


definisi sequential search

Adalah suatu teknik pencarian data dalam array (1 dimensi) yang akan menelusuri semua elemen-elemen array dari awal sampai akhir, dimana data-data tidak perlu diurutkan terlebih dahulu. Pencarian berurutan menggunakan prinsip sebagai berikut : data yang ada dibandingkan satu per satu secara berurutan dengan yang dicari sampai data tersebut ditemukan atau tidak ditemukan.


contoh program contoh program selection sort, insertion sort, bubble sort, binary search, dan sequential search

#include<iostream>
#include<conio.h>
#include<stdlib.h>
using namespace std;

int data[50];
int n;

void tukar(int a, int b)//selection sort
{
int t;
t=data[b];
data[b]=data[a];
data[a]=t;
}

void selectionsort()
{
int pos,i,j;


cout<<"-------------------------------------------------"<<endl;
cout<<"SELECTION SORT ASCENDING"<<endl;
cout<<"-------------------------------------------------"<<endl;
cout<<"INPUTKAN BANYAK DATA = ";
cin>>n;
cout<<"-------------------------------------------------"<<endl;

for(int i=0;i<n;i++)
{
    cout<<"INPUTKAN DATA KE-"<<(i+1)<<" = " ;
    cin>>data[i];
}
    cout<<"-------------------------------------------------"<<endl;
    cout<<"DATA YANG DIINPUTKAN :"<<endl;
   
for(i=0;i<n;i++)
{
cout<<data[i]<<" ";
}
cout<<endl<<"-------------------------------------------------"<<endl;

for(i=0;i<n-1;i++)
{
    pos=i;
    for(j=i+1;j<n;j++)
{
    if(data[j]<data[pos])pos=j;
}
    if(pos!=i) tukar(pos,i);
}

cout<<"DATA YANG TELAH DIURUTKAN SECARA ASCENDING : "<<endl;
for(int i=0;i<n;i++)
{
    cout<<data[i]<<" ";
}
cout<<endl;

cout<<"-------------------------------------------------"<<endl;
cout<<"SELECTION SORT SELESAI !"<<endl;
cout<<"-------------------------------------------------"<<endl;

}

void insertionsort()
{
    int tmp,i,j;
   
    cout<<"-------------------------------------------------"<<endl;
    cout<<"INSERTION SORT ASCENDING"<<endl;
    cout<<"-------------------------------------------------"<<endl;
    cout<<"INPUTKAN BANYAKNYA DATA = ";
    cin>>n;
    cout<<"-------------------------------------------------"<<endl;
   
    for(int i=0;i<n;i++)
    {
        cout<<"INPUTKAN DATA KE-"<<(i+1)<<" = " ;
        cin>>data[i];
    }

    cout<<"-------------------------------------------------"<<endl;
    cout<<"DATA YANG DIINPUTKAN :"<<endl;
    for(i=0;i<n;i++)
    {
        cout<<data[i]<<" ";
    }
    cout<<endl<<"-------------------------------------------------"<<endl;

    for(i=1;i<n;i++)
    {
        tmp=data[i];
        j=i-1;
        while(data[j]>tmp && j>=0)
        {
            data[j+1]=data[j];
            j--;
        }
        data[j+1]=tmp;
    }

    cout<<"DATA YANG TELAH DIURUTKAN SECARA ASCENDING : "<<endl;
    for(int i=0;i<n;i++)
    {
        cout<<data[i]<<" ";
    }
    cout<<endl;

    cout<<"-------------------------------------------------"<<endl;
    cout<<"INSERTION SORT SELESAI !"<<endl;
    cout<<"-------------------------------------------------"<<endl;


}

void bubblesort()
{
   
    int i, j, tmp;
   

    cout<<"---------------------------------------------"<<endl;
    cout<<"BUBBLE SORT ASCENDING"<<endl;
    cout<<"---------------------------------------------"<<endl;
    cout<<"INPUTKAN BANYAKNYA DATA : ";
    cin>>n;
    cout<<"---------------------------------------------"<<endl;
    for(i=0; i<n; i++)
    {
        cout<<"INPUTKAN BILANGAN KE-["<<(i+1)<<"] : ";
        cin>>data[i];
    }

    cout<<"---------------------------------------------"<<endl;
    cout<<"DATA YANG DIINPUTKAN : "<<endl;
    for(i=0; i<n; i++)
    {
        cout<<data[i]<<" ";
    }
    cout<<endl<<"---------------------------------------------"<<endl;

    for(i=0; i<n; i++)
    {
        for(j=i+1; j<n; j++)
        {
            if(data[i]>data[j])
                {
                    tmp = data[i];
                    data[i] = data[j];
                    data[j] = tmp;
                }
        }
    }

    cout<<"DATA SETELAH DIURUTKAN SECARA ASCENDING : "<<endl;
    for(i=0; i<n; i++)
    {
        cout<<data[i]<<" ";
    }
    cout<<endl<<"---------------------------------------------"<<endl;
    cout<<"BUBBLE SORT SELESAI !"<<endl;
    cout<<"---------------------------------------------"<<endl;

}
void binary_search()
{
    int data[50],n,i,j,k,t,low,high,mid,flag;
   
    cout<<"masukkan jumlah data : ";
    cin>>n;
    cout<<endl;
    for(i=0;i<n;i++)
    {
        cout<<"masukkan data ke - "<<(i+1)<<" = ";
        cin>>data[i];
    }
   
   
    for(i=0;i<n;i++)
    {
        for(j=i+1;j<n;j++)
        {
            if(data[i]>data[j])
            {
                t=data[i];
                data[i]=data[j];
                data[j]=t;
            }
        }
    }
    cout<<"\nmasukkan data yang ingin dicari : ";
    cin>>k;
   
    flag=0;
    high=n;
    low=0;
    while(low<=high)
    {
        mid=(low+high)/2;
        if(data[mid]==k)
        {
            flag++;
        }
        if(data[mid]<k)
        {
            low=mid+1;
        }
        else
        {
            high=mid-1;
        }
    }
    if(flag>0)
    {
        cout<<"data " <<k<<" yang dicari ada"<<endl;
    }
    else
    {
        cout<<"data tidak ditemukan"<<endl;
    }
   
   
}
void sequence_search()
{
    int data[50],index[50];
    int i,j,k,n;
   
    cout<<"masukkan jumlah data : ";
    cin>>n;
    cout<<endl;
    for(i=0;i<n;i++)
    {
        cout<<"masukkan data ke - "<<(i+1)<<" = ";
        cin>>data[i];
    }
   
    cout<<"\nmasukkan data yang ingin dicari : ";
    cin>>k;
   
   
    j=0;
   
    for(i=0;i<n;i++)
    {
        if(data[i]==k)
        {
            index[j]=i;
            j++;
        }
    }
   
    if(j>0)
    {
        cout<<"Data "<<k<<"yang dicari ada "<<j<<" buah "<<endl;
        cout<<"data tersebut terdapat dalam index ke : ";
        for(i=0;i<j;i++)
        {
            cout<<index[i]<<" ";
        }
        cout<<endl;
    }
    else
    {
        cout<<"data tidak ditemukan "<<endl;
    }
}


main()
{
    int n,z;
    v:
    system("cls");
    cout<<"---------------------------------"<<endl;
    cout<<"|Program sorting dan searching  |"<<endl;
    cout<<"---------------------------------"<<endl;
    cout<<"1.selection sort"<<endl;
    cout<<"2.insertion sort"<<endl;
    cout<<"3.bubble sort"<<endl;
    cout<<"4.binary search"<<endl;
    cout<<"5.sequential search"<<endl<<endl;
    cout<<"masukkan pilihan (1-5) : ";
    cin>>n;
    if(n==1)
    {
        system("cls");
        selectionsort();
        cout<<"\ningin kembali ke menu? (1/2) : ";
        cin>>z;
        if(z==1)
        {
            goto v;
        }
        else
        {
            goto a;
        }
    }
    else if(n==2)
    {
        system("cls");
        insertionsort();
        cout<<"\ningin kembali ke menu? (1/2) : ";
        cin>>z;
        if(z==1)
        {
            goto v;
        }
        else
        {
            goto a;
        }
    }
    else if(n==3)
    {
        system("cls");
        bubblesort();
        cout<<"\ningin kembali ke menu? (1/2) : ";
        cin>>z;
        if(z==1)
        {
            goto v;
        }
        else
        {
            goto a;
        }
    }
    else if(n==4)
    {
        system("cls");
        cout<<"Binary search"<<endl<<endl;
        binary_search();
        cout<<"\ningin kembali ke menu? (1/2) : ";
        cin>>z;
        if(z==1)
        {
            goto v;
        }
        else
        {
            goto a;
        }
    }
    else
    {
        system("cls");
        cout<<"Sequential search "<<endl<<endl;
        sequence_search();
        cout<<"\ningin kembali ke menu? (1/2) : ";
        cin>>z;
        if(z==1)
        {
            goto v;
        }
        else
        {
            goto a;
        }
    }
    a:
    getch();
}

silahkan copy dan paste kodingan diatas ke kompiler masing"(lebih bagus diketik ulang) jika ada pertanyaan silahkan bertanya pada kolom komentar.

 

12/09/2017

contoh program sorting c++ part2

haloo... post kali ini saya akan share program sorting yang sedikit agak kompleks, dimana program ini dapat menginput nama koki, id koki, nama makanan, id makanan ,dan jenis makanan. lalu dapat diurutkan/disorting berdasarkan idnya masing". program ini adalah soal uts saya dulu:v, jadi saya share lagi disini siapa tau dapat membantu. biar ga bingung langsung saja lihat kode program dibawah ini.

source kode program sorting C++

#include <iostream>
#include <conio.h>
#include <iomanip>
#include <stdlib.h>
using namespace std;

struct datad
{
    string nama;
    int id;
    string jenis;
   
   
    void input (datad a[],datad b[], int k,int l,int r)
{
    if(r==1)
    {
        for (int i=0; i<k; i++)
        {
            cin.ignore();
            cout<<"Nama  = ";getline(cin,a[i].nama);
            cout<<"ID    = ";cin>>a[i].id;
           
        }
    }
    else
    {
        for (int i=0; i<l; i++)
        {
            cin.ignore();
            cout<<"Nama makanan  = ";getline(cin,b[i].nama);
            cout<<"ID             = ";cin>>b[i].id;
            cin.ignore();
            cout<<"Jenis makanan = ";getline(cin,b[i].jenis);
        }
    }
}
};



void menu()
{

    cout<<"----------------------------------\n";
    cout<<"               menu                 \n";
    cout<<"----------------------------------\n";
    cout<<"1. Input data koki\n";
    cout<<"2. Input data makanan\n";
    cout<<"3. Output data koki\n";
    cout<<"4. Output data makanan\n";
    cout<<"5. Sorting data koki menurut id\n";
    cout<<"6. Sorting data makanan menurut id\n";
    cout<<"7. Edit data koki\n";
    cout<<"8. Edit data makanan\n";
    cout<<"9. Keluar\n\n";
    cout<<"Pilihan = ";
}



void output (datad a[],datad b[], int k,int l,int r)
{
    if(r==1)
    {
        cout<<endl<<setw(20)<<left<<"Nama"<<setw(10)<<left<<"ID"<<endl;
        for (int i=0; i<k; i++)
        {
            cout<<setw(20)<<left<<a[i].nama<<setw(10)<<left<<a[i].id<<a[i].jenis<<endl;
        }
    }
    else
    {
        cout<<endl<<setw(20)<<left<<"Nama makanan"<<setw(10)<<left<<"ID"<<"Jenis makanan"<<endl;
        for (int i=0; i<l; i++)
        {
            cout<<setw(20)<<left<<b[i].nama<<setw(10)<<left<<b[i].id<<b[i].jenis<<endl;
        }
    }
}



void sorting (datad a[],datad b[], int k,int l,int r)
{
    datad temp;
    if(r==1)
    {
        for(int i=0; i<k; i++)
        {
            for(int j=0; j<k; j++)
            {
                if (a[i].id<a[j].id)
                {
                    a[i].nama.swap (a[j].nama);
                   
                    temp.id=a[i].id;
                    a[i].id=a[j].id;
                    //a[j].id=temp.id;
                   
                }
            }
        }
    }
    else
    {
        for(int i=0; i<l; i++)
        {
            for(int j=0; j<l; j++)
            {
                if (b[i].id<b[j].id)
                {
                    b[i].nama.swap (b[j].nama);
                   
                    temp.id=b[i].id;
                    b[i].id=b[j].id;
                    b[j].id=temp.id;
                   
                   
                }
            }
        }
    }
}

void edit (datad a[],datad b[], int k,int f,int r)
{
    int asd;
    cout<<"Masukkan ID yang ingin diedit = ";cin>>asd;
    if(r==1)
    {
        for(int i=0;i<k;i++)
        {
            if(asd==a[i].id)
            {
                int l;
                cout<<"\n\n1.Nama\n";
                cout<<"2.ID\n\n";
                cout<<"pilih = ";cin>>l;   
                cin.ignore();
                system("cls");
                if(l==1)
                {
                    cout<<"Nama = ";
                    getline(cin,a[i].nama);
                }
                else if(l==2)
                {
                    cout<<"ID = ";
                    cin>>a[i].id;
                }
               
            }
        }
    }
    else
    {
        for(int i=0;i<f;i++)
        {
            if(asd==b[i].id)
            {
                int l;
                cout<<"\n\n1.Nama\n";
                cout<<"2.ID\n";
                cout<<"3.jenis makanan\n\n";
                cout<<"pilih = ";cin>>l;
                system("cls");
                cin.ignore();
                if(l==1)
                {
                    cout<<"Nama makanan = ";
                    getline(cin,b[i].nama);
                }
                else if(l==2)
                {
                    cout<<"ID = ";
                    cin>>b[i].id;
                }
                else if(l==3)
                {
                    cout<<"Jenis makanan = ";
                    getline(cin,b[i].jenis);
                }
            }
        }
    }
}


main()
{
    datad dat;
   
    int p,kd=0,ko=0;
    datad koki[50];
    datad id[50];
   
    l:
    system("cls");
    menu();
    cin>>p;
    switch (p)
    {
        case 1:
            {
                system("cls");
                cout<<"Banyak Data = ";
                cin>>kd;
                system("cls");
                dat.input(koki,id,kd,ko,1);
                goto l;
            }
        case 2:
            {
                system("cls");
                cout<<"Banyak Data = ";
                cin>>ko;
                system("cls");
                dat.input(koki,id,kd,ko,2);
                goto l;
            }
        case 3:
            {
                output(koki,id,kd,ko,1);
                getch();
                goto l;
            }
        case 4:
            {
                output(koki,id,kd,ko,2);
                getch();
                goto l;
            }
       
        case 5:
            {
                sorting(koki,id,kd,ko,1);
                output(koki,id,kd,ko,1);
                cout<<endl<<endl;
                getch();
                goto l;
            }
        case 6:
            {
                sorting(koki,id,kd,ko,2);
                output(koki,id,kd,ko,2);
                cout<<endl<<endl;
                getch();
                goto l;
            }
        case 7:
            {
                output(koki,id,kd,ko,1);
                cout<<endl<<endl;
                edit(koki,id,kd,ko,1);
                goto l;
            }
        case 8:
            {
                output(koki,id,kd,ko,2);
                cout<<endl<<endl;
                edit(koki,id,kd,ko,2);
                goto l;
            }
        case 9:
            {
                cout<<"Selesai";
                break;
            }
    }
}

silahkan copy dan pasti kode program tersebut pada compiler anda(ketik ulang biar makin ngerti
) dan jika ada pertanyaan seputar kodingan diatas silahkan bertanya pada kolom komentar.

 


12/06/2017

contoh program sorting C++ part 1

haloo...pada kesempatan kali ini saya akan mencoba share source kode program sorting (dalam bahasa c++). nahh buat yang belum tau sorting itu apa? akan saya sertakan juga definisi dari setiap jenis sorting yang saya tau.

definisi sorting

sorting adalah sebuah proses untuk mengatur beberapa data/objek sesuai aturan tertentu. urutannya ada yang menaik(ascending) dan menurun(descending), atau bisa disebut "dari data terbesar ke data terkecil" dan begitu juga sebaliknya.

jenis-jenis sorting

1.selection sort (pengurutan maksimun-minimum/minimum-maksimum)
2.bubble sort (pengurutan gelembung)
3.insertion sort (pengurutan sisip)

nahhh kira-kira itu definisi singkat dari sorting, untuk kali ini saya akan share source kode program dengan menggunakan selection sort(ascending/pengurutan dari data terbesar) untuk menentukan nilai siswa apakah dia diterima,cadangan atau,ditolak pada suatu tes. dengan menginput nama dan nilai.

berikut adalah soal dari source kode dibawah:
10. Buatlah struktur data of struct berpointer untuk 100 siswa SMK dengan daftar item
data sebagai berikut :

Nama string 40 karakter,
Hasil-Test Integer,
KET string 20 karakter,

Kemudian entrykan 20 data teman2 sekelas anda !!, dapat dilakukan dgn inputan
data (C input/cin), atau inisialisasikan/letakan langsung dalam deklarasi struct
berpointer : yang tampilan Input data : 1 to n
Data -1 : Entry Data

Nama : .........
Hasil-Test : .............
Keterangann : ......
Sampai Data-n

Untuk Keterangann bila menginput hasil test Tekan enter nilai keterangann akan
muncul, bila hasil-test >=80 ket “DITERIMA”, bila hasil-test >=70 and hasil-test <
80 ket “CADANGAN”, bila hasil-test < 70 ket “DITOLAK”. Dan tampilkan semua isi
data struct tsb dalam tabel, berikut :

DAFTAR SELEKSI ANGGOTA PMR SMA TARUNA
   No. Nama HASIL-TEST KETERANGAN
.... ....... ........... .......
Kemudian urutkan data yang tersimpan dalam struct berpointer tsb dengan
methode Selection sort dari terkecil berdasarkan nama : Hasil sort

DAFTAR SELEKSI ANGGOTA PMR SMA TARUNA
No. Nama HASIL-TEST KETERANGANN
.... ....... ........... .......
dan inilah source kode untuk menjawab soal diatas:

#include<iostream>
#include<conio.h>
#include<iomanip>

using namespace std;
struct mahasiswa
{
   
    string nama[40];
    int hasiltes[20];


};

main()
{
    int n,tmp,i;
   
    mahasiswa mhs;
//    input array
    cout<<"masukkan banyak data : ";
    cin>>n;
    for (int i=0; i<n; i++)
    {
        cout<<" Nama         : ";cin>>mhs.nama[i];
        cout<<" hasil Tes     = ";cin>>mhs.hasiltes[i];

        cout<<endl;
    }
//   
//    selection sort rumus


    for ( i=0; i<n; i++)
               {
                       for (int j=i+1;j<n; j++)
                       {
                           if (mhs.hasiltes[i]< mhs.hasiltes[j])
                           {
                               mhs.nama[i].swap (mhs.nama[j]);
                              
                            tmp=mhs.hasiltes[i];
                            mhs.hasiltes[i]=mhs.hasiltes[j];
                            mhs.hasiltes[j]=tmp;
                       
                        }
                       }   
                }
//   

//    output setelah disort           
            cout<<" --------------------------------------------------------------------------"<<endl;
            cout<<" |"<<setw(5)<<" NAMA "<<setw(3)<<"|"<<setw(15)<<"         HASIL TES"<<setw(20)<<"|"<<setw(10)<<"KETERANGAN"<<setw(10)<<"|";
            cout<<" \n --------------------------------------------------------------------------";
           
            for(int i=0; i<n; i++)
                  {
                     
                     
                       if(mhs.hasiltes[i]>=80 && mhs.hasiltes[i]<=100)
                    {
                    cout<<"\n |"<<setw(5)<<mhs.nama[i]<<setw(6)<<"|"<<setw(15)<<mhs.hasiltes[i]<<setw(27)<<"|"<<setw(10)<<"DITERIMA"<<setw(10)<<"|";
                    cout<<" \n --------------------------------------------------------------------------";
                    }
                   
                    if(mhs.hasiltes[i]>=70 && mhs.hasiltes[i]<80)
                    {
                    cout<<"\n |"<<setw(5)<<mhs.nama[i]<<setw(6)<<"|"<<setw(15)<<mhs.hasiltes[i]<<setw(27)<<"|"<<setw(10)<<"CADANGAN"<<setw(10)<<"|";
                    cout<<" \n --------------------------------------------------------------------------";
                    }
                   
                    if(mhs.hasiltes[i]<70)
                    {
                    cout<<"\n |"<<setw(5)<<mhs.nama[i]<<setw(6)<<"|"<<setw(15)<<mhs.hasiltes[i]<<setw(27)<<"|"<<setw(10)<<"DITOLAK"<<setw(10)<<"|";
                    cout<<" \n --------------------------------------------------------------------------";
                    }
                }
           
   
}

berikut adalah output dari program sorting diatas


silahkan di copy dan paste pada compiler kalian(lebih baik diketik ulang supaya kalian mengerti) dan jika ada pertanyaan silahkan bertanya pada kolom komentar. terimakasihh..


12/03/2017

Contoh program tree (pre order, in order, post order) c++

haloo...dalam post kali ini saya akan share source kode
program tree dalam bahasa c++. semoga dapat membantu.

dibawah ini adalah contoh program tree(dalah bahasa c++) untuk menginput nama nim dan email, dan dapat ditampilkan secara "pre order" "in order" dan "post order".


#include <iostream>
#include <conio.h>
#include <stdlib.h> // dibutuhkan untuk system("cls");
#include<iomanip>
using namespace std;

struct tree_node
{
    tree_node* left;
    tree_node* right;
    tree_node* temp;
    tree_node* help;
    tree_node* height;
    string nomor;
    string nama;
    string nim;
    string email;

};

tree_node* root;

bool isEmpty()
{return root==NULL;}

void insert(string no, string nm,string n,string ml)
{
    tree_node* t = new tree_node;
    tree_node* parent;
    t->nomor = no;
    t->nama = nm;
    t->nim = n;
    t->email= ml;
    t->left = NULL;
    t->right = NULL;
    parent = NULL;
        if(isEmpty())root = t;
        else
        {
            tree_node* curr;
            curr = root;

                while(curr!=NULL)
                    {
                        parent = curr;
                            if(t->nomor > curr->nomor){
                                curr = curr->right;
                            }
                            else if(t->nama > curr->nama){
                                curr = curr->right;
                            }
                            else if(t->nim > curr->nim){
                                curr = curr->right;
                            }
                            else if(t->email > curr->email){
                                curr = curr->right;
                            }
                            else curr = curr->left;
                    }       
       
        if(t->nomor < parent->nomor){
            parent->left = t;       
        }
        else if(t->nama < parent->nama){
            parent->left = t;       
        }
        else if(t->nim < parent->nim){
            parent->left = t;       
        }
        else if(t->email < parent->email){
            parent->left = t;       
        }
        else
            parent->right = t;
        }
}

void inorder(tree_node* p)
{
        if(p!=NULL)
        {   
            if(p->left)
                inorder(p->left);
                cout<<" |"<<p->nomor<<" | "<<p->nama<<"                      | "<<p->nim<<"                |   "<<p->email<<endl;
                    if(p->right)
                        inorder(p->right);
        }
        else
        return;
}
void postorder(tree_node* p)
          {
               if(p!=NULL)
               {
                    postorder(p->left);
                    postorder(p->right);
                    cout<<" |"<<p->nomor<<" | "<<p->nama<<"                      | "<<p->nim<<"                |   "<<p->email<<endl;
               }
              
               else
               return;
          }

void preorder(tree_node* p)
{
    if(p != NULL)
    {
        cout<<" |"<<p->nomor<<" | "<<p->nama<<"                      | "<<p->nim<<"                |   "<<p->email<<endl;   
        if(p->left)
            preorder(p->left);
        if(p->right)
            preorder(p->right);
    }

    else
        return;
}

void print_preorder()
{
    preorder(root);
}

void print_postorder()
{
postorder(root);
}

void print_inorder()
{
inorder(root);
}
int height(tree_node *root)
{
       if(root == NULL)
              return -1;
       else{
              int u = height(root->left);
        int v = height(root->right);
        if(u > v)
          return u + 1;
        else
          return v + 1;
       }
}


int main()
{
root=NULL;
string x, tmp,t,o;
int ch;
int del;

while(1)
{
system("cls"); // Saya mengganti scrclr() karena dicompiler sy tidak ada fungsi tersebut
cout<<endl;
cout<<"Menu Utama Operasi Pohon Biner"<<endl;
cout<<"--------------------"<<endl;
cout<<"1. Insert/Tambah Data"<<endl;
cout<<"2. Kunjungan In-Order"<<endl;
cout<<"3. Kunjungan Pre-Order"<<endl;
cout<<"4. Kunjungan Post-Order"<<endl;
cout<<"5. Exit"<<endl;
cout<<"Pilihan Anda : ";
cin>>ch;
cout<<endl;
switch(ch)
{
case 1 :
cout<<"- NOMOR : ";
cin>>x;
cout<<"- Nama : ";
cin>>tmp;
cout<<"- NIM : ";
cin>>t;
cout<<"- Email : ";
cin>>o;
insert(x,tmp,t,o);


break;
case 2 : cout<<endl;
cout<<"Kunjungan In-Order"<<endl;
cout<<"---------------"<<endl;
cout<<" --------------------------------------------------------------------------"<<endl;
        cout<<" |No|"<<setw(10)<<"         NAMA "<<setw(15)<<"|"<<setw(5)<<"      NIM  "<<setw(10)<<"|"<<setw(10)<<"e-MAIL"<<setw(10)<<"|";
        cout<<" \n --------------------------------------------------------------------------"<<endl;
print_inorder();getch();
break;
case 3 :
        cout<<" --------------------------------------------------------------------------"<<endl;
        cout<<" |No|"<<setw(10)<<"         NAMA "<<setw(15)<<"|"<<setw(5)<<"      NIM   "<<setw(10)<<"|"<<setw(10)<<"e-MAIL"<<setw(10)<<"|";
        cout<<" \n --------------------------------------------------------------------------"<<endl;
           
    print_preorder();getch();
break;
case 4 : cout<<endl;
cout<<"Kunjungan In-Order"<<endl;
cout<<"---------------"<<endl;
cout<<" --------------------------------------------------------------------------"<<endl;
        cout<<" |No|"<<setw(10)<<"         NAMA "<<setw(15)<<"|"<<setw(5)<<"      NIM   "<<setw(10)<<"|"<<setw(10)<<"e-MAIL"<<setw(10)<<"|";
        cout<<" \n --------------------------------------------------------------------------"<<endl;
print_postorder();getch();
break;
case 5 : return 0;
break;
default: cout<<"Pilihan yang Anda Masukkan salah!"<<endl;
getch();
break;
}
}
}

berikut adalah output dari program diatas

copy dan paste pada compiler kalian(lebih baik ketik ulang biar ngerti) dan jika ada pertanyaan silahkan bertanya pada kolom komentar... thanks!!