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:
Komentar
Posting Komentar