Ujian

Array of Type Bentukan dengan Search dan Sort
Notasi Algoritma:
JUDUL : Program dataKTP 
{ Membuat data KTP dengan tipe bentukan dan array } 

KAMUS GLOBAL
        data : integer
        nama_cari : string
        i : integer 
        isi_KTP : array [data] of KTP 
        type KTP : 
         < 
                nama, alamat, agama : string 
                NIK : integer 
                gender : char 
        >
        
        function banding(a, b : KTP)    
        
 DESKRIPSI UTAMA (ALGORITMA)
        output(“Membuat data KTP dengan tipe bentukan dan array”) 
        output(“Input berapa data? ”) 
        input(data) 

        { Menginput data dengan array } 
        for i = 1 to data then 
                output(“Data ke-”) 
                output(i + 1) 
                output(“Masukkan NIK: ”) 
                input( isi_KTP[i].NIK) 
                output(“Masukkan nama: ”) 
                input( isi_KTP[i].nama) 
                output(“Masukkan alamat: ”) 
                input( isi_KTP[i].alamat) 
                output(“Masukkan agama: ”) 
                input( isi_KTP[i].agama) 
                output(“Masukkan gender: ”) 
                input( isi_KTP[i].gender) 
        endfor
        
        output("Menampilkan data")
        { Mengoutput data dengan array } 
        for i = 1 to data then
                output(“Data ke-”) 
                output(i + 1) 
                output(“NIK: ”) 
                output( isi_KTP[i].NIK) 
                output(“Nama: ”) 
                output( isi_KTP[i].nama) 
                output(“Alamat: ”) 
                ouput( isi_KTP[i].alamat) 
                output(“agama: ”) 
                output( isi_KTP[i].agama) 
                output(“Gender: ”) 
                output( isi_KTP[i].gender)
        endfor

        { Proses pencarian array }
        output("Input nama yang akan dicari: ")
        input(nama_cari)
        for i = 1 to data then
                if (isi_KTP[i].nama.compare(nama_cari) == 0) then
                        output("Data ditemukan pada data ke-")
                        output(i + 1)
                        break
                endif
        endfor

        { sort array }
        sort(isi_KTP, isi_KTP + data, banding)
        output("Menampilkan data setelah di sorting berdasarkan nama")
        for i = 1 to data then
                output(“Data ke-”) 
                output(i + 1) 
                output(“NIK: ”) 
                output( isi_KTP[i].NIK) 
                output(“Nama: ”) 
                output( isi_KTP[i].nama) 
                output(“Alamat: ”) 
                ouput( isi_KTP[i].alamat) 
                output(“agama: ”) 
                output( isi_KTP[i].agama) 
                output(“Gender: ”) 
                output( isi_KTP[i].gender)
        endfor


procedure banding (a, b : KTP) bool
{ Fungsi untuk membandingkan variabel nama di type bentukan }

KAMUS LOKAL:
        { Tidak ada }

DESKRIPSI (ALGORITMA)
        if (a.nama < b.nama) then
                return 1
        else
                return 0
        endif
        

Code C++:
//JUDUL: Membuat data KTP dengan tipe bentukan dan array
#include <iostream>
#include <string>
#include <algorithm>

using namespace std;
//KAMUS GLOBAL
int data;
string nama_cari;
struct KTP
{
    string nama, alamat, agama;
    int NIK;
    char gender;
};
//DESKRIPSI UTAMA (ALGORITMA)

//JUDUL: Fungsi untuk membandingkan variabel nama di type bentukan
//function banding(a, b: KTP) -> bool
bool banding(KTP a, KTP b){
    //KAMUS LOKAL: Tidak ada
    //DESKRIPSI
	if(a.nama < b.nama)
		return 1;
	else
		return 0;
}

int main()
{
    cout << "Membuat data KTP dengan tipe bentukan dan array" << endl;
    cout << "Input berapa data? "; cin >> data;
    KTP isi_KTP[data];

    //Menginput data dengan array
    for (int i = 0; i < data; i++){
        cout << "Data ke-" << i+1 << endl;
        cout << "Masukkan NIK: "; cin >> isi_KTP[i].NIK;
        cout << "Masukkan nama: "; cin >> isi_KTP[i].nama;
        cout << "Masukkan alamat: "; cin >> isi_KTP[i].alamat;
        cout << "Masukkan agama: "; cin >> isi_KTP[i].agama;
        cout << "Masukkan gender: "; cin >> isi_KTP[i].gender;
    }

    cout << endl;
    cout << "Menampilkan data" << endl;
    //Mengoutputkan data dengan array
    for (int i = 0; i < data; i++){
        cout << "Data ke-" << i+1 << endl;
        cout << "NIK: " << isi_KTP[i].NIK << endl;
        cout << "Nama: " << isi_KTP[i].nama << endl;
        cout << "Alamat: " << isi_KTP[i].alamat << endl;
        cout << "Agama: " << isi_KTP[i].agama << endl;
        cout << "Gender: " << isi_KTP[i].gender << endl;
        cout << endl;
    }

    //proses pencarian array
    cout << "Input nama yang akan dicari: ";
    cin >> nama_cari;

    for(int i = 0; i < data; i++){
        if(isi_KTP[i].nama.compare(nama_cari) == 0){
            cout << "Data ditemukan pada data ke-" << i+1;
            break;
        }
    }

    //sort array
    sort(isi_KTP, isi_KTP+data, banding);
    cout << "\n\nMenampilkan data setelah di sorting berdasarkan nama\n";
    for (int i = 0; i < data; i++){
        cout << "Data ke-" << i+1 << endl;
        cout << "NIK: " << isi_KTP[i].NIK << endl;
        cout << "Nama: " << isi_KTP[i].nama << endl;
        cout << "Alamat: " << isi_KTP[i].alamat << endl;
        cout << "Agama: " << isi_KTP[i].agama << endl;
        cout << "Gender: " << isi_KTP[i].gender << endl;
        cout << endl;
    }

    return 0;
}

Hasil Code:
Membuat data KTP dengan tipe bentukan dan array
Input berapa data? 3
Data ke-1
Masukkan NIK: 12345
Masukkan nama: Putri
Masukkan alamat: Kudus
Masukkan agama: Islam
Masukkan gender: F
Data ke-2
Masukkan NIK: 54332
Masukkan nama: Clara
Masukkan alamat: Langgardalem
Masukkan agama: Islam
Masukkan gender: F
Data ke-3
Masukkan NIK: 98765
Masukkan nama: Sony
Masukkan alamat: Pati
Masukkan agama: Islam
Masukkan gender: M

Menampilkan data
Data ke-1
NIK: 12345
Nama: Putri
Alamat: Kudus
Agama: Islam
Gender: F

Data ke-2
NIK: 54332
Nama: Clara
Alamat: Langgardalem
Agama: Islam
Gender: F

Data ke-3
NIK: 98765
Nama: Sony
Alamat: Pati
Agama: Islam
Gender: M

Input nama yang akan dicari: Putri
Data ditemukan pada data ke-1

Menampilkan data setelah di sorting berdasarkan nama
Data ke-1
NIK: 54332
Nama: Clara
Alamat: Langgardalem
Agama: Islam
Gender: F

Data ke-2
NIK: 12345
Nama: Putri
Alamat: Kudus
Agama: Islam
Gender: F

Data ke-3
NIK: 98765
Nama: Sony
Alamat: Pati
Agama: Islam
Gender: M

Komentar

Postingan populer dari blog ini

Microsoft PowerPoint