Annotation. Prepared by Viska Mutiawani.

dokumen-dokumen yang mirip
Generics. Prepared by Viska Mutiawani. 1

TPI4202 e-tp.ub.ac.id

Inheritance dan Kata Kunci static

1. Keyword mana yang memiliki fungsi sama dengan keyword this dan menyediakan reference ke atribut turunan dari objek? super

BAHASA PEMROGRAMAN JAVA

Nanik Tolaram

Ginanjar Utama Workbench Tempat Bekerja

Abstract Class dan Interface. Viska Mutiawani, M.Sc

Pengenalan Program Java

Membuat dan Menggunakan Class

Sekarang, kita akan mencoba untuk menganalisa program Java pertama : public class Hello {

1. Manakah jawaban yang benar,pada saat Anda mengcompile dan menjalankan class berikut ini:

Exception Handling. Prepared by Viska Mutiawani. 1

Pemrograman Lanjut. Class : Deeper Look 2

JAVA FUNDAMENTAL ATURAN PERKULIAHAN SILABUS

2 TIPE DATA DAN VARIABEL

Dasar-Dasar Pemrograman Java

MODUL PRAKTIKUM PEMROGRAMAN BERORIENTASI OBJEK

Pemrograman Lanjut Review Class dan Object PTIIK

Pertemuan 4 Array pada Java

Apa yang menjadi output potongan kode diatas? Error karena tidak ada String yang di-passing kedalam konstruktor Bapak

BAB II VARIABEL DAN TIPE DATA

Nama : Julian Chandra W Telp :

PEMAHAMAN DASAR DASAR JAVA

TPI4202 e-tp.ub.ac.id

SUMBER BELAJAR PENUNJANG PLPG

Overriding. Subclass yang berusaha memodifikasi tingkah laku yang diwarisi dari superclass. Tujuan: subclass memiliki tingkah laku yang lebih

Class dan Object. PBO/Java/Ayuliana/Revisi

Pemrograman Berorientasi. Abstract & Interface

06/03/2018. Tidak memiliki parameter. Melakukan inisialisasi semua variabel private dengan nilai awal.

TIPE DATA PADA JAVA. Pertemuan (K-04/L-04)

Pengenalan Java, Tipe Data, Variabel dan Operator. Putu Putra Astawa

C#, Programming, Object-oriented. Pengenalan C# Erick Pranata. Edisi I

Pemrograman. Pertemuan-3 Fery Updi,M.Kom

Konsep Dasar Pemrograman Berorientasi Objek

PEMROGRAMAN BERORIENTASI OBJEK

Pendahuluan Dasar Pemrograman Java

Praktikum Pemograman Berorientasi Objek

GENERICS. Yuliana Setiowati. Politeknik Elektronika Negeri Surabaya. Topik

UJIAN TENGAH SEMESTER GENAP TA 2011/2012

Dasar Pemrograman Java

LAB02 : KODING PROGRAM

Pemrograman dengan Java

PEWARISAN. Disusun Oleh: Reza Budiawan. Untuk: Tim Dosen Algoritma & Pemrograman Lanjut

Exception Handling Lanjutan

Pemrograman Lanjut Jurusan S1 Teknik Informatika. 9/17/2012 Ratno

Membuat project Android di Eclipse Struktur project pada eclipse Mengenal Tag Layout User Interface

Pengenalan JAVA. Farhat, ST., MMSI., MSc

IF PEMROGRAMAN LANJUT TUGAS 1. Oleh : Andri Heryandi, M.T.

Modul ini mengenalkan Anda konsep dasar mengenai Java generic types.

MODUL 3. Inheritance, Abstract Class, Interface TUJUAN PRAKTIKUM LANDASAN TEORI. A. Inheritance

Java Application. Menampilkan Tulisan

Bahasa Pemrograman Java. Yudi Adha. ST. MMSI

LAB PEMROGRAMAN I (JAVA FUNDAMENTAL) PERTEMUAN 3 Dosen : Bella Hardiyana S. Kom

Modul Praktikum 4 Pemograman Berorientasi Objek

Overriding, Overloading, Polymorphism. Pertemuan 10 Pemrograman Berbasis Obyek Dr. Rodiah

Badiyanto, S.Kom., M.Kom. PBO java

Pemrograman Berorientasi Obyek. Exception Handling. Politeknik Elektronika Negeri Surabaya

Pengenalan pemrograman berorientasi obyek

Reserved words Reserved words atau keywords merupakan kata-kata spesifik digunakan oleh compiler untuk keperluan pemrograman. Contoh reserved words

Praktikum 3 Konsep Class, Attribute dan Method

PRAKTIKUM 6 EXCEPTION

Composition dan Inheritance

Didalam menampilkan peta yang sudah kita buat, kita akan menggunakan Slick2D sebagai sebuah frameworknya.

PERCOBAAN 6 EXCEPTION

PRAKTIKUM 17 MENANGANI EXCEPTION

Class & Object 2 ~Praktikum~ Imam Fahrur Rozi

IKG2I4 / Software Project I

IT652 Pemrograman Berorientasi Aspek. Ramos Somya

KUM 3 IMPLEMENTASI LIST

BAB 3 TYPE DATA, VARIABLE DAN OPERATOR

PEMROGRAMAN JAVA : VARIABEL DAN TIPE DATA

Pemrograman Lanjut Jurusan S1 Teknik Informatika. 9/17/2012 Ratno

PAKET (PACKAGE) 20 Januari 2012

Modul 1 Pengenalan Java. Oleh: Mike Yuliana PENS-ITS

Tutorial Web Service JAX-WS Konverter Suhu dengan NetBeans

Pemrograman Berorientasi. Class dan Obyek 2

Identifier, Keywords, Variabel, Tipe Data Primitif dan Operator PBO. Ramos Somya

TUGAS AKHIR APLIKASI KALKULATOR BOLA BERBASIS JAVA

PRAKTIKUM 3 KONSTRUKTOR DAN OVERLOADING

IKG2I4 / Software Project I

PEMOGRAMAN APLIKASI BERGERAK (Java ME) Yoannita

BAB IV HASIL PENELITIAN DAN PENERAPAN

Java Application. Aplikasi: Menampilkan Tulisan

Percobaan 6 Exception

Bahasa Pemrograman 2.

UJIAN TENGAH SEMESTER GENAP TA 2011/2012

BAB VI ARRAY Mendeklarasikan Variabel Array int[ ] bilangan; int bilangan[ ]; Mendefinisikan Array Bilangan = new int[5]; Latihan 21. ArrSatu.

E-Book PEMROGRAMAN BERORIENTASI OBJEK. Disusun Oleh: Arfian Hidayat, S.Kom

PENGENALAN BAHASA PEMROGRAMAN JAVA

Bahasa Pemrograman 2.

ABSTRACTION, ENCAPSULATION, INHERITANCE & POLYMORPHISM

Array Multidimensi. Pemrograman Dasar. Java

A. TUJUAN PEMBELAJARAN 1. Mengetahui cara menangani exception dengan cara melempar exception. 2. Mengetahui cara membuat sendiri class exception.

Konsep Pemrograman Berorientasi Obyek. Maria Ulfah S Nurochman

Dasar Pemrograman Java. H. Risdiandri Iskandar, SKom,MM 1

Array Sebagai Parameter Method

Tabel 1. Instruksi untuk menampilkan teks No. Bahasa Pemrograman Instruksi 1. Pascal WRITE ( Bahasa pemrograman itu mudah );

Object Oriented Programming (OOP) --Inheritance- Saniati STMIK Teknokrat, Bandar Lampung

1.Tujuan. 2. Latar Belakang. Mendefinisikan superclasses dan subclasses Override method dari superclasses Membuat method final dan class final

Transkripsi:

Annotation Prepared by Viska Mutiawani 1

Subtopik Annotation What is annotation? Kegunaan annotation. Cara membuat annotation. Cara menggunakan annotation type. 3 jenis annotation. Predefined annotation type. Meta-Annotation. Nested annotation. 2

Intro Pada Java rilis 5.0, terjadi banyak penambahan pada bahasa Java. Salah satu penambahan tersebut adalah annotation. Annotation dalam bentuk yang paling sederhana: @Entity Simbol at (@) akan memberitahu compiler bahwa yang mengikuti setelah tanda tersebut adalah annotation. 3

What is annotation? Annotation merupakan informasi data tentang kode program tetapi tidak akan berdampak secara langsung pada kode. Juga dikenal sebagai meta tag. 4

Kegunaan Annotation Memberikan informasi kepada compiler. Annotation dapat digunakan oleh compiler untuk mendeteksi error atau supress warning. Compiler-time dan deployment-time processing Software tools dapat memproses informasi dari annotation untuk menghasilkan code, file XML,dll Memudahkan perubahan 5

Kegunaan Annotation (2) Runtime processing Beberapa annotation akan diperiksa pada waktu runtime. Mengurangi waktu untuk me-maintain side files yang harus up-to-date seiring perubahan code pada file source. 6

Bagaimana digunakannya? Annotation digunakan untuk mempengaruhi cara program diperlakukan oleh tool dan library. Annotation digunakan oleh tool untuk menghasilkan derived files. Tools: compiler, IDE, runtime tools Derived files: Java code yang baru, deployment descriptor, file class 7

Cara membuat annotation Anggaplah ada coding pada grup pembangunan software seperti berikut: public class Generation3List extends Generation2List { // Author: John Doe // Date: 3/17/2002 // Current revision: 6 // Last modified: 4/12/2004 // By: Jane Doe // Reviewers: Alice, Bill, Cindy // class code goes here } 8

Cara membuat annotation (2) Annotation type mirip seperti interface pada Java, namun ada beberapa hal khusus pada annotation yaitu: Ada simbol @ yang mendahului katakunci interface Setiap method mendeklarasikan satu unsur pada annotation type Deklarasi method tidak boleh ada parameter juga katakunci throws Tipe data terbatas pada tipe primitif, String, Class, enums, annotations dan array dari tipe data sebelumnya Method boleh memiliki nilai default 9

Cara membuat annotation (3) Untuk mempermudah, komentar mengenai data pembuat dapat dibuat menjadi metadata dengan menggunakan annotation type. Contoh: @interface ClassPreamble { String author(); String date(); int currentrevision() default 1; String lastmodified() default "N/A"; String lastmodifiedby() default "N/A"; // Note use of array String[] reviewers(); } 10

Cara menggunakan annotation type Sesudah annotation type dibuat, anda dapat bebas menggunakannya sesuai keperluan seperti pada class, method, deklarasi variabel. Annotation merupakan modifier khusus yang dapat digunakan dimanapun sebagaimana modifier lainnya (ex: public, static, final) Namun sebaiknya annotation mendahului modifier lain Annotation dimulai dari simbol @ diikuti oleh annotation type dan semua elemen di dalamnya dalam kurung ( ) 11

Cara menggunakan annotation type (2) Contoh: @ClassPreamble ( author = "John Doe", date = "3/17/2002", currentrevision = 6, lastmodified = "4/12/2004", lastmodifiedby = "Jane Doe", // Note array notation reviewers = {"Alice", "Bob", "Cindy"} ) public class Generation3List extends Generation2List { // class code goes here } 12

3 jenis annotation Ada 3 jenis annotation: Marker annotation Single value annotation Normal annotation 13

Marker annotation Merupakan annotation type tanpa elemen Annotation paling sederhana Deklarasi: /** * Indicates that the specification of the annotated * API element is preliminary and subject to change. */ public @interface Preliminary { } Cara pakai (tidak perlu kurung): @Preliminary public class TimeTravel {... } 14

Single value annotation Merupakan annotation type yang hanya memiliki satu elemen. Elemennya harus diberi nama value Deklarasi: /** * Associates a copyright notice with the annotated API element. */ public @interface Copyright { String value(); } Cara pakai (nama elemen dapat dihilangkan dan tidak perlu simbol =): @Copyright("2002 Yoyodyne Propulsion Systems") public class SomeClass {... } 15

Normal annotation Merupakan annotation dengan lebih dari 1 elemen. Deklarasi: public @interface RequestForEnhancement { int id(); String synopsis(); String engineer() default "[unassigned]"; String date(); default "[unimplemented]"; } Cara pakai: @RequestForEnhancement( id = 2868724, synopsis = "Enable time-travel", engineer = "Mr. Peabody", date = "4/1/3007" ) public static void travelthroughtime(date destination) {... } 16

Predefined Annotation Type Beberapa annotation yang digunakan oleh Java compiler (ada dalam java.lang): @Deprecated @Override @SuppressWarnings @SafeVarargs @FunctionalInterface 17

@Deprecated Digunakan untuk menandai bahwa elemen yang ditandai sebaiknya tidak digunakan lagi. List pada Java api: http://docs.oracle.com/javase/7/docs/api/deprecated-list.html Contoh: // Javadoc comment follows /** * @deprecated * explanation of why it was deprecated */ @Deprecated static void deprecatedmethod() { } 18

@Override Digunakan untuk menandai bahwa method yang ditandai merupakan method yang di-override (ditimpa) dari superclass atau interface. Jika tersilap, maka compiler memberi pesan error. Contoh: // mark method as a superclass // method that has been overridden @Override int overriddenmethod() { } 19

@SupressWarnings Digunakan untuk tidak memunculkan pesan peringatan. Peringatan (warning) ada 2 jenis: deprecation dan unchecked. Warning dapat muncul pada penggunaan generics. Misal jika menggunakan method yang deprecated, maka annotation ini dipakai untuk menghilangkan pesan peringatan. Contoh: // use a deprecated method and tell // compiler not to generate a warning @SuppressWarnings("deprecation") void usedeprecatedmethod() { objectone.deprecatedmethod(); } //deprecation warning suppressed 20

Meta-annotation Merupakan annotation yang digunakan oleh annotation lain. Beberapa yang ada dalam java.lang.annotation: @Retention @Documented @Target @Inherited @Repeatable 21

@Retention Annotation @Retention menspesifikkan bagaimana annotation yang ditandakan disimpan. Ada 3 jenis policy: RetentionPolicy.SOURCE - Annotation yang ditandakan hanya ditahan (retain) di dalam level source saja dan akan di-ignore oleh compiler. Jadi rentention ini hanya ada dalam source code dan tidak terekod di dalam file.class (file hasil kompilasi) RetentionPolicy.CLASS - Annotation yang ditandakan ditahan oleh compiler pada masa kompilasi, tapi akan di-ignore oleh Java Virtual Machine (JVM). Retention ini merupakan nilai default jika tidak dispesifikkan secara khusus. Retention ini akan masuk dalam file.class (file hasil kompilasi) tapi tidak digunakan oleh JVM. RetentionPolicy.RUNTIME - Annotation yang ditandakan ditahan oleh JVM jadi ia dapat digunakan semasa runtime. Retention ini ada dalam file.class (file hasil kompilasi) dan digunakan semasa runtime oleh JVM. 22

@Documented Secara default, annotation tidak akan didokumentasi oleh Javadoc. Namun jika kita menggunakan annotation @Documented, maka annotation yang kita buat akan terdokumentasi oleh Javadoc. Contoh: // import this to use @Documented import java.lang.annotation.*; @Documented @interface ClassPreamble { String author(); String date(); int currentrevision() default 1; String lastmodified() default "N/A"; String lastmodifiedby() default "N/A"; // Note use of array String[] reviewers(); } 23

@Target Annotation @Target memberi batasan annotation yang kita buat berlaku untuk elemen Java yang mana. Ada 8 jenis nilai untuk Target: ElementType.ANNOTATION_TYPE - targetnya annotation type ElementType.CONSTRUCTOR - targetnya constructor ElementType.FIELD - targetnya field atau property ElementType.LOCAL_VARIABLE - targetnya local variable ElementType.METHOD - targetnya level method ElementType.PACKAGE - targetnya deklarasi package ElementType.PARAMETER - targetnya parameter pada method ElementType.TYPE - targetnya semua elemen pada class 24

Contoh penggunaan meta-annotation Deklarasi: @Target(ElementType.FIELD) @Retention(RetentionPolicy.CLASS) public @interface Accessor { String variablename(); String variabletype() default "String"; } Cara pakai: @Accessor(variableName = "name") public String myvariable; 25

Nested annotation Deklarasi: public @interface Reviewer { Name my_name(); //Name value(); } public @interface Name { String first(); String last(); } Cara pakai: @Reviewer(my_name = @Name(first = "James", last = "Gosling")) public class ComplexAnnotation { public static void main(string[] args) { // TODO code application logic here } } 26