Anda di halaman 1dari 28

TUGAS

ALGORITMA DAN PEMROGRAMAN II

Nama
NIM
Dosen

: ALI FAHRUDDIN
: DBC 113 046
: Viktor H. P., ST., MT.

JURUSAN TEKNIK INFORMATIKA


FAKULTAS TEKNIK
UNIVERSITAS PALANGKA RAYA
2014
BAB I
LANDASAN TEORI
Relasi Kelas
Jenis relasi antar kelas terdiri dari pewarisan, agregasi, asosiasi. Pewarisan
merupakan hubungan antar satu kelas dengan kelas dengan kelas yang 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 kelas 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).
Ada beberapa karakteristik yang di-share oleh semua kelompok. Relasi
antara kelas-kelas ini disebut dengan relasi is-a. Dalam setiap kasus, objek
yang dikelompokkan bersama dalam satu sub-kategori merupakan anggota dari

kategori yang lebih umum. Contohnya adalah seperti dibawah ini.

Mobil adalah (is-a) kendaran bermotor.

Truk adalah (is-a) kendaran bermotor.

Sepeda motor adalah (is-a) kendaran bermotor.

Objek yang dikelompokkan dalam satu kelas men-share sekumpulan


atribut dan perilaku. Jadi, seluruh objek kendaraan bermotor memiliki
sekumpulan atribut dan perilaku yang juga dimiliki oleh objekdari mobil.
Keterkaitan antar kelas dalam relasi is-a berasal dari kenyataan bahwa sub kelas
memiliki atribut dan perilaku yang dimiliki kelas induk, ditambah atributt dan
perilaku yang dimiliki oleh sub kelas tersebut.
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 kelas memiliki atribut dan perilaku sub kelas induk,
dan juga atribut dan perilaku tambahan. (jadi, kumpulan atribut dan perilaku sub
kelas lebih besar dari super kelas-nya). Relasi is-a antar superclass dan
subclasses-nya disebut dengan pewarisan dan inheritance.
Subclass mewarisi sesuatu superclass (atau juga bisa dikatakan sebuah
subclass turunan dari suatu superclass) karena reusabilitas perangkat lunak,
membuat kelas baru (kelas turunan) dari kelas yang sudah ada (kelas dasar), kelas
turunan mewarisi kelas induk yang mendapatkan data dan perilaku , merupakan
bentuk special dari kelas induk, dan diperluas dengan perilaku tambahan.
Pewarisan ada dua jenis yaitu pewarisan tunggal dan pewarisan jamak.
Pada protected acces, protected members dapat diakses oleh member kelas dasar,
friend kelas dasar, member kelas turunan, dan rriend kelas turunan. Kelas turunan
dapat merujuk/mengakses langsung public dan protected data member kelas
induk dengan menggunakan nama atribut yang diakses.
Agregasi merupakan hubungan antar kelas yang menyatkan 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 agregat. Mesin,


jurusan dan dapur merupakan kelas penyusun.
Kardinalitas menyatakan jumlah objek penyusunan 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 dan masing-masing kelas yang berelasi dan apakah
relasi tersebut bersifat wajib (mandatory) atau opsional.

BAB II
CODING PROGRAM
#include<stdio.h>
#include<conio.h>
#include<iomanip.h>
#include<iostream.h>
#include<stdlib.h>
#include<string.h>
#include<windows.h>
class mahasiswa {
protected:
char dumb[100],less[100], nama[50],noreg[50], nim[50], alamat[100],
fakultas[20], jurusan[20], prodi[20], semester[20], dosen[50],no_sandi[20];
int i, tahun,jen;
struct mhs
{
char more[100], ex[100],komat[50], namat[100], kel[8],
nm_dos[50];
float ip;
int nilsks,kredit, nip, kredit_in, kredit_out, kredit_up;
}
data[10];
typedef mhs mhsArr[50];
mhsArr x;
public:
void gotoxy(int x, int y)
{
HANDLE hConsoleOutput;
COORD dwCursorPosition;
cout.flush();
dwCursorPosition.X = x;
dwCursorPosition.Y = y;
hConsoleOutput = GetStdHandle(STD_OUTPUT_HANDLE);
SetConsoleCursorPosition(hConsoleOutput,dwCursorPosition);
}
void menu_utama()
{
system("cls");
gotoxy(27,0);cout<<"=========================="<<endl;

gotoxy(27,1);cout<<"||

MENU UTAMA

||"<<endl;

gotoxy(27,2);cout<<"=========================="<<endl;
gotoxy(27,3);cout<<"|| 1. INPUT KRS ||"<<endl;
gotoxy(27,4);cout<<"|| 2. PRINT KRS ||"<<endl;
gotoxy(27,5);cout<<"|| 3. KELUAR
||"<<endl;
gotoxy(27,6);cout<<"=========================="<<endl;
}
void data_mahasiswa()
{
system("cls");
gotoxy(11,1);cout<<"D E P A R T E M E N P E N I D I K A N
N A S I O N A L"<<endl;
gotoxy(16,2);cout<<"U N I V E R S I T A S P A L A N G K A
R A Y A"<<endl;
gotoxy(1,3);cout<<"==========================================
===================================="<<endl;
gotoxy(1,3);cout<<""<<endl;
gotoxy(27,4);cout<<"KARTU RENCANA STUDI
(KRS)"<<endl;
cout<<endl;
gotoxy(1,6);cout<<"Nama : "; cin.getline(nama,50);
cin.getline(less,100);
gotoxy(1,7);cout<<"No. Reg : "; cin.getline(noreg,50);
gotoxy(1,8);cout<<"NIM
: "; cin.getline(nim,50);
gotoxy(1,9);cout<<"Alamat : "; cin.getline(alamat,100);
gotoxy(1,10);cout<<"Fakultas : "; cin.getline(fakultas,20);
gotoxy(1,11);cout<<"Jurusan : "; cin.getline(jurusan,20);
gotoxy(42,6);cout<<"Program Studi : "; cin.getline(prodi,20);
gotoxy(42,7);cout<<"Jenjang
: Sarjana-";cin>>jen;
try {
gotoxy(42,8);cout<<"Th. Akademik : "; cin>>tahun;
}
catch(int tahun)
{
cout<<"INPUT ANGKA!!!"<<endl;
}
gotoxy(63,8);cout<<"/ "<<(tahun+1);
gotoxy(42,9);cout<<"Semester
: ";
cin.getline(semester,20);cin.getline(dumb,100);
gotoxy(42,10);cout<<"Dosen P.A. : "; cin.getline(dosen,50);
gotoxy(42,11);cout<<"No.Sandi Dosen: ";
cin.getline(no_sandi,20);
}

void cetak_data_mahasiswa()
{
system("cls");
gotoxy(12,1);cout<<"D E P A R T E M E N P E N I D I K A N
N A S I O N A L"<<endl;
gotoxy(18,2);cout<<"U N I V E R S I T A S P A L A N G K A
R A Y A"<<endl;
gotoxy(1,3);cout<<"==========================================
======================================="<<endl;
gotoxy(30,4);cout<<"KARTU RENCANA STUDI"<<endl;
cout<<endl;
gotoxy(1,6) ;cout<<"Nama
: "<<(nama,less)<<endl;
gotoxy(1,7) ;cout<<"No. Reg
: "<<noreg<<endl;
gotoxy(1,8) ;cout<<"NIM
: "<<nim<<endl;
gotoxy(1,9) ;cout<<"Alamat
: "<<alamat<<endl;
gotoxy(1,10);cout<<"Fakultas
: "<<fakultas<<endl;
gotoxy(1,11);cout<<"Jurusan
: "<<jurusan<<endl;
gotoxy(42,6);cout<<"Program Studi : "<<prodi<<endl;
gotoxy(42,7);cout<<"Jenjang
: Sarjana"<<jen<<endl;
gotoxy(42,8);cout<<"Th. Akademik : "<<tahun<<" /
"<<(tahun+1)<<endl;
gotoxy(42,9);cout<<"Semester
: "<<(semester,dumb)<<endl;
gotoxy(42,10);cout<<"Dosen P.A. : "<<dosen<<endl;
gotoxy(42,11);cout<<"No.Sandi Dosen : "<<no_sandi<<endl;
}
};
class mata_kuliah : public mahasiswa {
protected:
int jumat;
char tbt[20],kosong[10];
char
kajur[50],nipkajur[50],dosenPA[50],nipPA[50],namaMHybs[50],nimMHybs[50
];
public:
void gotoxy(int x, int y)
{
HANDLE hConsoleOutput;
COORD dwCursorPosition;
cout.flush();
dwCursorPosition.X = x;
dwCursorPosition.Y = y;
hConsoleOutput = GetStdHandle(STD_OUTPUT_HANDLE);
SetConsoleCursorPosition(hConsoleOutput,dwCursorPosition);
}

void matkul()
{
gotoxy(1,14);cout<<"Jumlah Mata Kuliah Yang Diambil : ";
cin>>jumat;
puts("
========================================================
=========================");
puts(" |No.| KODE | MATA KULIAH | KEL |KREDIT| NAMA DOSEN
|
NIP
|");
puts("
========================================================
=========================");
for (i=1;i<=jumat;i++)
{
cout<<" |";
gotoxy(2,17+i);cout<<i;
gotoxy(5,17+i);cout<<"|";
gotoxy(6,17+i);cin.getline(x[i].komat,50);cin.getline(x[i].more,100);
gotoxy(14,17+i);cout<<"|";
gotoxy(16,17+i);cin.getline(x[i].namat,100);
gotoxy(28,17+i);cout<<"|";
gotoxy(30,17+i);cin.getline(x[i].kel,8);
gotoxy(34,17+i);cout<<"|";
gotoxy(37,17+i);cin>>x[i].kredit;
gotoxy(41,17+i);cout<<"|";
gotoxy(43,17+i);cin.getline(x[i].nm_dos,50);cin.getline(x[i].ex,100);
gotoxy(60,17+i);cout<<"|";
gotoxy(62,17+i);cin>>x[i].nip;
gotoxy(81,17+i);cout<<"|"<<endl;
}
puts("
========================================================
=========================");
cout<<" |
Jumlah Kredit yang diprogramkan
semester ini : "; cin>>x[i].kredit_in;
cout<<" |
Jumlah Kredit yang dikumpulkan s/d
semester lalu : "; cin>>x[i].kredit_out;
puts("
========================================================
=========================");
cout<<endl;
cout<<" IP. Semester lalu
: "; cin>>x[i].ip;
cout<<" Jumlah kredit yang diijinkan : "; cin>>x[i].kredit_up;
cout<<"";cin.getline(kosong,10);
cout<<" Ketua Jurusan
: ";cin.getline(kajur,50);
cout<<" NIP Ketua Jurusan : ";cin.getline(nipkajur,50);

cout<<" Dosen PA
: ";cin.getline(dosenPA,50);
cout<<" NIP Dosen PA
: ";cin.getline(nipPA,50);
cout<<" Nama Mahasiswa ybs :
";cin.getline(namaMHybs,50);
cout<<" NIM
: ";cin.getline(nimMHybs,50);
cout<<" Tanggal Pembuatan KRS : ";cin.getline(tbt,20);endl;
cout<<endl;
}
void cetak_matkul()
{
cout<<endl;
puts("
========================================================
=========================");
puts(" |No.| KODE | MATA KULIAH | KEL |KREDIT| NAMA DOSEN
|
NIP
|");
puts("
========================================================
=========================");
for (i=1;i<=jumat;i++)
{
cout<<" |";
gotoxy(2,15+i);cout<<i;
gotoxy(5,15+i);cout<<"|";
gotoxy(6,15+i);cout<<(x[i].komat,x[i].more);
gotoxy(14,15+i);cout<<"|";
gotoxy(16,15+i);cout<<(x[i].namat);
gotoxy(28,15+i);cout<<"|";
gotoxy(30,15+i);cout<<x[i].kel;
gotoxy(34,15+i);cout<<"|";
gotoxy(37,15+i);cout<<x[i].kredit;
gotoxy(41,15+i);cout<<"|";
gotoxy(43,15+i);cout<<(x[i].nm_dos,x[i].ex);
gotoxy(60,15+i);cout<<"|";
gotoxy(621,15+i);cout<<x[i].nip;
gotoxy(81,15+i);cout<<"|"<<endl;
}
puts(" ======================================");
cout<<" |
Jumlah Kredit yang diprogramkan
semester ini : "<<x[i].kredit_in<<" |"<<endl;
cout<<" |
Jumlah Kredit yang dikumpulkan s/d
semester lalu : "<<x[i].kredit_out<<" |"<<endl;
puts("
========================================================
=========================");
cout<<endl;
cout<<" IP. Semester lalu
: "<<x[i].ip<<"\t\tPalangka

Raya, "<<tbt;
cout<<"\n Jumlah kredit yang diijinkan :
"<<x[i].kredit_up<<"\t\tMahasiswa yang bersangkutan"<<endl;
cout<<endl;
cout<<" KRS dibuat 4 rangkap.\t\t\t\t\t"<<namaMHybs<<endl;
cout<<" 1. Putih
- Mahasiswa
ybs\t\t\t\t--------------"<<endl;
cout<<" 2. Hijau
- Dosen PA\t\t\t\t"<<nimMHybs<<endl;
cout<<" 3. Merah
- Fakultas"<<endl;
cout<<" 4. Biru Tua - BAAK"<<endl;
cout<<endl;
cout<<endl;
cout<<"\t\tMembenarkan :";
cout<<"\t\t\t\tMengetahui :"<<endl;
cout<<"\tKetua Jurusan/Program Studi";
cout<<"\t\tDosen Pembimbing Akademik"<<endl;
cout<<"";
cout<<endl;
cout<<"";
cout<<endl;
cout<<"
"<<kajur;
cout<<"\t\t "<<dosenPA<<endl;
cout<<"
---------------------------";
cout<<"\t\t-------------------------"<<endl;
cout<<"
NIP. "<<nipkajur;
cout<<"\t\t NIP. "<<nipPA<<endl;
}
};
void gotoxy(int, int);
int main()
{
int pilihan;
mahasiswa saya;
mata_kuliah saya_juga;
awal :
saya.menu_utama();
gotoxy(27,7);cout<<"Pilihan [1/2/3] : "; cin>>pilihan;
cout<<endl;
if (pilihan==3) {
char sambutan[]="
Copyright(C) by MUSTAFA
ARIFIN DBC 113 005";
for(int x=0;sambutan[x]!=NULL;x++)
{
gotoxy(x,9);cout<<sambutan[x];
for (double y=0;y<=9999000;y++){}

cout<<endl;
}
Sleep(3600);
return 0;
}
switch (pilihan) {
case 1: saya.data_mahasiswa();
saya_juga.matkul();
break;
case 2: saya.cetak_data_mahasiswa();
saya_juga.cetak_matkul();
break;
default: gotoxy(12,9);cout<<"Maaf Pilihan Yang Anda
Masukkan Salah!!!";
}
cin.get(); cin.get();
goto awal;
}
void gotoxy(int x, int y)
{
HANDLE hConsoleOutput;
COORD dwCursorPosition;
cout.flush();
dwCursorPosition.X = x;
dwCursorPosition.Y = y;
hConsoleOutput = GetStdHandle(STD_OUTPUT_HANDLE);
SetConsoleCursorPosition(hConsoleOutput,dwCursorPosition);
}

BAB III
PEMBAHASAN
Dalam program KRS ini kita mempunyai 2 kelas yaitu class mahasiswa
dan class mata_kuliah yang menggunakan relasi Pewarisan karena class
mahasiswaadalah sebagai kelas induk yang mewarisi sifatnya terhadap class
mata_kuliah yang merupakan kelas anak.
Dalam program KRS ini kita membutuhkan beberapa header diantaranya.
#include<stdio.h>
#include<conio.h>
#include<iomanip.h>
#include<iostream.h>
#include<stdlib.h>
#include<string.h>
#include<windows.h>
Berikut ini fungsi-fungsi dari header diatas:
stdlib.h dipergunakan untuk prototype fungsi operasi matematika seperti :
sqrt (akar kuadrat), sin, cos, tan, acos, asin, atan, atan2, cosh, sinh, tanh, exp,
prexp, ldexp, log, log10, modf, pow, ceil, fabs, fmod

conio.h digunakan Fungsi-fungsi pustaka yang umum digunakan untuk


menampilkan hasil seperti bila melibatkan clrscr( ), yaitu perintah untuk
membersihkan layar dan fungsi getch( ) untuk menerima sembarang input
keyboard dari user.
iomanip.h diperlukan bila melibatkan setw( ) yang bermanfaat untuk
mengatur lebar dari suatu tampilan data.
Stdlib.h adalah fungsi-fungsi pustaka yang umum digunakan untuk
menampilkan hasil prototype-nya berada di file judul.
iostream.h diperlukan pada program yang melibatkan objek cout dan cin
windows.hdan string.h diperlukan bila melibatkantipe string dan fungsi
gotoxy digunakan untuk menempatkan kursor ditempat yang tidak dapat di
capai bila kita hanya menggunakan sekuensi program saja.
Include Merupakan salah satu pengarah Prepocessor Directive yang
tersedia pada C++. Prepocessor selalu dijalankan terlebih dahulu pada saat proses
kompilasi terjadi. Baris tesebut mengintruksikan kepada kompiler yang
menyisipkan file lain dalam hal ini file yang berakhiran .h (file header) yaitu file
yang berisi sebagai deklarasi. Contonya: #include <iostream.h>,
#include<conio.h>, #include <stdio.h>
Nama file yang memungkinkan dibangun pada program bahasa c++, yang
dicantumkan setelah #include. Berisi antara lain informasi fungsi, konstanta, dan
variabel dari pustaka (bagian program yang telah tersedia) .Ada beberapa hal
tentang kerangka program C tersebut yang perlu diketahui.

Kelas yang kita buat adalah class mahasiswa.Yang terdiri dari beberapa
variabel. Struktur pada kelas mahasiswa:
class mahasiswa
protected
dumb[100],
less[100],
nama[50],
noreg[50],
nim[50],
alamat[100],
fakultas[20],
jurusan[20],
prodi[20],
semester[20],
dosen[50],
no_sandi[20];
i,tahun, jen.
Struct mhs {
more[100], ex[100],
komat[50], namat[100],
kel[8], nm_dos[50];
float ip;
int nilsks,
kredit,
nip,
kredit_in,
kredit_out,
kredit_up;
data[10];
typedef mhs mhsArr[50];
mhsArr x;

public
void gotoxy(int x, int y)
void menu_utama()
void data_mahasiswa()
void cetak_data_mahasiswa()

Maksud dari dumb[100] adalah variabel dumb dapat memiliki maksimal


100 karakter pada inputan, less[100] adalah variabel less dapat memiliki maksimal
100 karakter pada inputannya, nama[50] adalah variabel nama yang hanya dapat
memiliki 50 karakter pada inputannya, begitupun yang lainnya.
Tipe data char adalah karakter ASCI untuk ukuran memori 1 Byte,
Jangkauan Nilai -128 s.d 127, tipe data float adalah Konstanta Desimal Berpresisi
Tunggal ( Floating Point ) Konstanta Floating Point, mempunyai bentuk
penulisan, yaitu : Bentuk Desimal ( contoh : 5.57 ), dan int ad alah digunakan untuk
bilangan yang tidak mengandung nilai desimal. Ini merupakan nilai default pada konstanta
bilangan.

Fungsi-fungsi dalam class mahasiswa.


void gotoxy(int x, int y)
void menu_utama()
void data_mahasiswa()

void cetak_data_mahasiswa()
Berikut penjelasanya dari fungsi-fungsi yang terdapat pada class mahasiswa:
void gotoxy(int x, int y)
void gotoxy(int x, int y)
{
HANDLE hConsoleOutput;
COORD dwCursorPosition;
cout.flush();
dwCursorPosition.X = x;
dwCursorPosition.Y = y;
hConsoleOutput = GetStdHandle(STD_OUTPUT_HANDLE);
SetConsoleCursorPosition(hConsoleOutput,dwCursorPosition);
}
Pada Fungsi gotoxy digunakan untuk menempatkan kursor ditempat yang
tidak dapat di capai bila kita hanya menggunakan sekuensi program saja. Jika kita
gunakan gotoxy, maka kita dapat meletakan kursor kita dimana saja sesuai dengan
titik koorninatnya.
Fungsi gotoxy mempunyai dua parameter. Parameter tersebut adalah
koordinat dimana kita ingin meletakan kursor. Titik pojok kiri atas mempunyai
titik koordinat [0,0]. Jika ingin menggeser kekanan maka x ditambahkan sesuai
dengan posisi yang kmu inginkan. Jika ingin menggeser ke bawah maka y
ditambahkan. dalam penggunaan fungsi ini, jngn lupa menyertakan library
include<windows.h>

void menu_utama()

void menu_utama()
{
system(cls);
gotoxy(27,0);cout<<==========================<<endl;
gotoxy(27,1);cout<<||
MENU UTAMA ||<<endl;
gotoxy(27,2);cout<<==========================<<endl;
gotoxy(27,3);cout<<|| 1. INPUT KRS ||<<endl;
gotoxy(27,4);cout<<|| 2. PRINT KRS ||<<endl;
gotoxy(27,5);cout<<|| 3. KELUAR
||<<endl;
gotoxy(27,6);cout<<==========================<<endl;
}
Pada fungsi void menu_utama digunakan untuk menampilkan output menu
pada program dan di program KRS ini memiliki 3 pilihan yaitu 1.Input KRS
untuk menginput data KRS; 2.Print KRS untuk menampilkan hasil data yang
telah kita inputkan tadi; 3.Keluar digunakan untuk keluar dari program ini.
Terdapat intruksi system(cls) digunakan untuk mengulang fungsi ini
dan membersihkan layar terlebih dahulu sebelum menampilkan menu ini.

void data_mahasiswa()
void data_mahasiswa()
{
system("cls");
gotoxy(11,1);cout<<"D E P A R T E M E N P E N I D I K A N
N A S I O N A L"<<endl;
gotoxy(16,2);cout<<"U N I V E R S I T A S P A L A N G K A
R A Y A"<<endl;
gotoxy(1,3);cout<<"==========================================
===================================="<<endl;
gotoxy(1,3);cout<<""<<endl;
gotoxy(27,4);cout<<"KARTU RENCANA STUDI
(KRS)"<<endl;
cout<<endl;
gotoxy(1,6);cout<<"Nama : "; cin.getline(nama,50);
cin.getline(less,100);
gotoxy(1,7);cout<<"No. Reg : "; cin.getline(noreg,50);
gotoxy(1,8);cout<<"NIM
: "; cin.getline(nim,50);
gotoxy(1,9);cout<<"Alamat : "; cin.getline(alamat,100);
gotoxy(1,10);cout<<"Fakultas : "; cin.getline(fakultas,20);
gotoxy(1,11);cout<<"Jurusan : "; cin.getline(jurusan,20);
gotoxy(42,6);cout<<"Program Studi : "; cin.getline(prodi,20);
gotoxy(42,7);cout<<"Jenjang
: Sarjana-";cin>>jen;
try {
gotoxy(42,8);cout<<"Th. Akademik : "; cin>>tahun;
}
catch(int tahun)
{
cout<<"INPUT ANGKA!!!"<<endl;
}
gotoxy(63,8);cout<<"/ "<<(tahun+1);
gotoxy(42,9);cout<<"Semester
: ";
cin.getline(semester,20);cin.getline(dumb,100);
gotoxy(42,10);cout<<"Dosen P.A. : "; cin.getline(dosen,50);
gotoxy(42,11);cout<<"No.Sandi Dosen: ";
cin.getline(no_sandi,20);
}
Fungsi void data_mahasiswa digunakan untuk tempat menginputkan datadata mahasiswa yang berada pada KRS yang akan kita buat. Dan terdapat
sytem(cls) untuk membersihkan layar terlebiih dahulu sebelum data-data itu
kita masukkan.
try {
gotoxy(42,8);cout<<"Th. Akademik : "; cin>>tahun;
}
catch(int tahun)
{

cout<<"INPUT ANGKA!!!"<<endl;
}
Pada fungi ini terdapat Kode untuk Exception atau Error terdapat pada
bagian CATCH. Sedangkan bila program berjalan tanpa error/pengecualian maka
kode dalam TRY lah yang akan dieksekusi. Maksudnya apabila kita dalam
menginputkan data Th. Akademik adalah salah misalnya dengan menggunakan
karakter huruf maka program akan terjadi kesalahan maka akan ditangani dengan
intruksi CATCH pada program ini dengan menampilkan pesan INPUT
ANGKA. Apabila penginputan benar maka program akan melanjutkan pada
statement selanjutnya.
void cetak_data_mahasiswa()
void cetak_data_mahasiswa()
{
system("cls");
gotoxy(12,1);cout<<"D E P A R T E M E N P E N I D I K A N N A S
I O N A L"<<endl;
gotoxy(18,2);cout<<"U N I V E R S I T A S P A L A N G K A R A Y
A"<<endl;
gotoxy(1,3);cout<<"==========================================
======================================="<<endl;
gotoxy(30,4);cout<<"KARTU RENCANA STUDI"<<endl;
cout<<endl;
gotoxy(1,6) ;cout<<"Nama
: "<<(nama,less)<<endl;
gotoxy(1,7) ;cout<<"No. Reg
: "<<noreg<<endl;
gotoxy(1,8) ;cout<<"NIM
: "<<nim<<endl;
gotoxy(1,9) ;cout<<"Alamat
: "<<alamat<<endl;
gotoxy(1,10);cout<<"Fakultas
: "<<fakultas<<endl;
gotoxy(1,11);cout<<"Jurusan
: "<<jurusan<<endl;
gotoxy(42,6);cout<<"Program Studi : "<<prodi<<endl;
gotoxy(42,7);cout<<"Jenjang
: Sarjana"<<jen<<endl;
gotoxy(42,8);cout<<"Th. Akademik : "<<tahun<<" /
"<<(tahun+1)<<endl;
gotoxy(42,9);cout<<"Semester
: "<<(semester,dumb)<<endl;
gotoxy(42,10);cout<<"Dosen P.A. : "<<dosen<<endl;
gotoxy(42,11);cout<<"No.Sandi Dosen : "<<no_sandi<<endl;
}
Pada fungsi void cetak_data_mahasiswa adalah digunakan untuk
menampilkan data yang sudah diinputkan pada input data KRS tadi. Di fungsi ini
terdapat instruksi system(cls) yang digunakan untuk membersihkan layar
terlebih dahulu sebelum data tersebut ditampilkan. Dan terdapat instruksi gotoxy
yang digunakan untuk menggeser baris yang berfungsi menempatkan output pada
posisi yang dinginkan pada hasil output, misalnya gotoxy(1, 6) yaitu gotoxy
dengan penempatan pada posisi kolom 1 dan pada baris 6 seperti pada tabel
posisinya.

Kelas kedua yang kita buat pada program KRS ini adalah class mata_kuliah
yang mewarisi class mahasiswa yang telah kita buat tadi. Struktur pada class
mata_kuliah:
Class mata kuliah
protected
Public
int jumat;
void gotoxy(int x, int y)
char tbt[20],
void matkul()
kosong[10];
void cetak_matkul()
char kajur[50],
void gotoxy(int, int);
nipkajur[50],
void gotoxy(int x, int y)
dosenPA[50],
nipPA[50],
namaMHybs[50],
nimMHybs[50];
Pada kelas mata_kuliah ini digunakan untuk penginputan mata kuliah yang
akan diambil pada semester ini didalam KRS.
void gotoxy(int x, int y)
void gotoxy(int x, int y)
{
HANDLE hConsoleOutput;
COORD dwCursorPosition;
cout.flush();
dwCursorPosition.X = x;
dwCursorPosition.Y = y;
hConsoleOutput = GetStdHandle(STD_OUTPUT_HANDLE);
SetConsoleCursorPosition(hConsoleOutput,dwCursorPosition);
}
Pada fungsi void gotoxy(int x, int y) merupakan fungsi gotoxy digunakan
untuk menempatkan kursor ditempat yang tidak dapat di capai bila kita hanya
menggunakan sekuensi program saja. Jika kita gunakan gotoxy, maka kita dapat
meletakan kursor kita dimana saja sesuai dengan titik koordinatnya.
Fungsi gotoxy mempunyai dua parameter. Parameter tersebut adalah
koordinat dimana kita ingin meletakan kursor. Titik pojok kiri atas mempunyai
titik koordinat [0,0]. Jika ingin menggeser kekanan maka x ditambahkan sesuai
dengan posisi yang kmu inginkan. Jika ingin menggeser ke bawah maka y
ditambahkan.

void matkul()

void matkul()
{
gotoxy(1,14);cout<<"Jumlah Mata Kuliah Yang Diambil : ";
cin>>jumat;

puts("
========================================================
=========================");
puts(" |No.| KODE | MATA KULIAH | KEL |KREDIT| NAMA DOSEN
|
NIP
|");
puts("
========================================================
=========================");
for (i=1;i<=jumat;i++)
{
cout<<" |";
gotoxy(2,17+i);cout<<i;
gotoxy(5,17+i);cout<<"|";
gotoxy(6,17+i);cin.getline(x[i].komat,50);cin.getline(x[i].more,100);
gotoxy(14,17+i);cout<<"|";
gotoxy(16,17+i);cin.getline(x[i].namat,100);
gotoxy(28,17+i);cout<<"|";
gotoxy(30,17+i);cin.getline(x[i].kel,8);
gotoxy(34,17+i);cout<<"|";
gotoxy(37,17+i);cin>>x[i].kredit;
gotoxy(41,17+i);cout<<"|";
gotoxy(43,17+i);cin.getline(x[i].nm_dos,50);cin.getline(x[i].ex,100);
gotoxy(60,17+i);cout<<"|";
gotoxy(62,17+i);cin>>x[i].nip;
gotoxy(81,17+i);cout<<"|"<<endl;
}
puts("
========================================================
=========================");
cout<<" |
Jumlah Kredit yang diprogramkan
semester ini : "; cin>>x[i].kredit_in;
cout<<" |
Jumlah Kredit yang dikumpulkan s/d
semester lalu : "; cin>>x[i].kredit_out;
puts("
========================================================
=========================");
cout<<endl;
cout<<" IP. Semester lalu
: "; cin>>x[i].ip;
cout<<" Jumlah kredit yang diijinkan : "; cin>>x[i].kredit_up;
cout<<"";cin.getline(kosong,10);
cout<<" Ketua Jurusan
: ";cin.getline(kajur,50);
cout<<" NIP Ketua Jurusan : ";cin.getline(nipkajur,50);
cout<<" Dosen PA
: ";cin.getline(dosenPA,50);
cout<<" NIP Dosen PA
: ";cin.getline(nipPA,50);
cout<<" Nama Mahasiswa ybs :
";cin.getline(namaMHybs,50);
cout<<" NIM
: ";cin.getline(nimMHybs,50);

cout<<" Tanggal Pembuatan KRS : ";cin.getline(tbt,20);endl;


cout<<endl;
}
Pada fungsi void matkul () ini digunakan untuk penginputan mata kuliah
yang akan diambil. Di program KRS ini kita memberi masukkan berapa jumlah
mata kuliah yang akan diambil dan inputannya menggunakan variabel jumat.
Terdapat instruksi perintah puts sebenarnya sama dengan printf(), yaitu
digunakan untuk mencetak string ke layar. puts() berasal dari kata PUT STRING.
Perbedaan antara printf() dengan puts() adalah : printf() puts() .Harus menentukan
tipe data untuk data tring, yaitu %s Tidak Perlu penentu tipe data string, karena
fungsi ini khusus untuk tipe data string. Untuk mencetak pindah baris,
memerlukan notasi n Untuk mencetak pindah baris tidak perlu notasi n ,
karena sudah dibeikan secara otomatis.
Di fungsi ini juga terdapat pengulangan jumlah mata kuliah yang diambil
yang sudah dimasukkan kedalam variabel jumat yaitu menggunakan for
(i=1;i<=jumat;i++)yang digunakan untuk pengulangan (looping) terhadap jumlah
mata kuliah (banyaknya jumlah pada variabel jumat).
Pada fungsi ini juga terdapat beberapa perintah gotoxy yang digunakan
untuk penginputan mata kuliah seperti kode, Mata Kuliah, Kelompok MK,
Kredit, Nama dosen dan NIP.
Terdapat instruksi untuk menata inputan mata kuliah agar menjadi rapi
seperti instruksi dibawah ini.
gotoxy(6,17+i);cin.getline(x[i].komat,50);cin.getline(x[i].more,100);
gotoxy(14,17+i);cout<<"|";
Instruksi diatas ini akan menampilkan output seperti

Didalam fungsi ini terdapat beberapa intruksi untuk memasukkan data


seperti :Jumlah kredit yang diprogramkan, Jumlah kredit yang dikumpulkan
semester lalu, IP semester lalu, jumlah kredit yang diizinkan, ketua jurusan,
NIP ketua jurusan, Dosen PA, NIPdosen PA, Nama mahasiswa ybs, NIM, dan
Tanggal pembuatan KRS.
void cetak_matkul()
void cetak_matkul()
{
cout<<endl;
puts("
========================================================
=========================");
puts(" |No.| KODE | MATA KULIAH | KEL |KREDIT| NAMA DOSEN
|
NIP
|");
puts("
========================================================
=========================");
for (i=1;i<=jumat;i++)

{
cout<<" |";
gotoxy(2,15+i);cout<<i;
gotoxy(5,15+i);cout<<"|";
gotoxy(6,15+i);cout<<(x[i].komat,x[i].more);
gotoxy(14,15+i);cout<<"|";
gotoxy(16,15+i);cout<<(x[i].namat);
gotoxy(28,15+i);cout<<"|";
gotoxy(30,15+i);cout<<x[i].kel;
gotoxy(34,15+i);cout<<"|";
gotoxy(37,15+i);cout<<x[i].kredit;
gotoxy(41,15+i);cout<<"|";
gotoxy(43,15+i);cout<<(x[i].nm_dos,x[i].ex);
gotoxy(60,15+i);cout<<"|";
gotoxy(621,15+i);cout<<x[i].nip;
gotoxy(81,15+i);cout<<"|"<<endl;
}
puts("
========================================================
=========================");
cout<<" |
Jumlah Kredit yang diprogramkan
semester ini : "<<x[i].kredit_in<<" |"<<endl;
cout<<" |
Jumlah Kredit yang dikumpulkan s/d
semester lalu : "<<x[i].kredit_out<<" |"<<endl;
puts("
========================================================
=========================");
cout<<endl;
cout<<" IP. Semester lalu
: "<<x[i].ip<<"\t\tPalangka
Raya, "<<tbt;
cout<<"\n Jumlah kredit yang diijinkan :
"<<x[i].kredit_up<<"\t\tMahasiswa yang bersangkutan"<<endl;
cout<<endl;
cout<<" KRS dibuat 4 rangkap.\t\t\t\t\t"<<namaMHybs<<endl;
cout<<" 1. Putih
- Mahasiswa
ybs\t\t\t\t--------------"<<endl;
cout<<" 2. Hijau
- Dosen PA\t\t\t\t"<<nimMHybs<<endl;
cout<<" 3. Merah
- Fakultas"<<endl;
cout<<" 4. Biru Tua - BAAK"<<endl;
cout<<endl;
cout<<endl;
cout<<"\t\tMembenarkan :";
cout<<"\t\t\t\tMengetahui :"<<endl;
cout<<"\tKetua Jurusan/Program Studi";
cout<<"\t\tDosen Pembimbing Akademik"<<endl;
cout<<"";
cout<<endl;

cout<<"";
cout<<endl;
cout<<"
"<<kajur;
cout<<"\t\t "<<dosenPA<<endl;
cout<<"
---------------------------";
cout<<"\t\t-------------------------"<<endl;
cout<<"
NIP. "<<nipkajur;
cout<<"\t\t NIP. "<<nipPA<<endl;
}
};
Fungsi void cetak_matkul () ini digunakan untuk mencetak data mata
kuliah yang telah dilakukkan penginputan pada fungsi matkul (). Terdapat
beberapa instruksi pada gotoxy pada penempatan tempat data mata kuliah
misalnya adalah gotoxy(2, 15+i) maksudnya ialah menempatkan pada baris ke 2
dan dan kolom ke 15+i ( kolom 15 dengan ditambahkan oleh pengulangan pada
jumlah mata kuliah atau variabel jumat).
Pada fungsi ini juga terdapat instruksi puts yaitu perintah yangsebenarnya
sama dengan printf(), yaitu digunakan untuk mencetak string ke layar. puts()
berasal dari kata PUT STRING. Perbedaan antara printf() dengan puts() adalah :
printf() puts() .Harus menentukan tipe data untuk data tring, yaitu %s Tidak Perlu
penentu tipe data string, karena fungsi ini khusus untuk tipe data string. Untuk
mencetak pindah baris, memerlukan notasi n Untuk mencetak pindah baris
tidak perlu notasi n , karena sudah dibeikan secara otomatis.
Pada fungsi ini juga dilakukan penempatan pada output agar hasilnnya
sama seperti KRS pada aslinya.
void gotoxy(int, int);
void gotoxy(int, int);
int main()
{
int pilihan;
mahasiswa saya;
mata_kuliah saya_juga;
awal :
saya.menu_utama();
gotoxy(27,7);cout<<"Pilihan [1/2/3] : "; cin>>pilihan;
cout<<endl;
if (pilihan==3) {
char sambutan[]="
Copyright(C) by ALI
FAHRUDDIN DBC 113 046";
for(int x=0;sambutan[x]!=NULL;x++)
{
gotoxy(x,9);cout<<sambutan[x];
for (double y=0;y<=9999000;y++){}
cout<<endl;
}

Sleep(3600);
return 0;
}
switch (pilihan) {
case 1: saya.data_mahasiswa();
saya_juga.matkul();
break;
case 2: saya.cetak_data_mahasiswa();
saya_juga.cetak_matkul();
break;
default: gotoxy(12,9);cout<<"Maaf Pilihan Yang Anda
Masukkan Salah!!!";
}
cin.get(); cin.get();
goto awal;
}
Pada fungsi gotoxy(int, int) adalah fungsi yang didalamnya terdapat
program utama dari program ini. Terdapat int main() yaitu awal dari program
utama berisi int pilihan,mahasiswa saya, mata_kuliah saya_juga.
Disini terdapat pengulangan instruksi yang diberi nama awaldi program
ini membuat objek saya.menu_utama yang menunjuk pada fungsi menu_utama,
dan terdapat pilihan menu dengan memerlukan pilihan apa yang akan digunakan
menggunakan variabel pilihan. Pemilihan pada program KRS ini kita
menggunakan instruksi if..case apabila yang dipilih adalah pilihan 3 yaitu
KELUARmaka muncul output berupa Copyright(C) by ALI FAHRUDDIN
DBC 113 046 dan program akan melakukan instruksi selanjutnya yaitu sleep
ialah program akan tertutup.
Apabila user menggunakan pilihan 1yaitu INPUT KRSprogram akan
menggunakan instruksi case 1 yaitu membuat objek saya.data_mahasiswa yang
menunjuk pada fungsi void data_mahasiswa dan membuat objek
saya_juga.matkul yang menunjuk pada fungsi matkul, dan kemudian program
akan melakukan break yaitu akan kembali pada menu utama lagi.
Apabila user menggunakan pilihan 2yaitu PRINT KRSprogram akan
menggunakan instruksi case 1 yaitu membuat objek saya.cetak_data_mahasiswa
yang menunjuk pada fungsi cetak_data_mahasiswa dan membuat objek
saya_juga.cetak_matkul yang menunjuk pada fungsi void cetak_matkul, dan
program akan melakukan break yaitu program akan kembali pada menu utama
lagi.
Dan terdapat pilihan default disini ialah apabila pilihan yang diberikan
ialah selain 1, 2 dan 3 maka program akan menampilkan otuput berupa "Maaf
Pilihan Yang Anda Masukkan Salah!!!"
Intruksi goto awal ini adalah instruksi untuk mengembalikan pada menu
utama apabila suatu pilihan sudah dilakukan.
void gotoxy(int x, int y)
void gotoxy(int x, int y)
{
HANDLE hConsoleOutput;

COORD dwCursorPosition;
cout.flush();
dwCursorPosition.X = x;
dwCursorPosition.Y = y;
hConsoleOutput = GetStdHandle(STD_OUTPUT_HANDLE);
SetConsoleCursorPosition(hConsoleOutput,dwCursorPosition);
}

Padafungsi void gotoxy(int x, int y) yang memiliki parameter int x dan


int y. fungsi gotoxy digunakan untuk menempatkan kursor ditempat yang tidak
dapat di capai bila kita hanya menggunakan sekuensi program saja. Jika kita
gunakan gotoxy, maka kita dapat meletakan kursor kita dimana saja sesuai dengan
titik koorninatnya.
Fungsi gotoxy mempunyai dua parameter. Parameter tersebut adalah
koordinat dimana kita ingin meletakan kursor. Titik pojok kiri atas mempunyai
titik koordinat [0,0]. Jika ingin menggeser kekanan maka x ditambahkan sesuai
dengan posisi yang kmu inginkan. Jika ingin menggeser ke bawah maka y
ditambahkan. dalam penggunaan fungsi ini, jangan lupa menyertakan library
include<windows.h>

BAB IV

KESIMPULAN
Jenis relasi antar kelas terdiri dari pewarisan, agregasi, asosiasi. Pewarisan
merupakan hubungan antar satu kelas dengan kelas dengan kelas yang lain dalam
suatu hirarki kelas induk dan kelas turunan.
Agregasi merupakan hubungan antar kelas yang menyatkan suatu kelas
merupakan bagian dari kelas yang lain atau hubungan antar kelas yang
menyatakan suatu kelas memiliki kelas lain [atribut]. Agregasi merupakan relasi
has a
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 dan masing-masing kelas yang berelasi dan apakah
relasi tersebut bersifat wajib (mandatory) atau opsional.
Nama file yang memungkinkan dibangun pada program bahasa c++, yang
dicantumkan setelah #include. Berisi antara lain informasi fungsi, konstanta, dan
variabel dari pustaka (bagian program yang telah tersedia) .Ada beberapa hal
tentang kerangka program C tersebut yang perlu diketahui.
o Pertama, program C++ harus mempunyai fungsi main yang ditulis
seperti ini : main() . Tubuh program C akan mengikuti fungsi main itu
dan dimasukkan di antara tanda kurung { dan }. Dalam contoh di atas
tubuh programnya adalah : printf(C++ i tu mudah!n.);.
o Kedua, fungsi dan pernyataan di tubuh program C ditutup dengan
tanda ;.
o Ketiga, program C biasanya punya satu atau lebih file header. File
header program di atas adalah stdio.hFile header itu mempunyai
banyak kegunaan, antara lain untuk menjalankan proses input/output.
Untuk mengikutkan file header itu bisa ditulis directive #include<
>.
Fungsi gotoxy digunakan untuk menempatkan kursor ditempat yang tidak
dapat di capai bila kita hanya menggunakan sekuensi program saja. Jika kita
gunakan gotoxy, maka kita dapat meletakan kursor kita dimana saja sesuai dengan
titik koorninatnya.

BAB V
DAFTAR PUSTAKA
http://acortzdie.wordpress.com/pemograman-c++.html
http://www.adityarizki.net/2011/04/tutorial-pemrograman-berorientasiobyek-dengan-c-polimorfisme-studi-kasus/.html
http://www.mediatutorial.web.id/2012/12/exception-handling-errorhandling.html

BAB VI
LAMPIRAN

Tampilan utama setelah program dijalankan.

Untuk menginput data KRS maka kita pilih 1 pada Menu Utama.

Setelah itu muncul beberapa inputan yang membutuhkan masukkan data KRS.

Isi data KRS tersebut sampai terisih semua data yang diberikan.

Setelah data KRS terisi dan sampai pada pengisian Jumalah mata kuliah yang
diambil, maka isi berapa banyak mata kuliah yang diambil.

Misalnya saya memberikan jumlah mata kuliah sebanyak 8, kemudian enter.

Isi semua data mata kuliah sebanyak jumlah tadi, maka saya mengisikan 8
data.

Setelah itu muncul jumlah kredit yang di programkan semester ini dan saya
masukkan 22, dan jumlah kredit yang dikumpulkan semester lalu dan saya
masukkan 24.

Selanjutnya adalah pengisian IP semester lalu dan saya masukkan 3.48, dan
jumlah kredit yang diijinkan 24.

Selanjutnya selesaikan data pengisian KRS sampai selesai.

Selanjutnya program akan kembali ke menu utama setelah selesai inputan data
KRS.

Untuk mencetak KRS kita pilih 2 untuk menampilkan hasil dari KRS kita.

Hasil dari KRS yang telah kita buat.

Anda mungkin juga menyukai