Pin It

Di artikelKonversi Data Dari String Ke Tipe-Tipe Numerik, Anda diperkenalkan pada bagaimana mengkonversi tipe String (string numerik) yang dikembalikan metoda showInputDialog ke tipe-tipe numerik (int, double, byte, short, long dan float). Nilai string numerik tidak dapat digunakan dalam operasi aritmatika. Agar operasi aritmatika dapat dieksekusi, nilai string numerik terlebih dahulu harus dirubah ke dalam nilai numerik. Java menyediakan kelas bersesuaian yang didalamnya memiliki metoda untuk mengkonversi nilai string numerik ke nilai numerik seperti kelas Integer, Double, Byte, Short, Long dan Float.

Berikut ini adalah contoh program pengkonversian suhu dari derajat fahrenheit ke derajat celcius. Sebagaimana yang kita tahu, rumus untuk mengkonversi suhu dari derajat fahrenheit ke derajat celcius adalah:

   celcius = (5 / 9) * (Fahrenheit – 32)

Untuk melakukan operasi pembagian di pemrograman Java, Anda perlu berhati-hati ketika menggunakan perbandingan nilai integer 5 / 9. Pembagian nilai integer akan menghasilkan nilai integer sehingga 5 / 9 = 0. Anda perlu mensiasati dengan menulis 5.0 / 9 untuk mendapatkan hasil yang benar. Berikut ini adalah kode program dan hasil eksekusinya:

// Nama file : FahrenheitKeCelcius
// Mengkonversi suhu dari derajat fahrenheit ke celcius

// Mengimpor kelas JOptionPane
import javax.swing.JOptionPane;

public class FahrenheitKeCelcius {
   public static void main(String[] args) {

      //deklarasi variabel
      String strFahrenheit;
      double fahrenheit, celcius;

      // Menginput data fahrenheit
      strFahrenheit = JOptionPane.showInputDialog(null,
         "Masukkan nilai derajat Fahrenheit",
         "Fahrenheit Ke Celcius", JOptionPane.QUESTION_MESSAGE);

      // Konversi string numerik ke numerik
      fahrenheit = Double.parseDouble(strFahrenheit);

      // Menghitung Celcius
      celcius = (int)((5.0 / 9) * (fahrenheit - 32) * 100) / 100.0;

      // Menampilkan hasil
      JOptionPane.showMessageDialog(null, "Suhu dalam Fahrenheit : " + 
         fahrenheit + "\nHasil konversi ke Celcius : " + celcius,
         "Fahrenheit Ke Celcius", JOptionPane.INFORMATION_MESSAGE);

      // Mengakiri program GUI
      System.exit(0);
   }
}

Baris nomor 11 dan 12 adalah pernyataan untuk mendeklarasikan variabel strFahrenheit, fahrenheit dan celcius. Baris nomor 15 adalah pernyataan pemberian yaitu memberikan nilai yang dikembalikan metoda showInputDialog ke variabel strFahrenheit. Baris nomor 20 adalah konversi dari nilai string numerik yang tersimpan di variabel strFahrenheit ke nilai numerik. Nilai numerik ini kemudian diberikan ke variabel fahrenheit. Nilai yang telah dikonversi kemudian digunakan di operasi aritmatika (baris nomor 23). Apabila diperhatikan, operasi aritmatika tersebut nampak sedikit lebih kompleks dibandingkan dengan rumus sebenarnya. Ada pengkonversian tipe (type casting) yaitu (int), perkalian dengan 100 dan pembagian dengan 100.0.

Operasi aritmatika kompleks tersebut dimaksudkan agar hasil operasi aritmatika hanya akan menampilkan dua digit (angka) di belakang tanda desimal. Tampilan hasil operasi aritmatika akan terasa kurang menarik apabila digit dibelakang tanda desimal sangat banyak (panjang). Dapat dijelaskan, apabila hasil nilai variabel celcius adalah 36.97777778, maka hasil nilai (int) ((5.0 / 9) * (fahrenheit - 32) * 100) adalah 3697. Sehingga nilai dari (int) ((5.0 / 9) * (Fahrenheit - 32) * 100) / 100.0 adalah 36.97.