A. TUJUAN PEMBELAJARAN 1. Memahami mengenai konsep Enum 2. Memahami bentuk-bentuk penggunaan Enum 3. Memahami fungsi-fungsi yang terdapat di Enum

dokumen-dokumen yang mirip
Enum. Yuliana Setiowati

PERTEMUAN III OBJEK DAN CLASS TUJUAN PRAKTIKUM

5. Consider the following line of code : byte ohmy What is the range of values that could be assigned to the variable ohmy?

Membuat dan Menggunakan Class

PRAKTIKUM 3 KONSTRUKTOR DAN OVERLOADING

INTERAKSI ANTAR OBJECT

Modul 3 Flow Control dan Input

PRAKTIKUM 17 MENANGANI EXCEPTION

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

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

Modul Praktikum 4 Pemograman Berorientasi Objek

Percabangan & Perulangan

Pemrograman Berorientasi. Class dan Obyek 2

PERTEMUAN 3 OBJEK DAN CLASS

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

Modul Praktikum 3 Pemograman Berorientasi Objek

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

Obyektif : KONTROL ALUR PROGRAM

LAPORAN PRAKTIKUM ALGORITMA DAN PEMROGRAMAN ( Implementasi Rekursi Pada Java)

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

Pemograman Berorientasi Objek

Pemograman Berorientasi Objek. Week 4 Initialization dan Instance dalam Kelas

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

BAHASA PEMROGRAMAN JAVA

PEMROGRAMAN JAVA. Yoannita, S.Kom. Input Kondisi (IF-ELSE, SWITCH)

Tipe if : If tanpa else (if) If dengan else (if-else) Nested if

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

Pemrograman Lanjut. Instance Variable Access Modifier Set dan Get Method

PRAKTIKUM 6 EXCEPTION

Bahasa Pemrograman 2.

Pemrograman Berorientasi. Inheritance

2. Pilih instruksi yang dapat digunakan dalam method actionperformed untuk membedakan antara tombol buttonone dan buttontwo.

Pemrograman Berorientasi Object

Struktur Kontrol Pemrograman Java : PERCABANGAN

PRAKTIKUM 3 KONSTRUKTOR DAN OVERLOADING

Class & Object 2. Imam Fahrur Rozi

IKG2I4 / Software Project I

PEMROGRAMAN BERORIENTASI OBJEK

Arrays. Misalkan kita ingin menyimpan 100 buah integer Buat 100 variabel bertipe integer. Tidak efisien!

Inheritance dan Kata Kunci static

Percabangan & Perulangan

MODUL 3 PEWARISAN TUJUAN DASAR TEORI

Struktur Kontrol. Gambar 1: Flowchart Statement If

BAB VII. CLASS DAN OBJECT

SUMBER BELAJAR PENUNJANG PLPG

Pengenalan pemrograman berorientasi obyek

Pertemuan 2 (2) : Membuat Class dan mengakses Anggota Class

A. TUJUAN PEMBELAJARAN. 1. Menerapkan konsep enkapsulasi pada class 2. Mendeklarasikan suatu constructor

if (ekspresi_boolean) { Pernyataan1; } else { Pernyataan2; }

Pertemuan 2 Struktur Kontrol Percabangan

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

Politeknik Elektronika Negeri Surabaya

PENYELEKSIAN /PERCABANGAN & PERULANGAN Part II. 5 th week Estu Sinduningrum ST,MT

Definisi Eksepsi (exception)

Method / Fungsi / Sub Program

MODUL PRAKTIKUM PEMROGRAMAN BERORIENTASI OBJEK

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

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

B. DASAR TEORI Array. Misalkan kita memiliki tiga data yang berbeda dan kita simpan dalam variabel yang berbeda.

MODUL PRAKTIKUM STRUKTUR DATA DAN ALGORITMA STACK

Pemrograman Berorientasi. Abstract & Interface

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

Abstract Class dan Interface. Viska Mutiawani, M.Sc

IKG2I4 / Software Project I

Bahasa Pemrograman 2.

Algoritma Pemrograman 1

Variabel dengan tipe dasar hanya dapat menyimpan sebuah nilai

Java Application. Aplikasi: Menampilkan Tulisan

Praktikum 6 Class Design (Encapsulation)

Percobaan 6 Exception

Praktikum 3 Konsep Class, Attribute dan Method

KENDALI PROSES. Untuk mengatur arus program, pemrograman java menyediakan struktur perulangan (looping), kondisional, percabangan, dan lompatan.

PERCOBAAN 6 EXCEPTION

PEMAHAMAN DASAR DASAR JAVA

3/31/2011. Tujuan. Inheritance, Polymorphism,& Interfaces. Inheritance / pewarisan. Inheritance / pewarisan. Inheritance / pewarisan

Pemrograman Berorientasi Obyek. Exception Handling. Politeknik Elektronika Negeri Surabaya

Method. Pemrograman Dasar Sistem Informasi PTIIK Herman Tolle

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

BAB II VARIABEL DAN TIPE DATA

2 TIPE DATA DAN VARIABEL

Bahasa Pemrograman Java. Yudi Adha. ST. MMSI

INHERITANCE AND POLIMORPHISM PUTU INDAH CIPTAYANI JURUSAN SISTEM INFORMASI STMIK AMIKOM

subclass class manapun private default protected public package yang sama

FAKULTAS TEKNIK UNIVERSITAS NEGERI YOGYAKARTA LAB SHEET PEMROGRAMAN JAVA 2

MODUL 1. CLASS, OBJECT, CONSTRUCTOR DAN METHOD

PEWARISAN D E W I S A R T I K A, M. K O M

Bahasa Pemrograman :: Polimorfism and Abstraction

Pemrograman Lanjut Class, Instance Variable dan Method PTIIK

TPI4202 e-tp.ub.ac.id

BAB 3 TYPE DATA, VARIABLE DAN OPERATOR

Dasar-Dasar OOP di Java

MODUL 1. Class, Object, Constructor dan Method

Understanding Class Definition. Viska Mutiawani, M.Sc

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

Gambar 1. Single Linked List

Politeknik Elektronika Negeri Surabaya

LAPORAN PRAKTIKUM PEMROGRAMAN DASAR TIPE-TIPE FUNGSI ATAU METHOD

PRAKTIKUM PEMROGRAMAN LANJUT MODUL 1

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

Class & Object 2 ~Praktikum~ Imam Fahrur Rozi

Transkripsi:

PRAKTIKUM 16 TYPE ENUM A. TUJUAN PEMBELAJARAN 1. Memahami mengenai konsep Enum 2. Memahami bentuk-bentuk penggunaan Enum 3. Memahami fungsi-fungsi yang terdapat di Enum B. DASAR TEORI Sebelum J2SE 5.0, solusi untuk menangani masalah sekumpulan nilai konstanta, dicontohkan seperti di bawah ini: (jenis credit card yang bisa diterima oleh aplikasi) public static final int VISA = 1; public static final int MASTER_CARD = 2; public static final int AMERICAN_EXPRESS = 3; Permasalahan yang muncul adalah tidak ada yang mengikat ketiga nilai menjadi semacam set dan kita bisa memberikan nilai yang salah pada variabel-variabel tersebut. Kondisi seperti ini disebut not type safe (tipe yang tidak aman). Kondisi ini dapat diperbaiki dengan membuat tipe yang relatif aman (tipe safe) dengan mendefinisikan suatu class, yaitu class AllowedCreditCard. Class tersebut mendefinisikan : konstanta-konstanta di dalam kelas variabel untuk menyatakan state object dari class tersebut. Constructor private untuk mengeset state. public class AllowedCreditCard { protected final String card ; public final static AllowedCreditCard VISA = new AllowedCreditCard("VISA"); public final static AllowedCreditCard MASTER_CARD = new AllowedCreditCard("MASTER CARD"); public final static AllowedCreditCard AMERICAN_EXPRESS = new AllowedCreditCard("AMERICAN_EXPRESS"); private AllowedCreditCard(String str){ card = str; 134

public String getname(){ return card ; Pada pendekatan ini, terdapat 3 state dari class AllowedCreditCard yang dinyatakan oleh tiga object yang dicreate dengan memberikan nilai yang berbeda pada variabel card. Karena konstruktor private, sehingga tidak bisa create object diluar class. Design seperti ini masih dianggap type safe. Tapi pada J2SE 5.0 terdapat solusi yang bagus dengan mengenalkan tipe baru yaitu enum. Tipe data enum dikenalkan di J2SE 5.0 berguna untuk variabel yang berisi sekumpulan nilai. Cara mendefinisikan variabel enum: Mendefinisikan tipe enum dengan sekumpulan nilai. Mendefinisikan variabel yang menyimpan satu dari nilai-nilai tersebut. Contoh 1 : Class AllowedCreditCard dirubah menjadi bentuk enum. enum AllowedCreditCard {VISA, MASTER_CARD, AMERICAN_EXPRESS; AllowedCreditCard visa = AllowedCreditCard.VISA; Contoh 2 : Mendeklarasikan enum di luar class enum CoffeeSize {BIG, HUGE, OVERWHELMING public class Coffee { CoffeeSize size ; class CoffeeTest1{ Coffee drink = new Coffee(); drink.size = CoffeeSize.BIG ; Contoh 3 : Mendeklarasikan enum di dalam class public class Coffee2 { enum CoffeeSize {BIG, HUGE, OVERWHELMING CoffeeSize size ; class CoffeeTest2{ Coffee2 drink = new Coffee2(); 135

drink.size = Coffee2.CoffeeSize.BIG ; Contoh 4 : Tidak bisa mendeklarasikan enum di dalam method //Tidak legal public class CoffeeTest3 { enum CoffeeSize {BIG, HUGE, OVERWHELMING Coffee drink = new Coffee(); drink.size = CoffeeSize.BIG ; Menentukan sendiri nilai konstanta dari enum. Cara termudah dengan memberikan nilai enum (misal : BIG, HUGE, dan OVERWHELMING). Nilai enum sebagai object yang masing-masing mempunyai nilai instance variabel sendiri-sendiri. Nilai ini diberikan pada saat enum diinisialisasi, dengan memberikan nilai pada konstruktor enum. enum CoffeeSize2{ BIG(8), HUGE(10), OVERWHELMING(16); CoffeeSize2(int ounces){ this.ounces = ounces ; private int ounces ; public int getounces() { return ounces; Konstruktor enum dijalankan secara otomatis. Contoh BIG(8) menjalankan konstruktor CoffeSize yang menerima parameter berupa int, dengan nilai 8. Konstruktor pada enum bisa lebih dari satu. Fungsi pada Enum public static Apple[] values() Mengembalikan array yang berisi konstanta dari tipe enum, urutan sesuai pada saat pendeklarasian enum. public static Apple valueof(string name) 136

Mengembalikan konstanta enum sesuai dengan inputan dari parameter String public final int ordinal() Mengembalikan ordinal dari enum konstanta (dimulai dari 0) public final int compareto(e o) Membandingkan object enum dengan object enum lainnya berdasarkan urutan. Mengembalikan nilai negatif (object enum 1 < object enum 2), 0 (object enum 1 = object enum 2) dan positif (object enum 1 > object enum 2). enum Apple { A(10), B(9), C, D(15), E(8); private int price; // price of each apple // Constructor Apple(int p) { price = p; // Overloaded constructor Apple() { price = -1; int getprice() { return price; C. TUGAS PENDAHULUAN Buatlah review mengenai Definisi enum Merubah bentuk konstanta(terdapat lebih dari satu konstanta) menjadi bentuk enum Letak yang diperbolehkan dan tidak diperbolehkan untuk pendeklarasian enum D. PERCOBAAN Percobaan 1 : Class AllowedCreditCard dirubah menjadi bentuk enum. public class AllowedCreditCard { protected final String card ; public final static AllowedCreditCard VISA = new AllowedCreditCard("VISA"); public final static AllowedCreditCard MASTER_CARD = new AllowedCreditCard("MASTER CARD"); public final static AllowedCreditCard AMERICAN_EXPRESS = new AllowedCreditCard("AMERICAN_EXPRESS"); private AllowedCreditCard(String str){ card = str; public String getname(){ return card ; 137

enum AllowedCreditCard {VISA, MASTER_CARD, AMERICAN_EXPRESS; AllowedCreditCard visa = AllowedCreditCard.VISA; Percobaan 2 : Mendeklarasikan enum di luar class enum CoffeeSize {BIG, HUGE, OVERWHELMING public class Coffee { CoffeeSize size ; class CoffeeTest1{ Coffee drink = new Coffee(); drink.size = CoffeeSize.BIG ; Percobaan 3 : Mendeklarasikan enum di dalam class public class Coffee2 { enum CoffeeSize {BIG, HUGE, OVERWHELMING CoffeeSize size ; class CoffeeTest2{ Coffee2 drink = new Coffee2(); drink.size = Coffee2.CoffeeSize.BIG ; Percobaan 4 : Tidak bisa mendeklarasikan enum di dalam method //Tidak legal public class CoffeeTest3 { enum CoffeeSize {BIG, HUGE, OVERWHELMING Coffee drink = new Coffee(); drink.size = CoffeeSize.BIG ; Percobaan 5 : Menentukan sendiri nilai konstanta dari enum enum CoffeeSize2{ BIG(8), HUGE(10), OVERWHELMING(16); CoffeeSize2(int ounces){ this.ounces = ounces ; 138

private int ounces ; public int getounces() { return ounces; Percobaan 6 : Enum dengan statement switch enum OperatingSystems { windows, unix, linux, macintosh public class EnumExample1 { public static void main(string args[]) { OperatingSystems os; os = OperatingSystems.windows; switch(os) { case windows: System.out.println("You chose Windows!"); break; case unix: System.out.println("You chose Unix!"); break; case linux: System.out.println("You chose Linux!"); break; case macintosh: System.out.println("You chose Macintosh!"); break; default: System.out.println("I don't know your OS."); break; Percobaan 7 : Fungsi pada Enum enum Apple { A(10), B(9), C, D(15), E(8); private int price; // price of each apple // Constructor Apple(int p) { price = p; // Overloaded constructor Apple() { price = -1; int getprice() { return price; 139

Percobaan 8 : Melakukan enumerasi pada Enum enum Media { book, music_cd, music_vinyl, movie_vhs, movie_dvd; public class MediaFactory { System.out.println(MediaFactory.getMedia("Book")); public static Media getmedia(string s) { return Enum.valueOf(Media.class, s.tolowercase()); public static Media getmedia(int n){ return Media.values()[n]; E. LATIHAN 1. Consider the following code fragment: 1. class EnumTest{ 2. enum Size{small, medium, large, Xlarge; 3. public static void main(string [] args) { 4. for( Size s : Size.values()) { 5. if (s == Size.small) 6. System.out.print("small "); 7. else if (Size.medium.equals(s)) 8. System.out.println("medium "); 9. else if (s == Size.large) 10. System.out.println("large "); 11. else if (s.equals("xlarge ")) 12. System.out.println("Xlarge "); 13. else if ( s == "Xlarge "); 14. System.out.println("Xlarge "); 15. 16. 17. What is the result of this code? A. small medium large Xlarge Xlarge B. small medium large Xlarge C. small medium large 140

D. Compiler error at line 11 E. Compiler error at line 13 F. Throws exception at runtime 2. Consider the following code fragment: 1. enum Colors {BLUE, GREEN, YELLOW, RED 2. class Picture { 3. public static void main(string [] args) { 4. int x = 0; 5. Colors c = Colors.GREEN; 6. switch(c) { 7. case BLUE: 8. System.out.print(c); 9. case GREEN: 10. System.out.print(c); 11. case YELLOW: 12. System.out.print(c); 13. default: 14. System.out.print(" BlackWhite "); 15. break; 16. case RED: 17. System.out.print(c); 18. 19. System.out.println(" PicturePerfect"); 20. 21. What is the result? A. GREEN PicturePerfect B. GREENGREEN PicturePerfect C. GREENGREEN BlackWhite PicturePerfect D. GREENYELLOW BlackWhite PicturePerfect E. GREENGREEN BlackWhite Red PicturePerfect F. Compilation fails at line 6. G. Compilation fails at line 13. 3. Consider the following code fragment: 1. enum Colors {BLUE, GREEN, RED 2. class Picture { 3. public static void main(string [] args) { 141

4. int x = 0; 5. Colors c = Colors.GREEN; 6. switch(c) { 7. case BLUE: 8. System.out.print(c); 9. case GREEN: 10. System.out.print(c); 11. case YELLOW: 12. System.out.print(c); 13. default: 14. System.out.print(" BlackWhite "); 15. break; 16. case RED: 17. System.out.print(c); 18. 19. System.out.println(" PicturePerfect"); 20. 21. What is the result? A. GREEN PicturePerfect B. GREENYELLOW PicturePerfect C. GREENGREEN BlackWhite PicturePerfect D. GREEN BlackWhite Red PicturePerfect E. Compilation fails. F. An exception is thrown at runtime. 4. Consider the following code: 1. enum Villages {Pharwala, Gohawar, Phagwara, Goraya 2. public class MyEnumTest { 3. public static enum Colors{RED, BLUE, GREEN, YELLOW, ORANGE; 4. private enum weekend { Saturday, Sunday; 5. 6. enum Currency {Dollars, Rupees, Franc, Euro; 7. System.out.println("Hello"); 8. 9. What is the result? A. Hello B. Compilation fails at line 1. C. Compilation fails at line 3. D. Compilation fails at line 6. 142

E. An exception is thrown at runtime. 5. Given: 1. enum Animals { 2. DOG ("woof"), CAT ("meow"), FISH ("burble"); 3. String sound; 4. Animals(String s) { sound = s; 5. 6. class TestEnum { 7. static Animals a; 8. 9. System.out.println(a.DOG.sound + " " + a.fish.sound); 10. 11. What is the result? A. woof burble B. Multiple compilation errors C. Compilation fails due to an error on line 2 D. Compilation fails due to an error on line 3 E. Compilation fails due to an error on line 4 F. Compilation fails due to an error on line 9 F. TUGAS Tugas 1 : Pada supermarket terdapat beberapa macam jenis buah Apel yaitu Apel Malang, Granny Smith, Pink Lady, Golden Delicious, Gala dan Red Delicious. Buatlah enum Apel dengan berbagai jenis apel dan harganya. Berikan deskripsi dari apel tersebut pada method getdeskripsi(). Selanjutnya tampilkan data semua Apel, harga dan deskripsi pada Supermarket tersebut. 143

Enum Apel{ MALANG(//harga),... public String getdeskripsi() { G. LAPORAN RESMI Kerjakan hasil percobaan(d), latihan(e) dan tugas(f) di atas dan tambahkan analisa. 144