IT-652 – Pemrograman Berorientasi Aspek Ramos Somya.

Slides:



Advertisements
Presentasi serupa
Mendapatkan Input dari Keyboard
Advertisements

Pemrograman Berorientasi Objek (Project)
Pemrograman JAVA (TIB09)
CARI ERROR !!! ADA BERAPA KESALAHAN ??? Apa beda JRE dan JDK ??? JDK JRE.
Deklarasi Class Kelas pada Java dideklarasikan dengan menggunakan kata kunci class. Contoh : class Mobil { String warna; int thn_prod; } Mobil Data :
 public static void main(String[] args) {  int bil1=3;  do {  System.out.print(bil1+",");  bil1=bil1+4;  }  while(bil1
Pemrograman Berorientasi Objek
Variabel di Java Variabel merupakan sebuah tempat untuk menyimpan data. Di Java setiap pembuatan variabel harus ditentukan tipe.
Java Progamming Operasi I/O
Pemrograman Berorientasi Objek
Praktikum Bahasa Pemrograman
Nur Hayatin, S.ST Jurusan Teknik Informatika Universitas Muhammadiyah Malang Sem Genap 2010.
Package As’ad Djamalilleil
OBJECT ORIENTED PROGRAMMING in JAVA
Pemrograman JAVA (TIB09)
Oleh: Ali Ridho Barakbah
Modul 3: Kendali program dan teknik penyimpanan data
Dasar Exception Handling
Flow Control & Exception Handling
Pemrograman Berorientasi Objek
Pemrograman Berorientasi Aspek.  Suatu aspek digunakan untuk melakukan trace kejadiaan tertentu.  Misal untuk proses debugging  memeriksa apakah program.
SLIDE OTOMATIS PINDAH DALAM WAKTU 4-5 MENIT. A:kiriB:kanan Deklarasikan sebuah variabel dengan nama ‘isi’ yang mempunyai type array of double dengan ukuran.
Pemrograman Java Pewarisan / Inheritance Polimorfisme Pemrograman Java.
Method.
Inheritance Ery Setiyawan Jullev A.
POLIMORFISME 2 Imam Fahrur Rozi 01.
Pemrograman Berbasis Obyek Oleh Tita Karlita
Pertemuan 8 Pemrograman Berbasis Obyek Oleh Tita Karlita
Pemrograman Berorientasi Objek
Dasar exception handling
Mendapatkan input dari keyboard
Variabel, Method & Constructor Oleh : Nur Hayatin, S.ST Teknik Informatika – UMM 2011.
Pemrograman Berorientasi Obyek Oleh Tita Karlita
As’ad Djamalilleil Function (method) As’ad Djamalilleil
- PERTEMUAN 9 - BERBAGAI KELAS UTILITAS DI JAVA
POLIMORPHISM Adharul Muttaqin Adharul M -
- PERTEMUAN 4 - PERULANGAN
Flow Control & Looping Pertemuan 4 Pemrograman Berbasis Obyek Oleh Tita Karlita.
Inheritance Nana Ramadijanti Laboratorium Computer Vision Politeknik Elekltronika Negeri Surabaya PENS-ITS 2009.
PELATIHAN JAVA FUNDAMENTAL
Pengantar Aspect Oriented Programming
07 Advanced Class Features
Inheritance Konsep Inheritance Protected Member
NAMA : JUMADI Npm : Interface mendefinisikan sebuah cara standar dan umum dalam menetapkan sifat-sifat dari class-class. Mereka menyediakan.
Struktur Kontrol Pemilihan
OOP Java 06 Polymorphism.
UDP.
Struktur Data List Linear : Linked List (Single Linkedlist)
Public class RelasiDemo { public static void main(String[] args) { //beberapa nilai int i = 37; int j = 42; int k = 42; System.out.println("Nilai variabel...");
OOP Java - Tj Konsep Dasar OOP.
Pemrograman Berorientasi Obyek Lanjut (IT251)
Pengenalan JAVA dan Pemrograman Berorientasi Objek
Kelas Lanjut 2 Oleh Tita Karlita.
INHERITANCE (Oleh : Nur Hayatin, S.ST)
OOP Java Minggu 2b Dasar OOP. Class (1) Deklarasi class : [ *] class { [ *] } Cat : [] = optional, * = repeat 0-N.
Perulangan (Iteration)
Manipulasi String dengan Kelas String dan StringBuffer
MATERI IV OOP (Object Oriented Programming) Chapter II.
Dasar exception handling
Try, Catch, Finally Throws
PEMROGRAMAN VISUAL II Agenda Perkuliahan :
Pemrograman Visual I Outline: Method Method Void & fungsi
POLYMORPHISM (KEBANYAKRUPAAN)
Pemrograman Berorientasi Object
Constructor dan Overloading
MODIFIER JAVA.
Array, Class, Obyek, Method danConstructor.
Pemrograman Berorientasi Obyek
IT 132 – Dasar-Dasar Pemrograman
FONDASI PEMROGRAMAN & STRUKTUR DATA #8
Transcript presentasi:

IT-652 – Pemrograman Berorientasi Aspek Ramos Somya

 OOP  mendukung modularity program.  Java memecah komponen-komponennya menjadi objek- objek terpisah yang saling berinteraksi.  Class yang telah dibuat oleh suatu program OOP, dapat digunakan oleh program OOP lain secara langsung.  Kelemahan: Karena berorientasi obyek, maka akan banyak sekali terjadi perubahan secara dinamis.  Sebuah aplikasi harus bisa menangani perubahan ke depannya tanpa harus merubah keseluruhan program.

 Misal terdapat sebuah class PembuatLaporan:  Misal di suatu waktu ada perubahan pada proses bisnis.  Fitur PembuatLaporan diakses oleh pihak yg berbeda.  Misal LaporanBulanan oleh Admin, Laporan Tahunan oleh Bagian keuangan. PembuatLaporan buatLaporanBulanan() buatLaporanTahunan()

 Dengan AOP, kita bisa menyisipkan kode program tambahan tanpa merubah class awal yang sudah dibuat.  Proses ini dinamakan CROSSCUTTING.  Dalam OOP sulit untuk melakukan crosscuting, karena satu sama lain saling terhubung, jika 1 diubah, akan berpengaruh pada yang lainnya.

 PembuatLaporan pl = new PembuatLaporan(); pl.buatLaporanBulanan(); before after Join Point

point cut x(); // mengacu pada joint point tertentu Bisa menambahkan advice (statement yang akan dilakukan sebelum/setelah joint point tertentu tercapai). before(): x() …….. pl.buatLaporanBulanan(); // saat dipanggil lakukan call

 Untuk implementasi AOP pada Java, kita menggunakan AspectJ.  AspectJ menambahkan kepada Java dengan suatu konsep, yang disebut join point (dari crosscutting concerns) dan menambahkan beberapa konstraktor baru seperti pointcut, advice, inter-type declaration, dan aspect.  Pointcut dan advice secara dinamic mempengaruhi program flow.

Yang dibutuhkan:  IDE  pakai Eclipse  ajdt_2.1.0_for_eclipse_3.6.zip.

 Instal dulu Eclipse.  Tambahkan plugin ajdt_2.1.0_for_eclipse_3.6.zip

 Klik Add

 Pilih Local OK

Next uncheck

 Next

 I accept - Finish

OK Restart Now

 Class TestHello public class TestHello { public void cetak(){ System.out.println("Dicetak oleh TestHello di metode cetak"); } public void print(){ System.out.println("Dicetak oleh TestHello di metode print"); }

 Class MainHello public class MainHello { public static void main(String[] args) { TestHello th = new TestHello(); th.cetak(); th.print(); }

 Aspect: SetelahCetak public aspect SetelahCetak { pointcut namaPointCut() : call(void TestHello.*()); after() : namaPointCut(){ System.out.println("kode ini dijalankan setelah metode cetak jalan"); } before() : call(void TestHello.print()){ System.out.println("Dijalankan sebelum metode print dipanggil"); }

public class TestHello { public void cetak(String str, int nilai) { System.out.println(“Metode cetak di class TestHello diberi parameter String : " + "" + str + " dan int : " + nilai); }

public aspect SetelahCetak { pointcut namaPointcut(String s, int i) : call(void TestHello.cetak(String, int)) && args(s, i); after(String s, int i) : namaPointcut(s, i) { System.out.println("Kode ini dijalankan setelah metode cetak jalan"); System.out.println("String param = " + s); System.out.println("int param = " + i); }

public class mainHello { public static void main(String[] args) { TestHello th = new TestHello(); th.cetak("tes string", 100); }

 Buatlah class Shape dengan atribut nama, panjang dan lebar.  Buat setter dan getter-nya dan buat method info untuk mencetak nama, panjang dan lebar.  Buat class Square yang merupakan turunan dari class Shape.  Buat method hitungLuas pada class Square untuk menghitung luasnya (panjang*lebar).  Tambahkan Aspect untuk membuat proteksi supaya user tidak bisa mengeset nilai panjang dan lebar jika nilainya > 100.  Buat class Hitung, buat obyek dari class Square, set panjang dan lebarnya lalu tampilkan info dan hitung luasnya.

 Tugas individu.  Kumpulkan di kuliah pertemuan berikutnya dalam bentuk hardcopy.  Sertakan kode program dan output-nya dan beri penjelasan untuk kode programnya.  Copy paste nilai = 0