38
Q3M1 – OOP C# Dudy Fathan Ali S.Kom Object Oriented Programming Q3M1 Dudy Fathan Ali, S.Kom (DFA) 2016 CEP - CCIT Fakultas Teknik Universitas Indonesia

Object Oriented Programming - Introduction

Embed Size (px)

Citation preview

Page 1: Object Oriented Programming - Introduction

Q3M1 – OOP C# Dudy Fathan Ali S.Kom

Object Oriented ProgrammingQ3M1

Dudy Fathan Ali, S.Kom (DFA)2016

CEP - CCITFakultas Teknik Universitas Indonesia

Page 2: Object Oriented Programming - Introduction

Manfaat Materi Ajar

Q3M1 – OOP C# Dudy Fathan Ali S.Kom

o Mahasiswa dapat mempelajari konsep pemrograman berorientasi objek (object-oriented) yang berbeda dari konsep pemrograman prosedural dan dapat diaplikasikan dalam kasus real

Page 3: Object Oriented Programming - Introduction

Target Materi Ajar

Q3M1 – OOP C# Dudy Fathan Ali S.Kom

o Mahasiswa memiliki kemampuan pemrograman berorientasi objek untuk menganalisa dan memecahkan kasus

Page 4: Object Oriented Programming - Introduction

Standarisasi Project Q3M1

Q3M1 – OOP C# Dudy Fathan Ali S.Kom

o Mahasiswa diwajibkan membuat aplikasi berbasis console dengan mengimplementasikan konsep OOP dan melakukan pengolahan data dari file teks.

Page 5: Object Oriented Programming - Introduction

Pendahuluan

Q3M1 – OOP C# Dudy Fathan Ali S.Kom

Algoritma?

Program Komputer?

Algoritma adalah langkah-langkah dalam suatu proses.

Program Komputer adalah kumpulan instruksi untuk komputer.

“Setiap Program Komputer adalah Algoritma”

Page 6: Object Oriented Programming - Introduction

Pendahuluan

Q3M1 – OOP C# Dudy Fathan Ali S.Kom

• Struktur yang kompleks• Memiliki media penyimpanan yang kecil• Program yang dijalankan lebih simple• Komputer hanya bisa mengeksekusi 1 program dalam waktu yang sama

Komputer “Jadul”

Page 7: Object Oriented Programming - Introduction

Pendahuluan

Q3M1 – OOP C# Dudy Fathan Ali S.Kom

• Lebih kecil• Struktur lebih kompleks• Mengeksekusi banyak program diwaktu yang sama• Para ahli telah menggagas tentang Object dan Object Oriented Programming

untuk membantu mengikuti perkembangan dan kompleksitas dari komputer modern

Komputer Modern

Page 8: Object Oriented Programming - Introduction

Procedural Programming

Q3M1 – OOP C# Dudy Fathan Ali S.Kom

o Serangkaian tugas diselesaikan dalam bentuk fungsi atau prosedur

o Fungsi dan prosedur menjadi fokus utamao Fungsi dan prosedur digunakan untuk memanipulasi

datao Programmer harus mem-break down suatu problem

menjadi sub problem yang lebih simpelo Cara pandang → program adalah suatu urutan

instruksi

Page 9: Object Oriented Programming - Introduction

Object-Oriented Programming

Q3M1 – OOP C# Dudy Fathan Ali S.Kom

o Fokus utama pada Class dan Objecto Fungsi dan data bukan menjadi dua hal yang terpisaho Fungsi dan data menjadi satu kesatuan yang disebut

dengan Objecto Cara pandang → program adalah serangkaian object

yang bekerjasama untuk menyelesaikan suatu problem

Page 10: Object Oriented Programming - Introduction

Procedural VS OOP

Q3M1 – OOP C# Dudy Fathan Ali S.Kom

Main

f1 f2 f3

Page 11: Object Oriented Programming - Introduction

Procedural VS OOP

Q3M1 – OOP C# Dudy Fathan Ali S.Kom

Main

f1 f2 f3…. …. ….

Page 12: Object Oriented Programming - Introduction

Object-Oriented

Q3M1 – OOP C# Dudy Fathan Ali S.Kom

o Apa itu Object?• Seluruh benda di sekitar Anda dapat dianggap

sebagai object• Contoh: dogs, komputer, meja, gelas, dll

Page 13: Object Oriented Programming - Introduction

Object-Oriented

Q3M1 – OOP C# Dudy Fathan Ali S.Kom

o Karakteristik Object• Setiap object memiliki atribut sebagai status (state)• Setiap object memiliki tingkah laku (behaviour)• Contoh: Object Sepeda• State : jumlah roda, warna, merk.• Behaviour: kecepatan naik, kecepatan turun, pindah gigi

sepeda.

Page 14: Object Oriented Programming - Introduction

Object-Oriented

Q3M1 – OOP C# Dudy Fathan Ali S.Kom

o Karakteristik Object• Penggambaran pemrograman berorientasi object =

penggambaran pada dunia nyata• Pada pemrograman berorientasi object:• State disimpan pada → variable• Tingkah laku disimpan pada → method

• Mengidentifikasi state dan behaviour adalah langkah awal dan terbaik dalam cara berfikir OO

Page 15: Object Oriented Programming - Introduction

Object-Oriented

Q3M1 – OOP C# Dudy Fathan Ali S.Kom

Grady BoochAmerican Software Engineer

Object memiliki karakteristik!

StateBehaviour

Identity

Page 16: Object Oriented Programming - Introduction

Object-Oriented

Q3M1 – OOP C# Dudy Fathan Ali S.Kom

Apakah Mobil Termasuk Object?

Ya!

State : warna, merk, bbm, kapasitas

Behaviour : maju, mundur (bergerak)

Identity : plat nomor mobil

Page 17: Object Oriented Programming - Introduction

Object-Oriented

Q3M1 – OOP C# Dudy Fathan Ali S.Kom

Apakah Benda Ini Termasuk Object?

Page 18: Object Oriented Programming - Introduction

Object-Oriented

Q3M1 – OOP C# Dudy Fathan Ali S.Kom

o Apa itu Class?• Definisi Class: merupakan template untuk membuat

object• Definisi Class: merupakan prototipe/blueprints yang

mendefinisikan variable dan method secara umum• Object merupakan permisalan dari suatu Class• Proses pembentukan Object dari suatu Class disebut

dengan instantiation• Object disebut juga dengan instances

Page 19: Object Oriented Programming - Introduction

Object-Oriented

Q3M1 – OOP C# Dudy Fathan Ali S.Kom

Class : MobilObject : Toyota, Daihatsu

Class : ToyotaObject : Kijang, Yaris, Camry

Class : ManusiaObject : Irfan, Budi, Iwan

Class : BinatangObject : Rusa, Kambing, Kucing

Perhatikan hubungan antara class dengan object berikut ini:

Page 20: Object Oriented Programming - Introduction

Object-Oriented

Q3M1 – OOP C# Dudy Fathan Ali S.Kom

Perhatikan hubungan antara class dengan object berikut ini:

Class : MobilObject : Toyota, DaihatsuAttribute/ Variabel : Merek StringBBM StringKapasitas int

Class : ManusiaObject : Irfan, Budi, Iwan Attribute/ Variabel : Nama StringJenis_Kelamin StringTinggi intBerat int

Page 21: Object Oriented Programming - Introduction

Object-Oriented

Q3M1 – OOP C# Dudy Fathan Ali S.Kom

Perhatikan hubungan antara class dengan object berikut ini:

Class : MobilObject : Toyota, DaihatsuAttribute/ Variabel : Merek StringBBM StringKapasitas intBehaviour : Hidupkan_Mesin()Hidupkan_Lampu()Ganti_Gigi()

Class : ManusiaObject : Irfan, Budi, Iwan Attribute/ Variabel : Nama StringJenis_Kelamin StringTinggi intBerat intBehaviour : Makan ()Bernafas()Berjalan()

Page 22: Object Oriented Programming - Introduction

Analogi OOP

Q3M1 – OOP C# Dudy Fathan Ali S.Kom

Kita akan mencoba untuk menganalogikan OOP dengan menggunakan benda disamping!

Yang akan dilakukan adalah mendeskripsikan “Topi Berfikir” disamping berdasarkan hal yang bisa dilakukannya.

Page 23: Object Oriented Programming - Introduction

Analogi OOP

Q3M1 – OOP C# Dudy Fathan Ali S.Kom

o Topi ini memiliki dua slot untuk menyimpan kertas yang sudah ditulis kalimat.

o Jika tombol warna hijau ditekan, maka topi akan membacakan kertas yang sudah dimasukkan ke slot warna hijau.

o Begitu juga dengan tombol merah

Page 24: Object Oriented Programming - Introduction

Analogi OOP

Q3M1 – OOP C# Dudy Fathan Ali S.Kom

Nasi Goreng!

Enak Banget!

Page 25: Object Oriented Programming - Introduction

Analogi OOP

Q3M1 – OOP C# Dudy Fathan Ali S.Kom

Nasi Goreng!

Page 26: Object Oriented Programming - Introduction

Analogi OOP

Q3M1 – OOP C# Dudy Fathan Ali S.Kom

Enak Banget!

Page 27: Object Oriented Programming - Introduction

Implementasi Analogi OOP

Q3M1 – OOP C# Dudy Fathan Ali S.Kom

class topi_berfikir{ ….};

• Kita bisa mengimplementasikan topi berfikir sebagai suatu Class.

Page 28: Object Oriented Programming - Introduction

Implementasi Analogi OOP

Q3M1 – OOP C# Dudy Fathan Ali S.Kom

class topi_berfikir{ string k_hijau; string k_merah;};

• Class akan memiliki 2 komponen yaitu k_hijau dan k_merah. Komponen ini akan berperan sebagai media penyimpanan kertas yang akan dimasukkan.

Page 29: Object Oriented Programming - Introduction

Implementasi Analogi OOP

Q3M1 – OOP C# Dudy Fathan Ali S.Kom

class topi_berfikir{ string k_hijau; string k_merah;

fslot(k_hijau,k_merah) {

……; }

t_hijau() {

……; } t_merah() {

……; }};

• Class ini akan memiliki 3 fungsi yaitu :• Fungsi pada saat

memasukkan kertas (f_slot)

• Fungsi pada saat tombol hijau ditekan (t_hijau)

• Fungsi pada saat tombol merah ditekan (t_merah)

Page 30: Object Oriented Programming - Introduction

Implementasi Analogi OOP

Q3M1 – OOP C# Dudy Fathan Ali S.Kom

Static void main(){ }

• Pada saat topi ini akan dijalankan, maka program membutuhkan 1 fungsi utama untuk memanggil class topi berfikir ini.

Page 31: Object Oriented Programming - Introduction

Implementasi Analogi OOP

Q3M1 – OOP C# Dudy Fathan Ali S.Kom

Static void main(){ topi_berfikir murid;}

• Pada kode disamping, anda telah membuat 1 object dengan nama “murid” dari class topi_berfikir.

• “murid” akan memiliki sifat dan karakteristik dari kelas topi_berfikir.

Page 32: Object Oriented Programming - Introduction

Implementasi Analogi OOP

Q3M1 – OOP C# Dudy Fathan Ali S.Kom

Static void main(){ topi_berfikir murid;

murid.f_slot;}

• Pada saat kertas dimasukan, maka object akan memanggil fungsi f_slot();

• Cara pemanggilan dengan menyertakan tanda titik sebelum nama fungsi yang akan dipanggil.

Page 33: Object Oriented Programming - Introduction

Implementasi Analogi OOP

Q3M1 – OOP C# Dudy Fathan Ali S.Kom

Static void main(){ topi_berfikir murid;

murid.f_slot(“nasi”,”goreng”);}

• Perlu diingat bahwa f_slot membutuhkan 2 inputan yang harus disertakan.

• Anda bisa langsung memasukkan kalimat kedalam f_slot.

Page 34: Object Oriented Programming - Introduction

Implementasi Analogi OOP

Q3M1 – OOP C# Dudy Fathan Ali S.Kom

Static void main(){ topi_berfikir murid;

murid.f_slot(“nasi”,”goreng”);

murid.t_hijau(); murid.t_merah(); murid.t_merah(); murid.t_hijau(); murid.t_hijau();}

• Sekarang, anda tinggal memanggil fungsi pada saat menekan tombol pada topi.

• Kata apakah yang akan disebutkan oleh topi berfikir?

Page 35: Object Oriented Programming - Introduction

Implementasi Analogi OOP

Q3M1 – OOP C# Dudy Fathan Ali S.Kom

Static void main(){ topi_berfikir murid; topi_berfikir guru;

murid.f_slot(“bakso”,”ketoprak”); guru.f_slot(“enak”,”tidak enak”);

murid.t_hijau(); guru.t_merah(); murid.t_merah(); guru.t_hijau();}

Identifikasilah kode dibawah, kata apa saja yang akan disebutkan oleh Topi Berfikir?

Page 36: Object Oriented Programming - Introduction

Implementasi Analogi OOP

Q3M1 – OOP C# Dudy Fathan Ali S.Kom

Static void main(){ topi_berfikir murid; topi_berfikir guru;

murid.f_slot(“bakso”,”ketoprak”); guru.f_slot(“enak”,”tidak enak”);

murid.t_hijau(); guru.t_merah(); murid.t_merah(); guru.t_hitam();}

Identifikasilah kode dibawah, kata apa saja yang akan disebutkan oleh Topi Berfikir?

Apa yang terjadi apabila kode

disamping dieksekusi?

Page 37: Object Oriented Programming - Introduction

Latihan Mandiri

Q3M1 – OOP C# Dudy Fathan Ali S.Kom

o Buatlah minimal 10 Object yang ada disekitar anda dengan mengidentifikasi State, Behaviour, dan Identity pada masing-masing Object

o Tulislah jawaban anda pada kertas selembar, jangan lupa untuk mencantumkan nama, tanggal, dan kelas.

-- Selamat Mengerjakan --

Page 38: Object Oriented Programming - Introduction

Q3M1 – OOP C# Dudy Fathan Ali S.Kom

Thank You!Dudy Fathan Ali, S.Kom

[email protected]