Java - Kelas Numbers

Halo, para programmer Java yang aspiratif! Hari ini, kita akan memasuki dunia yang menarik tentang angka di Java. Jangan khawatir jika Anda baru mengenal pemrograman; kita akan memulai dari dasar-dasar dan maju ke atas. Pada akhir tutorial ini, Anda akan menarik angka seperti seorang pro!

Java - Number

Pengenalan ke Kelas Numbers di Java

Di Java, angka tidak hanya nilai sederhana; mereka adalah objek dengan superpower! Java menyediakan beberapa kelas untuk menangani jenis-jenis angka yang berbeda. Kelas-kelas ini adalah bagian dari paket java.lang, yang secara otomatis diimpor ke setiap program Java.

Hierarki Kelas Number

Ayo kita lihat pandangan dari atas hierarki kelas Number:

Number (abstrak)
|
+-------+-------+
|       |       |
Integer  Float  Double
|
Byte

Kelas Number adalah superclass semua kelas wadah numerik. Itu adalah abstrak, yang berarti Anda tidak dapat membuat objek Number secara langsung, tetapi Anda dapat menggunakan subclass-nya.

Kelas Wadah

Java menyediakan kelas wadah untuk setiap tipe numerik primitif. Kelas-kelas ini "mengemas" nilai primitif ke dalam objek, memberikan mereka fungsi tambahan. Berikut adalah tabel dari kelas wadah numerik yang paling umum digunakan:

Tipe Primitif Kelas Wadah
byte Byte
short Short
int Integer
long Long
float Float
double Double

Membuat Objek Number

Ayo kita buat beberapa objek angka dan lihat bagaimana mereka bekerja:

Integer intObj = new Integer(42);
Double doubleObj = new Double(3.14159);
Float floatObj = new Float(2.5f);

Dalam contoh ini, kita membuat objek jenis angka yang berbeda. Perhatikan bagaimana kita menggunakan kata kunci new diikuti dengan konstruktor kelas wadah.

Tapi tunggu, ada cara yang lebih mudah! Java menyediakan autoboxing, yang secara otomatis mengkonversi primitif ke objek wadah mereka:

Integer intObj = 42;
Double doubleObj = 3.14159;
Float floatObj = 2.5f;

Apakah itu keren? Java melakukan pengemasan untuk kita di belakang layar!

Metode Angka Umum

Sekarang bahwa kita memiliki objek angka kita, mari kita eksplor beberapa metode yang berguna mereka menyediakan:

1. valueOf()

Metode valueOf() adalah cara praktis untuk membuat objek angka:

Integer intObj = Integer.valueOf(42);
Double doubleObj = Double.valueOf("3.14159");

Metode ini sering digunakan daripada menggunakan konstruktor karena dapat menggunakan objek terkache untuk performa yang lebih baik.

2. xxxValue()

Metode-metode ini mengkonversi objek angka ke tipe primitifnya:

Integer intObj = 42;
int intValue = intObj.intValue();
double doubleValue = intObj.doubleValue();

Di sini, intValue() mengembalikan nilai int, sementara doubleValue() mengkonversinya ke double.

3. compareTo()

Metode ini membandingkan dua objek angka:

Integer num1 = 42;
Integer num2 = 100;
int result = num1.compareTo(num2);
System.out.println(result); // Output: -1

Metode compareTo() mengembalikan:

  • Nilai negatif jika angka pertama kurang dari yang kedua
  • Nol jika mereka sama
  • Nilai positif jika angka pertama lebih besar dari yang kedua

4. equals()

Metode ini memeriksa jika dua objek angka sama:

Integer num1 = 42;
Integer num2 = 42;
boolean areEqual = num1.equals(num2);
System.out.println(areEqual); // Output: true

Ingat, equals() membandingkan nilai, bukan referensi objek!

Keseruan dengan Angka: Mini-Proyek

Ayo menggunakan pengetahuan baru kita dengan sebuah proyek kecil. Kita akan membuat sebuah permainan tebak angka sederhana:

import java.util.Random;
import java.util.Scanner;

public class NumberGuessingGame {
public static void main(String[] args) {
Random random = new Random();
Integer secretNumber = random.nextInt(100) + 1;
Scanner scanner = new Scanner(System.in);
Integer guess;
int attempts = 0;

System.out.println("Selamat datang di Permainan Tebak Angka!");
System.out.println("Saya pikir tentang angka antara 1 dan 100.");

do {
System.out.print("Masukkan tebakan Anda: ");
guess = scanner.nextInt();
attempts++;

if (guess.compareTo(secretNumber) < 0) {
System.out.println("Terlalu rendah! Coba lagi.");
} else if (guess.compareTo(secretNumber) > 0) {
System.out.println("Terlalu tinggi! Coba lagi.");
} else {
System.out.println("Selamat! Anda menebak angka dalam " + attempts + " tebakan!");
}
} while (!guess.equals(secretNumber));

scanner.close();
}
}

Berikut adalah apa yang terjadi dalam kode ini:

  1. Kita membuat sebuah objek Random untuk menghasilkan angka acak antara 1 dan 100.
  2. Kita menggunakan Scanner untuk membaca input pengguna.
  3. Kita menggunakan do-while loop untuk terus meminta tebakan sampai angka yang benar ditebak.
  4. Kita menggunakan compareTo() untuk memeriksa jika tebakan terlalu rendah atau terlalu tinggi.
  5. Kita menggunakan equals() untuk memeriksa jika tebakan benar.

Permainan ini menunjukkan bagaimana kita dapat menggunakan objek Number dan metode mereka dalam sebuah aplikasi dunia nyata. Ini bukan hanya tentang penyimpanan angka; itu tentang manipulasi dan pembandingan mereka dalam cara yang berarti.

Kesimpulan

Kita hanya menggaruk permukaan dari apa yang kelas Number di Java dapat lakukan. Sebagai Anda melanjutkan perjalanan Java Anda, Anda akan menemukan fitur dan metode yang lebih kuat. Ingat, praktek membuat perfect, jadi jangan segan untuk eksperimen dengan konsep ini di proyek Anda sendiri.

tetap mengkodekan, tetap belajar, dan yang paling penting, bersenang-senanglah dengan angka Java!

Credits: Image by storyset