Laporan Akhir Modul V
-
Upload
supriyandi-andy -
Category
Documents
-
view
56 -
download
7
description
Transcript of Laporan Akhir Modul V
-
LAPORAN AKHIR PRAKTIKUM
ALGORITMA DAN PEMPROGRAMAN II
NAMA : SUPRIYANDI
NIM : DBC 113 170
KELAS : D
MODUL : V (Operator Overloading dan Exception Handling)
JURUSAN TEKNIK INFORMATIKA
FAKULTAS TEKNIK
UNIVERSITAS PALANGKA RAYA
2014
-
BAB I
TUJUAN DAN LANDASAN TEORI
I. Tujuan
Setelah menyelesaikan modul ini, mahasiswa diharapkan mampu :
Mengimplementasikan Exception Handling
Mengimplementasikn operator overloading
II. Landasan Teori
Jarang sekali sebuah program dibuat dapat berjalan dengan sukses pada
saat pertama sekali di jalankan.kesalahan sering terjadi pada saat perancangan
atau pemprograman. Kesalahan tersebut dikategorikan menjadi tiga bagian, yaitu :
Syntac errors-mengakibatkan kesalahan kompilasi.
Semantic errors-program menghasilkan keluaran yang tidak sesuaidengan
harapan.
Runtime errors kebanyakan mengakibatkan terminasi program secara tidak
normal atau bahkan sistem crash
Berikut ini merupakan contoh runtime error.
Pembagian bilangan dengan nol.
Akses elemen yang berada di luar indeks array
Menggunakan nilai negatif untuk ukuran array
Setiap program dalam berada dapat suatu kondisi yang tidak normal-error
Conditions. Program yang baik harus dapat menangani kondisi ini. Exception
merupakan suatu keadaan yang disebabkan oleh runtime error dalam program.
Memungkinkan kesalahan ditangani tanpa harus mengotori program (dengan
runtin yang menagani kesalahan). Memungkinkan pemisahan penanganan
kesalahan dengan program utama (main business logic).
Suatu fungsi dapat memberi tanda suatu kesalahan dengan melempar suatu
exception - throw. Fungsi pemangil dapat menyerahkan kendali ke exception
handler dengan menangkap (chating) exception - try, catch. Berikut ini merupakan
blok try-chatch.
-
try{
intruksi yang berpotensi menghailkan exception
}
Catch (type_exception e){
Intruksi untuk menangani exception
}
Seperti bahasa tingkat yang lain,c++ memiliki beberapa operator +,-
,\,*,,&,[],=, dll. Operator ini telah didefinisikan (pre-defined) dan digunakan
untuk tipe tertentu. Misal: operator + hanya dapat untuk tipe dasar seperti
integer, float, dll. Kadang-kadang diperlukan untuk meredefenisi operator ini
untuk tipe bentukan. Misalnya Kelas Complex a dan b, apakah bisa dilakukan
a+b? Manipulasi bilangan kompleks lebih mudah apabila dapat
memperlakukannya seperti pada tipe dasar. Sehingga dapat dilakukan, hal-hal
seperti
Complex a (2,4);
Complex b (4,5);
. . .
Complex c = a + b;
Bukannya
Complex a(2,4);
Complex b(4,5);
. . .
Complex c = a.tambah(b);
Operator yang digunakan pada kelas dalam C++ dinyatakan dalam
pemanggilan fungsi. Jenis operator ada dua yaitu operator uner operator biner.
Operator uner hanya membutuhkan satu argumen, misalnya ++, --, ~ . Operator
biner membutuhkan dua argument,misalnya +,-,/,*.
Operator dalam C++ diimplementasikan dengan pemanggilan fungsi. User
dapat meredefinisikan arti suatu operator pada suatu kelas dengan melakukan
redefinisi method yang berkaitan dengan operator tersebut. Tidak semua operator
-
bisa di- overload.Ada Batasan-batasan yang bisa dilakukan dalam operator
overloading.
Berikut ini merupakan daftar operator yang dapat di overload dan yang
tidak dapat di overload.
Operator yang dapat di-overload
+ - * / % ^ & I
~ ! = < > += - = *=
/= %= ^= &= I= > >>=
[ ] ( ) new delete
new[] delete[]
Operator yang tidak dapat di-overload
. .* : : ? : Sizeof
-
BAB II
LANGKAH KERJA
III. Langkah Kerja
Buatlah program seperti dibawah ini!
Compelx.cpp
#include
#include
Class complex
{
double real;
double imaginer;
public:
complex(double re=0, double im=0)
{
real = re;
imaginer = im;
}
Complex operator-( )
{
Complex result;
result.real = -real;
result.imaginer = -imaginer;
return result;
}
Complex operator+(complex c)
{
Complex result;
result.real = real + c.real;
-
result.imaginer = imaginer + c.imaginer;
return result;
}
Complex operator-(complex c)
{
Complex result;
result.real = real - c.real;
result.imaginer = imaginer - c.imaginer;
return result;
}
Void display ()
{
Cout
-
BAB III
PEMBAHASAN
Berikut ini adalah pembahasan program pertama (complex.cpp), dan
program kedua yang merupakan tugas praktikum (kalkulator.cpp). Berikut
penjelasannya :
Program Pertama (complex.cpp)
Tujuan dari program ini adalah menampilkan sebuah matriks. Pada
listing program pertama ini terdapat kesalahan pada #include ,
itulah yang membuat program pertama ini tidak dapat dijalankan. Untuk
memperbaiki kesalahan atau errors pada listing program adalah hanya
menambahkan (.h) saja pada belakang kata iostream. Listing program
pertama ini adalah sebagai berikut :
#include
#include
class complex
{
double real;
double imaginer;
public:
complex(double re= 0, double im=0)
{
real = re;
imaginer = im;
}
complex operator-()
{
complex result;
result.real =-real;
result.imaginer = -imaginer;
-
return result;
}
complex operator+(complex c)
{
complex result;
result.real = real + c.real;
result.imaginer = imaginer + c.imaginer;
return result;
}
complex operator-(complex c)
{
complex result;
result.real = real - c.real;
result.imaginer = imaginer - c.imaginer;
return result;
}
void display()
{
cout
-
Maksudnya ditambahkan (.h) itu adalah untuk menjelaskan bahwa
iosteram itu adalah bagian dari header program. Jika, iostream tidak
ditambahkan (.h), maka yang terjadi adalah pada listing void display akan
terdapat atau ditemukan errors pada cout dan seterusnya.
complex operator-()
{
complex result;
result.real =-real;
result.imaginer = -imaginer;
return result;
}
Listing di atas adalah untuk membuat operator negatif (-), yang
menyatakan bahwa angka atau nilai matriks itu adalah negatif.
complex operator+(complex c)
{
complex result;
result.real = real + c.real;
result.imaginer = imaginer + c.imaginer;
return result;
}
Listing di atas adalah untuk membuat operator tambah (+), yang
menjumlahkan antara kedua angka atau nilai matriks, sehingga mendapatkan
hasil dari penjumlahan kedua angka atau nilai tersebut.
-
complex operator-(complex c)
{
complex result;
result.real = real - c.real;
result.imaginer = imaginer - c.imaginer;
return result;
}
Listing di atas adalah untuk membuat operator kurang (-), yang
mengurangkan kedua angka atau nilai matriks, sehingga mendapatkan hasil
dari pengurangan kedua angka atau nilai matriks tersebut.
void display()
{
cout
-
Listing di atas merupakan proses pemanggilan data dan menentukan
data tersebut untuk ditampilkan pada outputnya, sedikit saja terdapat
kesalahan pada operatornya sangat berpengaruh pada main() untuk
menampilkan datanya atau bisa juga akan terjadi errors pada listing
programnya. Demikianlah penjelasan tentang listing program pertama ini.
Program Kedua (TUGAS !)
Pada Program yang kedua ini kita diminta untuk membuat program kalkulator
kalkulator sederhana dengan dua operand dan operator yang digunakan adalah : +
, - , * , / , > , dan
-
Pada program dibawah menggunakan void kalkulator dan cout merupakan
sebuah objek di dalam C++, yang digunakan untuk mengarahkan data ke dalam
standar output dengan menu pilihan penjumlahan ,pengurangan, pembagian,
perkalian, kurangdari dan lebih dari. Fungsi Tanda
-
Merupakan suatu proses dalam program yang mana void kalkulator lebih dari
dengan menggunakan cout dengan perintah masukkan operand 1 dan 2 dan nilai1
dan nilai2 dimasukkan maka akan mehasilkan hasil lebih dari.
Merupakan suatu proses dalam program yang mana void kalkulator kurang
dengan menggunakan cout dengan perintah masukkan operand 1 dan 2 dan nilai1
dan nilai2 dimasukkan maka akan mehasilkan hasil kurang.
Merupakan suatu proses dalam program yang mana void kalkulator bagi
dengan menggunakan cout dengan perintah masukkan operand 1 dan 2 dan nilai1
dan nilai2 dimasukkan maka akan mehasilkan bagi.
-
Merupakan suatu proses dalam program yang mana void kalkulator kali
dengan menggunakan cout dengan perintah masukkan operand 1 dan 2 dan nilai1
dan nilai2 dimasukkan maka akan mehasilkan kali.
Merupakan suatu proses untuk memasukan pilihan dengan menggunakan
cin>> , Dan program dibawah menggunakan int main. Fungsi ini merupakan awal
program utama. Tulisan main() merupakan nama fungsi, sedangkan bagian yang
diapit dengan { dan } disebut blok (tubuh fungsi). Dalam hal ini { merupakan
tanda awal blok dan } adalah tanda akhir blok.
-
Program dibawah menggunakan case 1 sampai dengan 6 yaitu, penjumlahan,
perkurangan ,perkalian, pembagian, kurangdari dan lebihdari dan menggunakan
printah cout yaitu, tekan Y untuk kembali dan tekan T untuk keluar dan
menggunakan break apabila program belum berakhir dan menggunakan if dan
else returnnya exit success.Dan diakhiri dengan return sebagai penutup program
tersebut
-
Untuk kompilasi tekan ctrl+F7 dan untuk menjalankan program tekan
ctrl+F5 atau gunakan fasilitas compile dan run pada menu Build.Hasilnya akan
tampak seperti gambar dibawah ini:
-
BAB IV
KESIMPULAN
Exception handling adalah penanganan kesalahan pada program yang
diakibatkan oleh runtime error. Exception handling melakukan penjebakan
pada setiap error yang terdapat pada program sehingga dapat ditangani
dengan mudah. Sebuah program mempunyai exception handling ditandai
dengan adanya fungsi catch.
Operator over-loading adalah jenis operator yang dapat di-overload.
Contohnya adalah operator+ setelah melakukan overload operator ini
dapat berlaku untk menjumlah tipe bilangan integer. Konsep dasar yang
harus dimiliki untuk dapat melakukan overload adalah dengan
mendefinisikan suatu fungsi operator.
-
BAB V
DAFTAR PUSTAKA
2014.Modul Algoritma dan Pemrograman II . Palangkaraya:Universitas
Palangkaraya.
-
BAB VI
LAMPIRAN
1) Program Complex.cpp :
Input :
-
Output :
-
2) Program kalkulator.cpp :
Input :
-
Output :