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
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 utama
o Fungsi dan prosedur digunakan untuk memanipulasi
data
o Programmer harus mem-break down suatu problem
menjadi sub problem yang lebih simpel
o Cara pandang → program adalah suatu urutan
instruksi
Object-Oriented Programming
Q3M1 – OOP C# Dudy Fathan Ali S.Kom
o Fokus utama pada Class dan Object
o Fungsi dan data bukan menjadi dua hal yang terpisah
o Fungsi dan data menjadi satu kesatuan yang disebut
dengan Object
o 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 Booch
American Software Engineer
Object memiliki karakteristik!
State
Behaviour
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 : Mobil
Object : Toyota, Daihatsu
Class : Toyota
Object : Kijang, Yaris, Camry
Class : Manusia
Object : Irfan, Budi, Iwan
Class : Binatang
Object : 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 : Mobil
Object : Toyota, Daihatsu
Attribute/ Variabel :
Merek  String
BBM  String
Kapasitas  int
Class : Manusia
Object : Irfan, Budi, Iwan
Attribute/ Variabel :
Nama  String
Jenis_Kelamin  String
Tinggi  int
Berat  int
Object-Oriented
Q3M1 – OOP C# Dudy Fathan Ali S.Kom
Perhatikan hubungan antara class dengan object berikut ini:
Class : Mobil
Object : Toyota, Daihatsu
Attribute/ Variabel :
Merek  String
BBM  String
Kapasitas  int
Behaviour :
Hidupkan_Mesin()
Hidupkan_Lampu()
Ganti_Gigi()
Class : Manusia
Object : Irfan, Budi, Iwan
Attribute/ Variabel :
Nama  String
Jenis_Kelamin  String
Tinggi  int
Berat  int
Behaviour :
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
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

Object Oriented Programming - Introduction

  • 1.
    Q3M1 – OOPC# Dudy Fathan Ali S.Kom Object Oriented Programming Q3M1 Dudy Fathan Ali, S.Kom (DFA) 2016 CEP - CCIT Fakultas Teknik Universitas Indonesia
  • 2.
    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
  • 3.
    Target Materi Ajar Q3M1– OOP C# Dudy Fathan Ali S.Kom o Mahasiswa memiliki kemampuan pemrograman berorientasi objek untuk menganalisa dan memecahkan kasus
  • 4.
    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.
  • 5.
    Pendahuluan Q3M1 – OOPC# 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”
  • 6.
    Pendahuluan Q3M1 – OOPC# 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”
  • 7.
    Pendahuluan Q3M1 – OOPC# 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
  • 8.
    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 utama o Fungsi dan prosedur digunakan untuk memanipulasi data o Programmer harus mem-break down suatu problem menjadi sub problem yang lebih simpel o Cara pandang → program adalah suatu urutan instruksi
  • 9.
    Object-Oriented Programming Q3M1 –OOP C# Dudy Fathan Ali S.Kom o Fokus utama pada Class dan Object o Fungsi dan data bukan menjadi dua hal yang terpisah o Fungsi dan data menjadi satu kesatuan yang disebut dengan Object o Cara pandang → program adalah serangkaian object yang bekerjasama untuk menyelesaikan suatu problem
  • 10.
    Procedural VS OOP Q3M1– OOP C# Dudy Fathan Ali S.Kom Main f1 f2 f3
  • 11.
    Procedural VS OOP Q3M1– OOP C# Dudy Fathan Ali S.Kom Main f1 f2 f3…. …. ….
  • 12.
    Object-Oriented Q3M1 – OOPC# Dudy Fathan Ali S.Kom o Apa itu Object? • Seluruh benda di sekitar Anda dapat dianggap sebagai object • Contoh: dogs, komputer, meja, gelas, dll
  • 13.
    Object-Oriented Q3M1 – OOPC# 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.
  • 14.
    Object-Oriented Q3M1 – OOPC# 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
  • 15.
    Object-Oriented Q3M1 – OOPC# Dudy Fathan Ali S.Kom Grady Booch American Software Engineer Object memiliki karakteristik! State Behaviour Identity
  • 16.
    Object-Oriented Q3M1 – OOPC# Dudy Fathan Ali S.Kom Apakah Mobil Termasuk Object? Ya! State : warna, merk, bbm, kapasitas Behaviour : maju, mundur (bergerak) Identity : plat nomor mobil
  • 17.
    Object-Oriented Q3M1 – OOPC# Dudy Fathan Ali S.Kom Apakah Benda Ini Termasuk Object?
  • 18.
    Object-Oriented Q3M1 – OOPC# 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
  • 19.
    Object-Oriented Q3M1 – OOPC# Dudy Fathan Ali S.Kom Class : Mobil Object : Toyota, Daihatsu Class : Toyota Object : Kijang, Yaris, Camry Class : Manusia Object : Irfan, Budi, Iwan Class : Binatang Object : Rusa, Kambing, Kucing Perhatikan hubungan antara class dengan object berikut ini:
  • 20.
    Object-Oriented Q3M1 – OOPC# Dudy Fathan Ali S.Kom Perhatikan hubungan antara class dengan object berikut ini: Class : Mobil Object : Toyota, Daihatsu Attribute/ Variabel : Merek  String BBM  String Kapasitas  int Class : Manusia Object : Irfan, Budi, Iwan Attribute/ Variabel : Nama  String Jenis_Kelamin  String Tinggi  int Berat  int
  • 21.
    Object-Oriented Q3M1 – OOPC# Dudy Fathan Ali S.Kom Perhatikan hubungan antara class dengan object berikut ini: Class : Mobil Object : Toyota, Daihatsu Attribute/ Variabel : Merek  String BBM  String Kapasitas  int Behaviour : Hidupkan_Mesin() Hidupkan_Lampu() Ganti_Gigi() Class : Manusia Object : Irfan, Budi, Iwan Attribute/ Variabel : Nama  String Jenis_Kelamin  String Tinggi  int Berat  int Behaviour : Makan () Bernafas() Berjalan()
  • 22.
    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.
  • 23.
    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
  • 24.
    Analogi OOP Q3M1 –OOP C# Dudy Fathan Ali S.Kom
  • 25.
    Analogi OOP Q3M1 –OOP C# Dudy Fathan Ali S.Kom Nasi Goreng!
  • 26.
    Analogi OOP Q3M1 –OOP C# Dudy Fathan Ali S.Kom Enak Banget!
  • 27.
    Implementasi Analogi OOP Q3M1– OOP C# Dudy Fathan Ali S.Kom class topi_berfikir { …. }; • Kita bisa mengimplementasikan topi berfikir sebagai suatu Class.
  • 28.
    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.
  • 29.
    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)
  • 30.
    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.
  • 31.
    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.
  • 32.
    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.
  • 33.
    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.
  • 34.
    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?
  • 35.
    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?
  • 36.
    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?
  • 37.
    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 --
  • 38.
    Q3M1 – OOPC# Dudy Fathan Ali S.Kom Thank You! Dudy Fathan Ali, S.Kom dudy.fathan@eng.ui.ac.id