LAPORAN AKHIR PRAKTIKUM ALGORITMA DAN PEMPROGRAMAN II
NAMA
: SUPRIYANDI
NIM
: DBC 113 170
KELAS
:D
MODUL
: I (Dasar Pemprograman Berorientasi Objek)
JURUSAN TEKNIK INFORMATIKA FAKULTAS TEKNIK UNIVERSITAS PALANGKA RAYA 2014
BAB I TUJUAN DAN LANDASAN TEORI
I. TUJUAN Setelah menyelesaikan modul ini, mahasiswa diharapkan mampu : Memahami dasar-dasar pemprograman berorientasi objek Memahami enkapsulasi Membuat kelas dan objek
II. LANDASAN TEORI `
Pemrograman berorientasi objek (PBO), atau dalam bahasa Inggris
dikenal sebagai Object Oriented Programming (OOP), merupakan suatu pemrograman yang berorientasikan kepada objek. Semua data dan fungsi di dalam PBO dibungkus dalam kelas-kelas atau objek-objek. 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 perangkat lunak berskala besar. Selain itu, PBO juga lebih mudah dipelajari bagi pemula dibanding dengan pendekatan sebelumnya, dan pendekatan PBO lebih mudah dikembangkan dan dirawat. Konsep dari PBO adalah lebih dari sekedar sebuah konsep pemrograman, PBO merupakan cara berpikir tentang aplikasi bahwa aplikasi bukan sekedar prosedur melainkan sebagai object dan real entity. Object yang dimaksud disini memiliki pengertian suatu modul yang mengkombinasikan antara data dan kode program yang bekerja sama dalam program dengan melewatkan proses satu sama lain. Jadi, PBO merupakan cara yang paling efisien untuk menulis program komputer yang sangat mudah untuk di kombinasikan dan dipergunakan kembali. PBO lebih memfokuskan kepada manipulasi object.
Contoh bahasa pemrograman yang mendukung OOP diantaranya : Java, C++, Pascal, Visual Basic .NET, Ruby, Python, PHP, C#, Delphi, Perl, dsb. Istilah-Istilah OOP 1. Object Untuk mempermudah pemahaman, maka disini akan dijelaskan melalui analogi. Pada dasarnya semua benda yang ada di dunia nyata dapat dianggap sebagai objek. Misalnya rumah, mobil, sepeda, motor, gelas, komputer, meja, sepatu, dll. Setiap objek memiliki atribut sebagai status (state) dan tingkah laku sebagai behavior. Contoh objek : Motor. Maka atribute (state) nya adalah pedal, roda, jeruji, speedometer, warna, jumlah roda. Sedangkan tingkah laku (behavior) nya adalah kecepatan menaik, kecepatan menurun, dan perpindahan gigi motor. Analogi pemrograman berorientasi objek sama dengan penggambara pada dunia nyata seperti contoh di atas. Dalam OOP, state disimpan pada variabel dan tingkah laku disimpan pada method. Dalam bahasa teoretis OOP, Objek berfungsi untuk membungkus data dan fungsi bersama menjadi satu unit dalam sebuah program komputer. Objek merupakan dasar dari modularitas dan struktur dalam sebuah program komputer berorientasi objek. 2. Class Definisi class yaitu template untuk membuat objek. Class merupakan prototipe atau blue prints yang mendefinisikan variabel-variabel dan methodmethod secara umum. Objek merupakan hasil instansiasi dari suatu class. Proses pembentukan objek dari suatu kelas disebut sebagai instantiation. Objek disebut juga sebagai instances. Dalam bahasa teoretis OOP, class merupakan kumpulan atas definisi data dan fungsi-fungsi dalam suatu unit untuk suatu tujuan tertentu. Sebagai contoh 'class of dog' adalah suatu unit yang terdiri atas definisi-definisi data dan fungsi-fungsi yang menunjuk pada berbagai macam perilaku/turunan dari
anjing. Sebuah class adalah dasar dari modularitas dan struktur dalam pemrograman berorientasi object. Sebuah class secara tipikal sebaiknya dapat dikenali oleh seorang nonprogrammer sekalipun terkait dengan domain permasalahan yang ada, dan kode yang terdapat dalam sebuah class sebaiknya (relatif) bersifat mandiri dan independen (sebagaimana kode tersebut
digunakan jika tidak
menggunakan OOP). Dengan modularitas, struktur dari sebuah program akan terkait dengan aspek-aspek dalam masalah yang akan diselesaikan melalui program tersebut. Cara seperti ini akan menyederhanakan pemetaan dari masalah ke sebuah program ataupun sebaliknya. 3. Attributes Atribut adalah data yang membedakan antara objek satu dengan yang lainnya. Dalam class, atribut sering disebut sebagai variabel. Atribut dibedakan menjadi dua jenis yaitu Instance Variable dan Class Variable. Instance variable adalah atribut untuk tiap objek dari kelas yang sama. Tiap objek mempunyai dan menyimpan nilai atributnya sendiri. Jadi, tiap objek dari class yang sama bokeh mempunyai nilai yang sama atau berbeda. Class Variable adalah atribut untuk semua objek yang dibuat dari class yang sama. Semua objek mempunyai nilai atribut yang sama. Jadi semua objek dari class yang sama mempunyai hanya satu nilai yang value nya sama. 4. Behavior Behavior/tingkah laku adalah hal-hal yang bisa dilakukan oleh objek dari suatu class. Behavior dapat digunakan untuk mengubah nilai atribut suatu objek, menerima informasi dari objek lain, dan mengirim informasi ke objek lain untuk melakukan suatu tugas (task). Dalam class, behavior disebut juga sebagai methods. Methods sendiri adalah serangkaian statements dalam suatu class yang menghandle suatu task tertentu. Cara objek berkomunikasi dengan objek yang lain adalah dengan menggunakan method.
BAB II LANGKAH KERJA
1. Buatlah program seperti di bawah ini! #include
#include class Sepeda { public: sepeda(int, int, int); void megubahPutaran(int); void mengubahGir(int); void mengerem(); void tampilInfo(); private: int kecepatan; int putaran; int gir; }; sepeda::sepeda(int k, int p, int g) { kecepatan = k; putaran = p; gir = g; } void sepeda::mengubahPutaran(int p) { putaran = p; } void sepeda::mengubahGir(int g) { gir = g; } void sepeda::mengerem() { cout<< “kecepatan dan putaran berkurang …” ; } void sepeda::tampilInfo() {
cout<< “Gir : ”<
2. Buatlah program seperti di bawah ini ! #include #include #include class Time { public: Time(); void setTime( int, int, int ); void printUniversal(); void printStandard(); private: int hour; int minute; int second; }; Time::Time() { hour = minute = second = 0; } void Time::setTime( int h, int m, int s ) { hour = ( h >= 0 && h < 24 ) ? h : 0;
minute = ( m>= 0 && h <60 ) ? h : 0; second = ( s >= 0 && h < 60 ) ? h : 0; } void Time::printUniversal() ( cout<
return 0; }
3. Buatlah sebuah program untuk menghitung volume dan keliling sebuah kotak, dengan rumus V = panjang x lebar x tinggi, dan K = (2 x panjang) + (2 x lebar) + (2 x tinggi). Program tersebut harus memiliki setidaknya 1 (satu) buah Class dan 1 (satu) buah Constructor.
BAB III PEMBAHASAN Program Pertama : #include #include class Sepeda { public: Sepeda(int, int, int); void mengubahPutaran(int); void mengubahGir(int); void mengerem(); void tampilInfo(); private: int kecepatan; int putaran; int gir; };
Sepeda::Sepeda(int k, int p, int g) { kecepatan = k; putaran = p; gir = g; } void Sepeda::mengubahPutaran(int p) { putaran = p; } void Sepeda::mengubahGir(int g) { Gir = g; }
void Sepeda::mengerem() { cout<< "Kecepatan dan putaran berkurang ..." ; } void Sepeda::tampilInfo() { cout<< "Gir : " << gir << endl << "Kecepatan : " <
int main() { Sepeda sepeda1(10,60,3), sepeda2(4,12,1), sepeda3(35,80,5);
sepeda1.tampilInfo(); sepeda2.tampilInfo(); sepeda3.tampilInfo();
getch(); return 0; }
Pembahasan : Pada program pertama ini, kita disuruh membuat sebuah program class Sepeda. Program ini digunakan untuk mencari putaran, gir, dan kecepatan. Pada awal program terdapat #include ini merupakan bagian dari proses kompilator, Kompilator dari c++ menjalankan program yang dinamakan preprosesor (#). Preprosesor memiliki kemampuan menambahkan dan menghapus kode dari sumber, Pada bagian #include memberitahuakan preprosesor untuk
menyertakan kode dari iostream, Berkas iostream berisi deklarasi untuk berbagai fungsi yang dibutuhkan oleh perangkat lunak, atau class-class yang dibutuhkan. Perintah conio digunakan untuk perintah fungsi getch ( ) untuk menerima sembarang input keyboard dari user. Di program juga terdapat 2 buah kode akses yaitu Public dan Private, dimana Public berfungsi untuk memberikan hak akses secara umum (public) kepada kelas-kelas turunannya maupun terhadap lingkungan luar didalam program. Bagian ini biasanya berisi fungsi-fungsi yang akan dijadikan sebagai penghubung (interface), sedangkan Private digunakan untuk untuk memberikan hak akses data hanya kepada kelas yang bersangkutan saja. Artinya kelas-kelas turunan atau lingkungan luar didalam program tidak diizinkan untuk mengakses data tersebut. Lalu terdapat perintah void, void sering disebut juga prosedur, disebut void karena fungsi tersebut tidak mengembalikan suatu nilai keluaran yang didapat dari hasil proses fungsi tersebut, void digunakan untuk sebuah function atau procedure yang tidak membutuhkan nilai balik. Selanjutnya terdapat perintah cout (character out) yang dipakai untuk menampilkan text di layar monitor. Cout merupakan sebuah objek di dalam C++, yang digunakan untuk mengarahkan data ke dalam standar output (cetak pada layar). Didalam program ini juga terdapat Tanda ( << ) yang berfungsi sebagai operator pemasukan (insertion operators). Tanda tersebut mengatakan kepada kompiler agar segera menghasilkan output sesuai dengan inputan yang kita masukkan. Dan pada statemen return 0 di atas berfungsi untuk mengembalikan nilai ke sistem operasi. Program Kedua : #include #include #include
class time { public: time();
void setTime(int, int, int); void printUniversal() ; void printStandard() ; private: int hour; int minute; int second; } ; time::time() { hour = minute = second = 0; } void time::setTime(int h, int m, int s) { hour = ( h >= 0 && h < 24 ) ? h : 0; minute = ( m >= 0 && m < 60 ) ? m : 0; second = ( s >= 0 && s < 60 ) ? s : 0; } void time::printUniversal() { cout<< setfill ( '0' ) << setw ( 2 ) << hour << ":" <
0
|| hour
== 12 ) ? 12 : hour %
12 ) << ":" <
int main() { time t; cout<< "The initial universal time is "; t.printUniversal();
cout<< "\nThe initial standard time is "; t.printStandard() ;
t.setTime( 13, 27, 6 ) ;
cout<< "\n\nUniversal time after setTime is "; t.printUniversal() ;
cout<<
"\nStandard time after setTime is ";
t.printStandard() ;
t.setTime( 99, 99, 99 ) ;
cout<< "\n\nAfter attempting invalid settings: " << "\nUniversal time: "; t.printUniversal();
cout<< "\nStandard time: "; t.printStandard() ; cout<< endl;
getch() ; return 0 ; }
Pembahasan : Pada program ini kita disuruh membuat sebuah program class Time. Perintah didalam coding ini hamper sama dengan coding pertama. Pada program ini terdapat file header yang sama dengan program class Sepeda, namun ada 1 buah tambahan yaitu iomanip. Iomanip diperlukan bila melibatkan setw( ) yang bermanfaat untuk mengatur lebar dari suatu tampilan data. Dalam coding program time juga terdapat fungsi <
&& (operator AND/dan) Operasi AND hanya akan menghasilkan nilai 1 (benar) jika semua operand-nya bernilai benar, namum jika tidak, maka operasi tersebut akan menampilkan nilai 0 (salah).
|| (operator OR/atau) Operasi OR hanya akan menghasilkan nilai 0 (salah) jika semua operand-nya bernilai salah, namun jika tidak, maka operasi tersebut akan menghasilkan nilai 1 (benar).
? adalah sebuah operator ternary dimana operator ini digunakan dalam operasi yang melibatkan tiga buah operand. Konsep yang mendasari operasi ini adalah suatu percabangan (pemilihan) yang didasarkan atas kondisi tertentu.
Tugas (Program 3) #include include class CKotak { public: double m_panjang; double m_lebar; double m_tinggi; CKotak(double p,double l,double t) { m_panjang=p; m_lebar=l; m_tinggi=t; cout<