Variabel Class. Pertemuan 5

dokumen-dokumen yang mirip
FAKULTAS TEKNIK UNIVERSITAS NEGERI YOGYAKARTA LABSHEET ALGORITMA DAN STRUKTUR DATA

Memory Management 3 : Advance Pointers & References. Pertemuan 8

INTERAKSI ANTAR OBJECT

Classes. class class_name { permission_label_1: member1; permission_label_2: member2;... } object_name;

Pertemuan Pemograman Berorientasi Objek. Obyektif Praktikum : 1. Memahami konsep Object Oriented Programming.

PRAKTIKUM 3 KONSTRUKTOR DAN OVERLOADING

PEMROGRAMAN BERORIENTASI OBJEK KONSEP PBO

BAB VI OBYEK DAN KELAS

BAB VI OBYEK DAN KELAS

PRAKTIKUM 3 KONSTRUKTOR DAN OVERLOADING

Pemograman Berorientasi Objek. Week 4 Initialization dan Instance dalam Kelas

PEWARISAN D E W I S A R T I K A, M. K O M

PEMROGRAMAN BERORIENTASI OBJEK OBJECT

BAB X. Struct Dalam C++, kita dapat membuat sebuah tipe data baru. Maka penulisan variabel baru kita akan menjadi:

Penggunaan Private dan Public dalam C++

Inheritance dan Polimorfisme

KELAS DAN OBJEK KELAS

Class & Object 2 ~Praktikum~ Imam Fahrur Rozi

Pemrograman Lanjut. Class : Deeper Look 2

Pemrograman Lanjut. Constructor. Aryo Pinandito, ST, M.MT Team Teaching Pemrograman Lanjut

Kurikulum Qt. { Basic OOP } Chapter 6. Class dan Object

Game Technology Design Course College of Multi Media Yogyakarta Spring Tri Anggraeni, S.Kom., M.Sc.

Modul 2. [access specifier] [tipe data] [nama variabel];

TAMBAHAN MATERI BAB 15 BUKU DIKLAT PEMROGRAMAN KOMPUTER 2

Other OOP Basic. Viska Mutiawani, M.Sc

Other OOP Basic. Viska Mutiawani, M.Sc. 1 Viska Mutiawani - Informatika FMIPA Unsyiah

Pemrograman Lanjut Tipe Data dan Constructor PTIIK

Dasar Pemrograman Java

C#, Programming, Object-oriented. Pengenalan C# Erick Pranata. Edisi I

Pemrograman Lanjut Jurusan S1 Teknik Informatika. 9/17/2012 Ratno

Pemrograman Berorientasi Obyek (C++) Departemen Ilmu Komputer FMIPA IPB 2013

STRUKTUR DENGAN ARRAY DAN FUNCTION

Konsep Dasar Pemrograman Berorientasi Objek

Michael Lionardi

KUM 3 IMPLEMENTASI LIST

Pemrograman Lanjut. Instance Variable Access Modifier Set dan Get Method

PERTEMUAN 2 PEMOGRAMAN BERORIENTASI OBJEK L/O/G/O

06/03/2018. Tidak memiliki parameter. Melakukan inisialisasi semua variabel private dengan nilai awal.

Kurikulum Qt. Chapter 5 Pointer dan References. Agenda. Apa itu Pointer? Memory Komputer. Mengambil Alamat Memory dari Variabel

Pertemuan 11 Object Oriented Program

OVERLOADING, CONSTRUCTOR DAN DESTRUCTOR. Dewi Sartika, M.Kom

Konsep Dasar Pemrograman Berorientasi Obyek I JAVA. Anugrah Kusuma Seno Adi Putra

PEMROGRAMAN BERORIENTASI OBJEK STRUCTURE & CLASS

MODUL 9 Material Texture

Struktur Program C++ Pertemuan 3

Pemrograman Berorientasi. Class dan Obyek 2

Bab 8. Dasar-Dasar OOP

Inheritance dan Polimorfisme

PEMROGRAMAN BERORIENTASI OBJEK

Dasar-Dasar OOP di Java

Algoritma Pemrograman [BS204]

Membuat dan Menggunakan Class

Dasar-Dasar OOP di Java

BAHASA PEMROGRAMAN. Untuk SMK. Kadarisman Tejo Yuwono Totok Sukardiyono Adi Dewanto. : Ratu Amilia Avianti. Perancang Kulit

OBJECT ORIENTED PROGRAMMINGS

MINGGU VI : PBO (LANJUTAN)

SEKOLAH TINGGI MANAJEMEN INFORMATIKA & KOMPUTER JAKARTA STI&K SATUAN ACARA PERKULIAHAN

Pemrograman Lanjut Review Class dan Object PTIIK

Class & Object 2. Imam Fahrur Rozi

Bahasa Pemrograman :: Polimorfism and Abstraction

MODUL 4. Classes and Objects (part I)

Composition dan Inheritance

Dasar Pemrograman Mikrokontroler dengan Bahasa C

2 TIPE DATA DAN VARIABEL

VARIABEL, TIPE DATA DAN EKSPRESI Bab 2

Pemrograman Lanjut Class, Instance Variable dan Method PTIIK

C V.S. C++ Oleh : Rasim

IKG2I4 / Software Project I

PERTEMUAN III OBJEK DAN CLASS TUJUAN PRAKTIKUM

Inheritance dan Kata Kunci static

POINTER. Tim Alpro Teknik Informatika

Bahasa Pemrograman 2.

Sejarah C. Dirancang oleh Denis M. Ritchie tahun 1972 di Bell Labs.

VI. FUNGSI. Fungsi Main ( ) Fungsi a ( ) Fungsi b ( ) Fungsi c ( ) Fungsi c1 ( ) Fungsi c2 ( ) Fungsi c3 ( ) Bentuk umumnya :

DASAR PEMOGRAMAN JAVA

Pemrograman Dasar M E T H O D / F U N G S I

Bahasa Pemrograman 2.

Komentar, Identifier, Konstanta dan Variabel

Understanding Class Definition. Viska Mutiawani, M.Sc

BAB II VARIABEL DAN TIPE DATA

Pengenalan Bahasa C. 1. Struktur penulisan program. #include < [library2.h] > #define [nama2] [nilai] ;

Enkapsulasi. Politeknik Elektronika Negeri Surabaya. Enkapsulasi. public void Info() { System.out.println( Saya siswa PENS );

SILABUS MATA KULIAH PEMROGRAMAN JAVA

ENKAPSULASI. 1. Kompetensi Setelah kegiatan perkuliahan selesai, mahasiswa diharapkan dapat:

Inheritance. Pertemuan 8 Pemrograman Berbasis Obyek

OBJECT ORIENTED PROGRAMMING DENGAN PHP. Janitra Panji

Pemrograman Lanjut. Class, dan Instance Variable. Aryo Pinandito, ST, M.MT Team Teaching Pemrograman Lanjut

Inheritance. Topik 5/17/2013

Pemrograman Berbasis Objek Inheritance

Fungsi 2. Ekohariadi FT Unesa

PENGENALAN DAN PENERAPAN OOP PADA C++

Understanding Class Definition

MODUL PRAKTIKUM STRUKTUR DATA DAN ALGORITMA STACK

Pointer dan Referensi

Encapsulation (Encapsulasi) Minggu 5 Pemrograman Berorientasi Objek Alfa Faridh Suni

Modul II Object Oriented Programming

Konsep Dasar Pemrograman Dan Pengenalan C++

1. Manakah jawaban yang benar,pada saat Anda mengcompile dan menjalankan class berikut ini:

E-Book PEMROGRAMAN BERORIENTASI OBJEK. Disusun Oleh: Arfian Hidayat, S.Kom

LAPORAN RESMI. TIPE DATA ABSTRAK (TYPEDEF dan STRUCT)

Transkripsi:

Variabel Class Pertemuan 5

Outline Classes Implementing Member Functions Constructors Provided by Compiler Inline Implementation Classes with Other Classes as Member Data

Deklarasi Class Untuk mendeklarasikan sebuah class dapat menggunakan kata kunci class diikuti oleh informasi tentang variabel anggota dan fungsi anggota class. Sebuah objek dapat diciptakan dari kelas dengan menentukan class dan nama variabel, menggunakan operator titik (.) untuk mengakses fungsi-fungsi anggota dan variabel dari objek itu. class Tricycle{ public: }; unsigned int speed; unsigned int wheelsize; pedal(); brake(); Tricycle wichita; wichita.speed = 6; wichita.pedal();

Private vs Public Access Kata kunci public membuat bagian-bagian dari class dapat diakses untuk umum, class dan program lainnya dapat menggunakan objek dalam class tersebut. Kata kunci private membuat bagian-bagian dari class hanya dapat diakses dalam fungsi dari class itu sendiri. Semua variabel dan fungsi anggota secara default adalah private.

Implementasi Member Function Definisi fungsi anggota (member function) dimulai dengan nama class diikuti oleh operator double titik dua (: :) dan nama fungsi. Fungsi dalam class memiliki kemampuan yang sama seperti fungsi pada umumnya; mereka dapat memiliki parameter dan mengembalikan nilai. void Tricycle::pedal() { std::cout << Pedaling trike\n ; }

Membuat Objek dengan Constructor Constructor disebut ketika sebuah objek dari kelas yang dipakai. Tugas dari constructor adalah membuat objek yang valid dari class, yang sering kali berisi inisialisasi data dari anggotanya. Ada beberapa cara untuk memanggil konstruktor saat membuat sebuah objek. Salah satunya adalah untuk mengatur sebuah objek tanpa menentukan parameter atau satu atau lebih parameter. Tricycle::Tricycle(int initialspeed) { setspeed(initialspeed); } Tricycle wichita; Tricycle wichita(5);

Menghapus Objek dengan Destructor Destructors membersihkan setelah objek selesai digunakan dan membebaskan setiap memori yang dialokasikan untuk objek. Sebuah destructor selalu memiliki nama class diawali dengan tilde (~), tidak ada parameter dan tidak memiliki nilai kembali. Destructor untuk kelas tidak memerlukan tindakan khusus untuk membebaskan memori, sehingga hanya berisi komentar. Tricycle::~Tricycle() { // do nothing }

1. Implementing Member Functions Tricycle.cpp 1: #include <iostream> 2: 3: class Tricycle 4: { 5: public: 6: int getspeed(); 7: void setspeed(int speed); 8: void pedal(); 9: void brake(); 10: private: 11: int speed; 12: }; 13: 14: // get the trike s speed 15: int Tricycle::getSpeed() 16: { 17: return speed; 18: } 19: 20: // set the trike s speed 21: void Tricycle::setSpeed(int newspeed) 22: { 23: if (newspeed >= 0) 24: { 25: speed = newspeed; 26: } 27: } 28:

29: // pedal the trike 30: void Tricycle::pedal() 31: { 32: setspeed(speed + 1); 33: std::cout << \npedaling; tricycle speed << speed << mph\n ; 34: } 35: 36: // apply the brake on the trike 37: void Tricycle::brake() 38: { 39: setspeed(speed - 1); 40: std::cout << \nbraking; tricycle speed << speed << mph\n ; 41: } 42: 43: // create a trike and ride it 44: int main() 45: { 46: Tricycle wichita; 47: wichita.setspeed(0); 48: wichita.pedal(); 49: wichita.pedal(); 50: wichita.brake(); 51: wichita.brake(); 52: wichita.brake(); 53: return 0; 54: }

2. Constructors Provided by Compiler NewTricycle.cpp 1: #include <iostream> 2: 3: class Tricycle 4: { 5: public: 6: Tricycle(int initialage); 7: ~Tricycle(); 8: int getspeed(); 9: void setspeed(int speed); 10: void pedal(); 11: void brake(); 12: private: 13: int speed; 14: }; 15: 16: // constructor for the object 17: Tricycle::Tricycle(int initialspeed) 18: { 19: setspeed(initialspeed); 20: } 21: 22: // destructor for the object 23: Tricycle::~Tricycle() 24: { 25: // do nothing 26: } 27: 28: // get the trike s speed 29: int Tricycle::getSpeed() 30: { 31: return speed; 32: } 33:

34: // set the trike s speed 35: void Tricycle::setSpeed(int newspeed) 36: { 37: if (newspeed >= 0) 38: { 39: speed = newspeed; 40: } 41: } 42: 43: // pedal the trike 44: void Tricycle::pedal() 45: { 46: setspeed(speed + 1); 47: std::cout << \npedaling; tricycle speed << getspeed() << mph\n ; 48: } 49: 50: // apply the brake on the trike 51: void Tricycle::brake() 52: { 53: setspeed(speed - 1); 54: std::cout << \nbraking; tricycle speed << getspeed() << mph\n ; 55: } 56: 57: // create a trike and ride it 58: int main() 59: { 60: Tricycle wichita(5); 61: wichita.pedal(); 62: wichita.pedal(); 63: wichita.brake(); 64: wichita.brake(); 65: wichita.brake(); 66: return 0; 67: }

3. Inline Implementation Tricycle.hpp 1: #include <iostream> 2: 3: class Tricycle 4: { 5: public: 6: Tricycle(int initialspeed); 7: ~Tricycle(); 8: int getspeed() const { return speed; } 9: void setspeed(int speed); 10: void pedal() 11: { 12: setspeed(speed + 1); 13: std::cout << \npedaling << getspeed() << mph\n ; 14: } 15: void brake() 16: { 17: setspeed(speed - 1); 18: std::cout << \npedaling << getspeed() << mph\n ; 19: } 20: private: 21: int speed; 22: };

Tricycle.cpp 1: #include Tricycle.hpp 2: 3: // constructor for the object 4: Tricycle::Tricycle(int initialspeed) 5: { 6: setspeed(initialspeed); 7: } 8: 9: // destructor for the object 10: Tricycle::~Tricycle() 11: { 12: // do nothing 13: } 14: 15: // set the trike s speed 16: void Tricycle::setSpeed(int newspeed) 17: { 18: if (newspeed >= 0) 19: { 20: speed = newspeed; 21: } 22: } 23: 24: // create a trike and ride it 25: int main() 26: { 27: Tricycle wichita(5); 28: wichita.pedal(); 29: wichita.pedal(); 30: wichita.brake(); 31: wichita.brake(); 32: wichita.brake(); 33: return 0; 34: }

4. Classes with Other Classes as Member Data Rectangle.hpp 1: #include <iostream> 2: 3: class Point 4: { 5: // no constructor, use default 6: public: 7: void setx(int newx) { x = newx; } 8: void sety(int newy) { y = newy; } 9: int getx() const { return x; } 10: int gety() const { return y; } 11: private: 12: int x; 13: int y; 14: }; 15: 16: class Rectangle 17: { 18: public: 19: Rectangle(int newtop, int newleft, int newbottom, int newright); 20: ~Rectangle() {} 21: 22: int gettop() const { return top; } 23: int getleft() const { return left; } 24: int getbottom() const { return bottom; } 25: int getright() const { return right; } 26:

27: Point getupperleft() const { return upperleft; } 28: Point getlowerleft() const { return lowerleft; } 29: Point getupperright() const { return upperright; } 30: Point getlowerright() const { return lowerright; } 31: 32: void setupperleft(point location); 33: void setlowerleft(point location); 34: void setupperright(point location); 35: void setlowerright(point location); 36: 37: void settop(int newtop); 38: void setleft (int newleft); 39: void setbottom (int newbottom); 40: void setright (int newright); 41: 42: int getarea() const; 43: 44: private: 45: Point upperleft; 46: Point upperright; 47: Point lowerleft; 48: Point lowerright; 49: int top; 50: int left; 51: int bottom; 52: int right; 53: };

Rectangle.cpp 1: #include Rectangle.hpp 2: 3: Rectangle::Rectangle(int newtop, int newleft, int newbottom, int newright) 4: { 5: top = newtop; 6: left = newleft; 7: bottom = newbottom; 8: right = newright; 9: 10: upperleft.setx(left); 11: upperleft.sety(top); 12: 13: upperright.setx(right); 14: upperright.sety(top); 15: 16: lowerleft.setx(left); 17: lowerleft.sety(bottom); 18: 19: lowerright.setx(right); 20: lowerright.sety(bottom); 21: } 22: 23: void Rectangle::setUpperLeft(Point location) 24: { 25: upperleft = location; 26: upperright.sety(location.gety()); 27: lowerleft.setx(location.getx()); 28: top = location.gety(); 29: left = location.getx(); 30: } 31:

32: void Rectangle::setLowerLeft(Point location) 33: { 34: lowerleft = location; 35: lowerright.sety(location.gety()); 36: upperleft.setx(location.getx()); 37: bottom = location.gety(); 38: left = location.getx(); 39: } 40: 41: void Rectangle::setLowerRight(Point location) 42: { 43: lowerright = location; 44: lowerleft.sety(location.gety()); 45: upperright.setx(location.getx()); 46: bottom = location.gety(); 47: right = location.getx(); 48: } 49: 50: void Rectangle::setUpperRight(Point location) 51: { 52: upperright = location; 53: upperleft.sety(location.gety()); 54: lowerright.setx(location.getx()); 55: top = location.gety(); 56: right = location.getx(); 57: } 58: 59: void Rectangle::setTop(int newtop) 60: { 61: top = newtop; 62: upperleft.sety(top); 63: upperright.sety(top); 64: } 65:

66: void Rectangle::setLeft(int newleft) 67: { 68: left = newleft; 69: upperleft.setx(left); 70: lowerleft.setx(left); 71: } 72: 73: void Rectangle::setBottom(int newbottom) 74: { 75: bottom = newbottom; 76: lowerleft.sety(bottom); 77: lowerright.sety(bottom); 78: } 79: 80: void Rectangle::setRight(int newright) 81: { 82: right = newright; 83: upperright.setx(right); 84: lowerright.setx(right); 85: } 86: 87: int Rectangle::getArea() const 88: { 89: int width = right - left; 90: int height = top - bottom; 91: return (width * height); 92: } 93:

94: // compute area of the rectangle by finding corners, 95: // establish width and height and then multiply 96: int main() 97: { 98: // initialize a local Rectangle variable 99: Rectangle myrectangle(100, 20, 50, 80 ); 100: 101: int area = myrectangle.getarea(); 102: 103: std::cout << Area: << area << \n ; 104: std::cout << Upper Left X Coordinate: ; 105: std::cout << myrectangle.getupperleft().getx() << \n ; 106: return 0; 107: }

Tugas Modifikasi program Tricycle.cpp dengan menambahkan objek lain yaitu "second_trike", berikan nilai inisial dan cobalah method pedal() dan brake() pada nya. Modifikasi program NewTricycle.cpp dengan menambahkan sebuah member variable "wheelsize" yang terdiri minimal 4 nilai ketika di-set dengan sebuah accessor. Pisahkan class Point dari Rectangle.hpp menjadi file header sendiridan masukkan di dalam Rectangle.hpp. Jelaskan bagaimana perubahan yang terjadi dengan kompilasi Rectangle.cpp? apakah hasilnya berubah? Buatlah class Line yang terdiri dari 2 titik yang terhubung dengan menggunakan class Point!