ALGORITMA PEMROGRAMAN II
A. Tujuan
B.Landasan Teori
Jenis relasi antar kelas terdiri dari pewarisan, agregasi, asosiasi, pewarisan
merupakan hubungan antar satuu kelas dengan kelas kelas lain dalam suatu hiraki
kelas induk dan keals turunan. Superclass (“kelas dasar” atau “kelas induk”)
merupakan kelas yang lebih general dalam relasi “is-a”. Subclass (“kelas turunan”
atau “kelas anak”) merupakan kelas yang lebih spesifikasi dalam relasi “is-a”.
Objek yang dikelompokan dalam sub kelas memiliki atribut dan prilaku kelas
induk, dan juga atribut dan perilaku tambahan. Kita mengatakan subclass
“mewarisi” suatu superclass (atau juga bisa dikatakan sebuah subclass “turunan
dari” suatu superclass).
Mobil, fakultas dan rumah dinyatakan sebagai kelas agregat,mesin, jurusan dan
dapur merupakan kelas penyusunan.
Asosiasi
Hubungan pada asosiasi lebih kuat dari hubungan ketergantunagn dalam arti
suatu kelas tetap berhubungan dengan kelas lain seterusnya. Hubungan dapat
diputus tanpa mengganggu kelas lainnya. Asosiasi bisa dibaca “… menggunakan
…”. Sebagai contoh jia kita memiliki kelas Window yang memiliki referensi
terhadap gerkaan kursor mouse. Bisa kita katakan,Window memiliki suatu kursor.
Dengan cursor, kita dapat mengubah bentuk Window. Asosiasi digambarkan
dengan garis lengkap tanpa ada tanda panah.
Agregasi (Agregation)
Agregasi adalah versi kuat dari asosiasi. Tidak seperti asosiasi, agregasi
mengimplikasikan kepemilikansuatu kelas. Agregasi bisa dibaca “ … memilik …
“. Misali kita memiliki kelas window yang memiliki posisi dan ukuran pada kelas
Rectangle, maka kita katakana “Window memiliki Rectangle”. Walaupun
Rectangle bisa saja dishare dengan kelas lain, tetapi Window memiliki hubungan
erat dengan Rectangle. Tetapi hubungan agregasi masih kalah kuat dengan
komposisi (composition). Hubungan agregasi dinyatakan dengan simbol
“diamond” pada kelas pemilik (owning class) dan garis utuh berpanah ke kelas
yang dimiliki (owned class). Gambar dibawah ini menggambarkan notasinya.
BAB II
LANGKAH KERJA
Class titik
{
Private :
Float sbX, sbY;
Public :
Titik()
{
SbX = sbY = 0.0f;
}
Titik (float x, float y)
{
SbX = x; sbY = y;
}
Void posisiTitik ()
{
Cout << “[“ << sbX “, “ << sbY << “]” << endl;
}
};
Class Lingkaran
{
private :
Float jejari;
Titik titikPusat;
Public :
Lingkaran (float j)
{
Jejari = j;
}
Lingkaran (float x, float y, float j) : titikPusat (x,y)
{
Jejari = j;
}
Void cetakLingkaran ();
{
Cout << “Titik pusat : “ ; titikPusat.posisiTitik();
Cout << “Jari-jari : “ ; jejari << endl;
}
};
Int main ()
{
Lingkaran L1 (3.0);
Lingkaran L2 (3.0, 4.0, 5.0);
L1.cetakLingkaran ();
L2.cetakLingkaran ();
}
Class MataKuliah
{
Private :
Char* kodeMK;
Char* namaMK;
Int sksMK;
Public :
MataKuliah (char* kode, char* nm, int sks);
{
kodeMK = kode;
namaMK = nm;
sksMK = sks;
}
Void cetakMK()
{
Cout << kodeMK << “ : “ << namaMK << “ : “ << sksMK
<<endl;
};
Class Dosen
Private :
Char* NPP;
Char* Nama;
MataKuiah* mk;
Int indeks;
Public :
NPP = nopeg;
Nama = nm;
Indeks = 0;
Mk[indeks] = matakuliah;
Indeks++;
Mk[i].cetakMK();
};
Int main ()
dsn.tambahMK(mk1);
dsn.tambahMK(mk2);
dsn.tambahMK(mk3);
dsn.tambahMK(mk4);
dsn.tambahMK(mk);
}
BAB III
PEMBAHASAN
1.Program Pertama :
Pada program pertama ini, akan membuat sebuah program dengan nama
agregasi.cpp. File yang digunakan pada program agregasi.cpp adalah source
file.Program ini merupakan program untuk mencetak informasi mengenai sebuah
lingkaran yaitu informasi titik pusat lingkaran dan jari-jari lingkaran tersebut.
#include <iostream.h>
#include <stdlib.h>
#include <conio.h>
• Dapat diketahui bahwa class Titik ini terdapat dua mode akses yang
digunakan yaitu private dan public yang mempunyai satu buah fungsi dan satu
buah konstruktor.
• Private: disini digunakan untuk mengakses kelas, dimana didalam atribut
private terdapat dua buah variabel yaitu, sbX dan sbY dengan tipe data nya
adalah float. public: Perintah yangdigunakan untuk menyatakan bahwa
kelas/method/attribute tersebut dapat diakses oleh kelas lain dimanapun (dapat
diakses dari luar, termasuk kelas turunannya.).
• void posisiTitik () merupakan fungsi tanpa nilai balikan. Rumus sbX =
sbY = 0.0f; dalam fungsi Titik ( ) berarti nilai sbX sama dengan nilai sbY dan
nilai 0.0f. f. Pada 0.0f merupakan sufix yang bertipe float. Fungsi void
posisiTitik( ) berguna untuk mencetak nilai sbX dan sbY. Tanda kurung kurawal
buka ({) digunakan untuk memulai suatu program dan tanda kurung kurawal
tutup (}) digunakan untuk mengakhiri program.
Class Lingkaran
{
private :
Float jejari;
Titik titikPusat;
Public :
Lingkaran (float j)
{
Jejari = j;
}
Lingkaran (float x, float y, float j) : titikPusat (x,y)
{
Jejari = j;
}
Void cetakLingkaran ();
{
Cout << “Titik pusat : “ ; titikPusat.posisiTitik();
Cout << “Jari-jari : “ ; jejari << endl;
}
};
• Class lingkaran ini merupakan kelas turunan, di dalam kelas lingkaran ini
terdapat tipe akses private dan juga terdapat fungsi-fungsi dengan tipe akses
public yaitu fungsi Lingkaran dengan parameter j yang bertipe data float. Fungsi
Lingkaran dengan parameter j yang bertipe data float adalah merupakan fungsi
dengan nilai balikan. Dan fungsi Lingkaran (float x, float y, float j), objek
penyusun titikPusat (x,y) dipanggil. Tanda << merupakan karakter yang harus
mengikuti syntak cout. …” Dan perintah endl; berfungsi ganti baris.
• Fungsi dari kurung kurawal tutup ( } ) untuk mengakhiri program. Fungsi
void cetakLingkaran( ) berguna untuk mencetak nilai titik pusat dengan memangil
fungsi posisiTitik dari class Titik ke dalam objek penyusun yaitu titikPusat dan
mencetak nilai Jari-jari yang didapat dari nilai jejari yang ada.
int main ()
{
Lingkaran L1 (3.0);
Lingkaran L2 (3.0, 4.0, 5.0);
L1.cetakLingkaran ();
L2.cetakLingkaran ();
getch ();
return 0;
}
• int main() { , fungsi Main ( ) yang bertujuan untuk menunjukan dimana
program dimulai dan akan berakhir. Int main juga berfungsi untuk membuat
fungsi utama yang mengembalikan nilai dengan tipe integer. Pada program utama
ini terdapat nilai lingkaran yang sudah ditentukan, L1 dengan nilai parameter r =
3.0 dan L2 dengan nilai parameter x = 3, y = 4 dan r = 5.0.
• getch ( ) dipakai untuk membaca sebuah karakter dengan sifat karakter yang
dimasukkan tidak perlu diakhiri dengan enter. Fungsi getch () merupakan
singkatan dari get character artinya baca karakter tetapi isian data yang
dimasukkan tidak akan ditampilkan di layar.
• Dan diakhir proram pertama ini ada nilai balik program yang ditentukan oleh
pernyataan return. Pada program di atas, return 0 menyatakan bahwa nama nilai
balik program adalah nol. Nilai balik nol bisa digunakan untuk menyatakan bahwa
program ini berhasil melaksanakan tugas yang dibebankannya.
2.Program Kedua :
#include <iostream.h>
#include <stdlib.h>
#include <conio.h>
• Pada Program kedua ini diberi nama file “asosiasi.cpp”. File yang digunakan
pada program asosiasi.cpp adalah source file.
• #include<iostream.h>Kalimat yang diawali dengan tanda (#) adalah areal
preprocessor directive bukan merupakan baris kode yang dieksekusi, tetapi
indikasi untuk kompiler.
• #include <iostream.h> memberitahukan preprocessor kompiler untuk
menyertakan header file standard iostream. #include <stdblib.h>, adalah fungsi
yang meliputi alokasi memori, control process, dll.
• Sedangkan include <conio.h> ditambahkan dalam program ini karena kita
akan menggunakan perintah getch.
Class MataKuliah
{
Private :
Char* kodeMK;
Char* namaMK;
Int sksMK;
Public :
MataKuliah (char* kode, char* nm, int sks);
{
kodeMK = kode;
namaMK = nm;
sksMK = sks;
}
Void cetakMK()
{
Cout << kodeMK << “ : “ << namaMK << “ : “ << sksMK <<endl;
};
• Kelas mata kuliah merupakan kelas induk atau kelas pertama di program in,
dimana kelas mata kuliah ini memiliki tipe akses private dan jiga tipe akses
public. Pada tipe akses private ini terdapat kodeMK, namaMK yang ber type char
dan sksMK yang ber type integer. Pada tipe akses public kodeMk berparameter
kode, namaMK memiliki parameter nm dan sksMK memiliki parameter sks.
• Fungsi cetakMK merupakan fungsi tanpa nilai balikan.void cetakMK () fungsi
ini pada saat dipanggil bertugas untuk mencetak kalimat dan nilai dari variabel
kodeMK dan sksMK menggunakan fungsi cout.
• Tanda kurung kurawal buka ({) digunakan untuk memulai suatu program dan
tanda kurung kurawal tutup (}) digunakan untuk mengakhiri program.
Class Dosen
Private :
Char* NPP;
Char* Nama;
MataKuiah* mk;
Int indeks;
Public :
NPP = nopeg;
Nama = nm;
Indeks = 0;
Mk[indeks] = matakuliah;
Indeks++;
{
Cout << Nama << “ Mengajar : “ << endl;
Mk[i].cetakMK();
};
• Pada class dosen ini memiliki dua mode akses yaitu, private dan public. class
Dosen memiliki fungsi-fungsi dengan mode akses public, yang pertama fungsi
Dosen dengan parameter noPeg dan nm dengan tipe char ( Dosen (char* noPeg,
char* nm) ), fungsi tambahMK dengan parameter objek matakuliah dari
pemanggilan kelas MataKuliah dan fungsi cetakInformasi tanpa parameter.
• Fungsi Dosen dengan parameter noPeg dan nm merupakan fungsi dengan
nilai balikan. NPP = noPeg; Nama = nm; indeks = 0; berarti, NPP sama dengan
noPeg, Nama sama dengan nm, indeks diberi nilai 0. artinya variable ini dapat di
akses diseluruh program. Fungsi tambahMK() dengan parameter matakuliah yang
merupakan objek dari kelas MataKuliah dan bertipe data void yang berarti bahwa
fungsi ini tidak akan mengembalikan nilai apapun pada program.
• Fungsi void cetakInformasi( ) berguna untuk mencetak Nama dengan diikuti
pernyataan “Mengajar : “. Untuk for (int i=0; i<5; i++) dan mk[i] .cetakMK();
diberi tanda //. Maksud tanda // adalah pengabaian perintah agar
dsn.cetakInformasi tampil pada output.
• Tanda kurung kurawal buka ({) digunakan untuk memulai suatu program dan
tanda kurung kurawal tutup (}) digunakan untuk mengakhiri program.
int main ()
{
Dosen dsn("P001", "Steve Owen");
MataKuliah mk1("MK001", "PBO",3);
MataKuliah mk2("MK002", "Struktur Data",3);
MataKuliah mk3("MK003", "R Perangkat Lunak",3);
MataKuliah mk4("MK004", "Analisis Algoritma",2);
MataKuliah mk5("MK005", "Sistem Operasi",3);
dsn.cetakInformasi();
mk1.cetakMK();
mk2.cetakMK();
mk3.cetakMK();
mk4.cetakMK();
mk5.cetakMK();
getch ();
return 0;
}
• Int main disini merupakan kelas utama dimana pada int main ini
dsn.tambahMK(mk1); diganti menjadi mk1.cetakMK();, pergantian ini dilakukan
sampai mk5.cetalMK();. Pada program int main ini berfungsi untuk pemanggilan
fungsi cetakInformasi terhadap objek dsn dan pemanggilan fungsi cetakMK untuk
pemanggilan terdhadap objek mk1 sampai mk5.
• getch ( ) dipakai untuk membaca sebuah karakter dengan sifat karakter yang
dimasukkan tidak perlu diakhiri dengan enter. Fungsi getch () merupakan
singkatan dari get character artinya baca karakter tetapi isian data yang
dimasukkan tidak akan ditampilkan di layar.
• Dan diakhir proram pertama ini ada nilai balik program yang ditentukan oleh
pernyataan return. Pada program di atas, return 0 menyatakan bahwa nama nilai
balik program adalah nol. Nilai balik nol bisa digunakan untuk menyatakan bahwa
program ini berhasil melaksanakan tugas yang dibebankannya.
BAB IV
KESIMPULAN
• http://turalakpujingkai-ciamis.blogspot.com/2011/10/relasi-kelas-pada-c.html
BAB VI
LAMPIRAN
1.Program pertama :
INPUT :
OUTPUT :
2.Program kedua :
INPUT :
OUTPUT :