Laporan Akhir ALPRO II
-
Upload
supriyandi-andy -
Category
Documents
-
view
37 -
download
2
description
Transcript of Laporan Akhir ALPRO II
![Page 1: Laporan Akhir ALPRO II](https://reader033.fdocument.pub/reader033/viewer/2022051001/55cf8ebe550346703b952e28/html5/thumbnails/1.jpg)
LAPORAN AKHIR PRAKTIKUM
ALGORITMA DAN PEMPROGRAMAN II
NAMA : SUPRIYANDI
NIM : DBC 113 170
KELAS : D
MODUL : IV (Relasi Kelas)
JURUSAN TEKNIK INFORMATIKA
FAKULTAS TEKNIK
UNIVERSITAS PALANGKA RAYA
2014
![Page 2: Laporan Akhir ALPRO II](https://reader033.fdocument.pub/reader033/viewer/2022051001/55cf8ebe550346703b952e28/html5/thumbnails/2.jpg)
BAB I
TUJUAN DAN LANDASAN TEORI
A. TUJUAN
Setelah menyelesaikan modul ini, mahasiswa diharapkan mampu
membuat berbagai jenis relasi antara kelas.
B. LANDASAN TEORI
Jenis Relasi antar kelas terdiri dari pewarisan, agregasi, asosiasi.
Pewarisan merupakan hubungan antar satu kelas dengan kelas lain dalam
suatu hirarki kelas induk dan kelas 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
spesifik dalam relasi “is-a”. objek yang dikelompokkan dalam sub class
memiliki atribut dan perilaku kelas induk, dan juga atribut dan perilaku
tambahan. Kita mengatakan subclass “mewarisi” suatu superclass (atau juga
bisa dikatakan sebuah subclass “turunan dari” suatu superclass).
Agregasi merupakan hubungan antar kelas yang menyatakan suatu
kelas merupakan bagian dari kelas yang lain atau hubungan antar kelas yang
menyatakan suatu kelas memiliki kelas lain [sebagai atribut]. Agregasi
merupakan relasi “has a”. Contoh :
Mobil memiliki mesin.
Fakultas terdiri dari jurusan.
Rumah memiliki dapur.
Mobil, Fakultas dan Rumah dinyatakan sebagai kelas agregat. Mesin, Jurusan
dan Dapur merupakan kelas penyusun.
![Page 3: Laporan Akhir ALPRO II](https://reader033.fdocument.pub/reader033/viewer/2022051001/55cf8ebe550346703b952e28/html5/thumbnails/3.jpg)
Kardinalitas menyatakan jumlah objek penyusun yang terlibat dalam
pembentukan relasi agregasi. Suatu Kelas Agregat dibentuk dari beberapa
(disimbolkan dengan *) objek Kelas Penyusun.
Asosiasi menggambarkan hubungan struktural antar kelas. Setiap
kelas memiliki kedudukan yang sama (tidak merupakan bagian dari kelas
lain). Pada saat merancang relasi antar kelas, ada dua hal yang perlu
diperhatikan yaitu berapa objek yang terlibat dari masing-masing kelas yang
berrelasi dan apakah relasi tersebut bersifat wajib (mandatory) atau opsional.
![Page 4: Laporan Akhir ALPRO II](https://reader033.fdocument.pub/reader033/viewer/2022051001/55cf8ebe550346703b952e28/html5/thumbnails/4.jpg)
BAB II
LANGKAH KERJA
1. Buatlah program seperti di bawah ini !
agregasi.cpp
#include <iostream.h>
#include <stdlib.h>
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:
![Page 5: Laporan Akhir ALPRO II](https://reader033.fdocument.pub/reader033/viewer/2022051001/55cf8ebe550346703b952e28/html5/thumbnails/5.jpg)
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();
}
![Page 6: Laporan Akhir ALPRO II](https://reader033.fdocument.pub/reader033/viewer/2022051001/55cf8ebe550346703b952e28/html5/thumbnails/6.jpg)
2. Buatlah program seperti di bawah ini !
asosiasi.cpp
#include <iostream.h>
#include <stdlib.h>
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;
MataKuliah* mk;
![Page 7: Laporan Akhir ALPRO II](https://reader033.fdocument.pub/reader033/viewer/2022051001/55cf8ebe550346703b952e28/html5/thumbnails/7.jpg)
int indeks;
public:
Dosen(char* noPeg, char* nm)
{
NPP = noPeg;
Nama = nm;
indeks = 0;
}
void tambahMK (MataKuliah matakuliah)
{
mk[indeks] = matakuliah;
indeks++;
}
void cetakInformasi()
{
cout << Nama << " Mengajar : " << endl;
for (int i=0; i<5; i++)
mk[i].cetakMK();
}
};
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.tambahMK(mk1);
dsn.tambahMK(mk2);
![Page 8: Laporan Akhir ALPRO II](https://reader033.fdocument.pub/reader033/viewer/2022051001/55cf8ebe550346703b952e28/html5/thumbnails/8.jpg)
dsn.tambahMK(mk3);
dsn.tambahMK(mk4);
dsn.tambahMK(mk5);
dsn.cetakInformasi();
}
![Page 9: Laporan Akhir ALPRO II](https://reader033.fdocument.pub/reader033/viewer/2022051001/55cf8ebe550346703b952e28/html5/thumbnails/9.jpg)
BAB III
PEMBAHASAN
Program Pertama :
Tujuan program ini adalah untuk membuat relasi kelas antara class Titik dan
class Lingkaran. Coding program dari agregasi.cpp adalah sebagai berikut :
#include <iostream.h>
#include <stdlib.h>
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:
![Page 10: Laporan Akhir ALPRO II](https://reader033.fdocument.pub/reader033/viewer/2022051001/55cf8ebe550346703b952e28/html5/thumbnails/10.jpg)
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();
}
Coding untuk menampilkan titik pusatnya adalah sebagai berikut :
cout << "Titik pusat : " ; titikPusat.posisiTitik();
![Page 11: Laporan Akhir ALPRO II](https://reader033.fdocument.pub/reader033/viewer/2022051001/55cf8ebe550346703b952e28/html5/thumbnails/11.jpg)
Coding untuk menampilkan jari-jarinya adalah sebagai berikut :
cout << "Jari-jari : " << jejari << endl;
Nilai untuk jari-jari pertama, jari-jari kedua dan titik pusatnya sudah ditentukan
atau dapat dikatakan sudah memiliki nilai untuk outputnya. Coding untuk
menentukan nilainya adalah pada int main().
{
Lingkaran L1(3.0);
Lingkaran L2(3.0, 4.0, 5.0);
L1.cetakLingkaran();
L2.cetakLingkaran();
}
Program di atas tidak memiliki rumus atau coding menginputan nilai untuk
jari-jari pertama, jari-jari kedua dan titik pusat pada outputnya. Karena dalam
program ini langsung menampilkan nilai dari jari-jari pertama, jari-jari kedua
dan titik pusatnya.
![Page 12: Laporan Akhir ALPRO II](https://reader033.fdocument.pub/reader033/viewer/2022051001/55cf8ebe550346703b952e28/html5/thumbnails/12.jpg)
Program Kedua :
Tujuan program ini adalah untuk membuat sebuah data mata kuliah yang
diikuti oleh mahasiswa tersebut. Dalam program ini terdapat coding utama
adalah sebagai berikut :
#include <iostream.h>
#include <stdlib.h>
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;
![Page 13: Laporan Akhir ALPRO II](https://reader033.fdocument.pub/reader033/viewer/2022051001/55cf8ebe550346703b952e28/html5/thumbnails/13.jpg)
char* Nama;
MataKuliah* mk;
int indeks;
public:
Dosen(char* noPeg, char* nm)
{
NPP = noPeg;
Nama = nm;
indeks = 0;
}
void tambahMK (MataKuliah matakuliah)
{
mk[indeks] = matakuliah;
indeks++;
}
void cetakInformasi()
{
cout << Nama << " Mengajar : " << endl;
for (int i=0; i<5; i++)
mk[i].cetakMK();
}
};
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.tambahMK(mk1);
![Page 14: Laporan Akhir ALPRO II](https://reader033.fdocument.pub/reader033/viewer/2022051001/55cf8ebe550346703b952e28/html5/thumbnails/14.jpg)
dsn.tambahMK(mk2);
dsn.tambahMK(mk3);
dsn.tambahMK(mk4);
dsn.tambahMK(mk5);
dsn.cetakInformasi();
}
Coding untuk program tambah mata kuliah adalah :
void tambahMK (MataKuliah matakuliah)
{
mk[indeks] = matakuliah;
indeks++;
}
Coding untuk mencetak informasi adalah :
void cetakInformasi()
{
cout << Nama << " Mengajar : " << endl;
for (int i=0; i<5; i++)
mk[i].cetakMK();
}
Coding untuk menampilkan dan memproses data yang telah dimasukkan
adalah :
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);
![Page 15: Laporan Akhir ALPRO II](https://reader033.fdocument.pub/reader033/viewer/2022051001/55cf8ebe550346703b952e28/html5/thumbnails/15.jpg)
dsn.tambahMK(mk1);
dsn.tambahMK(mk2);
dsn.tambahMK(mk3);
dsn.tambahMK(mk4);
dsn.tambahMK(mk5);
dsn.cetakInformasi();
}
Pada class MataKuliah terdapat kodeMK menggunakan tipe data char,
namaMK juga menggunakan tipe data char, sedangkan untuk sksMK
menggunakan tipe data int(integer). Codingnya adalah :
char* kodeMK;
char* namaMK;
int sksMK;
Pada class Dosen terdapat NPP menggunakan tipe data char, Nama
mengguanakan tipe data char, sedangkan indeks mengguankan tipe data
int(integer).
Dalam program asosiasi.cpp terdapat kesalahan pada outputnya, sehingga
output dari program asosiasi.cpp ini hanya menampilkan kalimat press any key
to continue.
![Page 16: Laporan Akhir ALPRO II](https://reader033.fdocument.pub/reader033/viewer/2022051001/55cf8ebe550346703b952e28/html5/thumbnails/16.jpg)
BAB IV
KESIMPULAN
Jenis Relasi antar kelas terdiri dari pewarisan, agregasi, asosiasi. Pewarisan
merupakan hubungan antar satu kelas dengan kelas lain dalam suatu hirarki
kelas induk dan kelas turunan.
Asosiasi adalah hubungan yang mempunyai makna antara sejumlah objek.
Asosiasi digambarkan dengan sebuah garis penghubung di antara objeknya.
Agregasi adalah bentuk khusus sebuah asosiasi yang menggambarkan seluruh
bagian pada satu objek merupakan bagian dari objek yang lain.
Pada saat merancang relasi antar kelas, ada dua hal yang perlu diperhatikan
yaitu berapa objek yang terlibat dari masing-masing kelas yang berrelasi dan
apakah relasi tersebut bersifat wajib (mandatory) atau opsional.
![Page 17: Laporan Akhir ALPRO II](https://reader033.fdocument.pub/reader033/viewer/2022051001/55cf8ebe550346703b952e28/html5/thumbnails/17.jpg)
BAB V
DAFTAR PUSTAKA
http://turalakpujingkai-ciamis.blogspot.com/2011/10/relasi-kelas-pada-c.html
http://rangkumanmateripemrograman.blogspot.com/2011/01/oop-object-
oriented-programing.html
2014.Modul Algoritma dan Pemrograman II . Palangkaraya:Universitas
Palangkaraya.
.
![Page 18: Laporan Akhir ALPRO II](https://reader033.fdocument.pub/reader033/viewer/2022051001/55cf8ebe550346703b952e28/html5/thumbnails/18.jpg)
BAB VI
LAMPIRAN
1. Program Pertama “agregasi.cpp”
Input :
![Page 19: Laporan Akhir ALPRO II](https://reader033.fdocument.pub/reader033/viewer/2022051001/55cf8ebe550346703b952e28/html5/thumbnails/19.jpg)
Output :
![Page 20: Laporan Akhir ALPRO II](https://reader033.fdocument.pub/reader033/viewer/2022051001/55cf8ebe550346703b952e28/html5/thumbnails/20.jpg)
2. Program Kedua “asosiasi.cpp”
Input :
![Page 21: Laporan Akhir ALPRO II](https://reader033.fdocument.pub/reader033/viewer/2022051001/55cf8ebe550346703b952e28/html5/thumbnails/21.jpg)
Output :