laporan akhir modul v

28
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

Upload: supriyandi-andy

Post on 25-Sep-2015

48 views

Category:

Documents


7 download

DESCRIPTION

LAPORAN ALPRO II

TRANSCRIPT

  • 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 :