laporan akhir alpro ii

21
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

Upload: supriyandi-andy

Post on 15-Jan-2016

46 views

Category:

Documents


2 download

DESCRIPTION

Modul 4

TRANSCRIPT

Page 1: Laporan Akhir ALPRO II

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

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

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

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

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

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

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

dsn.tambahMK(mk3);

dsn.tambahMK(mk4);

dsn.tambahMK(mk5);

dsn.cetakInformasi();

}

Page 9: Laporan Akhir ALPRO II

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

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

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

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

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

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

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

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

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

BAB VI

LAMPIRAN

1. Program Pertama “agregasi.cpp”

Input :

Page 19: Laporan Akhir ALPRO II

Output :

Page 20: Laporan Akhir ALPRO II

2. Program Kedua “asosiasi.cpp”

Input :

Page 21: Laporan Akhir ALPRO II

Output :