Selasa, 13 Desember 2016

Program Konversi Suhu

Punya pengetahuan tentang obyek VB tapi tidak dipakai akan luntur. Nah, sekarang mari kita pemanasan dengan mempraktekkan penggunaan combobox, textbox, perintah IF-THEN untuk membuat program konversi suhu. Program ini akan mengkonversi suhu Celcius, Farenheit, dan Reamur ke masing-masing suhu tadi dengan rumus-rumus sebagai berikut:

Celcius ke Fahrenheit adalah:
 F = (C x  9/5) + 32

Celcius ke Kelvin adalah:

 K = C + 273,15

Farenheit ke Celcius adalah:
 C = (F - 32) x 5/9

Farenheit ke Kelvin adalah:
K = (F + 459,67) x 5/9

Kelvin ke Celcius adalah:
C = K - 273,15

Kelvin ke Fahrenheit adalah:
 F = (K - 273,15) * 9/5

Kemudian buatlah form seperti dibawah ini:


Layout diatas terdiri dari 2 frame, 2 textbox, 2 combobox dan satu commandbutton. Frame paling atas digunakan untuk memasukkan nilai suhu yang akan dikonversi beserta satuan suhunya. Sedangkan frame bawah adalah tempat hasil konversi.

TextBox pada Frame1 bernama tbSuhuAsal, combobox pada frame1 bernama cbSuhuAsal. TextBox pada Frame2 bernama tbSuhuHasil, dan combobox bernama cbSuhuHasil. Lantas namakan tombol dengan cbProses

Untuk memulai konversi, user harus memasukkan nilai suhu yang diinginkan pada tbSuhuAsal, dan memilih satuan suhu yang diinginkan pada cbSuhuAsal dan suhu konversi di cbSuhuHasil. Setelah itu ia harus menekan tombol PROSES agar perhitungan dilakukan oleh program. Hasil perhitungan akan ditulis di tbSuhuHasil

Pada saat aplikasi dibuat, saya tidak menuliskan satuan suhu seperti CELCIUS, KELVIN, FARENHEIT, tetapi saya akan menuliskannya pada saat program dijalankan. Kode program untuk maksud ini saya tulis di Form_Load()

Private Sub Form_Load()
  cbSuhuAsal.Clear

  cbSuhuAsal.AddItem "CELCIUS"
  cbSuhuAsal.AddItem "KELVIN"
  cbSuhuAsal.AddItem "FARENHEIT"

  cbSuhuAsal.ListIndex = 0
  tbSuhuAsal.Text  =  "0"
 
  cbSuhuHasil.Clear

  cbSuhuHasil.AddItem "CELCIUS"
  cbSuhuHasil.AddItem "KELVIN"
  cbSuhuHasil.AddItem "FARENHEIT"

  cbSuhuHasil.ListIndex = 0
   tbSuhuHasil.Text  =  "0"
End Sub


cbSuhuAsal.Clear dan cbSuhuHasil.Clear ditulis untuk menghapus isi dari combo apabila sudah ada. Ini dilakukan agar kita benar-benar yakin isi combo sesuai yang kita program. Sedangkan property ListIndex untuk memastikan secara default pilihan pertama, CELCIUS, yang akan ditampilkan. Sedangkan nilai 0 pada tbSuhuHasil dan tbSuhuAsal adalah nilai defaultnya, sehingga saat program dijalankan secara otomatis textbox diatur ke nilai 0

Untuk memulai perhitungan, setelah user memasukkan nilai suhu yang akan dikonversi beserta satuan suhu asal dan suhu tujuan, maka ia harus meng-klik tombol PROSES yang pada bagian cbProses_Click

Private Sub cbProses_Click()
Dim hasil, asal  As Double
    asal = CDbl(tbSuhuAsal.Text)
    If cbSuhuAsal.Text = "CELCIUS" Then
      If cbSuhuHasil.Text = "FARENHEIT" Then
        hasil = (asal * 9 / 5) + 32
      ElseIf cbSuhuHasil.Text = "KELVIN" Then
              hasil = asal + 273.5
      Else
        hasil = asal
      End If
    ElseIf cbSuhuAsal.Text = "KELVIN" Then
      If cbSuhuHasil.Text = "CELCIUS" Then
         hasil = asal - 273.5
      ElseIf cbSuhuAsal.Text = "FARENHEIT" Then
         hasil = (asal - 273.15) * 9 / 5
      Else
        hasil = asal
      End If
    ElseIf cbSuhuAsal.Text = "FARENHEIT" Then
      If cbSuhuHasil.Text = "CELCIUS" Then
        hasil = (asal - 32) * 5 / 9
      ElseIf cbSuhuHasil.Text = "KELVIN" Then
        hasil = (asal + 459.67) * 5 / 9
      Else
        hasil = asal
      End If
    End If
    tbSuhuHasil.Text = CStr(hasil)
End Sub


Pada visual basic, Anda memang tidak perlu melakukan konversi data, tetapi saya ingin memastikan bahwa data bertipe seperti yang saya harapkan. Itulah alasan saya mengkonversikan data dari string ke double seperti ini

asal = CDbl(tbSuhuAsal.Text)

atau dari double ke string

tbSuhuHasil.Text = CStr(hasil)

dan variabel asal dan hasil saya deklarasikan sebagai double

 Dim hasil, asal  As Double


*Bahasa Program: Visual Basic 6
**Sistem Operasi saat praktek program: Windows XP

Program Konversi Suhu Rating: 4.5 Diposkan Oleh: Good Dreamer

0 komentar:

Posting Komentar

Diberdayakan oleh Blogger.