tugas pendahuluan 3 modul 3

10
PRAKTIKUM BAHASA PEMROGRAMAN KOMPUTER MODUL III OBJECT ORIENTED PROGRAMMING C++ 1.1 Tujuan 1. Memahami dasar-dasar pemrograman C++. 2. Memahami penggunaan class C++. 3. Memahami penggunaan jenis-jenis class pada C++. 4. Memahami konsep pemroraman berorientasi objek pada C+ +. 1.2 Tugas Pendahuluan 1. Jelaskan apa yang dimaksud dengan class, method, property, object pada pemrograman berorientasi objek C++. Berikan contoh dalam sebuah program. 2. Jelaskan dan berikan contoh perbedaan pemrograman berorientasi objek dengan pemrograman procedural. Berikan pemaparan anda. 3. Apa yang dimaksud dengan class abstract? Berikan contoh dalam sebuah program. Berikan juga komentar pada baris program anda sebagai penjelasan baris program tersebut. 4. Buatlah program dengan class dan funsi constructor untuk mencari akar persamaan kuadrat, dimana class mempunyai data member koefisien persamaan kuadrat yaitu A, B dan C. Kemudian class mempunyai fungsi member input data, hitung determinan dan display akar. Constructor digunakan untuk melakukan inisialisasi nilai A, B dan C dengan nilai A tidak boleh sama dengan nol. Lengkapi dengan validasi. Nama : Ida Bagus Widnyana Prawitra

Upload: vanquish-vein

Post on 11-Dec-2014

119 views

Category:

Documents


6 download

DESCRIPTION

brengsek

TRANSCRIPT

Page 1: Tugas pendahuluan 3 modul 3

PRAKTIKUM BAHASA PEMROGRAMAN KOMPUTER

MODUL IIIOBJECT ORIENTED PROGRAMMING C++

1.1 Tujuan

1. Memahami dasar-dasar pemrograman C++. 2. Memahami penggunaan class C++. 3. Memahami penggunaan jenis-jenis class pada C++. 4. Memahami konsep pemroraman berorientasi objek pada C++.

1.2 Tugas Pendahuluan1. Jelaskan apa yang dimaksud dengan class, method, property, object

pada pemrograman berorientasi objek C++. Berikan contoh dalam sebuah program.

2. Jelaskan dan berikan contoh perbedaan pemrograman berorientasi objek dengan pemrograman procedural. Berikan pemaparan anda.

3. Apa yang dimaksud dengan class abstract? Berikan contoh dalam sebuah program. Berikan juga komentar pada baris program anda sebagai penjelasan baris program tersebut.

4. Buatlah program dengan class dan funsi constructor untuk mencari akar persamaan kuadrat, dimana class mempunyai data member koefisien persamaan kuadrat yaitu A, B dan C. Kemudian class mempunyai fungsi member input data, hitung determinan dan display akar. Constructor digunakan untuk melakukan inisialisasi nilai A, B dan C dengan nilai A tidak boleh sama dengan nol. Lengkapi dengan validasi.

1.3 Jawaban1. Class adalah bentuk penyederhanaan dari suatu permasalahan yang

berkaitan dengan objek. Class dapat didefinisikan sebagai sesuatu yang mempunyai data (sifat) dan fungsi (kelakuan). Data – data yang terdapat di dalam class dinamakan property sedangkan fungsi – fungsinya dinamakan method. Class masih bersifat abstrak, maka dari itu kita harus melakukan instansiasi dari class tersebut. Dalam C++ class bentuk umumnya

Nama : Ida Bagus Widnyana PrawitraNIM : 1104505016

Page 2: Tugas pendahuluan 3 modul 3

Class nama_kelas {Access_specifier1;

Data_members;Member_functions;...

Access_specifier2;Data_members;Member_functions;...

...};

Kode Program 3.1 Bentuk Umum Class

Untuk mendefinisikan implementasi fungsi - fungsi yang terdapat dalam sebuah kelas, kita menggunakan operator : Contoh program

#include <iostream>

using namespace std;

class kelas1{ int A; public: void set_A(int AA); int get_A(); void show_A();};class kelas2{ int B; public: void set_B(int BB); int get_B(); void show_B();};class kelas3{ int C; public: void set_C(int CC); int get_C(); void show_C();};void kelas1::set_A(int AA){ A=AA;}int kelas1::get_A()

Page 3: Tugas pendahuluan 3 modul 3

{ return 0;}void kelas1::show_A(){ cout<<"nilai A : "<<A<<endl;}void kelas2::set_B(int BB){ B=BB;}int kelas2::get_B(){ return 0;}void kelas2::show_B(){ cout<<"nilai kelas B : "<<B<<endl;}void kelas3::set_C(int CC){ C=CC;}int kelas3::get_C(){ return 0;}void kelas3::show_C(){ cout<<"nilai kelas C : "<<C<<endl;}

int main(){ kelas1 OB1; kelas2 OB2; kelas3 OB3;

OB1.set_A(10); OB2.set_B(20); OB3.set_C(30);

OB1.show_A(); OB2.show_B(); OB3.show_C();

return 0;}

Kode Program 3.2 Program Class

Page 4: Tugas pendahuluan 3 modul 3

2. Pemrograman prosedural akan dikatakan lebih baik apabila dalam segala situasi melibatkan kompleksitas moderat atau yang memerlukan signifikan kemudahan maintainability. Manfaat yang dirasakan dalam penggunaan pemrograman prosedural adalah kemampuan kembali menggunakan kode yang sama tanpa menggunakan kode yang berbeda ataupun mengkopinya kembali. Dengan menggunakan “goto”, memudahkan programmer melacak kumpulan data sehingga menghindarkan pemrograman terstruktur menjadi seperti spagethi code. Pemrograman berorientasi objek merupakan paradigma pemrograman yang berorientasikan kepada objek. Semua data dan fungsi di dalam paradigma ini dibungkus dalam kelas-kelas atau objek-objek. Bandingkan dengan logika pemrograman terstruktur. Setiap objek dapat menerima pesan, memproses data, dan mengirim pesan ke objek lainnya, Model data berorientasi objek dikatakan dapat memberi fleksibilitas yang lebih, kemudahan mengubah program, dan digunakan luas dalam teknik piranti lunak skala besar. Lebih jauh lagi, pendukung OOP mengklaim bahwa OOP lebih mudah dipelajari bagi pemula dibanding dengan pendekatan sebelumnya, dan pendekatan OOP lebih mudah dikembangkan dan dirawat.

3. Abstract Class merupakan Class yang khusus dibuat untuk keperluan inheritance. Tujuan dari pembuatan abstract class ini ialah untuk membuat definisi umum bagi class-class yang akan menjadi turunan darinya. Contoh program :

#include <iostream>using namespace std;

class karyawan{ public: virtual void bekerja()=0;};

class programmer: public karyawan{ public: void bekerja() { cout<<"bekerja dengan cara membuat program

menggunakan komputer"; cout<<endl; }};

Page 5: Tugas pendahuluan 3 modul 3

class guru:public karyawan{ public: void bekerja() { cout<<"bekerja dengan cara mengajar di depan

kelas"; cout<<endl; }};//fungsi utamaint main(){ //mendeklarasikan pointer yang bertipe kelas karyawan karyawan *p;

p=new programmer; p->bekerja();

delete p; //menghapus pointer p yang menunjuk ke tpe programmer

p=new guru; p->bekerja();

return 0;}

Kode Program 3.3 Program class Abstract

4. Program :

#include <iostream>#include <conio.h>#include <cstdlib>#include <cmath>#include <cstring>

using namespace std;class pers_kuadrat{public:int A, B, C, huruf; int dis; float x1, x2; char val[256];

Page 6: Tugas pendahuluan 3 modul 3

public: //=================================== void validasi() { do { huruf=0; cin>>val; for(int i=0; i<strlen(val); i++) { if((i==0) && (val[i]=='-')) i++; if(isdigit(val[i])==0) { huruf++; } } if(huruf !=0) { cout<<"Input hanya angka. Ulangi !"<<endl; } }while(huruf!=0); } //=================================== pers_kuadrat() { ulangi: judul(); input(); if(A==0) { cout<<"Bukan Persamaan Kuadrat. Ulangi !"<<endl; getch(); system("CLS"); goto ulangi; } hitung_diskriminan(); display_akar(); } //=================================== void input() { cout<<"Input A : "; validasi(); A=atoi(val); cout<<"Input B : "; validasi(); B=atoi(val); cout<<"Input C : "; validasi(); C=atoi(val); cout<<"===================================="<<endl; cout<<"Maka Persamaan Kuadratnya adalah : "<<A<<"x^2 + "<<B<<"x + "<<C<<"."<<endl;

Page 7: Tugas pendahuluan 3 modul 3

} //=================================== void hitung_diskriminan() { dis = B*B-4*A*C; } //=================================== void display_akar() { if(dis>0) { x1 = -(B+(sqrt(dis)))/(2*A); x2 = -(B-(sqrt(dis)))/(2*A);

cout << "x1 = " << x1 << endl; cout << "x2 = " << x2 << endl; cout << "Akar Real Berbeda" << endl; } else if(dis==0) { x1 = -B/2*A; x2 = x1;

cout << "x1 = " << x1 << endl; cout << "x2 = " << x2 << endl; cout << "Akar Real Kembar" << endl; } else cout<<"Akar Imajiner."<<endl; } //=================================== void judul() { cout<<"\t\tPROGRAM MENGHITUNG PERSAMAAN KUADRAT"<<endl; cout<<"Rumus Persamaan Kuadrat Ax^2 + Bx + C."<<endl<<endl; }};//=======================================int main(){ char pil; ulang: pers_kuadrat call; tanya: cout<<"===================================="<<endl; cout<<"Ingin mengulang? (y/t) : "; cin>>pil; if(pil=='y' || pil=='Y')

Page 8: Tugas pendahuluan 3 modul 3

Kode Program 3.4 Program Mencari Akar Persamaan Kuadrat

{ getch(); system("CLS"); goto ulang; } else if(pil=='t' || pil=='T') { cout<<"Terima kasih."<<endl; } else { cout<<"Input hanya y/t"<<endl; goto tanya; } return 0;}