Konversi satuan

Besaran adalah sesuatu yang dapat di ukur dan dinyatakan dalam nilai dengan satuan-satuan tertentu. Dalam ilmu fisika, besaran dan satuan merupakan dua hal pokok dalam konsep pengukuran. Ada bermacam-macam jenis besaran menurut kajian ilmu fisika, yaitu: besaran pokok, besaran turunan, besaran vektor, dan besaran skalar.

Besaran pokok adalah besaran yang satuannya menjadi dasar penentuan satuan besaran lainnya. Besaran pokok meliputi panjang, massa, waktu, suhu, kuat arus listrik, intensitas cahaya, dan jumlah zat. Besaran turunan adalah besaran-besaran yang satuannya diturunkan dari satuan besaran pokok, misalnya kecepatan yang diturunkan dari panjang dan waktu. Besaran vektor adalah besaran yang mempunyai nilai dan arah, contoh gaya dan kecepatan. Besaran skalar adalah besaran yang hanya mempunyai nilai saja, contohnya massa dan laju.

Sedangkan pengertian satuan adalah sesuatu yang digunakan untuk menyatakan ukuran besaran. Dalam fisika dikenal 2 sistem satuan internasional, yaitu MKS dan cgs. Satuan internasional (SI) adalah sistem satuan yang digunakan secara internasional. Syarat satuan ditetapkan sebagai SI yaitu; nilainya tetap, berlaku international, mudah ditiru dan diperbanyak, mudah diubah (dikonversi) ke satuan lain. Satuan juga dibagi menjadi Satuan baku dan Satuan tak baku. Satuan baku adalah satuan yang digunakan secara umum, satuan baku disebut juga satuan standar. Sedangkan satuan tak baku adalah satuan yang digunakan di daerah setempat.

Teorinya cukup sampai di sini saja. Kali ini kita akan membahas cara mengubah satuan menjadi satuan lainnya.

Konversi atau Mengubah "satuan" adalah hal mudah dalam matematika, begitu juga dalam pemrograman. Konversi antara dua jenis satuan cukup mudah diterapkan dalam pemrograman dengan C++. Berikut ini contoh konversi Centimeter(cm) menjadi inchi(").
#include <stdio.h>

int main(){
float panjang;
    printf("Panjang (inchi) : ");scanf("%f", &panjang);
    printf("Hasil konversi : %0.2f cm\n", panjang*2.54);
    return 0;
}
Pada contoh di atas saya tidak menggunakan fungsi karena rumusnya terlalu pendek. Selain itu saya mem-format outputnya supaya menggunakan dua angka di belakang koma karena hasilnya tidak akan menggunakan angka (selain 0 di ujung) melebihi 2 angka dibelakang koma.

Berikutnya kita akan membalik rumusnya. Ingat, kebalikan dari perkalian adalah pembagian! Jadi, untuk mengubah dari inchi ke centimeter kita hanya tinggal membalik rumus sebelumnya (centimeter ke inchi). Saat memasukkan input, gunakan tanda titik (.) jika kalian ingin menuliskan pecahan desimal.
#include <stdio.h>

int main(){
float panjang;
    printf("Panjang (cm) : ");scanf("%f", &panjang);
    printf("Hasil konversi : %f inchi\n", panjang/2.54);
    return 0;
}
Pada contoh di atas, saya mengguna format specifier karena tipe data variabelnya adalah float. Tapi, saya tidak menggunakan angka pada formatnya (seperti sebelumnya) supaya semua digit ditampilkan sehingga lebih akurat. Berikutnya kita akan membuat program untuk mengubah satuan panjang "standar".

Saat SD, kita diajarkan untuk mengubah satuan dari Kilometer (km), heksameter (hm), dekameter (dm), meter (m), desimeter (dm), centimeter (cm) dan milimeter (mm) menjadi satuan yang berbeda menggunakan "tangga satuan".

Setiap turun 1 tingkat angka yang akan diubah satuannya dikalikan sepuluh. Atau bisa juga dikatakan bahwa angka tersebut dikalikan 10n. Mari kita stop teorinya, dan kita segera menerapkannya dalam pemrograman.
#include <stdio.h>
#include <math.h>

int main(){
int i, hasil, pilihan, pilihan1;
float angka;
char *satuan[]={"km", "hm", "dam", "m", "dm", "cm", "mm"};

     //nilai yang akan dikonversi
     printf("pilih satuan yang ingin anda ubah :\n", "");

     i=0;
     while(i<7){
         printf("%d.%s\n", i, satuan[i]);
         i++;
     }

     printf("Masukkan pilihan anda : ");scanf("%d", &pilihan);
     if(pilihan>=7)pilihan=0;
     printf("\nMasukkan angka anda (%s): ", satuan[pilihan]);scanf("%f", &angka);
     //satuan dari hasil konversi
     printf("\nAnda akan mengubah %s menjadi : ....\n", satuan[pilihan]);
     i=0;

     while(i<7){
         printf("%d.%s\n", i, satuan[i]);
         i++;
     }
     printf("Masukkan pilihan anda : ");scanf("%d", &pilihan1);
     if(pilihan1>=7)pilihan1=0;

     //saatnya melakukan konversi
     hasil=angka*pow(10, pilihan1)/pow(10, pilihan);
     printf("\n%f%s = %f%s", angka, satuan[pilihan], hasil, satuan[pilihan1]);

     return 0;
}
Contoh di atas menggunakan pow untuk menghitung pangkat. Pow ada di dalam header "math.h". Kalau kalian tidak mau menggunakan pow, kalian harus membuat function sendiri menggunakan percabangan dan perulangan.

Sekian penjelasan dari saya tentang konversi satuan. Selamat mencoba dan mengubah kode programnya!!!