Object Oriented Programming - Introduction

Preview:

Citation preview

Q3M1 – OOP C# Dudy Fathan Ali S.Kom

Object Oriented ProgrammingQ3M1

Dudy Fathan Ali, S.Kom (DFA)2016

CEP - CCITFakultas Teknik Universitas Indonesia

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

Target Materi Ajar

Q3M1 – OOP C# Dudy Fathan Ali S.Kom

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

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.

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”

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”

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

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

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

Procedural VS OOP

Q3M1 – OOP C# Dudy Fathan Ali S.Kom

Main

f1 f2 f3

Procedural VS OOP

Q3M1 – OOP C# Dudy Fathan Ali S.Kom

Main

f1 f2 f3…. …. ….

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

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.

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

Object-Oriented

Q3M1 – OOP C# Dudy Fathan Ali S.Kom

Grady BoochAmerican Software Engineer

Object memiliki karakteristik!

StateBehaviour

Identity

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

Object-Oriented

Q3M1 – OOP C# Dudy Fathan Ali S.Kom

Apakah Benda Ini Termasuk Object?

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

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:

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

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()

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.

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

Analogi OOP

Q3M1 – OOP C# Dudy Fathan Ali S.Kom

Nasi Goreng!

Enak Banget!

Analogi OOP

Q3M1 – OOP C# Dudy Fathan Ali S.Kom

Nasi Goreng!

Analogi OOP

Q3M1 – OOP C# Dudy Fathan Ali S.Kom

Enak Banget!

Implementasi Analogi OOP

Q3M1 – OOP C# Dudy Fathan Ali S.Kom

class topi_berfikir{ ….};

• Kita bisa mengimplementasikan topi berfikir sebagai suatu Class.

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.

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)

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.

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.

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.

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.

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?

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?

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?

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 --

Q3M1 – OOP C# Dudy Fathan Ali S.Kom

Thank You!Dudy Fathan Ali, S.Kom

dudy.fathan@eng.ui.ac.id

Recommended