Phonebook Sederhana dengan insertion sort

 
Notasi :
Judul : phonebook dan insertionsort
oleh : rizky syah gumelar
tanggal : 9 april 2022
deskripsi :
 
Kamus Global:
arraynama[] ß string, array
arraynomor[] ß string, array
i = 0 ß interger (digunakan sebagai awalan array sekaligus batas cetak array)
 
Kamus Fungsi/Prosedur:
Tambah() ß void (digunakan untuk input kontak)
insertionSort() ß void (digunakan untuk mengurutkan data array. Data akan diurutkan berdasarkan nama)
 
int main(){
            Judul : Fungsi Utama
            Kamus local : pilih ß interger (digunakan untuk memilih menu pada switch case)
            Deskripsi : Fungsi utama ini berisi tampilan menu, looping, dan switch case untuk                         memilih aksi
 
Do{
Output “======== PHONEBOOK ========”
1.     Tambah Kontak
2.     Urutkan Nomor Telepon
3.     Selesai
Output “Masukkan Pilihan : “
Input pilih
 
Switch(pilih){
   Case 1 = tambah(), break
   Case 2 = insertSort(), break
   Case 3 = return 0, break
   Default  = Output “Pilihan anda salah.” , break
}
}while(1) à (program akan terus menulang sampai kita inputkan sesuai dengan case 3)
}
 
void tambah(){
    Output “Masukkan Nama :”
    Input  arrayNama[i]
    Output "Masukkan Nomor Telepon: "
    Input arrayNomor[i]
    i = i+1
 
    //cetak table menggunakan perulangan
    }
}
 
void insertSort(){
    KAMUS LOKAL :
    int x = 1
    int y
    string keyNama, keyNomor //untuk menampung data saat swapping
 
    while(x<i){
            //menampung data ke variable lain
        keyNama = arrayNama[x]
        keyNomor = arrayNomor[x]
 
        y = x-1
        while(y>=0 && arrayNama[y] > keyNama){
            //bertukar
            arrayNama[y+1] = arrayNama[y]
            arrayNomor[y+1] = arrayNomor[y]
 
            //Kembali ke index awal
            y = y - 1
        }
        arrayNama[y+1] = keyNama
        arrayNomor[y+1] = keyNomor
        x = x + 1 //increment
    }
 
    //cetak table menggunakan perulangan
}
 
Koding :

//JUDUL : PHONEBOOK DAN INSERTIONSORT
//OLEH : RIZKY SYAH GUMELAR
//TANGGAL : 9 APRIL 2022
//DESKRIPSI :
#include <iostream>
 
using namespace std;
 
//KAMUS GLOBAL
string arrayNama[50];
string arrayNomor[50];
int i = 0;
 
//FUNGSI DAN PROSEDUR
void tambah();
void insertSort();
 
int main()
{
    int pilih;
    do{
        cout << "\n\t======================== PHONEBOOK ========================\n";
        cout << "\t|         1. Tambah Kontak                                |\n";
        cout << "\t|         2. Urutkan Nomor Telepon                        |\n";
        cout << "\t|         3. Selesai                                      |\n";
        cout << "\t===========================================================\n";
        cout << "\tMasukkan Pilihan : ";
        cin >> pilih;
 
        switch(pilih){
            case 1:
                tambah();
                break;
            case 2:
                insertSort();
                break;
            case 3:
                return 0;
                break;
            default:
                cout << "\n\tPilihan Anda salah." << endl;
                break;
        }
 
    }while(1);
 
}
 
void tambah(){
    cout << "\n\tMasukkan Nama: ";
    cin >> arrayNama[i];
    cout << "\tMasukkan Nomor Telepon: ";
    cin >> arrayNomor[i];
    i = i+1;
 
    //CETAK
    cout << "\n\t======================= Kontak Anda =======================\n";
    cout << "\t|          Nama             |        Nomor Telepon        |\n";
    cout << "\t===========================================================\n";
    for(int j=0; j<i; j++){
        cout << "\t|\t" << arrayNama[j] << "\t\t\t    " << arrayNomor[j] <<"\t  |\n";
        cout << "\t-----------------------------------------------------------\n";
    }
}
 
void insertSort(){
    //KAMUS LOKAL
    int x = 1;
    int y;
    string keyNama, keyNomor; //UNTUK MENAMPUNG DATA SAAT SWAPPING
 
    while(x<i){
        keyNama = arrayNama[x];
        keyNomor = arrayNomor[x];
 
        y = x-1;
        while(y>=0 && arrayNama[y] > keyNama){
            arrayNama[y+1] = arrayNama[y];
            arrayNomor[y+1] = arrayNomor[y];
            y = y - 1;
        }
        arrayNama[y+1] = keyNama;
        arrayNomor[y+1] = keyNomor;
        x = x + 1;
    }
 
    //CETAK
    cout << "\n\tInsertion Sort berdasarkan Nama :";
    cout << "\n\t======================= Kontak Anda =======================\n";
    cout << "\t|          Nama             |        Nomor Telepon        |\n";
    cout << "\t===========================================================\n";
    for(int j=0; j<i; j++){
        cout << "\t|\t  " << arrayNama[j] << "\t\t\t    " << arrayNomor[j] <<"\t  |\n";
        cout << "\t-----------------------------------------------------------\n";
    }
}
 


Screenshot hasil:



WhatsApp Welcome to WhatsApp chat
Howdy! How can we help you today?
Type here...