Penerapan ADT dan sorting - Phonebook Sederhana

 

Koding :

// JUDUL = Phone Book dan Sort menggunakan Insertion Sorting
//OLEH : RIZKY SYAH GUMELAR
//TANGGAL : 9 APRIL 2022
 
// Kamus
#include <iostream> //Include library iostream
#include <conio.h>
#include <math.h> //SQRT DAN POW Function
#include <string.h>
 
using namespace std; //Shortcut Std library
 
 
struct komponen_phone_book{
  string nama, nomor;
};
 
int max_array;
int batas();
void input(int batas_array);
void cetak_phone_book(int batas_array);
void name_sort(int batas_array);
void num_sort(int batas_array);
 
// Declare ADT ke sebuah variable
struct komponen_phone_book phone_book[100];
 
//Deskripsi / Algoritma
int main(){
 
  //Panggil Function batas
  max_array = batas();
  cout << endl;
 
  //Panggil Function Input
  input(max_array);
 
  //Cetak Sebelum Sorting
  cout << "============ Output Sebelum di Sorting ============" << endl;
  cetak_phone_book(max_array);
 
  //Panggil Function Sorting Phone Book berdasarkan nama
  name_sort(max_array);
 
  //Panggil Function Cetak
  cout << endl;
  cout << "===================================================" << endl;
  cout << endl;
  cout << "============ Sorting Berdasarkan Nama =============" << endl;
  cetak_phone_book(max_array);
 
  //Panggil Function Sorting Phone Book berdasarkan nomor
  num_sort(max_array);
 
  //Panggil Function Cetak
  cout << endl;
  cout << "===================================================" << endl;
  cout << endl;
  cout << "============ Sorting Berdasarkan Nomor ============" << endl;
  cetak_phone_book(max_array);
 
  return 0;
}
 
int batas(){
 
  //Local Variable
  int x;
 
  //Algoritma
  cout << "Masukan Jumlah Data Phone Book = ";
  cin >> x;
 
  return x;
}
 
void input(int batas_array){
 
  //Local Variable
  int a = 0;
 
  //Algoritma
  while (a < batas_array)
  {
    cout << "Masukan Data Nama PhoneBook ke-" << a+1 << " = ";
    cin >> phone_book[a].nama;
    cout << "Masukan Data Nomor Telefon PhoneBook ke-" << a+1 << " = ";
    cin >> phone_book[a].nomor;
    cout << endl;
    cout << "===================================================" << endl;
    cout << endl;
 
    //Increment Looping
    a = a + 1;
  }
}
 
void cetak_phone_book(int batas_array){
  //Local Variable
  int b = 0;
 
  //Algoritma
  cout << "Nama                      Nomor Telepon" << endl;
  while (b < batas_array)
  {
    cout << phone_book[b].nama << "                        " << phone_book[b].nomor;
    cout << endl;
    b = b + 1;
  }
}
 
void name_sort(int batas_array){
    //KAMUS LOKAL
    int x = 1;
    int y;
    string keyNama, keyNomor; //UNTUK MENAMPUNG DATA SAAT SWAPPING
 
    while(x<batas_array){
        keyNama = phone_book[x].nama;
        keyNomor = phone_book[x].nomor;
 
        y = x-1;
        while(y>=0 && phone_book[y].nama > keyNama){
            phone_book[y+1].nama = phone_book[y].nama;
            phone_book[y+1].nomor = phone_book[y].nomor;
            y = y - 1;
        }
        phone_book[y+1].nama = keyNama;
        phone_book[y+1].nomor = keyNomor;
        x = x + 1;
    }
 
}
 
void num_sort(int batas_array){
    //KAMUS LOKAL
    int x = 1;
    int y;
    string keyNama, keyNomor; //UNTUK MENAMPUNG DATA SAAT SWAPPING
 
    while(x<batas_array){
        keyNama = phone_book[x].nama;
        keyNomor = phone_book[x].nomor;
 
        y = x-1;
        while(y>=0 && phone_book[y].nomor > keyNomor){
            phone_book[y+1].nama = phone_book[y].nama;
            phone_book[y+1].nomor = phone_book[y].nomor;
            y = y - 1;
        }
        phone_book[y+1].nama = keyNama;
        phone_book[y+1].nomor = keyNomor;
        x = x + 1;
    }
 
}

Screenshot hasil:




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