PROGRAMMING #13 : Java Programming for Programmer - Classes and Objects (PART 8) | [BAHASA]
Pada artikel ini merupakan lanjutan dari artikel sebelumnya yaitu Java Programming for Programmer - Classes and Objects (PART 7). Masih dalam topik yang sama, dimana saya akan membahas mengenai kelas dan objek. Langsung saja pada pokok pembahasan berikut ini.
Enumerasi
Pada kode 1.8, telah dikenalkan tipe enum yang mendefinisikan sehimpunan konstanta sebagai pengenal unik. Pada program itu, konstanta-konstanta enum merepresetasikan status permainan. Pada bagian ini, akan didiskusikan relasi antara tipe enum dengan kelas. Seperti kelas, semua tipe enum adalah tipe referensi. Suatu tipe enum dideklarasikan dengan suatu deklarasi enum, yang merupakan suatu daftar konstanta enum yang dipisahkan oleh koma. Deklarasi tersebut bisa juga mencakup beberapa komponen kelas, seperti konstruktor, bidang data, dan metode. Deklarasi enum mendeklarasikan suatu kelas enum denga beberapa batasan sebagai berikut:
- Konstanta enum secara implisit dideklarasikan final, karena merupakan konstanta yang tidak bisa dimodifikasi.
- Konstanta enum secara implisit dideklarasikan static.
- Sembarang percobaan untuk menciptakan suatu objek bertipe enum dengan operator new akan mengakibatkan kerusakan kompilasi.
Konstanta enum dapat digunakan dimana saja konstanta dapat digunakan, seperti label case dari pernyataan switch dan dapat dipakai untuk mengendalikan pernyataan for terperbaiki.
Kode 1.10 mengilustrasikan bagaimana mendeklarasikan variabel contoh, konstruktor, dan metode dalam tipe enum. Deklarasi enum (baris 5-27) memuat dua bagian, konstanta-konstanta enum dan anggota-anggota lain bertipe enum. Bagian pertama (baris 8-23) mendeklarasikan konstanta enum. Masing-masing secara opsional diikuti dengan argumen yang dilewatkan kepada konstruktor enum (baris 20-24). Seperti konstruktor dalam kelas yang telah anda pelajari, konstruktor enum dapat menspesifikasi sejumlah parameter dan dapat di-overload. Pada contoh ini, konstruktor memerlukan dua parameter String. Untuk menginisialisasi setiap konstanta enum secara benar, dicantumkan sepasang kurung yang memuat dua argumen String yang akan dilewatkan kepada konstruktor enum. Bagian kedua (baris 16-36) mendeklarasikan anggota-anggota lain bertipe enum, yaitu dua variabel contoh (baris 16-17), suatu konstruktor (baris 20-24), dan dua metode (baris 27-30 dan baris 33-36).
Kode 1.10
Baris 16-17 mendeklarasikan dua variabel contoh judul dan tahunTerbit. Setiap konstanta enum dalam Buku sebenarnya merupakan objek bertipe Buku yang memiliki sendiri salinan variabel contoh judul dan tahunBuku. Konstruktor (baris 20-24) memerlukan dua parameter String, satu yang menspesifikasi judul buku dan lainnya yang menspesifikasi tahun penerbitan. Baris 22-23 menugaskan kedua parameter tersebut kepada variabel-variabel contoh. Baris 27-36 mendeklarasikan dua metode yang memberikan nilai balik berupa judul buku dan tahun penerbitan.
Kode 1.11 menguji enum bertipe Buku dan mengilustrasikan bagaimana beriterasi melalui suatu rentang konstanta enum. Setiap enum, penyusun membangkitkan metode static, values (yang dipanggil pada baris 12), yang memberikan nilai balik berupa suatu array yang memuat konstanta-konstanta enum sesuai urutan pendeklarasian. Baris 12-14 menggunakan pernyataan for terperbaiki untuk menampilkan semua konstanta enum yang dideklarasikan didalam Buku. Baris 14 memanggil metode getJudul dan getTahunTerbit untuk mendapatkan judul dan ta hun penerbitan. Ketika suatu konstanta enum dikonversi menjadi String (misalnya, buku pada baris 13), pengenal konstanta digunakan sebagai representasi String (misalnya, PJUP untuk konstanta enum pertama).
Kode 1.11
Output:
Baris 19-21 menggunakan metode static, range, dari kelas EnumSet (dideklarasikan dalam paket java.util) untuk menampilkan suatu rentang konstanta enum bertipe Buku. Metode range memerlukan dua parameter, konstanta enum pertama dan akhir di dalam rentang dan memberikan nilai balik berupa EnumSet yang memuat semua konstanta yang berada diantara dua konstanta yang diberikan (inklussif, termasuk dua konstanta penanda rentang). Sebagai contoh, ekspresi EnumSet.range(Buku.PJUP, Buku.ASDJ) akan memberikan nilai balik Buku.PJUP, Buku.DPC, Buku.PMST, dan Buku.ASDJ. Pernyataan for terperbaiki dapat dipakai dengan EnumSet sama seperti ketika dipakai dengan array, jadi baris 12-14 menggunakannya untuk menampilkan judul dan tahun terbit buku didalam EnumSet. Kelas EnumSet menyediakan beberapa metode statik lain untuk menciptakan sehimpunan konstanta enum.
Programing aduh pusing... ++++
Lhoo, pusing kenapa mas? hahaha @fajcrypto
Wow! Thanks for sharing....@shoot
Urwell brother @shoot
Bagus sekali Mas tulisannya.. kalau kita baca terus sampai habis pasti kita akan jadi programmer terhebat..
Saya pribadi sangat berterima kasih mas sudah mau membagikan ilmu kepada kami semua melalui platfrom Steemit ini.
para pencinta dunia teknologi dan komputer akan sangat menyukai artikel ini.
Sebuah artikel yang patut di anjungan jempol.
Sekali lagi mas @alfarisi
Terima kasih banyak ya sudah mau menulis artikelnya.
Salam kenal dari saya @rijalaronaceh.
Terima kasih banyak telah membaca tulisan saya mas, saya merasa seneng ada yang mengapresiasi hasil karya saya ini. Semoga saja kita bisa sama2 belajar lebih jauh mengenai pemrograman. Maklum saya sendiri juga masih tahap belajar mas hehehe. Saya juga berharap tulisan saya ini dapat memberi dampak sea manfaat besar bagi temen2 lainnya yang ingin mengenal pemrograman. Sekali lagi saya juga berterima kasih ya mas @rijalaronaceh Salam kenal kembali dari saya ;)
Iya sama2 @alfarisi .
Semoga mas benar2 jadi programmer hebat dari Indonesia..
Satu lagi. Semoga kita bisa bekerja sama membangun Steemit ini..
Thank you..