Type Bentukan

1. Contoh Kasus Objek dan Dekomposisinya
Notasi Algoritma:
JUDUL : Program outputData
{ Memanggil data mahasiswa dengan type bentukan }

 KAMUS GLOBAL 
        type mahasiswa: 
        <
                nama, NIM : string
                lulus : boolean
        >
        procedure data()
        procedure hasil()

 DESKRIPSI UTAMA (ALGORITMA) 
        hasil()

 
 procedure data()
{ Prosedur untuk menampung data type bentukan }

 KAMUS LOKAL
        siswa1 : mahasiswa

 DESKRIPSI (ALGORITMA)
        siswa1.nama ← ("Clara")
        siswa1.NIM ← ("A11.2021.133")
        siswa1.lulus ← true

        output("Nama: ")
        output(siswa1.nama)
        output("NIM: ")
        output(siswa1.NIM)
        output("Lulus: ")
        output(siswa1.lulus)


 procedure hasil()
{ Prosedur untuk mengoutputkan data type bentukan }

 KAMUS LOKAL
        { Tidak ada }

 DESKRIPSI (ALGORITMA)
        output("Absen 1")
        data()


Code C++:
//JUDUL: Memanggil data mahasiswa dengan type bentukan
#include <iostream>
#include <string>
using namespace std;
//KAMUS GLOBAL
struct mahasiswa{
    string nama;
    string NIM;
    bool lulus;
};
//DESKRIPSI UTAMA (ALGORITMA)

//Judul: Prosedur untuk menampung data type bentukan
//procedure data()
void data(){
    //KAMUS LOKAL
    mahasiswa siswa1;
    //DESKRIPSI
    siswa1.nama = "Clara";
    siswa1.NIM = "A11.2021.133";
    siswa1.lulus = true;
    cout << "Nama: " << siswa1.nama << endl;
    cout << "Kelas: " << siswa1.NIM << endl;
    cout << "Lulus: " << siswa1.lulus << endl;
}

//Judul: Prosedur untuk mengoutputkan data type bentukan
//procedure hasil()
void hasil(){
    //KAMUS LOKAL: Tidak ada
    //DESKRIPSI
    cout << "Absen 1" << endl;
    data();

}

int main()
{
    hasil();
    return 0;
}

Hasil Code:
Absen 1
Nama: Clara
Kelas: A11.2021.133
Lulus: 1

2. Mengkombinasikan dengan Kasus Lain (persegi 2D dan 3D)
Notasi Algoritma:
JUDULProgram luasvolumeSegiEmpat
Menghitung luas dan volume segiempat 2D dan 3D dengan type bentukan }

KAMUS GLOBAL:
        type segiempat :
        <
                sisi ← 5 : integer
                luas2D, volume 3D : integer
        >

        procedure proses_luas2D()
        procedure proses_volume3D()

DESKRIPSI UTAMA (ALGORITMA):
        proses_luas2D()
        proses_volume3D()

 
procedure proses_luas2D()
{ Prosedur untuk menghitung luas segiempat 2D }

KAMUS LOKAL:
        kotak : segiempat

DESKRIPSI (ALGORITMA):
        kotak.luas2D ← kotak.sisi * kotak.sisi
        output("Luas segiempat 2D: ")
        output(kotak.luas2D)


procedure proses_volume3D()
{ Prosedur untuk menghitung volume segiempat 3D }

KAMUS LOKAL:
        kotak : segiempat

DESKRIPSI (ALGORITMA):
        kotak.volume3D ← kotak.sisi * kotak.sisi * kotak.sisi
        output("Luas segiempat 3D: ")
        output(kotak.volume3D)


Code C++:
//JUDUL: Menghitung luas dan volume segiempat 2D dan 3D dengan tipe bentukan
#include <iostream>
using namespace std;
//KAMUS GLOBAL
struct segiempat{
    int sisi = 5, luas2D, volume3D; 
};
//DESKRIPSI UTAMA (ALGORITMA)

//JUDUL: Prosedur yang menghitung luas segiempat 2D
//procedure proses_luas2D()
void proses_luas2D(){
    //KAMUS LOKAL:
    segiempat kotak;
    //DESKRIPSI (ALGORITMA)
    kotak.luas2D = kotak.sisi * kotak.sisi;
    cout << "Luas segiempat 2D: " << kotak.luas2D << endl;
}

//JUDUL: prosedur yang menghitung volume segiempat 3D
//function proses_volume3D()
void proses_volume3D(){
    //KAMUS LOKAL:
    segiempat kotak;
    //DESKRIPSI (ALGORITMA)
    kotak.volume3D = kotak.sisi * kotak.sisi * kotak.sisi;
    cout << "Volume segiempat 3D: " << kotak.volume3D << endl;
}

int main() {
    proses_luas2D();
    proses_volume3D();
    return 0;
}

Hasil Code:
Luas segiempat 2D: 25
Volume segiempat 3D: 125

Komentar