laporan hasil praktikum alpro modul 4

29
LAPORAN HASIL PRATIKUM ALGORITMA DAN PEMROGRAMAN II Nama : WANDY SUPRIADI NIM : DBC 114 121 Kelas : F Modul : IV (RELASI KELAS)

Upload: wandy

Post on 13-Jul-2016

72 views

Category:

Documents


8 download

DESCRIPTION

laporan

TRANSCRIPT

Page 1: Laporan Hasil Praktikum ALPRO Modul 4

LAPORAN HASIL PRATIKUM

ALGORITMA DAN PEMROGRAMAN II

Nama : WANDY SUPRIADI

NIM : DBC 114 121

Kelas : F

Modul : IV (RELASI KELAS)

JURUSAN TEKNIK INFORMATIKA

FAKULTAS TEKNIK

UNIVERSITAS PALANGKARAYA

2015

Page 2: Laporan Hasil Praktikum ALPRO Modul 4

BAB I

TUJUAN DAN LANDASAN TEORI

I. Tujuan

Setelah menyelesaikan modul ini, mahasiswa diharapkan mampu

membuat berbagai jenis relasi antar kelas.

II. Landasan Teori

Jenis Relasi antar kelas terdiri dari pewarisan, agregasi, asosiasi.

Pewarisan merupakan hubungan antar suatu 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 subclass

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 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 atas jurusan.

Rumah memiliki dapur.

Mobil, Fakultas dan Rumah dinyatakan sebagai kelas agregasi. Mesin,

Jurusan dan Dapur merupakan kelas penyusun.

Kardinalitas menyatakan jumlah objek penyusun yang terlibat dalam

pembentukan relasi agregasi. Suatu Kelas Agregasi dibenuk dari beberapa

(disimbolkan dengan *) objek Kelas Penyusun.

Asosiasi menggambarkan hubungan structural antar kelas. Setiap kelas

memliki kedudukan yang sama (tidak merupakan bagian dari kelas lain). Pada

saat merancang relasi antar kelas, ada dua hal yang perlu diperhatikan yaitu

Page 3: Laporan Hasil Praktikum ALPRO Modul 4

berupa objek yang terlibat dari masing-masing kelas yang ber-relasi dan

apakah relasi tersebut bersifat wajib(mandatory) atau opsional.

Page 4: Laporan Hasil Praktikum ALPRO Modul 4

BAB II

LANGKAH KERJA

1. Buatlah program seperti dibawah 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:

float jejari;Titik titikPusat;

public:Lingkaran(float j){

jejari = j;}Lingkaran (float x, float y, floatj):titikPusat(x,y){

jejari =j ;}void cetakLingkaran()

{cout<<"Titik pusat :";titikPusat.posisiTitik();cout<<"Jari-jari : "<<jejari<<endl;

Page 5: Laporan Hasil Praktikum ALPRO Modul 4

}};int main(){

Lingkaran L1(3.0);Lingkaran L2(3.0, 4.0, 5.0);

L1.cetakLingkaran();L2.cetakLingkaran();

return 0;}

Page 6: Laporan Hasil Praktikum ALPRO Modul 4

2. Buatlah program seperti dibawah 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;int indeks;

public:Dosen (char*noPeg, char*nm){

NPP = noPeg;Nama = nm;indeks = 0;

}void tambahMK (MataKuliah matakuliah){

mk[indeks] = matakuliah;

indeks++;}void cetakInformasi(){

Page 7: Laporan Hasil Praktikum ALPRO Modul 4

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);dsn.tambahMK(mk3);dsn.tambahMK(mk4);dsn.tambahMK(mk5);dsn.cetakInformasi();

}

Page 8: Laporan Hasil Praktikum ALPRO Modul 4

BAB III

PEMBAHASAN

1. Pada program agresiasi.cpp, akan dibuat sebuah program menggunakan

relasi antar kelas yang nantinya akan menampilkan output Titik Pusat dan

Jari-jari dari 2 buah Lingkaran yang memiliki data masing-masing.

Coding include tidak diakhiri dengan tanda (;), karena bentuk tersebut

bukanlah suatu bentuk pernyataan, tetapi merupakan prepocessor directive.

Coding tersebut diakhiri dengan ekstensi .h (file header) yaitu file yang

berisi sebagai deklarasi.

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:

float jejari;Titik titikPusat;

public:Lingkaran(float j){

jejari = j;}Lingkaran (float x, float y, floatj):titikPusat(x,y)

Page 9: Laporan Hasil Praktikum ALPRO Modul 4

{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();

return 0;}

#include<iosteram.h> : diperlukan pada program yang melibatkn cout.

#include<stdlib.h> : file header yang meliputi alokasi memori, kontrol proses, konversi dan lain-lain.

Public adalah suatu tipe akses yang dapat diakses diluar class,sedangkan

private diakses didalam class.

Pada program ini terdapat 2 buah class yaitu class Titik dan class

Lingkaran.

Didalam class Titik terdapat 2 buah atribut yaitu public dan private. Di

dalam atribut private akan diberikan tipe data float untuk sbX dan sbY.

Sedangkan didalam atribut public akan dibuat beberapa bagian. Bagian

yang pertama adalah Titik(), dimana di dalam bagian ini akan terdapat

argument bahwa sbX = sbY = 0.0f. Bagian kedua adalah Titik (float x,

float y) yang memiliki parameter dengan tipe data float untuk x dan y. Di

dalam bagian ini akan terdapat argument bahwa sbX = x dan sbY = y.

Lalu di bagian ketiga akan terdapat void posisiTitik() yang nantinya akan

mencetak data-data yang telah dimasukkan. Di dalam bagian ini terdapat

perintah cout yang akan menampilkan output pada layar yang berisi nilai

dari sbX dan sbY.

Page 10: Laporan Hasil Praktikum ALPRO Modul 4

Di dalam class Lingkaran terdapat 2 buah atribut yaitu Private dan

public. Di dalam atribut private terdapat variabel jejari dengan tipe data

float dan deklarasi Titik titikPusat; bahwa Titik akan di akses dari

titikPusat.

Sedangkan di dalam atribut public terdapat konstruktor yang merupakan

fungsi anggota yang mempunyai nama sama dengan nama kelasnya,

sebagai fungsi yang tidak mempunyai nilai balik, harus diletakkan pada

bagian public, dijalankan secara otomatis saat objek diciptakan , dapat

memiliki argument dan argument dengan nilai default, dapat diletakkan

overloading . Kegunaannya : mengalokasikan ruang bagi sebuah objek ,

memberikan nilai awal terhadap anggota data suatu objek ,  membentuk

tugas-tugas umum lainnya , melakukan tugasnya pada saat objek

diciptakan .

Lingkaran(float j) dimana parameter tersebut berisi tipe data float untuk

j. Di dalam konstruktor ini terdapat argument bahwa jejari = j.

Pada konstruktor Lingkaran (float x, float y, float j):titikPusat(x,y)

terdapat parameter yang berisi tipe data float untuk x, y dan z. Dimana

untuk x dan y akan di akses dari public Titik yang tadinya telah di

deklarasikan pada private class Lingkaran dimana titikPusat akan di akses

dari Titik. Di dalam konstruktor ini juga terdapat argument bahwa jejari =

j.

Pada metode void cetakLingkaran() berfungsi untuk menampilkan output

pada layar. Pada bagian ini terdapat fungsi cout yang nantinya akan

menampilkan argument Titik pusat yang data nya nanti akan dimasukkan

di program utama dan akan diproses pada konstruktor-konstruktor yang

telah di buat. Juga argument jejari yang nanti data nya akan dimasukkan

juga di program utama.

Pada bagian program utama ini, penulisan listing program untuk bagian

program utama selalu diawali dengan fungsi int main (). Fungsi dari

program utama di atas yaitu untuk menentukan pilihan yang kita inputkan

untuk menampilkan output pilihan yang sudah ditentukan.

Pada bagian ini merupakan inisialisasi variabel dari kelas Lingkaran, untuk L1 merupakan inisialisasi dari Lingkaran(float j) dan berisi masukkan

Page 11: Laporan Hasil Praktikum ALPRO Modul 4

nilai j = 3.0 . Sedangkan untuk L2 merupakan inisialisasi dari Lingkaran (float x, float y, float j):titikPusat(x,y) dan berisi masukan nilai x = 3.0, y = 4.0 dan j = 5.0 .

Pada bagian ini merupakan pemanggilan metode cetakLingkaran() untuk menampilkan argument Titik Pusat dan Jari-jari setelah diberi inputan yang ada pada metode tersebut.

Pada program ini di tambahkan fungsi system (“pause”); agar tampilan

output program tidak langsung hilang dari layar monitor. Dan ditambah

fungsi nilai balikannya, yaitu return 0; . Return 0 berarti menandakan

nilai balikannya adalah 0.

Tanda kurung kurawal ({…}) digunakan untuk menandai bagian suatu isi

kelas, bagian isi metode-metode di dalam kelas (behaviour), serta bagian

isi program utama.

Tanda titik koma (;) digunakan untuk menandai akhir penulisan data dan

fungsi dalam program. Tanda titik koma tidak digunakan untuk

mengakhiri nama kelas, nama metode, nama perubah akses, serta

inisialisasi program utama.

Page 12: Laporan Hasil Praktikum ALPRO Modul 4

2. Pada program asosiasi.cpp, akan dibuat sebuah program yang akan

menampilkan Nama dosen mengajar mata kuliah dan jumlah sks dari

mata kuliah tersebut.

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

Page 13: Laporan Hasil Praktikum ALPRO Modul 4

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);

Page 14: Laporan Hasil Praktikum ALPRO Modul 4

#include<iosteram.h> : diperlukan pada program yang melibatkn cout.

#include<stdlib.h> : file header yang meliputi alokasi memori, kontrol

proses, konversi dan lain-lain.

Public adalah suatu tipe akses yang dapat diakses diluar class,sedangkan

private diakses didalam class.

Di dalam attribute private terdapat variabel kodeMK dan namaMK

dengan tipe data char(character) dan juga variabel sksMK dengan tipe

data int(integer). Sedangkan pada atribut public terdapat konstruktor.

Konstruktor MataKuliah (char*kode, char*nm, int sks) memiliki

parameter yaitu tipe data char(character) untuk kodeMK dan namaMK

juga int(integer) untuk sksMK. Lalu di dalam nya juga terdapat argument

dimana kodeMK adalah kode, namaMK adalah nm dan sksMK adalah sks.

Pada bagian selanjutnya terdapat metode void cetakMK() yang memiliki

fungsi untuk menampilkan ouput pada layar. Di dalamnya terdapat cout

yang akan menampilkan kodeMK, namaMK dan sksMK dari data yang

nantinya akan dimasukkan.

Di dalam attribute private terdapat variabel NPP dan Nama dengan tipe

data char(character), mk dengan tipe data MataKuliah (dari kelas

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);

dsn.tambahMK(mk3);

dsn.tambahMK(mk4);

dsn.tambahMK(mk5);

dsn.cetakInformasi();

}

Page 15: Laporan Hasil Praktikum ALPRO Modul 4

MataKuliah) dan juga variabel indeks dengan tipe data int(integer).

Sedangkan pada atribut public terdapat konstruktor. Konstruktor Dosen

(char*noPeg, char*nm) memiliki parameter yaitu tipe data

char(character) untuk noPeg dan nm. Lalu di dalam nya juga terdapat

argument dimana NPP adalah noPeg, Nama adalah nm dan indeks

bernilai 0.

Bagian selanjutnya adalah metode void tambahMK (MataKuliah

matakuliah) yang memiliki parameter. Di dalam parameter tersebut

terdapat MataKuliah(class MataKuliah) digantikan dengan matakuliah

(pada class Dosen ini). Di dalam bagian ini juga terdapat argument bahwa

mk[indeks] = matakuliah dan juga diberikan sebuah increment(nilai

tambah yang diberikan pada indeks ini).

Selanjutnya terdapat metode void cetakInformasi() yang berfungsi untuk

menampilkan data-data yang telah dimasukkan. Di dalam bagian ini

terdapat fungsi cout yang nantinya akan menampilkan nama dosen yang

mengajar mata kuliah tertentu. Selain itu terdapat pula sebuah fungsi

perulangan dimana nantinya digunakan apabila dosen tersebut mengajar

lebih dari satu mata kuliah. Perulangan tersebut dimulai dari kondisi 0

dengan kondisi tersebut tidak lebih dari 5(mata kuliah tidak lebih dari 5)

dan kondisi tersebut bertipe data int(integer) juga diberikan

increment(nilai tambah pada kondisi tersebut). Setelah perulangan tersebut

maka akan di tampilkan pula fungsi cout yang terdapat pada

cetakMK(kelas Mata Kuliah).

Pada bagian program utama ini, penulisan listing program untuk bagian

program utama selalu diawali dengan fungsi int main (). Fungsi dari

program utama di atas yaitu untuk menentukan pilihan yang kita inputkan

untuk menampilkan output pilihan yang sudah ditentukan.

Pada bagian ini merupakan inisialisasi variabel dari kelas Dosen, untuk

dsn merupakan inisialisasi dari Dosen (char*noPeg, char*nm) dan berisi

masukkan noPeg = P001 dan nm = Steve Owen . Sedangkan inisialisasi

variabel dari kelas MataKuliah, untuk mk1hingga mk5 merupakan

inisialisasi dari MataKuliah (char*kode, char*nm, int sks) dan berisi

Page 16: Laporan Hasil Praktikum ALPRO Modul 4

masukan kode = MK001, nm = PBO, dan sks = 3. Dan seterusnya hingga

masukan mk5.

Pada penulisan program diatas, berfungsi untuk menampilkan pada output

dimana data-data diatas telah diproses melalui perulangan yang terdapat

pada void tambahMK sebelumnya. Lalu setelah data-data tersebut diproses

maka akan ditampilkan pada layar.

Pada program ini di tambahkan fungsi system (“pause”); agar tampilan

output program tidak langsung hilang dari layar monitor. Dan ditambah

fungsi nilai balikannya, yaitu return 0; . Return 0 berarti menandakan

nilai balikannya adalah 0.

Tanda kurung kurawal ({…}) digunakan untuk menandai bagian suatu isi

kelas, bagian isi metode-metode di dalam kelas (behaviour), serta bagian

isi program utama.

Tanda titik koma (;) digunakan untuk menandai akhir penulisan data dan

fungsi dalam program. Tanda titik koma tidak digunakan untuk

mengakhiri nama kelas, nama metode, nama perubah akses, serta

inisialisasi program utama.

Page 17: Laporan Hasil Praktikum ALPRO Modul 4

BAB IV

KESIMPULAN

Relasi antar kelas adalah hubungan dari setiap kelas yang terdapat dalam

sebuah program.

Relasi antar kelas dapat dilakukan dengan paling tidak adanya dua buah

kelas atau lebih, tidak mungkin ada relasi antar kelas apabila hanya

terdapat satu buah kelas di dalam sebuah program.

Jenis relasi kelas ada 2 yaitu agregasi dan asosiasi.

Fungsi system (“pause”); agar tampilan output program tidak langsung

hilang dari layar monitor.

Page 18: Laporan Hasil Praktikum ALPRO Modul 4

BAB V

DAFTAR PUSTAKA

Modul Praktikum Algoritma dan Pemrograman II. Palangka Raya: Universitas

Palangka Raya Fakultas Teknik Jurusan Teknik Informatika. 2015.

Page 19: Laporan Hasil Praktikum ALPRO Modul 4

BAB VI

LAMPIRAN

1. Program agresiasi.cpp :

Page 20: Laporan Hasil Praktikum ALPRO Modul 4

Outputnya:

Page 21: Laporan Hasil Praktikum ALPRO Modul 4

2. Program asosiasi.cpp :

Page 22: Laporan Hasil Praktikum ALPRO Modul 4

Outputnya :