Dasar-Dasar Pemrograman 2

dokumen-dokumen yang mirip
Modul II Object Oriented Programming

MODUL 1 PENGENALAN OOP

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

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

Pengenalan OOP. Object-Oriented programming (OOP) Menitikberatkan pada konsep object sebagai elemen dasar dari program.

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

Java - Belajar Object Oriented Programming (OOP) (Part 1 - Class, Method, Getter, Setter)

Michael Lionardi

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

Praktikum. PBO (Kelas K) Oleh : MOHAMMAD SHOLIKIN

ENKAPSULASI Data Hiding

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

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

MEMBUAT KELAS SENDIRI. Dewi Sartika, M.Kom

UJIAN TENGAH SEMESTER GENAP TA 2011/2012

Pemrograman Berorientasi Objek (Object Oriented Programming) Imam Fahrur Rozi

INTERAKSI ANTAR OBJECT

MODUL 2 Constructor. Tujuan: Mahasiswa dapat mengenal dan memahami konsep constructor dan overloading constructor

LAPORAN PRAKTIKUM ALGORITMA DAN STRUKTUR DATA FAKULTAS ILMU KOMPUTER UNIVERSITAS BRAWIJAYA

PEMROGRAMAN JAVA. Yoannita, S.Kom. Class & Method sederhana Konsep Pemrograman Berorientasi Objek. Company LOGO

Other OOP Basic. Viska Mutiawani, M.Sc

CLASS PUTU INDAH CIPTAYANI JURUSAN SISTEM INFORMASI STMIK AMIKOM JOGJAKARTA

Class & Object (1) Imam Fahrur Rozi

PERTEMUAN III OBJEK DAN CLASS TUJUAN PRAKTIKUM

IF PEMROGRAMAN LANJUT TUGAS 1. Oleh : Andri Heryandi, M.T.

UJIAN TENGAH SEMESTER GENAP TA 2011/2012

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

BAB 1 PEMROGRAMAN BERORIENTASI OBJEK

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

2 Class dan Object (1)

BAB 1 PENGENALAN PEMROGRAMAN BERORIENTASI OBJEK

SUMBER BELAJAR PENUNJANG PLPG

Class & Object 2 ~Praktikum~ Imam Fahrur Rozi

BAB VII. CLASS DAN OBJECT

Praktikum KPLBO Final Object Concept I

KONSTRUKTOR PEMROGRAMAN LANJUT. Dr. Eng. Herman Tolle, ST., MT. Sistem Informasi FILKOM UB Semester Genap 2016/2017

Pemrograman Web. Pemrograman Berorientasi Objek. 8 Adam Hendra Brata

UJIAN TENGAH SEMESTER GENAP TA 2011/2012

Tutorial FDM Nurul Huda 2008, bundled by samsonasik. Modul Java 1

Review Bahasa Pemrograman Java Konsep OOP N I K O I B R A H I M, M I T F A K U L T A S T E K N O L O G I I N F O R M A S I

Praktikum Minggu VI 1 dan 2 Dasar-dasar Object Oriented Programming PHP

Bahasa Pemrograman :: Java Class Library

Pemrograman Berorientasi. Class dan Obyek 2

Praktikum 3 Konsep Class, Attribute dan Method

KARAKTERISTIK PEMROGRAMAN BERORIENTASI OBJEK (OOP) Pemrograman berorientasi Objek mempunyai karakterisitik sebagai berikut:

Bab 8. Dasar-Dasar OOP

9/26/2011. Tujuan. Bekerja dengan Java Class Library. Pengenalan OOP. Pengenalan OOP. Class dan Object. Enkapsulasi

Konsep Dasar Pemrograman Berorientasi Objek

Konsep Pemrograman Berbasis Obyek

MODUL 3. Inheritance, Abstract Class, Interface TUJUAN PRAKTIKUM LANDASAN TEORI. A. Inheritance

MODUL 1 PRAKTIKUM PEMROGRAMAN BERORIENTASI OBYEK(PBO) KELAS DAN OBJEK. TGL PRAKTIKUM : 24 September 2012 :ACHMAD FAJAR NORULLAH NRP :

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

OBJECT ORIENTED PROGRAMMING DENGAN PHP. Janitra Panji

Daftar Isi. Daftar Isi... ii MODUL 1 PENGENALAN OOP Pengantar Class Atribut Method This Access Modifier...

Sekarang, kita akan mencoba untuk menganalisa program Java pertama : public class Hello {

int i = 0; while (i < 10) { System.out.println( Informatika Unpas ); i++; }

Tujuan : A. Percabangan Percabangan di dalam Java terdapat 2 macam, yaitu dengan memakai if dan switch.

Praktikum Pemrograman. Pengantar OOP STMIK AMIKOM YOGYAKARTA. Bayu Setiaji, S.Kom

Pemrograman Berorientasi Obyek. Ramos Somya

Bahasa Pemograman II. Object Oriented Programming

Dasar-Dasar OOP di Java

Modul Praktikum Bahasa Pemrograman 1

Dasar-Dasar OOP di Java

Class & Object 2. Imam Fahrur Rozi

Pemrograman Lanjut. Instance Variable Access Modifier Set dan Get Method

Membuat dan Menggunakan Class

Pertemuan4 Konsep Object Oriented Programming pada Python

BAB 3 CLASS DAN OBJECT. Tujuan:

Pemrograman Berorientasi. Package & Hubungan Antar Kelas

Java Fundamentals. Herman Tolle. Program Teknologi Informasi & Ilmu Komputer UNIVERSITAS BRAWIJAYA

MODUL 1. CLASS, OBJECT, CONSTRUCTOR DAN METHOD

FAKULTAS TEKNIK UNIVERSITAS NEGERI YOGYAKARTA LAB SHEET PEMROGRAMAN JAVA 2

Pemrograman Web. Pemrograman Berorientasi Objek. Adam Hendra Brata

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

Algoritma Pemrograman [BS204]

Praktikum KPLBO Class dan Object I

Konsep Pemrograman Berorientasi Obyek. Maria Ulfah S Nurochman

IKG2I4 / Software Project I

MODUL PEMOGRAMAN WEB II STMIK IM BANDUNG MODUL PEMOGRAMAN WEB II. Oleh: CHALIFA CHAZAR. Chalifa Chazar edu.script.id

Bahasa Pemrograman II Modul 1 : Pemrograman Berbasis Objek

Pengenalan pemrograman berorientasi obyek

TUGAS AKHIR APLIKASI KALKULATOR BOLA BERBASIS JAVA

Praktikum 6 Class Design (Encapsulation)

Diciptakan oleh James Gosling. Resmi diperkenalkan tahun Merupakan bahasa pemrograman berorientasi obyek murni. Pada awalnya hanya mampu

MINGGU IV : PEMROGRAMAN BERORIENTASI OBJEK

PRAKTIKUM OBJECT ORIENTED PROGRAMING

MODUL 1. Class, Object, Constructor dan Method

PEMROGRAMAN BERORIENTASI OBJEK

Diciptakan oleh James Gosling. Resmi diperkenalkan tahun Merupakan bahasa pemrograman berorientasi obyek murni. Pada awalnya hanya mampu

LAPORAN PERCOBAAN IV PEMBUATAN CALCULATOR ( MENGHITUNG GAJI KARYAWAN DAN TUNJANGANNYA) BERBASIS JAVA

Fakultas Teknologi Informasi UJIAN AKHIR SEMESTER GENAP TAHUN AJARAN 2011/2013

PEMROGRAMAN BERORIENTASI OBJEK STRUCTURE & CLASS

MODUL 3 Inheritance. Tujuan: Mahasiswa dapat mengenal dan memahami konsep inheritance dan cara menerapkan inheritance dengan constructor

PRAKTIKUM 3 KONSTRUKTOR DAN OVERLOADING

Percabangan & Perulangan

Tutorial A Menggambar Bendera Merah Putih Pada Frame

Pemrograman Lanjut Class and Object PTIIK

PRAKTIKUM 3 KONSTRUKTOR DAN OVERLOADING

MODUL PEMOGRAMAN WEB II STMIK IM BANDUNG MODUL PEMOGRAMAN WEB II. Oleh: CHALIFA CHAZAR. Chalifa Chazar edu.script.id

I. Tujuan Instruksional Umum Mengenal konsep dasar berorientasi objek Memahami dan dapat mengimplementasikan Kelas dan Objek pada java.

Transkripsi:

DDP 2-2019 AFA - RDO Page 1 Dasar-Dasar Pemrograman 2 Tutorial 5 Kelas C & F OOP Selasa, 12 Maret 2019-16:00 WIB Object Oriented Programming Dalam paradigma Object Oriented Programming, kita memodelkan objek dunia nyata sebagai sebuah class di dalam program. Objek tersebut memiliki variable, constructor, dan method. Sebagai contoh, kita akan membuat suatu class yang memodelkan objek Mobil di dunia nyata. Mobil dapat dilihat sebagai sebuah objek yang memiliki merk, model, warna, dan kelajuan ( Instance Variable ). Kelajuan mobil dapat dipercepat (akselerasi) ataupun diperlambat (deselerasi) ( Method ). Berikut class yang dibuat: public class Mobil { private String merk; private String model; private String warna; private double kelajuan; public Mobil (String merk, String model, String warna) { this.merk = merk; this.model = model; this.warna = warna; this.kelajuan = 0 ; public void akselerasi ( double perubahan) { this.kelajuan += perubahan;

DDP 2-2019 AFA - RDO Page 2 public void deselerasi ( double perubahan) { if (kelajuan > 10 ) { this.kelajuan -= perubahan; else { this.kelajuan = 0 ; Catatan: penggunaan this pada kode diatas (Java) memiliki ekuivalensi seperti penggunaan self pada kode Python. Constructor Constructor adalah method untuk membuat instansiasi objek dari class. Constructor adalah method khusus yang akan dieksekusi pada saat pembuatan objek (instance). Biasanya method ini berisi inisialisasi variable untuk objek. public class Mobil { //... public Mobil (String merk, String model, String warna) { this.merk = merk; this.model = model; this.warna = warna; this.kelajuan = 0 ; Constructor di atas akan dijalankan jika objek mobil dibuat. Mobil mobil = new Mobil( "Yotayo", "Bus", "Blue" ) Setter & Getter Setter adalah method yang dipakai suatu objek untuk mengubah value dari variable yang dimiliki objek, sedangkan getter adalah method yang dipakai untuk mengambil value dari suatu atribut yang dimiliki objek.

DDP 2-2019 AFA - RDO Page 3 Setter & getter digunakan bersamaan terhadap variable yang disembunyikan oleh objek, biasanya dengan memakai tipe private pada atribut tersebut (Contohnya semua variable pada kelas Mobil diatas). Hal ini dilakukan untuk menghindari akses secara langsung dari kelas lain yang bisa menyebabkan kebocoran & perubahan terhadap data yang disimpan oleh suatu objek. Contoh pengaplikasian Setter & Getter : public class Mobil { //... public void setkelajuan ( int laju) { this.kelajuan = laju; public int getkelajuan () { return this.kelajuan; // method setter // method getter Contoh penggunaan setter & getter : // Masih menggunakan class Mobil diatas Mobil tayo = new Mobil( "Toyota", "Avanza", "Silver" ); System.out.println(tayo.getKelajuan()); tayo.setkelajuan( 40 ); System.out.println(tayo.getKelajuan()); 0 40 Menghasilkan output : tostring() tostring adalah method yang digunakan untuk mengatur representasi suatu objek ke dalam string. Jika dalam suatu class tidak terdapat method tostring(), maka saat melakukan print yang muncul di output adalah nilai kode hash dari objek tersebut. Mobil s = new Mobil( "Ferrari", 458, merah ); System.out.println(s);

DDP 2-2019 AFA - RDO Page 4 Output: Mobil@ 1 eed786 Dengan method tostring() kita dapat mengatur representasi string dari objek tersebut. Contohnya dengan menambahkan method tostring() dalam class Mobil, seperti ini: public class Mobil { //... public String tostring () { return "Mobil " + merk + " " + model + " bewarna " + warna; Maka ketika melakukan print: Mobil s = new Mobil( "Ferrari", "458", "merah" ); System.out.println(s); Output: Mobil Ferrari 458 berwarna merah

Arena of Blood DDP 2-2019 AFA - RDO Page 5 src : http://elementrpg.wdfiles.com/local--files/wiki:ritual-of-blood-and-sand/arena.jpg Cukup sudah dengan kenangan itu, aku sudah tidak memiliki cita cita sebagai arkeolog, mari kita bicarakan masa depan - Dek Depi. Dek Depi tidak ingin mengingat-ngingat lagi masa lalunya, mengingat-ngingat masa lalunya dengan kekasih tercinta, buku-buku arkeologi yang menemaninya setiap malam, pada akhirnya memberikan kesan pahit padanya karena Dek Depi tidak berhasil meraih apa yang ia inginkan waktu itu. Sekarang, Dek Depi mengalihkan pikirannya dengan hal-hal lain yang dapat ia capai di masa depan. Belum lama ini, Dek Depi membaca sebuah buku cerita tentang gladiator. Dek Depi memutuskan, untuk pencapaiannya kali ini, dia akan membuat sebuah program berdasarkan buku yang ia baca tersebut. Program yang akan dibuat oleh Dek Depi merupakan program simulasi pertarungan gladiator, dimana beberapa gladiator akan dipertemukan di suatu arena, kemudian mereka akan saling bertarung. Seperti biasa, Dek Depi ingin kamu membantunya untuk membuat permainan tersebut, tentunya kamu mau membantunya kan?

Spesifikasi Program : DDP 2-2019 AFA - RDO Page 6 *Kamu wajib menggunakan template yang disediakan, method dan attribut di bawah ini harus diimplementasikan pada template. Kamu juga harus mengimplementasikan constructor untuk setiap kelas. Selain itu, template sudah berisi method lainnya yang mungkin dapat kamu manfaatkan dalam menyelesaikan tugas ini. CLASS: Gladiator Arena SPESIFIKASI CLASS GLADIATOR: Setiap Gladiator memiliki attribut: String name int hp int damage String faction Setiap Gladiator memiliki method: void attack (Gladiator gladiator) Tidak terjadi apa-apa jika Gladiator yang melakukan attack kepada Gladiator lainnya berada di Faction yang sama. Tidak dapat dilakukan oleh Gladiator yang memiliki hp = 0 Selain itu, Gladiator yang menjadi target Attack akan berkurang HP nya sebesar Damage Gladiator yang melakukan Attack. void sethp (int hp) Method untuk mengatur hp dari Gladiator, perhatikan hp tidak boleh negatif. String tostring() Mengembalikan String dengan format: Nama: <Gladiator_Name> HP: <Gladiator_HP> Damage: <Gladiator_Damage> Faction: <Gladiator_Faction> SPESIFIKASI CLASS Arena: Setiap Arena memiliki attribut: ArrayList<Gladiator> gladiators int id Setiap Arena memiliki method: void dofight() Setiap Gladiator yang ada pada Arena tersebut akan melakukan Attack kepada semua Gladiator lain yang berbeda Faction pada Arena tersebut. Urutan Gladiator yang melakukan Attack diurutkan berdasarkan urutan datangnya Gladiator ke Arena tersebut, dimulai dari Gladiator yang pertama kali tiba. void add(gladiator Gladiator) Menambahkan Gladiator ke Arena pada urutan terakhir tiba.

DDP 2-2019 AFA - RDO Page 7 Jalankan File Simulator.java yang disediakan pada Template untuk mengecek kebenaran program Output : *Selain membandingkan secara manual, Anda dapat menggunakan diffchecker untuk mengecek output, misalnya menggunakan https://www.diffchecker.com/diff <<Arena 1>> Name: Achilles HP: 52 Damage: 50 Faction: Tihr Name: Aegeus HP: 0 Damage: 11 Name: Ajax HP: 0 Damage: 19 --------------------------------------- <<Arena 2>> Name: Aeneas HP: 7 Damage: 32 Faction: Sargoth Name: Aesop HP: 0 Damage: 24 Faction: Dhirim Name: Arastoo HP: 4 Damage: 19 --------------------------------------- <<Arena 3>> Name: Alastair HP: 37 Damage: 50 Faction: Dhirim

DDP 2-2019 AFA - RDO Page 8 Name: Alejandro HP: 17 Damage: 13 Name: Antreas HP: 0 Damage: 14 ---------------------------------------

DDP 2-2019 AFA - RDO Page 9 Komponen Penilaian : Komponen Penjelasan Bobot Implementasi Class Gladiator Implementasi Class Arena Melakukan implementasi pada bagian-bagian yang diminta dalam class Gladiator, dengan menggunakan paradigma object oriented Melakukan implementasi pada bagian-bagian yang diminta dalam class Arena, dengan menggunakan paradigma object oriented 25% 25% Kebenaran Program Kesesuaian Output program dengan hasil yang diinginkan 35% Kerapian Kode Penulisan program mengikuti kaidah dan konvensi yang telah diajarkan. Program ditulis dengan rapi, terstruktur, dan disertakan oleh dokumentasi secukupnya 15% Deadline :Selasa, 12 Maret 2019 Pukul 17:40 WIB Format Pengumpulan : Kumpulkan hasil zip template yang sudah diimplementasikan kode Anda di slot pengumpulan yang telah disediakan di SCeLE dengan format : [Kode Asdos]_[Nama]_[Kelas]_[NPM]_Lab[X].zip Contoh : TES_DemoSuremo_C_1234567891_Lab4.zip Acknowledged Lecturers : Fariz Darari, S.Kom, M.Sc., Ph.D. Selamat Bekerja!