Pemrograman Berbasis Komponen

Slides:



Advertisements
Presentasi serupa
Pemrograman Visual I Pendahuluan Presented by : Herianto.
Advertisements

Usman Bauna / P Latar Belakang  Kehidupan manusia saat ini tidak dapat dilepaskan dari alat-alat elektronik (hand phone)  Bagaimana memamfaatkan.
Facade Design Pattern Surya | Kemal |
KELOMPOK 3.
Pemrograman Jaringan Socket Programming Aurelio Rahmadian.
Pendahuluan  Entity Beans : Bean yang berinteraksi dengan data dan penyimpanannya 2 cara memanage persistence : - Bean-Managed Persistence -> punya banyak.
PBO - PERTEMUAN 1- CLASS.
PEMROGRAMAN I 2 SKS.
WITH FANDI SUSANTO S.SI. Pemrograman Aplikasi Bergerak By Fandi Susanto S.Si.
SKRIPSI.
Singleton Pattern 1 one uno. What is Singleton ? One object of a kind Ada class yang hanya perlu diinstansiasi 1 kali saja Alasan: Dalam beberapa kasus.
Final Project PEMROGRAMAN WEB LANJUT
Interoperabilitas.
RANCANG BANGUN SISTEM INFORMASI PELACAKAN DAN PEMANTAUAN PAKET KIRIMAN BERBASIS WEB DENGAN BANTUAN MOBILE ANDROID Putu Agus Yudisuda Indrakarna 1) S1 Sistem.
MEMAHAMI RAGAM DIALOG.
MAHASISWA : EKO PUTRO LASMONO NIM :
Algoritma dan Struktur Data
PEMOGRAMAN 1 Pertemuan 2. TOOLBOX Toolbox adalah sebuah “kotak peranti” yang mengandung semua objek atau kontrol yang dibutuhkan untuk membentuk suatu.
DESAIN IMK-M5.
Testing Levels. Activities of Test Engineer Test engineer is an information technology professional who is in charge of ane or more technical test activities,
1 Pertemuan 19 Function Component Matakuliah: M0446/Analisa dan Perancangan Sistem Informasi Tahun: 2005 Versi: 0/0.
INSTITUT SAINS DAN TEKNOLOGI NASIONAL FAKULTAS TEKNOLOGI INDUSTRI
UML (Unified Modelling Language)
Rumah Makan Sedap Malam (RMSM)
Matakuliah : M0086/Analisis dan Perancangan Sistem Informasi
STUDY CLUB “Implementasi Pemrograman Berorientasi Objek”
BAB contoh penerapan inheritance dan encapsulation
CONNECTING COMPONENT Pertemuan 21-22
E. Haodudin Nurkifli Universitas Ahmad Dahlan Pertemuan :
Interaksi Manusia & Komputer Desain
TEKNIK-TEKNIK PENGUJIAN PERANGKAT LUNAK
ELEMEN-ELEMEN PROGRAM
Business Use Case Diagram
REKAYASA PERANGKAT LUNAK
PEMROGRAMAN VISUAL II Outline: UML (Unified Modeling Language)
Mobile Computing 7 Middleware.
Algoritma & PEMROGRAMAN 2B (Visual basic)
Fondasi Pemrograman & Struktur Data
Prosedur.
Pendahuluan Analisis & Desain Berorientasi Obyek (ADBO)
PEMODELAN SYSTEM BERORIENTASI OBYEK (UML)
Pengenalan Visual Basic
Dasar Komputer & Pemrog. 2B
PERANCANGAN BERORIENTASI OBJEK
ADBO (Analisa Desain Berorientasi Obyek)
Pertemuan 11 Structure Class
Pertemuan 9 Structure Class
PERANCANGAN BERORIENTASI OBJEK
Pertemuan 20 Use Case Diagram
Matakuliah : D0584/Analisis Sistem Informasi
Tugas Kelompok Kasus Rumah Makan
PENANGANAN KESALAHAN DAN HELP DOKUMENTASI
JAVA.
Object Oriented Programming
Rumah Makan Sedap Malam (RMSM)
Pengembangan Aplikasi Basis Data
PEMROGRAMAN WEB II.
Matakuliah : D0584/Analisis Sistem Informasi
Program studi sistem informasi Fakultas teknik dan ilmu komputer
Pemrograman Berorientasi Obyek
PERANCANGAN SISTEM INFORMASI PENJUALAN ONLINE BERBASIS WEB PADA
Kegiatan Belajar 2: Sistem Kendali Digital
MUHAMMAD RIZKY ABDILLAH
IMPLEMENTASI APLIKASI SMART RESTORAN BERBASIS ANDROID
Rumah Makan Sedap Malam (RMSM)
Rumah Makan Sedap Malam (RMSM)
Modul Pengontrol Peralatan Listrik Berbasis Mikrokontroler Sudrajat,
#TIPS-PRO MEMAKSIMALKAN GRABFOOD
TCP Socket Programming
HOW TO IMPROVE YOUR PUBLIC SPEAKING SKILLS. 2 3 INIKAH YANG SERING ANDA ALAMI SAAT PRESENTASI?
Transcript presentasi:

Pemrograman Berbasis Komponen Command Pattern

New Project !

Remote Control Universal Terdapat 7 macam perangkat yang bisa dikontrol (terdapat 7 slot) Setiap slot dapat diisi oleh perangkat apapun Setiap slot diisi oleh 1 perangkat, terdiri dari 2 tombol, sebut saja “On” dan “Off” Terdapat sebuah tombol Undo, yang berfungsi membatalkan perintah terakhir

Remote Control Universal Perangkat yang dapat dikontrol sangat bervariasi Lampu Taman, AC, TV, Kipas Angin, Alarm Rumah, Pintu Garasi, Home Theather, DVD Player, Televisi, Penyemprot Air di Taman, Lampu Ruangan Tamu, Lampu Kamar, dan masih banyak lainnya Di masa depan, jumlah perangkat yang bisa dikontrol bisa bertambah

Remote Control Universal Setiap perangkat tersebut dijamin kompatibel dengan remote control yang akan kita buat Fungsi-fungsi dari setiap perangkat juga diberikan kepada kita Yang harus dilakukan : merancang sebuah sistem yang bisa memenuhi permintaan tersebut

Solusi Pertama ! Ada solusi paling sederhana dan mudah  Gunakan If !! Keuntungan : tidak perlu berpikir lama, quick and dirty  Kelemahan : Keterikatan remote dan perangkat sangat tinggi Jika ada perangkat baru, perlu membongkar source code kembali

Command Pattern !! Solusinya : Command Pattern !!

Command Pattern “Encapsulates a request as an object, Thereby let you parameterize other objects with different requests, queue or long requests, and support undoable operations.” Head First – Design Pattern

Command Pattern Client Invoker Receiver

Command Pattern

Customer, Waitress, Cook Pesanan tiap pelanggan bisa berbeda Daftar Pesanan (Order Slip) merupakan “Obyek Universal” Waitress tidak perlu tahu apa saja pesanan dari seorang customer, karena sudah tertulis di Daftar Pesanan Waitress tidak tahu bagaimana cara memasak pesanan customer (misal : soto babat)

Customer, Waitress, Cook Cook (Koki) tidak perlu tahu siapa yang memesan makanan soto babat Cook tahu bagaimana cara memasak soto babat Tidak ada keterikatan antara Waitress dan Cook (de-coupling) (kecuali kalau mereka pacaran  )

Pesan Burger dan Milk Shake! createOrder() takeOrder() orderUp() public void orderUp(){ receiver.makeBurger() receiver.makeMilkShake() } makeBurger() makeMilkShake()

Remote Control Remote tidak tahu bagaimana cara menghidupkan TV, mematikan alarm rumah, membuka pintu garasi Remote mengirim perintah untuk menyalakan alat penyiram air di taman Perangkat (TV, Alarm, dsb) tidak perlu tahu siapa yang mengirim request/perintah Perangkat (misal TV) tahu bagaimana cara menyalakan TV

Remote Control Client = Remote Receiver = Perangkat (TV, Alarm, dsb) Invoker ?

Invoker from DoTA  Invoke Skills, plenty of skills  Kael The Invoker ?

Remote Control Invoker ini yang akan kita buat Tentu saja Client dan Receiver juga akan kita “permak” agar memenuhi requirements awal Kita akan menerapkan Command Pattern untuk masalah Remote Control Universal ini

Lampu Rumah Lampu Rumah : on() dan off() Demo

Command Pattern

Masalah Berikutnya ? Pada Demo Lampu dan Garasi tadi, remote hanya memiliki satu tombol saja Requirement : remote punya 7 slot, masing-masing slot ada 2 tombol (“On” dan “Off”) Bagaimana memenuhinya?

Masalah Slot Gunakan Array  Slot 1 berisi : Slot 2 berisi : OnCommand[0] OffCommand[0] Slot 2 berisi : OnCommand[1] OffCommand[1] Dan seterusnya …

Masalah Slot Array karena jumlah tombol di Remote Universal jumlahnya akan selalu tetap Pada kondisi dimana jumlah tombol bisa berubah, gunakan List

Implementasi 7 Slot Ingat, ada 7 slot Masing-masing slot ada “On” dan “Off” offCommand[7], onCommand[7] Apakah semua tombol harus diset ? Tidak juga  (doh) !!

Implementasi 7 Slot Bagaimana “mengakali” tombol yang belum diset Commandnya ? Kita buat class NoCommand yang tidak melakukan apa-apa  Di awal, kita set semua tombol ke NoCommand dulu

Implementasi Remote 7 Slot Bagaimana mengubah class RemoteControl agar menerapkan 7 slot (On dan Off button) ? Bagaimana cara mengeset command tertentu pada slot tertentu ? Demo

Remote Control Universal Remote Control sudah berjalan dengan baik Seluruh requirement sudah terpenuhi Ternyata masih ada 1 requirement yang belum terpenuhi  Undo ?

Remote with Undo Bagaimana caranya ? Kita ubah interface command, tambahkan sebuah method undo() Method undo tadi akan diimplementasikan di setiap class yang implements Command

Remote With Undo Demo

Ada Pertanyaan ?

Presentasi Ide Ide anda harus mendapat persetujuan kami berdua  Buatlah proposal laporan ide, dengan format bebas (buat semenarik mungkin)

Laporan Proposal anda harus berisi : Latar Belakang Pembuatan Komponen Tujuan Pembuatan Komponen Kemampuan Komponen dan Batasan Sistem Perancangan Antarmuka Komponen Perancangan Aplikasi menggunakan Komponen Perancangan Teknologi pembuatan komponen Arsitektur, Use Case, Database, API dll

Minggu Depan Adapter Pattern Facade Pattern