BAB 7 STATIC IMPORTS. Java 5 Tiger, Cornelius Koo Published by Elex Media Komputindo

dokumen-dokumen yang mirip
SUMBER BELAJAR PENUNJANG PLPG

Dasar-Dasar OOP di Java

Bab 8. Dasar-Dasar OOP

Inheritance (Pewarisan) Pengertian dasar inheritance

Dasar-Dasar OOP di Java

Var-arg Cornelius Mellino / Cornelius Koo JavaSchool of Object Technology

Pemrograman Berorientasi. Class dan Obyek 2

Inheritance dan Kata Kunci static

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

PEMROGRAMAN JAVA. Petunjuk Penulisan Program Token Aturan Penamaan Identifier Lingkungan /Scope dari variabel Tipe Data (i) Yoannita

2 TIPE DATA DAN VARIABEL

Pemrograman. Pertemuan-3 Fery Updi,M.Kom

Bahasa Pemrograman 2.

CLASS, METHOD DAN MODIFIER

Encapsulation (Encapsulasi) Minggu 5 Pemrograman Berorientasi Objek Alfa Faridh Suni

Inheritance. Topik 5/17/2013

Pemrograman Berbasis Objek Inheritance

Jobsheet 09. Overloading and Overriding Method

Array. Pengantar. int a, b, c, d, e;

Pengenalan OOP. Object-Oriented programming (OOP) Menitikberatkan pada konsep object sebagai elemen dasar dari program.

Struktur Kontrol Pemrograman Java : PERCABANGAN

INTRODUCTION JAVA NORHIKMAH,M.KOM

PEMROGRAMAN BERORIENTASI OBJEK

Pemrograman Lanjut. Class : Deeper Look 2

BAHASA PEMROGRAMAN JAVA

Inheritance. Pertemuan 8 Pemrograman Berbasis Obyek

Membuat dan Menggunakan Class

(INHERITANCE) Nurochman

1. Mana diantara pilihan-pilihan berikut ini yang merupakan penulisan loop yang benar?

BAB II VARIABEL DAN TIPE DATA

PRAKTIKUM 3 KONSTRUKTOR DAN OVERLOADING

IKG2I4 / Software Project I

Praktikum 6 Abstract, Interface, Overloading, Overriding, dan Package

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

Dasar Pemrograman Java

Nanik Tolaram

BAB 3 STRUKTURE PROGRAM JAVA

Tipe Data Floating Point Tipe data yng digunakan untuk menampung bilangan desimal

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

5/23/12. Inheritance. Pengertian inheritance Deklarasi inheritance Single inheritance Multilevel inheritance Access Control super keyword

PEMOGRAMAN JAVA. Yoannita, S.Kom. Class(ii) [Constructor] [keyword this] Modifier Passing parameter [by value] [by references]

Bahasa Pemrograman 2.

FAKULTAS TEKNIK UNIVERSITAS NEGERI YOGYAKARTA LAB SHEET PEMROGRAMAN 2

Pemrograman Lanjut. Instance Variable Access Modifier Set dan Get Method

INTERAKSI ANTAR OBJECT

PERTEMUAN III OBJEK DAN CLASS TUJUAN PRAKTIKUM

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

Class & Object 2 ~Praktikum~ Imam Fahrur Rozi

FAKULTAS TEKNIK UNIVERSITAS NEGERI YOGYAKARTA LAB SHEET PEMROGRAMAN JAVA 2

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

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

ABSTRACTION, ENCAPSULATION, INHERITANCE & POLYMORPHISM

MATERI PRAKTIKUM STRUKTUR DATA

LAPORAN PRAKTIKUM ALGORITMA DAN PEMROGRAMAN ( Implementasi Rekursi Pada Java)

CLASS PUTU INDAH CIPTAYANI JURUSAN SISTEM INFORMASI STMIK AMIKOM JOGJAKARTA

OVERLOADING, CONSTRUCTOR DAN DESTRUCTOR. Dewi Sartika, M.Kom

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

Ginanjar Utama Workbench Tempat Bekerja

PEMROGRAMAN JAVA : VARIABEL DAN TIPE DATA

TPI4202 e-tp.ub.ac.id

Polymorphism. Materi ke-8 Pemrograman Berbasis Objek

Beberapa Contoh Penggunaan Array

Dasar Pemrograman Java

JAVA FUNDAMENTAL ATURAN PERKULIAHAN SILABUS

TIPE DATA DAN VARIABLE

TPI4202 e-tp.ub.ac.id. Lecture 4 Mas ud Effendi

OPERATOR-OPERATOR DALAM JAVA

Pemrograman Jaringan 12 CORBA

Bahasa Pemrograman :: Polimorfism and Abstraction

BAHASA PEMROGRAMAN JAVA PUTU INDAH CIPTAYANI JURUSAN SISTEM INFORMASI STMIK AMIKOM YOGYAKARTA

Bahasa Pemrograman Java. Yudi Adha. ST. MMSI

Praktikum 3 Konsep Class, Attribute dan Method

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

Pengenalan JavaScript

LAB02 : KODING PROGRAM

9/26/2011. Tujuan. Bekerja dengan Java Class Library. Pengenalan OOP. Pengenalan OOP. Class dan Object. Enkapsulasi

TIPE DATA DAN VARIABLE

Pendahuluan Dasar Pemrograman Java

PEMAHAMAN DASAR DASAR JAVA

MODUL 1 PENGENALAN OOP

JAVA PADA NETBEANS IDE 7.4 ASRI WIDYADHARI KOM E 13

INHERITANCE AND POLIMORPHISM PUTU INDAH CIPTAYANI JURUSAN SISTEM INFORMASI STMIK AMIKOM

Bahasa Pemrograman :: Dasar Pemrograman Java

Pendahuluan. Komputasi Nuklir. 29 Oktober Komputasi Nuklir Pendahuluan 29 Oktober / 41

Praktikum 9 Exception Handling

PRAKTIKUM 3 KONSTRUKTOR DAN OVERLOADING

Agar lebih mudah mengerti, cobalah untuk melakukan hal-hal berikut ini: 1. Bacalah terlebih dahulu ide dasar dari masing-masing algoritma.

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

OBJECT, CLASS DAN METHOD. 1. Mengetahui pengertian dari objek & class 2. Dapat membuat program sederhana dari java dengan menggunakna objek dan class

Pemrograman Berorientasi. Methods

Pemrograman dengan Java

String. Berikut perbedaan antara deklarasi char dan deklarasi String:

Modul Bahasa Pemrograman 1

PRAKTIKUM 6 EXCEPTION

BAB 3 TYPE DATA, VARIABLE DAN OPERATOR

Modul Praktikum 4 Pemograman Berorientasi Objek

Pemrograman Berorientasi. Polimorfisme dan Binding

Exception adalah penanda bahwa kondisi/kejadian yang tidak diinginkan telah terjadi pada program kita. Ada 2 jenis exception (+1 Error):

Variabel dengan tipe dasar hanya dapat menyimpan sebuah nilai

MODUL PRAKTIKUM DASAR-DASAR PEMROGRAMAN

Transkripsi:

BAB 7 STATIC IMPORTS Kita seringkali mengetikkan perintah-perintah panjang dan berulang-ulang saat melakukan coding di Java. Dalam satu source code file mungkin kita bisa mengetikkan berkali-kali perintah System.out.println(... ). Di java 5 kita diberikan suatu fasilitas yang dapat mempersingkat beberapa perintah yang cukup panjang. Fasilitas baru ini disebut static import, karena kita sekarang di Java 5 diperbolehkan menambahkan keyword static pada saat meng-import kelas. import static java.lang.system.out; public class StaticImport { out.println("hello \"Static Import\" World");

Dari contoh diatas terlihat setelah kita memakai static import maka pemanggilan perintah println tidak lagi memakai kata System. 7.1 Aturan Static Import Keyword static letaknya selalu di belakang keyword import. Static import java.lang.system.out; public class StaticImport { out.println("hello \"Static Import\" World");

Gambar 7.1 Keyword static yang ditaruh di depan akan menimbulkan error Hanya static member (method dan variabel) yang mampu diimport. public class TestClass { public static int var; public static final double PI = 3.14; public double value; public static void printsomething() { System.out.println("print something"); public void printa() { System.out.println("A");

Gambar 7.2 Saat kita akan memakai static import untuk kelas TestClass maka yang muncul hanyalah member yang static saja. 7.2 Pemakaian Static Import untuk Static Inner Class Static inner class dapat di-import juga dengan memakai static import. Berikut adalah contoh program yang melibatkan static inner class : import static java.lang.system.out; import static staticimport.teststaticinnerclass.innerclass; import static staticimport.teststaticinnerclass.innerclass.dosomething; public class TestStaticInnerClass { static class InnerClass {

InnerClass() { out.println("inner Class"); public static void dosomething(string str) { System.out.println("do something "+str); InnerClass inner = new InnerClass(); inner.dosomething("from object"); dosomething("direct call"); Gambar 7.3 Hasil eksekusi program TestStaticInnerClass.java Pada contoh program diatas, kita membuat sebuah static inner class (kelas di dalam kelas) bernama InnerClass. Di dalam InnerClass, kita mendefinisikan sebuah static method bernama dosomething(string str).... static class InnerClass { InnerClass() { out.println("inner Class"); public static void dosomething(string str) { System.out.println("do something "+str);

... Jika kita ingin mempersingkat penulisannya dalam kode program, kita bisa memanfaatkan feature static import pada Java 5. import static java.lang.system.out; import static staticimport.teststaticinnerclass.innerclass; import static staticimport.teststaticinnerclass.innerclass.dosomething;... Setelah di-import dengan static import, kita bisa menghilangkan nama outer class nya (TestStaticInnerClass), bahkan kita bisa memanggil method dosomething( ) dengan langsung memanggil nama methodnya tanpa harus menyertakan nama outer class maupun inner class. 7.3 Pemakaian wildcard (*) pada static import Kita bisa memakai wildcard (*) pada import biasa yang fungsinya supaya semua kelas dalam package yang di-import bisa dikenali. Hal yang sama berlaku pada static import. Perbedaannya adalah pada static import, wildcard (*) berfungsi agar semua static member dalam suatu kelas bisa dikenali. Berikut contoh programnya. import static java.lang.math.*; public class Wildcard { double val = -4.31; System.out.println("Value : "+val); System.out.println("Ceil : "+ceil(val)); System.out.println("Floor : "+floor(val)); System.out.println("Round : "+round(val)); System.out.println("Sqr root : "+sqrt(val));

Gambar 7.4 Hasil eksekusi program Wildcard.java 7.4 Static import pada enum Enum juga bisa di-import dengan menggunakan static import. Kita tinggal menuliskan elemen-elemen konstanta yang ada di dalam sebuah enum. Berikut contohnya. public enum Level { Beginner, Medium, Advanced import static staticimport.level.*; public class EnumStaticImport { System.out.println(Beginner); System.out.println(Medium); System.out.println(Advanced);

Inline enum juga bisa di-import dengan static import. Pemakaiannya tidaklah berbeda dengan static import untuk enum biasa. package staticimport; public class TestInlineEnum { public enum Range { SHORT, MEDIUM, LONG import static staticimport.level.*; import static staticimport.testinlineenum.range.*; public class EnumStaticImport { System.out.println(Beginner); System.out.println(Medium); System.out.println(Advanced); System.out.println(SHORT); System.out.println(MEDIUM); System.out.println(LONG); 7.5 Konflik penamaan pada static import Pemakaian static import menghadapi masalah klasik yang juga dihadapi oleh import biasa, yaitu namespace conflict. Konflik penamaan ini agak berbeda kasus dan penanganannya di static import.

import java.util.arrays; public class ArraySorter { public static void sort(int[] ar) { //... do some sorting process import static java.util.arrays.sort; import java.io.printstream; import java.io.printwriter; // conflict import static staticimport.arraysorter.sort; public class SameMemberName { // variable hiding public static void printit(printstream out, int tobeprint) { out.println(tobeprint); int[] array = {2,4,6,2,3; sort(array); // ambiguous method call for (int e : array) { System.out.println(e); printit(system.out, e);

Pada kasus di atas, method sort() mengalami konflik penamaan karena ada dua buah method sort() yang menerima parameter dengan tipe yang sama. Peringatan akan muncul ketika dikompilasi. Kompiler akan menganggap pemanggilan method sort() sebagai pemanggilan yang ambigu, karena ada dua buah method sort() yang identik walaupun berada di package yang berbeda. import static java.util.arrays.sort;... // conflict import static staticimport.arraysorter.sort; Jika method sort() memiliki parameter dengan tipe yang berbeda, maka yang terjadi adalah semacam overloading. Kompiler secara otomatis akan memilih method dengan tipe parameter yang sesuai.

Gambar 7.5 Pesan kesalahan kompilasi yang muncul di eclipse saat terjadi konflik penamaan.