SlideShare uma empresa Scribd logo
1 de 15
Java Numbers

                                    Ammar Shadiq
                                  ammar.shadiq@gmail.com
                                  http://ammarshadiq.web.id




                                      Pelatihan Java
                  Universitas Pendidikan Indonesia
                                            10-April-2010


1 Pelatihan Java ; Java Numbers and String – Ammar Shadiq – Ver 1.0 : 10-04-2010
Java Numbers
Sebelum kita mendalami tentang segala sesuatunya tentang Numbers pada bahasa pemrograman
java, mari kita bahas tentang tipe data primitif.

Tipe data primitif
Bahasa pemrograman java adalah bahasa pemrograman yang bersifat statically-typed, yang berarti
seluruh variabel harus dideklarasikan sebelum dapat digunakan. Ini melibatkan mendeklarasikan
tipe variabel dan nama variabel, seperti :
        int gear = 1;
Melakukan hal diatas memberitahu program bahwa ada sebuah variabel bernama “gear”, yang
menampung data numerik dan memiliki nilai awal “1”. Tipe data sebuah variabel menentukan nilai
yang dapat di tampungnya, dan operasi yang dapat dilakukan pada variabel tersebut.
Sebagai tambahan dari int, bahasa pemrograman java menyediakan tujuh tipe data primitif lainnya.
Tipe data primitif telah didefinisikan sebelumnya oleh bahasa pemrograman dan dinamakan dengan
reserved keyword. Nilai variabel tipe data primitif tidak berbagi state dengan nilai variabel tipe data
primitif lainnya. Kedelapan tipe data primitif yang disediakan oleh bahasa pemrograman java
adalah :
     • byte: tipe data byte (8-bit signed) adalah tipe angka yang memiliki batasan nilai minimum
       -128 dan nilai maksimum 127. Tipe data byte dapat digunakan untuk menghemat
       penyimpanan memory pada array berukuran besar, pada situasi dimana penghematan
       memory dibutuhkan. Tipe data byte juga dapat digunakan sebagai pengganti int agar batasan
       nilainya dapat membantu untuk memperjelas batasan nilai pada kode perogram anda; fakta
       bahwa sebuah batasan nilai variabel dapat berguna sebagai dokumentasi.
     • short: tipe data short (16-bit signed) adalah tipe angka yang memiliki batasan nilai
       minimum -32.768 dan nilai maksimum 32.767. Sama seperti byte: anda dapat menggunakan
       short untuk menghemat memory pada array berukuran besar, pada situasi dimana
       penghematan memory dibutuhkan.
     • int: tipe data int (32-bit signed) adalah tipe angka yang memiliki batasan nilai minimum
       -2.147.483.648 dan nilai maksimum 2.147.483.647. untuk nilai integral (tanpa koma), tipe
       data ini adalah pilihan umum kecuali ada kebutuhan (seperti diatas) untuk memilih tipe data
       lain. Tipe data ini berukuran cukup besar untuk kebutuhan mayoritas pada program anda,
       tetapi jika anda membutuhkan nilai yang lebih besar, anda dapat menggunakan tipe data
       long.
     • long: tipe data long (64-bit signed) adalah tipe angka yang memiliki batasan nilai minimum
       -9.223.372.036.854.775.808 dan nilai maksimum 9.223.372.036.854.775.807. Gunakan tipe
       data ini saat anda membutuhkan nilai yang lebih besar dari batas nilai yang dimiliki tipe data
       int.
     • float: tipe data float adalah floating point single-precision 32-bit IEEE 754. Tipe data ini
       memiliki batasan nilai diluar diskusi kita disini, anda dapat melihat spesifikasi tipe data ini
       pada spesifikasi bahasa pemrograman java 4.2.3. Seperti rekomendasi pada tipe data byte
       dan short, gunakan float (daripada double) saat anda membutuhkan penghematan memory
       pada array berukuran besar yang menyimpan nilai floating point. Tipe data ini tidak
       seharusnya digunakan untuk menyimpan nilai yang membutuhkan ketepatan tinggi, seperti
       currency. Untuk hal tersebut sebaiknya menggunakan kelas java.math.BigDecimal.

2 Pelatihan Java ; Java Numbers and String – Ammar Shadiq – Ver 1.0 : 10-04-2010
• double: tipe data double adalah floating point single-precision 64-bit IEEE 754. Tipe data
       ini memiliki batasan nilai diluar diskusi kita disini, anda dapat melihat spesifikasi tipe data
       ini pada spesifikasi bahasa pemrograman java 4.2.3. Untuk nilai desimal, tipe data ini adalah
       adalah pilihan umum kecuali ada kebutuhan (seperti diatas) untuk memilih tipe data lain.
       Seperti diatas, Tipe data ini tidak seharusnya digunakan untuk menyimpan nilai yang
       membutuhkan ketepatan tinggi, seperti currency.
     • boolean: tipe data boolean hanya memiliki dua nilai : true dan false. Gunakan tipe data ini
       sebagai flag yang merekam kondisi benar/salah. Tipe data ini menyimpan informasi satu bit,
       tetapi “ukuran” tipe data ini adalah sesuatu yang tidak didefinisikan secara jelas.
    • char: tipe data char adalah karakter 16-bit unicode tunggal. Tipe data ini memiliki nilai
      minimum 'u0000' (atau 0) dan nilai maksimum 'uffff' (atau 65.535).
Sebagai tambahan dari delapan tipe data primitif yang dituliskan diatas, bahasa pemrograman java
juga menyediakan dukungan spesial untuk rangkaian character melalui kelas java.lang.String.
Menuliskan rangkaian karakter didalam kutip dua secara otomatis akan menciptakan objek String.
sebagai contoh
String s = “ini adalah sebuah string”;
Objek String bersifat immutable, yang berarti sekalinya diciptakan, nilainya tidak dapat diganti.
Kelas String secara teknis bukanlah sebuah tipe data primitif, tetapi mempertimbangkan kemudahan
yang diberikan oleh bahasa pemrograman, anda mungkin akan berfikir tipe data String sebagai tipe
data primitif.

Nilai default
Tidak selamanya anda harus mendefinisikan sebuah nilai setiap saat sebuah variabel dideklarasikan.
Variabel yang dideklarasikan tetapi tidak di inisialisasi akan diberi nilai yang sesuai oleh compiler.
Nilai default ini adalah nol atau null, tergantung dari tipe data. Tetapi, bersandar pada nilai default
tersebut, umumnya di anggap sebagai cara pemrograman yang buruk.
Tabel berikut menyimpulkan nilai-nilai defaut dari tipe data diatas.
                           Data Type                   Default Value (for fields)
                           byte                        0
                           short                       0
                           int                         0
                           long                        0L
                           float                       0.0f
                           double                      0.0d
                           char                        'u0000'
                           String (or any object) null
                           boolean                     false


Variabel lokal sedikit berbeda; compiler tidak pernah menugaskan sebuah nilai default pada variabel
lokal yang belum diinisialisasi. Jika anda tidak dapat menginisialisasikan variabel lokal saat
pendeklarasian, pastikan anda menugaskan sebuah nilai sebelum mencoba menggunakannya.

3 Pelatihan Java ; Java Numbers and String – Ammar Shadiq – Ver 1.0 : 10-04-2010
Mengakses variabel lokal yang belum diinisialisasi akan menghasilkan compile-time error.

Literals
Anda mungkin memperhatikan bahwa keyword new tidak digunakan pada saat menginisialisasikan
variabel bertipe data primitif. Tipe data primitif adalah tipe data khusus yang dibuat sebagai tipe
data build-in; tipe data ini tidak diciptakan dari sebuah kelas.
Sebuah literal adalah representasi source code dari sebuah nilai tetap; literal direpresentasikan
secara langsung kedalam kode anda tanpa membutuhkan komputasi. Seperti ditunjukkan dibawah,
diperbolehkan menugaskan sebuah literal kepada sebuah variabel ber tipe data primitif:
        boolean result = true;
        char capitalC = 'C';
        byte b = 100;
        short s = 10000;
        int i = 100000;
Literal pada tipe data char dan string dapat berisi karakter Unicode (UTF-16) apapun. Jika editor
dan file system anda mengizinkannya, anda dapat menggunakan karakter-karakter seperti itu secara
langsung kedalam kode anda. Jika tidak, anda dapat menggunakan “Unicode escape” seperti
'u0108' (C kapital dengan circumflex), atau “Su00ED seu00F1or” (Sí Señor dalam Spanish).
Selalu gunakan 'kutip tunggal' untuk literal char dan “kutip ganda” untuk literal String.
Rangkaian Unicode escape dapat digunakan dimanapun dalam sebuah program (seperti pada field
name), tidak hanya pada literal char atau string.
Bahasa pemrograman java juga menyediakan beberapa rangkaian escape character khusus untuk
literal char dan String : b (backspace), t (tab), n (line feed/baris baru), f (form feed), r
(carriage return), ” (kutip ganda), ' (kutip tunggal), dan  (backslah).

Operator Penugasan, Aritmetik dan Unary

Operator Penugasan sederhana
Salah satu operator yang paling banyak anda temui adalah operator penugasan “=” sederhana. Anda
akan menemui banyak operator ini dalam kode-kode bahasa pemrograman java; operator ini
menugaskan sebuah nilai pada bagian kanan kepada operand pada bagian kiri:
         int cadence = 0;
         int speed = 0;
         int gear = 1;
Operator ini juga dapat digunakan pada objek untuk menugaskan referensi objek.

Operator Aritmetik
Bahasa pemrograman java menyediakan operator untuk operasi penambahan, pengurangan,
perkalian dan pembagian. Operator-operator tersebut pasti anda kenali karena sama dengan
simbol seperti pada matematika dasar. Simbol yang munkin baru bagi anda adalah “%”, yang
membagi satu operand oleh operand lain dan mengembalikan nilai sisa dari pembagian tersebut
sebagai hasilnya.


4 Pelatihan Java ; Java Numbers and String – Ammar Shadiq – Ver 1.0 : 10-04-2010
+          Operator penambahan (juga digunakan dalam penyambungan string)
        -          Operator pengurangan
        *          Operator perkalian
        /          Operator pembagian
        %          Operator sisa pembagian
Program berikut, ArithmeticDemo, menguji operatator-operator aritmetik.
        class ArithmeticDemo {

               public static void main (String[] args){

                       int hasil = 1 + 2; // hasilnya sekarang 3
                       System.out.println(hasil);

                       hasil = hasil - 1; // hasilnya sekarang 2
                       System.out.println(hasil);

                       hasil = hasil * 2; // hasilnya sekarang 4
                       System.out.println(hasil);

                       hasil = hasil / 2; // hasilnya sekarang 2
                       System.out.println(hasil);

                       hasil = hasil + 8; // hasilnya sekarang 10
                       hasil = hasil % 7; // hasilnya sekarang 3
                       System.out.println(hasil);

               }
        }
Anda juga dapat mengkombinasikan operator aritmetik dengan operator penugasan sederhana untuk
menciptakan compound assigments. Sebagai contoh, x += 1; dan x = x+1; keduanya
menambahkan nilai x dengan 1.
Operator + dapat juga digunakan untuk menggabungkan (concatenating/joining) dua string, seperti
diperlihatkan program ConcatDemo berikut:
        class ConcatDemo {
             public static void main(String[] args){
                  String stringPertama = "Ini adalah";
                  String stringKedua = " string yang digabungkan.";
                  String stringKetiga = stringPertama+stringKedua;
                  System.out.println(stringKetiga);
             }
        }
Pada akhir program ini, variabel stringKetiga berisi “Ini adalah string yang
digabungkan”, yang ditampilkan pada layar.


Operator Unary
Operator Unary hanya membutuhkan satu operand; operator ini melakukan berbagai operasi seperti
penambahan/pengurangan sebuah nilai dengan penambahan/pengurangan 1 dan negasi, atau
membalikkan sebuah nilai boolean.
        +            Operator Unary plus; mengindikasikan nilai positif (angka bernilai positif
                     walaupun tanpa operator ini)


5 Pelatihan Java ; Java Numbers and String – Ammar Shadiq – Ver 1.0 : 10-04-2010
-           Operator Unary minus; me-negasi sebuah ekspresi
        ++          Operator penambahan; menambahkan nilai +1
        --          Operator pengurangan; mengurangi nilai -1
        !           Operator logika complement; meng-invert nilai dari sebuah boolean
Program UnaryDemo berikut menguji operator unary ini:
        class UnaryDemo {

               public static void main(String[] args){
                    int hasil = +1; // hasilnya sekarang 1
                    System.out.println(hasil);
                    hasil--; // hasilnya sekarang 0
                    System.out.println(hasil);
                    rhasil ++; // hasilnya sekarang 1
                    System.out.println(hasil);
                    hasil = -hasil; // hasilnya sekarang -1
                    System.out.println(hasil);
                    boolean sukses = false;
                    System.out.println(sukses); // false
                    System.out.println(!sukses); // true
               }
        }
Operator penambahan/pengurangan dapat diaplikasikan pada sebelum (awalan) atau pun sesudah
(akhiran) dari sebuah operan. Kode hasil++; dan ++hasil; keduanya membuat hasil ditambah 1,
perbedaannya adalah pada versi awalan (++hasil) mengevaluasi nilai yang telah ditambahkan,
dimana versi akhiran(hasil++) mengevaluasi nilai aslinya (sebelum ditambahkan 1).
Jika anda hanya melakukan operasi penambahan/pengurangan sederhana, tidak ada masalah versi
mana yang anda gunakan. Tetapi jika anda menggunakan operator ini sebagai bagian dari ekspresi
yang lebih besar, versi yang anda pilih bisa jadi membuat perbedaan yang signifikan.
Program PrePostDemo berikut mengilustrasikan operator unary penambahan/pengurangan:
        class PrePostDemo {
             public static void main(String[] args){
                  int i = 3;
                  i++;
                  System.out.println(i);        // "4"
                  ++i;
                  System.out.println(i);        // "5"
                  System.out.println(++i);      // "6"
                  System.out.println(i++);      // "6"
                  System.out.println(i);        // "7"
             }
        }

Numbers
Bagian ini adakan dimulai dengan sebuah diskusi tentang kelas Number (dalam paket java.lang) dan
subclass-subclassnya. Secara khusus bagian ini akan membahas tentang situasi dimana anda
diharuskan menggunakan kelas-kelas ini dibandingkan tipe data primitif. Sebagai tambahan, bagian
ini akan membahas tentang kelas-kelas lain yang mungkin anda butuhkan untuk bekerja dengan
angka, seperti formatting atau menggunakan fungsi matematis untuk melengkapi operator yang
telah ada dalam bahasa pemrograman.



6 Pelatihan Java ; Java Numbers and String – Ammar Shadiq – Ver 1.0 : 10-04-2010
Kelas-kelas Numbers
saat bekerja dengan angka, seringkali anda menggunakan tipe data primitif pada kode anda. Seperti:
        int i = 500;
        float gpa = 3.65f;
        byte mask = 0xff;
Adapun, alasan anda untuk menggunakan object sebagai ganti dari tipe data primitif, dan platform
java menyediakan kelas pembungkus (wrapper) untuk tiap tipe data primitif. Kelas-kelas ini
“membungkus” (boxes) tipe data primitif kedalam sebuah objek.
Sering kali, pembungkusan dilakukan oleh compiler – jika anda menggunakan sebuah tipe data
primitif dimana sebetulnya tipe data objek yang dibutuhkan, compiler membuka bungkusan
(unboxes) objek untuk anda.
Berikut adalah contoh boxing dan unboxing:
        Integer x, y;
        x = 12;
        y = 15;
        System.out.println(x+y);
Saat x dan y ditugaskan nilai integer, compiler mem-box integer karena x dan y adalah objek
integer, dalam statement println(), x dan y di-unbox sehingga dapat dilakukan operasi penambahan
integer.
Seluruh kelas-kelas wrapper numerik adalah subclass dari kelas abstrak Number:




Catatan: Ada empat subclass dari kelas Number yang tidak didiskusikan disini. BigDecimal dan
BigInteger digunakan dalam kalkulasi yang membutuhkan ketepatan tinggi. AtomicInteger dan
AtomicLong digunakan dalam aplikasi multi-thread.


Ada tiga alasan mengapa anda harus menggunakan objek Number dibandingkan tipe data primitif:
1.Sebagai argumen dari sebuah methode yang mengharapkan sebuah objek (sering kali digunakan
saat memanipulasi sekumpulan angka).
2.Untuk digunakan sebagai constants yang didefinisikan oleh kelas, seperti MIN_VALUE dan
MAX_VALUE, yang menyediakan batas atas dan batas bawah dari tipe data.
3.Untuk menggunakan metode kelas yang mengkonversi nilai ke dan dari tipe data primitif lainnya,
untuk menkonversi ke dan dari String, dan untuk mengkoversi antara number systems (decimal,
octal, hexadecimal, binary).




7 Pelatihan Java ; Java Numbers and String – Ammar Shadiq – Ver 1.0 : 10-04-2010
Tabel berikut berisi daftar instace methode dari seluruh subclass kelas Number.
       Method-metod yang diimplementasikan oleh seluruh subclass dari kelas Number

                           Method                                                  Deskripsi

byte byteValue()
short shortValue()
int intValue()                                                  Mengkonversi nilai dari objek Number ke
long longValue()                                                tipe data primitif.
float floatValue()
double doubleValue()

int compareTo(Byte anotherByte)
int compareTo(Double anotherDouble)
int compareTo(Float anotherFloat)                               Membandingkan objek Number dengan
int compareTo(Integer anotherInteger)                           nilai variabel argumen.
int compareTo(Long anotherLong)
int compareTo(Short anotherShort)

                                                                Menentukan apakah objek number ini
                                                                sama dengan nilai objek pada argumen.
                                                                Methode ini mengembalikan true jika
                                                                argumen tidak null dan adalah objek yang
boolean equals(Object obj)                                      bertipe sama dan memiliki nilai numerik
                                                                yang sama. Ada kebutuhan tambahan
                                                                untuk objek Float dan Double yang di
                                                                deskripsikan pada Java API
                                                                Documentation.


Tiap kelas Number berisi metode-metode lain yang berguna untuk mengkonversi angka dari dan ke
string dan untuk mengkonversi antara angka System. Tabel berikut berisi daftar dari metode-metode
tersebut dalam kelas Integer. Metode-metode pada subclas Number lainnya hampir sama:
                                     Metode Konversi, Kelas Integer

                           Method                                                  Deskripsi

                                                                men-Decodes sebuah string menjadi
                                                                integer. Dapat menerima representasi
static Integer decode(String s)
                                                                string dari desimal, octal, atau
                                                                hexadecimal sebagai input.

static int parseInt(String s)                                   Returns integer (hanya desimal).

static int parseInt(String s, int radix)                        Returns integer, dari isi string berbentuk
                                                                desimal, octal, atau hexadesimal (dengan


8 Pelatihan Java ; Java Numbers and String – Ammar Shadiq – Ver 1.0 : 10-04-2010
radix 10, 2, 8 atau 16 secara berurutan)
                                                                sebagai input.

                                                                Mengembalikan sebuah objek String yang
String toString()
                                                                merepresentasikan nilai dari integer ini.

                                                                Mengembalikan sebuah objek string yagn
static String toString(int i)
                                                                merepresentasikan sebuah integer spesifik.

                                                                Mengembalikan objek integer yang
static Integer valueOf(int i)
                                                                menyimpan nilai dari tipe data primitif int.

                                                                Mengembalikan objek integer yang
static Integer valueOf(String s)                                menyimpan nilai dari sebuah string
                                                                spesifik.

                                                                Mengembalikan nilai objek integer yang
                                                                menyimpan nilai integer dari sebuah string
                                                                spesifik, di parse di parse dengan nilai
                                                                radix. Sebagai contoh, jika s = “333”
static Integer valueOf(String s, int radix)
                                                                dengan radix = 8, metode ini
                                                                mengembalikan nilai desimal (basis 10)
                                                                yang sama dengan angka octal (basis 8)
                                                                dari 333.



Mem-format Tampilan Output variabel Numerik
Karena seluruh Number dapat diubah menjadi String (seperti yang akan anda lihatk), anda dapat
menggunakan method-method untuk menampilkan campuran dari string dan angka. Bahasa
Pemrograman java juga menyediakan method-method lain yang mengizinkan programmer untuk
mendapatkan kontrol yang lebih baik saat angka dilibatkan.
Paket java.io memiliki kelas PrintStream yang memiliki dua metode pemformatan yang dapat
anda gunakan untuk mengganti print dan println. Metode-metode ini, format dan printf,
adalah metode yang sejenis. Metode System.out yang sering anda gunakan kebetulan adalah
sebuah objek PrintStream, sehingga anda dapat menuliskan format maupun printf dimanapan
pada kode anda(sama seperti print dan println). Sebagai contoh :
        System.out.format(.....);
Syntax untuk kedua methode java.io.PrintStream adalah sama:
        public PrintStream format(String format, Object... args);
Dimana format adalah sebuah string yang menspesifikasikan pem-formatan yang digunakan dan
args adalah daftar dari variabel yang ditampilkan menggunakan pem-formatan. Berikut contoh
sederhananya :
System.out.format("Nilai dari variabel float adalah %f, sedangkan nilai dari " +
                           "variabel integer adalah %d, dan variabel string adalah %s",
                                     floatVar, intVar, stringVar);



9 Pelatihan Java ; Java Numbers and String – Ammar Shadiq – Ver 1.0 : 10-04-2010
Parameter pertama (format) adalah sebuah format dari string yang menspesifikasikan bagaimana
objek pada parameter kedua (args) di format. String yang ter-format mengandung text sederhana
juga penentuan format, yang merupakan karakter khusus yang memformat argumen dari
Object....args. (Notasi Object....args dinamakan varargs, yang berarti bahwa jumlah argumen dapat
beragam.)
Karakter pem-formatan khusus dimulai dengan sebuah lambang persen (%) dan diakhiri dengan
sebuah converter. Converter adalah sebuah karakter yang mengindikasikan tipe argumen yang di-
format. Diantara lambang persen (%) dan converter anda dapat memiliki flag dan specifier pilihan.
Ada banyak jenis converter, flags dan specifier, yang didokumentasikan dalam
java.util.Formatter.
Berikut adalah sebuah contoh sederhana:
        int i = 461012;
        System.out.format("Nilai dari variabel i adalah: %d%n", i);
%dmenspesifikasikan bahwa variabel tunggal adalah sebuah integer desimal. %n adalah karakter
newline yang system independent. Outuput dari potongan program diatas adalah:
Nilai dari variabel i adalah: 461012


Kelas DecimalFormat
Anda dapat menggunakan kelas java.text.DecimalFormat untuk mengendalikan tampilan awalan
dan akhiran angka nol, pemisah ribuan, dan pemisah angka desimal. DecimalFormat menawarkan
fleksibilitas yang luar biasa dalam mem-format angka, tetapi dapat menjadikan kode menjadi lebih
kompleks.
Contoh berikut menciptakan objek DecimalFormat, myFormatter, dengan mengirimkan sebuah
string pola ke konstruktor DecimalFormat. Metode format(), yang merupakan metode yang
diwariskan dari kelas NumberFormat, kemudian di panggil oleh myFormatter – myFormatter
menerima sebuah nilai double sebagai argumen masukan dan mengembalikan angka yang telah ter-
format dalam sebuah string:
Berikut adalah contoh program yang mengilustrasikan penggunaan DecimalFormat:
        import java.text.*;

        public class DecimalFormatDemo {

            static public void customFormat(String pattern, double value ) {
               DecimalFormat myFormatter = new DecimalFormat(pattern);
               String output = myFormatter.format(value);
               System.out.println(value + " " + pattern + " " + output);
            }

            static public void main(String[] args) {

                customFormat("###,###.###", 123456.789);
                customFormat("###.##", 123456.789);
                customFormat("000000.000", 123.78);
                customFormat("$###,###.###", 12345.67);
            }
        }


Output-nya adalah:


10 Pelatihan Java ; Java Numbers and String – Ammar Shadiq – Ver 1.0 : 10-04-2010
123456.789       ###,###.###        123,456.789
        123456.789       ###.##     123456.79
        123.78     000000.000       000123.780
        12345.67      $###,###.###        $12,345.67
Tabel berikut menjelaskan tiap baris dari output.
                                         Output DecimalFormat.java

Nilai                    Pola                Output             Penjelasan

                                                                Pound (#) melambangkan sebuah digit
                                                                angka, lambang koma memisahkan
123456.789               ###,###.###         123,456.789        pengelompokkan angka ribuan, dan
                                                                lambang titik memisahkan angka-angka
                                                                desimal.

                                                                Nilai disamping memiliki tiga digit
                                                                disebelah kanan titik desimal, tetapi pola-
123456.789               ###.##              123456.79          nya hanya memiliki dua. Metode format
                                                                menangani hal ini dengan
                                                                membulatkannya ke atas.

                                                                Pola disamping menspesifikasikan awalan
123.78                   000000.000          000123.780         dan akhiran angka nol , karena karakter 0
                                                                yang digunakan, bukan karakter #.

                                                                Karakter pertama pada pola adalah
                                                                lambang dollar ($). Perhatikan bahwa
12345.67                 $###,###.###        $12,345.67
                                                                pada output lambang dollar ini
                                                                ditampilkan pada sisi kiri.




11 Pelatihan Java ; Java Numbers and String – Ammar Shadiq – Ver 1.0 : 10-04-2010
String
Strings, yang digunakan secara luas dalam pemrograman java adalah sebuah rangkaian karakter.
Pada bahasa pemrograman java, string adalah objek.

Menciptakan String
Cara yang paling mudah untuk menciptakan string adalah dengan menuliskan:
        String sambutan : “Hello world!”;
Dalam kasus ini, “Hello world!” adalah sebuah string literal-sebuah rentetan karakter pada kode
anda yang ditutup oleh kutip ganda.
Seperti objek lain, anda dapat menciptakan objek string dengan menggunakan keyword new dan
sebuah konstruktor. Kelas string memiliki tiga belas konstruktor yang mengizinkan anda untuk
menyediakan nilai awal dari string menggunakan sumber-sumber yang berbeda, seperti array dari
karakter:
        char[] helloArray = { 'h', 'e', 'l', 'l', 'o', '.'};
        String helloString = new String(helloArray);
        System.out.println(helloString);
Baris terakhir dari potongan kode ini menampilkan hello.
Catatan: Kelas String bersifat immutable, sehingga sekalinya diciptakan sebuah objek string tidak
dapat diubah. Kelas string memiliki sejumlah methode, beberapa diantaranya akan didiskusikan
dibawah. Karena string bersifat immutable, yang dilukakan methode-methode dibawah adalah
membuat string baru dan mengembalikan sebuah string baru yang berisi hasil dari operasi
tersebut.

Panjang String
Method yang digunakan untuk mendapatkan informasi mengenai suatu objek dinamakan accessor
methodes. Salah satu accessor methode yang dapat anda gunakan pada string adalah methode
length(), yang mengembalikan angka jumlah karakter yang terdapat pada objek string. Setelah
dua baris kode dibawah dieksekusi, len sama dengan 11:
        String palindrome = "Kasur rusaK";
        int len = palindrome.length();
Palindrome adalah sebuah kata atau kalimat yang bersifat simetris – palindrome di eja sama, baik
dari arah depan maupun belakang. Berikut adalah program pendek tetapi tidak efisien untuk
membalikkan sebuah string palindrome. Program ini mempekerjakan methode charAt(i), yang
mengembalikan nilai karakter ke-i pada string, dimulai dari 0.
        public class StringDemo {
            public static void main(String[] args) {
                String palindrome = "Dot saw I was Tod";
                int len = palindrome.length();
                char[] tempCharArray = new char[len];
                char[] charArray = new char[len];

                   // put original string in an array of chars
                   for (int i = 0; i < len; i++) {
                       tempCharArray[i] = palindrome.charAt(i);
                   }

12 Pelatihan Java ; Java Numbers and String – Ammar Shadiq – Ver 1.0 : 10-04-2010
// reverse array of chars
                   for (int j = 0; j < len; j++) {
                       charArray[j] = tempCharArray[len - 1 - j];
                   }

                   String reversePalindrome = new String(charArray);
                   System.out.println(reversePalindrome);
              }
        }
Menjalanakan program diatas akan menghasilkan output sebagai berikut:
        doT saw I was toD
Untuk menghasilkan pembalikan string, program harus mengkonversi string ke array berisi karakter
(loop pertama), membalikkan array ke pada array kedua (loop kedua), lalu kemudian mengubahnya
lagi menjadi String. Kelas string memiliki sebuah method, getChars(), untuk mengkonversi
sebuah string, ataupun sebagian string kedalam array dari karakter-karakter tersebut sehingga dapat
kita ganti loop pertama pada program diatas dengan:
        palindrome.getChars(0, len, tempCharArray, 0);


Menggabungkan String
Kelas String memiliki sebuah methode untuk menggabungkan (concatenating) dua string:
        string1.concat(string2);
Ini mengembalikan sebuah string baru dengan string2 yang ditambahkan di akhir string1.
String umumnya digabungkan dengan operator + seperti pada:
        "Hello," + " world" + "!"
Yang menghasilkan :
        "Hello, world!"
Operator + digunakan secara luas pada pernyataan untuk menampilkan ke layar. Sebagai contoh;
        String string1 = "saw I was ";
        System.out.println("Dot " + string1 + "Tod");
Yang menampilkan
        Dot saw I was Tod
Penggabungan seperti itu dapat terdiri dari berbagai objek. Untuk setiap objek yang bukan string,
methode toString() dipanggil untuk mengkonversi object tersebut ke string.


Catatan: Bahasa pemrograman java tidak mengizinkan string literal memiliki beberapa baris pada
kode, sehingga anda harus menggunakan operator penggabungan + pada akhir dari tiap baris.
Sebagai contoh,
        String quote = "Sekarang adalah waktunya untuk tiap manusia" +
        "yang baik untuk membantu negaranya.";
Memecah string menjadi dua baris menggunakan operator +, sekali lagi, sangat umum pada
pernyataan yang menampilkan ke layar.




13 Pelatihan Java ; Java Numbers and String – Ammar Shadiq – Ver 1.0 : 10-04-2010
Membuat String format
Anda telah melihat methode printf() dan format() untuk menampilkan output dengan angka
yang telah terformat. Kelas string memiliki methode yang sama, format(), yang mengembalikan
sebuah objek string daripada sebuah object PrintStream.
Menggunakan methode static format() mengizinkan anda untuk menciptakan sebuah string
terformat yang dapat anda guna ulang, dibandingkan dengan statement print sekali pakai. Sebagai
contoh, dibanding menuliskan:
        System.out.printf("Nilai dari variabel float adalah %f, sedangkan nilai "
        +
                                  "dari variabel integer adalah %d, dan variabel string “
        +
                                 “adalah %s", floatVar, intVar, stringVar);
anda dapat menuliskan
        String fs;
        fs = String.format("Nilai dari variabel float adalah %f, sedangkan nilai"
        +
                                  "dari variabel integer adalah %d, dan variabel string “
        +
                                 “adalah %s", floatVar, intVar, stringVar);
        System.out.println(fs);


Mengkonversi String ke Number
Sering kali, sebuah program berakhir dengan data numerik dalam objek string – sebagai contoh :
sebuah nilai yang dimasukkan oleh user.
Subclass-subclass Number yang membungkus tipe data numerik primitif ( Byte, Integer, Double,
Float, Long, and Short) masing-masing memiliki sebuak method kelas yang bernama valueOf yang
mengkonversi sebuah string menjadi objek dari tipe data tersebut. Berikut adalah contoh program
ValueOfDemo yang mendapatkan dua string dari Command Line, mengkonversi kedua string
tersebut ke number. Dan melakukan operasi aritmetik pada nilai yang terkandungnya:

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

                   //program ini membutuhkan dua argumen pada Command Line
                   // contoh pengeksekusian : javac ValueOfDemo 23 45
                   if (args.length == 2) {
                                   //mengkonversi string ke number
                       float a = (Float.valueOf(args[0]) ).floatValue();
                       float b = (Float.valueOf(args[1]) ).floatValue();

                       // lakukan beberapa operasi aritmetik dan tampilkan ke layar
                       System.out.println("a + b = " + (a + b) );
                       System.out.println("a - b = " + (a - b) );
                       System.out.println("a * b = " + (a * b) );
                       System.out.println("a / b = " + (a / b) );
                       System.out.println("a % b = " + (a % b) );
                   } else {
                      System.out.println("program ini membutuhkan dua arg masukan.");


14 Pelatihan Java ; Java Numbers and String – Ammar Shadiq – Ver 1.0 : 10-04-2010
}
              }
        }
Berikut adalah output dari program diatas saat anda memasukkan nilai 4.5 dan 87.2 pada argumen
command-line:
        a + b = 91.7
        a - b = -82.7
        a * b = 392.4
        a / b = 0.0516055
        a % b = 4.5
Catatan: tiap subclass Number yang membungkus tipe data numerik primitif juga menyediakan
sebuah metode parseXXX()(contohnya parseFloat()) yang dapat digunakan untuk mengkonversi
string ke tipe data numerik primitif. Metode parseFloat() bersifat lebih langsung daripada method
valueOf(). Sebagai contoh, pada program ValueOfDemo, kita dapat menggunakan:
        float a = Float.parseFloat(args[0]);
        float b = Float.parseFloat(args[1]);

Mengkonversi Number ke String
kadang kala anda membutuhkan cara untuk mengkonversi sebuah string karena anda harus
mengoperasikan nilai dari suatu variabel dalam bentuk String. Ada beberapa cara mudah untuk
melakukan ini :
        int i;
        String s1 = "" + i; //Concatenate "i" with an empty string;
                            //conversion is handled for you.
atau
        String s2 = String.valueOf(i);                //The valueOf class method.
Tiap subclass dari Number memiliki sebuah methode toString() (Kebanyakan kelas Pada java
memilikinya), yang mengkonversi tipe data primitif yang dimilikinya kedalam bentuk String.
Sebagai contoh:
        int i;
        double d;
        String s3 = Integer.toString(i);
        String s4 = Double.toString(d);
Contoh program ToStringDemo dibawah menggunakan metod toString untuk mengkonversi
sebuah angka kedalam bentuk String. Program ini lalu menggunakan metode-metode string tertentu
untuk mengkomputasi banyaknya digit sebelum dan sesudah titik desimal:
        public class ToStringDemo {

              public static void main(String[] args) {
                  double d = 858.48;
                  String s = Double.toString(d);

                   int dot = s.indexOf('.');

                   System.out.println(dot + " digit sebelum titik desimal.");
                   System.out.println( (s.length() - dot - 1) +
                           " digit setelah titik desimal.");
            }
        } // output 3 digit sebelum titik desimal. 2 digit setelah titik desimal.

15 Pelatihan Java ; Java Numbers and String – Ammar Shadiq – Ver 1.0 : 10-04-2010

Mais conteúdo relacionado

Mais procurados

Object oriented programming menggunakan java
Object oriented programming menggunakan javaObject oriented programming menggunakan java
Object oriented programming menggunakan java
Antara BoyKean
 
Struktur Level Data
Struktur Level DataStruktur Level Data
Struktur Level Data
Dimara Hakim
 
Jeni Intro1 Bab09 Bekerja Dengan Java Class Library
Jeni Intro1 Bab09 Bekerja Dengan Java Class LibraryJeni Intro1 Bab09 Bekerja Dengan Java Class Library
Jeni Intro1 Bab09 Bekerja Dengan Java Class Library
Individual Consultants
 
ppt Tipe data,variabel, operator
ppt Tipe data,variabel, operatorppt Tipe data,variabel, operator
ppt Tipe data,variabel, operator
Iwank Odarlean
 

Mais procurados (17)

Object oriented programming menggunakan java
Object oriented programming menggunakan javaObject oriented programming menggunakan java
Object oriented programming menggunakan java
 
04 type of data
04 type of data04 type of data
04 type of data
 
Struktur Level Data
Struktur Level DataStruktur Level Data
Struktur Level Data
 
Tipe data abstract
Tipe data abstractTipe data abstract
Tipe data abstract
 
4 Adt
4 Adt4 Adt
4 Adt
 
Algoritma Pemrograman - Variabel, Konstanta & Tipe Data
Algoritma Pemrograman - Variabel, Konstanta & Tipe DataAlgoritma Pemrograman - Variabel, Konstanta & Tipe Data
Algoritma Pemrograman - Variabel, Konstanta & Tipe Data
 
Jeni Intro1 Bab09 Bekerja Dengan Java Class Library
Jeni Intro1 Bab09 Bekerja Dengan Java Class LibraryJeni Intro1 Bab09 Bekerja Dengan Java Class Library
Jeni Intro1 Bab09 Bekerja Dengan Java Class Library
 
Pengenalan java-oop
Pengenalan java-oopPengenalan java-oop
Pengenalan java-oop
 
Pemrograman visual - tipe data variabel dan operator
Pemrograman visual - tipe data variabel dan operatorPemrograman visual - tipe data variabel dan operator
Pemrograman visual - tipe data variabel dan operator
 
2 Array
2 Array2 Array
2 Array
 
Bab 2. array
Bab 2. arrayBab 2. array
Bab 2. array
 
Algoritma dan Pemprograman Komputer I
Algoritma dan Pemprograman Komputer IAlgoritma dan Pemprograman Komputer I
Algoritma dan Pemprograman Komputer I
 
Variabel, Tipe Data dan Operator - Pemrograman I
Variabel, Tipe Data dan Operator - Pemrograman IVariabel, Tipe Data dan Operator - Pemrograman I
Variabel, Tipe Data dan Operator - Pemrograman I
 
ppt Tipe data,variabel, operator
ppt Tipe data,variabel, operatorppt Tipe data,variabel, operator
ppt Tipe data,variabel, operator
 
Jeni Intro1 Bab07 Java Array
Jeni Intro1 Bab07 Java ArrayJeni Intro1 Bab07 Java Array
Jeni Intro1 Bab07 Java Array
 
Algoritma 1 pertemuan 2
Algoritma 1 pertemuan 2Algoritma 1 pertemuan 2
Algoritma 1 pertemuan 2
 
3 konsep algoritma
3 konsep algoritma3 konsep algoritma
3 konsep algoritma
 

Semelhante a Java numbers

Pengenalan pascal asli
Pengenalan pascal asliPengenalan pascal asli
Pengenalan pascal asli
Nadya Olivia
 
Modul2-Tipe-data-identifier-dan-operator-02.pdf
Modul2-Tipe-data-identifier-dan-operator-02.pdfModul2-Tipe-data-identifier-dan-operator-02.pdf
Modul2-Tipe-data-identifier-dan-operator-02.pdf
Valentino Selayan
 
Romi oop-02-javafundamentals-29agustus2010
Romi oop-02-javafundamentals-29agustus2010Romi oop-02-javafundamentals-29agustus2010
Romi oop-02-javafundamentals-29agustus2010
SabilaAulia
 
3tipe data
3tipe data3tipe data
3tipe data
fardye
 
Pascal tutorialtpascal701
Pascal tutorialtpascal701Pascal tutorialtpascal701
Pascal tutorialtpascal701
Alvin Setiawan
 
Pengenalan pascal
Pengenalan pascalPengenalan pascal
Pengenalan pascal
fhnx
 
Modul praktikum java pemrograman berorientasi objek
Modul praktikum java pemrograman berorientasi objekModul praktikum java pemrograman berorientasi objek
Modul praktikum java pemrograman berorientasi objek
imam arifin
 
Paskalis Jabar-TI-3A-TUGAS02-2015020045.pptx
Paskalis Jabar-TI-3A-TUGAS02-2015020045.pptxPaskalis Jabar-TI-3A-TUGAS02-2015020045.pptx
Paskalis Jabar-TI-3A-TUGAS02-2015020045.pptx
sampesireron
 
05 visual basic (zulkifli said_c3)
05 visual basic (zulkifli said_c3)05 visual basic (zulkifli said_c3)
05 visual basic (zulkifli said_c3)
zulkifli said
 
Network Programming 2 - Dasar Pemrograman Java
Network Programming 2 - Dasar Pemrograman JavaNetwork Programming 2 - Dasar Pemrograman Java
Network Programming 2 - Dasar Pemrograman Java
Lia Rusdyana Dewi
 
BAB 2_TIPE DATA, VARIABEL, DAN OPERATOR (1) (1).pptx
BAB 2_TIPE DATA, VARIABEL, DAN OPERATOR (1) (1).pptxBAB 2_TIPE DATA, VARIABEL, DAN OPERATOR (1) (1).pptx
BAB 2_TIPE DATA, VARIABEL, DAN OPERATOR (1) (1).pptx
nyomans1
 

Semelhante a Java numbers (20)

Pengenalan pascal asli
Pengenalan pascal asliPengenalan pascal asli
Pengenalan pascal asli
 
Modul2-Tipe-data-identifier-dan-operator-02.pdf
Modul2-Tipe-data-identifier-dan-operator-02.pdfModul2-Tipe-data-identifier-dan-operator-02.pdf
Modul2-Tipe-data-identifier-dan-operator-02.pdf
 
Romi oop-02-javafundamentals-29agustus2010
Romi oop-02-javafundamentals-29agustus2010Romi oop-02-javafundamentals-29agustus2010
Romi oop-02-javafundamentals-29agustus2010
 
Visual 1 1&2.pptx
Visual 1 1&2.pptxVisual 1 1&2.pptx
Visual 1 1&2.pptx
 
3tipe data
3tipe data3tipe data
3tipe data
 
Pascal tutorialtpascal701
Pascal tutorialtpascal701Pascal tutorialtpascal701
Pascal tutorialtpascal701
 
Pengenalan pascal
Pengenalan pascalPengenalan pascal
Pengenalan pascal
 
pbo2.pptx
pbo2.pptxpbo2.pptx
pbo2.pptx
 
Modul praktikum java pemrograman berorientasi objek
Modul praktikum java pemrograman berorientasi objekModul praktikum java pemrograman berorientasi objek
Modul praktikum java pemrograman berorientasi objek
 
Laporan tugas struktur data
Laporan tugas struktur dataLaporan tugas struktur data
Laporan tugas struktur data
 
BAB II ISI MAKALAH REPRESENTASI DATA
BAB II ISI MAKALAH REPRESENTASI DATABAB II ISI MAKALAH REPRESENTASI DATA
BAB II ISI MAKALAH REPRESENTASI DATA
 
Tipe data dan variabel
Tipe data dan variabelTipe data dan variabel
Tipe data dan variabel
 
Modul PBO Bab-01 - Pengenalan Java
Modul PBO Bab-01 - Pengenalan JavaModul PBO Bab-01 - Pengenalan Java
Modul PBO Bab-01 - Pengenalan Java
 
Part 5 - Tipe Data-Variabel-Konstanta-Operator-di-VB-NET
Part 5 - Tipe Data-Variabel-Konstanta-Operator-di-VB-NETPart 5 - Tipe Data-Variabel-Konstanta-Operator-di-VB-NET
Part 5 - Tipe Data-Variabel-Konstanta-Operator-di-VB-NET
 
Paskalis Jabar-TI-3A-TUGAS02-2015020045.pptx
Paskalis Jabar-TI-3A-TUGAS02-2015020045.pptxPaskalis Jabar-TI-3A-TUGAS02-2015020045.pptx
Paskalis Jabar-TI-3A-TUGAS02-2015020045.pptx
 
05 visual basic (zulkifli said_c3)
05 visual basic (zulkifli said_c3)05 visual basic (zulkifli said_c3)
05 visual basic (zulkifli said_c3)
 
Belajar Python.docx
Belajar Python.docxBelajar Python.docx
Belajar Python.docx
 
Network Programming 2 - Dasar Pemrograman Java
Network Programming 2 - Dasar Pemrograman JavaNetwork Programming 2 - Dasar Pemrograman Java
Network Programming 2 - Dasar Pemrograman Java
 
Tugas mu'thi modul pascal
Tugas mu'thi modul pascalTugas mu'thi modul pascal
Tugas mu'thi modul pascal
 
BAB 2_TIPE DATA, VARIABEL, DAN OPERATOR (1) (1).pptx
BAB 2_TIPE DATA, VARIABEL, DAN OPERATOR (1) (1).pptxBAB 2_TIPE DATA, VARIABEL, DAN OPERATOR (1) (1).pptx
BAB 2_TIPE DATA, VARIABEL, DAN OPERATOR (1) (1).pptx
 

Mais de Ammar Shadiq

PostgreSQL Stored-procedure
PostgreSQL Stored-procedurePostgreSQL Stored-procedure
PostgreSQL Stored-procedure
Ammar Shadiq
 
PostgreSQL Trigger
PostgreSQL TriggerPostgreSQL Trigger
PostgreSQL Trigger
Ammar Shadiq
 
PostgreSQL Transaksi
PostgreSQL TransaksiPostgreSQL Transaksi
PostgreSQL Transaksi
Ammar Shadiq
 

Mais de Ammar Shadiq (8)

Statement of Accomplisment from Online Machine Learning Class
Statement of Accomplisment from Online Machine Learning ClassStatement of Accomplisment from Online Machine Learning Class
Statement of Accomplisment from Online Machine Learning Class
 
Mendeteksi Topik Berita Pada Aliran Berita Online Berbahasa Indonesia
Mendeteksi Topik Berita Pada Aliran Berita Online Berbahasa IndonesiaMendeteksi Topik Berita Pada Aliran Berita Online Berbahasa Indonesia
Mendeteksi Topik Berita Pada Aliran Berita Online Berbahasa Indonesia
 
PostgreSQL Stored-procedure
PostgreSQL Stored-procedurePostgreSQL Stored-procedure
PostgreSQL Stored-procedure
 
PostgreSQL Trigger
PostgreSQL TriggerPostgreSQL Trigger
PostgreSQL Trigger
 
PostgreSQL Transaksi
PostgreSQL TransaksiPostgreSQL Transaksi
PostgreSQL Transaksi
 
Pengenalan konsep dan komponen Oracle database recovery
Pengenalan konsep dan komponen Oracle database recoveryPengenalan konsep dan komponen Oracle database recovery
Pengenalan konsep dan komponen Oracle database recovery
 
Oracle transaksi
Oracle transaksiOracle transaksi
Oracle transaksi
 
Pelatihan Java - Number & String
Pelatihan Java - Number & StringPelatihan Java - Number & String
Pelatihan Java - Number & String
 

Java numbers

  • 1. Java Numbers Ammar Shadiq ammar.shadiq@gmail.com http://ammarshadiq.web.id Pelatihan Java Universitas Pendidikan Indonesia 10-April-2010 1 Pelatihan Java ; Java Numbers and String – Ammar Shadiq – Ver 1.0 : 10-04-2010
  • 2. Java Numbers Sebelum kita mendalami tentang segala sesuatunya tentang Numbers pada bahasa pemrograman java, mari kita bahas tentang tipe data primitif. Tipe data primitif Bahasa pemrograman java adalah bahasa pemrograman yang bersifat statically-typed, yang berarti seluruh variabel harus dideklarasikan sebelum dapat digunakan. Ini melibatkan mendeklarasikan tipe variabel dan nama variabel, seperti : int gear = 1; Melakukan hal diatas memberitahu program bahwa ada sebuah variabel bernama “gear”, yang menampung data numerik dan memiliki nilai awal “1”. Tipe data sebuah variabel menentukan nilai yang dapat di tampungnya, dan operasi yang dapat dilakukan pada variabel tersebut. Sebagai tambahan dari int, bahasa pemrograman java menyediakan tujuh tipe data primitif lainnya. Tipe data primitif telah didefinisikan sebelumnya oleh bahasa pemrograman dan dinamakan dengan reserved keyword. Nilai variabel tipe data primitif tidak berbagi state dengan nilai variabel tipe data primitif lainnya. Kedelapan tipe data primitif yang disediakan oleh bahasa pemrograman java adalah : • byte: tipe data byte (8-bit signed) adalah tipe angka yang memiliki batasan nilai minimum -128 dan nilai maksimum 127. Tipe data byte dapat digunakan untuk menghemat penyimpanan memory pada array berukuran besar, pada situasi dimana penghematan memory dibutuhkan. Tipe data byte juga dapat digunakan sebagai pengganti int agar batasan nilainya dapat membantu untuk memperjelas batasan nilai pada kode perogram anda; fakta bahwa sebuah batasan nilai variabel dapat berguna sebagai dokumentasi. • short: tipe data short (16-bit signed) adalah tipe angka yang memiliki batasan nilai minimum -32.768 dan nilai maksimum 32.767. Sama seperti byte: anda dapat menggunakan short untuk menghemat memory pada array berukuran besar, pada situasi dimana penghematan memory dibutuhkan. • int: tipe data int (32-bit signed) adalah tipe angka yang memiliki batasan nilai minimum -2.147.483.648 dan nilai maksimum 2.147.483.647. untuk nilai integral (tanpa koma), tipe data ini adalah pilihan umum kecuali ada kebutuhan (seperti diatas) untuk memilih tipe data lain. Tipe data ini berukuran cukup besar untuk kebutuhan mayoritas pada program anda, tetapi jika anda membutuhkan nilai yang lebih besar, anda dapat menggunakan tipe data long. • long: tipe data long (64-bit signed) adalah tipe angka yang memiliki batasan nilai minimum -9.223.372.036.854.775.808 dan nilai maksimum 9.223.372.036.854.775.807. Gunakan tipe data ini saat anda membutuhkan nilai yang lebih besar dari batas nilai yang dimiliki tipe data int. • float: tipe data float adalah floating point single-precision 32-bit IEEE 754. Tipe data ini memiliki batasan nilai diluar diskusi kita disini, anda dapat melihat spesifikasi tipe data ini pada spesifikasi bahasa pemrograman java 4.2.3. Seperti rekomendasi pada tipe data byte dan short, gunakan float (daripada double) saat anda membutuhkan penghematan memory pada array berukuran besar yang menyimpan nilai floating point. Tipe data ini tidak seharusnya digunakan untuk menyimpan nilai yang membutuhkan ketepatan tinggi, seperti currency. Untuk hal tersebut sebaiknya menggunakan kelas java.math.BigDecimal. 2 Pelatihan Java ; Java Numbers and String – Ammar Shadiq – Ver 1.0 : 10-04-2010
  • 3. • double: tipe data double adalah floating point single-precision 64-bit IEEE 754. Tipe data ini memiliki batasan nilai diluar diskusi kita disini, anda dapat melihat spesifikasi tipe data ini pada spesifikasi bahasa pemrograman java 4.2.3. Untuk nilai desimal, tipe data ini adalah adalah pilihan umum kecuali ada kebutuhan (seperti diatas) untuk memilih tipe data lain. Seperti diatas, Tipe data ini tidak seharusnya digunakan untuk menyimpan nilai yang membutuhkan ketepatan tinggi, seperti currency. • boolean: tipe data boolean hanya memiliki dua nilai : true dan false. Gunakan tipe data ini sebagai flag yang merekam kondisi benar/salah. Tipe data ini menyimpan informasi satu bit, tetapi “ukuran” tipe data ini adalah sesuatu yang tidak didefinisikan secara jelas. • char: tipe data char adalah karakter 16-bit unicode tunggal. Tipe data ini memiliki nilai minimum 'u0000' (atau 0) dan nilai maksimum 'uffff' (atau 65.535). Sebagai tambahan dari delapan tipe data primitif yang dituliskan diatas, bahasa pemrograman java juga menyediakan dukungan spesial untuk rangkaian character melalui kelas java.lang.String. Menuliskan rangkaian karakter didalam kutip dua secara otomatis akan menciptakan objek String. sebagai contoh String s = “ini adalah sebuah string”; Objek String bersifat immutable, yang berarti sekalinya diciptakan, nilainya tidak dapat diganti. Kelas String secara teknis bukanlah sebuah tipe data primitif, tetapi mempertimbangkan kemudahan yang diberikan oleh bahasa pemrograman, anda mungkin akan berfikir tipe data String sebagai tipe data primitif. Nilai default Tidak selamanya anda harus mendefinisikan sebuah nilai setiap saat sebuah variabel dideklarasikan. Variabel yang dideklarasikan tetapi tidak di inisialisasi akan diberi nilai yang sesuai oleh compiler. Nilai default ini adalah nol atau null, tergantung dari tipe data. Tetapi, bersandar pada nilai default tersebut, umumnya di anggap sebagai cara pemrograman yang buruk. Tabel berikut menyimpulkan nilai-nilai defaut dari tipe data diatas. Data Type Default Value (for fields) byte 0 short 0 int 0 long 0L float 0.0f double 0.0d char 'u0000' String (or any object) null boolean false Variabel lokal sedikit berbeda; compiler tidak pernah menugaskan sebuah nilai default pada variabel lokal yang belum diinisialisasi. Jika anda tidak dapat menginisialisasikan variabel lokal saat pendeklarasian, pastikan anda menugaskan sebuah nilai sebelum mencoba menggunakannya. 3 Pelatihan Java ; Java Numbers and String – Ammar Shadiq – Ver 1.0 : 10-04-2010
  • 4. Mengakses variabel lokal yang belum diinisialisasi akan menghasilkan compile-time error. Literals Anda mungkin memperhatikan bahwa keyword new tidak digunakan pada saat menginisialisasikan variabel bertipe data primitif. Tipe data primitif adalah tipe data khusus yang dibuat sebagai tipe data build-in; tipe data ini tidak diciptakan dari sebuah kelas. Sebuah literal adalah representasi source code dari sebuah nilai tetap; literal direpresentasikan secara langsung kedalam kode anda tanpa membutuhkan komputasi. Seperti ditunjukkan dibawah, diperbolehkan menugaskan sebuah literal kepada sebuah variabel ber tipe data primitif: boolean result = true; char capitalC = 'C'; byte b = 100; short s = 10000; int i = 100000; Literal pada tipe data char dan string dapat berisi karakter Unicode (UTF-16) apapun. Jika editor dan file system anda mengizinkannya, anda dapat menggunakan karakter-karakter seperti itu secara langsung kedalam kode anda. Jika tidak, anda dapat menggunakan “Unicode escape” seperti 'u0108' (C kapital dengan circumflex), atau “Su00ED seu00F1or” (Sí Señor dalam Spanish). Selalu gunakan 'kutip tunggal' untuk literal char dan “kutip ganda” untuk literal String. Rangkaian Unicode escape dapat digunakan dimanapun dalam sebuah program (seperti pada field name), tidak hanya pada literal char atau string. Bahasa pemrograman java juga menyediakan beberapa rangkaian escape character khusus untuk literal char dan String : b (backspace), t (tab), n (line feed/baris baru), f (form feed), r (carriage return), ” (kutip ganda), ' (kutip tunggal), dan (backslah). Operator Penugasan, Aritmetik dan Unary Operator Penugasan sederhana Salah satu operator yang paling banyak anda temui adalah operator penugasan “=” sederhana. Anda akan menemui banyak operator ini dalam kode-kode bahasa pemrograman java; operator ini menugaskan sebuah nilai pada bagian kanan kepada operand pada bagian kiri: int cadence = 0; int speed = 0; int gear = 1; Operator ini juga dapat digunakan pada objek untuk menugaskan referensi objek. Operator Aritmetik Bahasa pemrograman java menyediakan operator untuk operasi penambahan, pengurangan, perkalian dan pembagian. Operator-operator tersebut pasti anda kenali karena sama dengan simbol seperti pada matematika dasar. Simbol yang munkin baru bagi anda adalah “%”, yang membagi satu operand oleh operand lain dan mengembalikan nilai sisa dari pembagian tersebut sebagai hasilnya. 4 Pelatihan Java ; Java Numbers and String – Ammar Shadiq – Ver 1.0 : 10-04-2010
  • 5. + Operator penambahan (juga digunakan dalam penyambungan string) - Operator pengurangan * Operator perkalian / Operator pembagian % Operator sisa pembagian Program berikut, ArithmeticDemo, menguji operatator-operator aritmetik. class ArithmeticDemo { public static void main (String[] args){ int hasil = 1 + 2; // hasilnya sekarang 3 System.out.println(hasil); hasil = hasil - 1; // hasilnya sekarang 2 System.out.println(hasil); hasil = hasil * 2; // hasilnya sekarang 4 System.out.println(hasil); hasil = hasil / 2; // hasilnya sekarang 2 System.out.println(hasil); hasil = hasil + 8; // hasilnya sekarang 10 hasil = hasil % 7; // hasilnya sekarang 3 System.out.println(hasil); } } Anda juga dapat mengkombinasikan operator aritmetik dengan operator penugasan sederhana untuk menciptakan compound assigments. Sebagai contoh, x += 1; dan x = x+1; keduanya menambahkan nilai x dengan 1. Operator + dapat juga digunakan untuk menggabungkan (concatenating/joining) dua string, seperti diperlihatkan program ConcatDemo berikut: class ConcatDemo { public static void main(String[] args){ String stringPertama = "Ini adalah"; String stringKedua = " string yang digabungkan."; String stringKetiga = stringPertama+stringKedua; System.out.println(stringKetiga); } } Pada akhir program ini, variabel stringKetiga berisi “Ini adalah string yang digabungkan”, yang ditampilkan pada layar. Operator Unary Operator Unary hanya membutuhkan satu operand; operator ini melakukan berbagai operasi seperti penambahan/pengurangan sebuah nilai dengan penambahan/pengurangan 1 dan negasi, atau membalikkan sebuah nilai boolean. + Operator Unary plus; mengindikasikan nilai positif (angka bernilai positif walaupun tanpa operator ini) 5 Pelatihan Java ; Java Numbers and String – Ammar Shadiq – Ver 1.0 : 10-04-2010
  • 6. - Operator Unary minus; me-negasi sebuah ekspresi ++ Operator penambahan; menambahkan nilai +1 -- Operator pengurangan; mengurangi nilai -1 ! Operator logika complement; meng-invert nilai dari sebuah boolean Program UnaryDemo berikut menguji operator unary ini: class UnaryDemo { public static void main(String[] args){ int hasil = +1; // hasilnya sekarang 1 System.out.println(hasil); hasil--; // hasilnya sekarang 0 System.out.println(hasil); rhasil ++; // hasilnya sekarang 1 System.out.println(hasil); hasil = -hasil; // hasilnya sekarang -1 System.out.println(hasil); boolean sukses = false; System.out.println(sukses); // false System.out.println(!sukses); // true } } Operator penambahan/pengurangan dapat diaplikasikan pada sebelum (awalan) atau pun sesudah (akhiran) dari sebuah operan. Kode hasil++; dan ++hasil; keduanya membuat hasil ditambah 1, perbedaannya adalah pada versi awalan (++hasil) mengevaluasi nilai yang telah ditambahkan, dimana versi akhiran(hasil++) mengevaluasi nilai aslinya (sebelum ditambahkan 1). Jika anda hanya melakukan operasi penambahan/pengurangan sederhana, tidak ada masalah versi mana yang anda gunakan. Tetapi jika anda menggunakan operator ini sebagai bagian dari ekspresi yang lebih besar, versi yang anda pilih bisa jadi membuat perbedaan yang signifikan. Program PrePostDemo berikut mengilustrasikan operator unary penambahan/pengurangan: class PrePostDemo { public static void main(String[] args){ int i = 3; i++; System.out.println(i); // "4" ++i; System.out.println(i); // "5" System.out.println(++i); // "6" System.out.println(i++); // "6" System.out.println(i); // "7" } } Numbers Bagian ini adakan dimulai dengan sebuah diskusi tentang kelas Number (dalam paket java.lang) dan subclass-subclassnya. Secara khusus bagian ini akan membahas tentang situasi dimana anda diharuskan menggunakan kelas-kelas ini dibandingkan tipe data primitif. Sebagai tambahan, bagian ini akan membahas tentang kelas-kelas lain yang mungkin anda butuhkan untuk bekerja dengan angka, seperti formatting atau menggunakan fungsi matematis untuk melengkapi operator yang telah ada dalam bahasa pemrograman. 6 Pelatihan Java ; Java Numbers and String – Ammar Shadiq – Ver 1.0 : 10-04-2010
  • 7. Kelas-kelas Numbers saat bekerja dengan angka, seringkali anda menggunakan tipe data primitif pada kode anda. Seperti: int i = 500; float gpa = 3.65f; byte mask = 0xff; Adapun, alasan anda untuk menggunakan object sebagai ganti dari tipe data primitif, dan platform java menyediakan kelas pembungkus (wrapper) untuk tiap tipe data primitif. Kelas-kelas ini “membungkus” (boxes) tipe data primitif kedalam sebuah objek. Sering kali, pembungkusan dilakukan oleh compiler – jika anda menggunakan sebuah tipe data primitif dimana sebetulnya tipe data objek yang dibutuhkan, compiler membuka bungkusan (unboxes) objek untuk anda. Berikut adalah contoh boxing dan unboxing: Integer x, y; x = 12; y = 15; System.out.println(x+y); Saat x dan y ditugaskan nilai integer, compiler mem-box integer karena x dan y adalah objek integer, dalam statement println(), x dan y di-unbox sehingga dapat dilakukan operasi penambahan integer. Seluruh kelas-kelas wrapper numerik adalah subclass dari kelas abstrak Number: Catatan: Ada empat subclass dari kelas Number yang tidak didiskusikan disini. BigDecimal dan BigInteger digunakan dalam kalkulasi yang membutuhkan ketepatan tinggi. AtomicInteger dan AtomicLong digunakan dalam aplikasi multi-thread. Ada tiga alasan mengapa anda harus menggunakan objek Number dibandingkan tipe data primitif: 1.Sebagai argumen dari sebuah methode yang mengharapkan sebuah objek (sering kali digunakan saat memanipulasi sekumpulan angka). 2.Untuk digunakan sebagai constants yang didefinisikan oleh kelas, seperti MIN_VALUE dan MAX_VALUE, yang menyediakan batas atas dan batas bawah dari tipe data. 3.Untuk menggunakan metode kelas yang mengkonversi nilai ke dan dari tipe data primitif lainnya, untuk menkonversi ke dan dari String, dan untuk mengkoversi antara number systems (decimal, octal, hexadecimal, binary). 7 Pelatihan Java ; Java Numbers and String – Ammar Shadiq – Ver 1.0 : 10-04-2010
  • 8. Tabel berikut berisi daftar instace methode dari seluruh subclass kelas Number. Method-metod yang diimplementasikan oleh seluruh subclass dari kelas Number Method Deskripsi byte byteValue() short shortValue() int intValue() Mengkonversi nilai dari objek Number ke long longValue() tipe data primitif. float floatValue() double doubleValue() int compareTo(Byte anotherByte) int compareTo(Double anotherDouble) int compareTo(Float anotherFloat) Membandingkan objek Number dengan int compareTo(Integer anotherInteger) nilai variabel argumen. int compareTo(Long anotherLong) int compareTo(Short anotherShort) Menentukan apakah objek number ini sama dengan nilai objek pada argumen. Methode ini mengembalikan true jika argumen tidak null dan adalah objek yang boolean equals(Object obj) bertipe sama dan memiliki nilai numerik yang sama. Ada kebutuhan tambahan untuk objek Float dan Double yang di deskripsikan pada Java API Documentation. Tiap kelas Number berisi metode-metode lain yang berguna untuk mengkonversi angka dari dan ke string dan untuk mengkonversi antara angka System. Tabel berikut berisi daftar dari metode-metode tersebut dalam kelas Integer. Metode-metode pada subclas Number lainnya hampir sama: Metode Konversi, Kelas Integer Method Deskripsi men-Decodes sebuah string menjadi integer. Dapat menerima representasi static Integer decode(String s) string dari desimal, octal, atau hexadecimal sebagai input. static int parseInt(String s) Returns integer (hanya desimal). static int parseInt(String s, int radix) Returns integer, dari isi string berbentuk desimal, octal, atau hexadesimal (dengan 8 Pelatihan Java ; Java Numbers and String – Ammar Shadiq – Ver 1.0 : 10-04-2010
  • 9. radix 10, 2, 8 atau 16 secara berurutan) sebagai input. Mengembalikan sebuah objek String yang String toString() merepresentasikan nilai dari integer ini. Mengembalikan sebuah objek string yagn static String toString(int i) merepresentasikan sebuah integer spesifik. Mengembalikan objek integer yang static Integer valueOf(int i) menyimpan nilai dari tipe data primitif int. Mengembalikan objek integer yang static Integer valueOf(String s) menyimpan nilai dari sebuah string spesifik. Mengembalikan nilai objek integer yang menyimpan nilai integer dari sebuah string spesifik, di parse di parse dengan nilai radix. Sebagai contoh, jika s = “333” static Integer valueOf(String s, int radix) dengan radix = 8, metode ini mengembalikan nilai desimal (basis 10) yang sama dengan angka octal (basis 8) dari 333. Mem-format Tampilan Output variabel Numerik Karena seluruh Number dapat diubah menjadi String (seperti yang akan anda lihatk), anda dapat menggunakan method-method untuk menampilkan campuran dari string dan angka. Bahasa Pemrograman java juga menyediakan method-method lain yang mengizinkan programmer untuk mendapatkan kontrol yang lebih baik saat angka dilibatkan. Paket java.io memiliki kelas PrintStream yang memiliki dua metode pemformatan yang dapat anda gunakan untuk mengganti print dan println. Metode-metode ini, format dan printf, adalah metode yang sejenis. Metode System.out yang sering anda gunakan kebetulan adalah sebuah objek PrintStream, sehingga anda dapat menuliskan format maupun printf dimanapan pada kode anda(sama seperti print dan println). Sebagai contoh : System.out.format(.....); Syntax untuk kedua methode java.io.PrintStream adalah sama: public PrintStream format(String format, Object... args); Dimana format adalah sebuah string yang menspesifikasikan pem-formatan yang digunakan dan args adalah daftar dari variabel yang ditampilkan menggunakan pem-formatan. Berikut contoh sederhananya : System.out.format("Nilai dari variabel float adalah %f, sedangkan nilai dari " + "variabel integer adalah %d, dan variabel string adalah %s", floatVar, intVar, stringVar); 9 Pelatihan Java ; Java Numbers and String – Ammar Shadiq – Ver 1.0 : 10-04-2010
  • 10. Parameter pertama (format) adalah sebuah format dari string yang menspesifikasikan bagaimana objek pada parameter kedua (args) di format. String yang ter-format mengandung text sederhana juga penentuan format, yang merupakan karakter khusus yang memformat argumen dari Object....args. (Notasi Object....args dinamakan varargs, yang berarti bahwa jumlah argumen dapat beragam.) Karakter pem-formatan khusus dimulai dengan sebuah lambang persen (%) dan diakhiri dengan sebuah converter. Converter adalah sebuah karakter yang mengindikasikan tipe argumen yang di- format. Diantara lambang persen (%) dan converter anda dapat memiliki flag dan specifier pilihan. Ada banyak jenis converter, flags dan specifier, yang didokumentasikan dalam java.util.Formatter. Berikut adalah sebuah contoh sederhana: int i = 461012; System.out.format("Nilai dari variabel i adalah: %d%n", i); %dmenspesifikasikan bahwa variabel tunggal adalah sebuah integer desimal. %n adalah karakter newline yang system independent. Outuput dari potongan program diatas adalah: Nilai dari variabel i adalah: 461012 Kelas DecimalFormat Anda dapat menggunakan kelas java.text.DecimalFormat untuk mengendalikan tampilan awalan dan akhiran angka nol, pemisah ribuan, dan pemisah angka desimal. DecimalFormat menawarkan fleksibilitas yang luar biasa dalam mem-format angka, tetapi dapat menjadikan kode menjadi lebih kompleks. Contoh berikut menciptakan objek DecimalFormat, myFormatter, dengan mengirimkan sebuah string pola ke konstruktor DecimalFormat. Metode format(), yang merupakan metode yang diwariskan dari kelas NumberFormat, kemudian di panggil oleh myFormatter – myFormatter menerima sebuah nilai double sebagai argumen masukan dan mengembalikan angka yang telah ter- format dalam sebuah string: Berikut adalah contoh program yang mengilustrasikan penggunaan DecimalFormat: import java.text.*; public class DecimalFormatDemo { static public void customFormat(String pattern, double value ) { DecimalFormat myFormatter = new DecimalFormat(pattern); String output = myFormatter.format(value); System.out.println(value + " " + pattern + " " + output); } static public void main(String[] args) { customFormat("###,###.###", 123456.789); customFormat("###.##", 123456.789); customFormat("000000.000", 123.78); customFormat("$###,###.###", 12345.67); } } Output-nya adalah: 10 Pelatihan Java ; Java Numbers and String – Ammar Shadiq – Ver 1.0 : 10-04-2010
  • 11. 123456.789 ###,###.### 123,456.789 123456.789 ###.## 123456.79 123.78 000000.000 000123.780 12345.67 $###,###.### $12,345.67 Tabel berikut menjelaskan tiap baris dari output. Output DecimalFormat.java Nilai Pola Output Penjelasan Pound (#) melambangkan sebuah digit angka, lambang koma memisahkan 123456.789 ###,###.### 123,456.789 pengelompokkan angka ribuan, dan lambang titik memisahkan angka-angka desimal. Nilai disamping memiliki tiga digit disebelah kanan titik desimal, tetapi pola- 123456.789 ###.## 123456.79 nya hanya memiliki dua. Metode format menangani hal ini dengan membulatkannya ke atas. Pola disamping menspesifikasikan awalan 123.78 000000.000 000123.780 dan akhiran angka nol , karena karakter 0 yang digunakan, bukan karakter #. Karakter pertama pada pola adalah lambang dollar ($). Perhatikan bahwa 12345.67 $###,###.### $12,345.67 pada output lambang dollar ini ditampilkan pada sisi kiri. 11 Pelatihan Java ; Java Numbers and String – Ammar Shadiq – Ver 1.0 : 10-04-2010
  • 12. String Strings, yang digunakan secara luas dalam pemrograman java adalah sebuah rangkaian karakter. Pada bahasa pemrograman java, string adalah objek. Menciptakan String Cara yang paling mudah untuk menciptakan string adalah dengan menuliskan: String sambutan : “Hello world!”; Dalam kasus ini, “Hello world!” adalah sebuah string literal-sebuah rentetan karakter pada kode anda yang ditutup oleh kutip ganda. Seperti objek lain, anda dapat menciptakan objek string dengan menggunakan keyword new dan sebuah konstruktor. Kelas string memiliki tiga belas konstruktor yang mengizinkan anda untuk menyediakan nilai awal dari string menggunakan sumber-sumber yang berbeda, seperti array dari karakter: char[] helloArray = { 'h', 'e', 'l', 'l', 'o', '.'}; String helloString = new String(helloArray); System.out.println(helloString); Baris terakhir dari potongan kode ini menampilkan hello. Catatan: Kelas String bersifat immutable, sehingga sekalinya diciptakan sebuah objek string tidak dapat diubah. Kelas string memiliki sejumlah methode, beberapa diantaranya akan didiskusikan dibawah. Karena string bersifat immutable, yang dilukakan methode-methode dibawah adalah membuat string baru dan mengembalikan sebuah string baru yang berisi hasil dari operasi tersebut. Panjang String Method yang digunakan untuk mendapatkan informasi mengenai suatu objek dinamakan accessor methodes. Salah satu accessor methode yang dapat anda gunakan pada string adalah methode length(), yang mengembalikan angka jumlah karakter yang terdapat pada objek string. Setelah dua baris kode dibawah dieksekusi, len sama dengan 11: String palindrome = "Kasur rusaK"; int len = palindrome.length(); Palindrome adalah sebuah kata atau kalimat yang bersifat simetris – palindrome di eja sama, baik dari arah depan maupun belakang. Berikut adalah program pendek tetapi tidak efisien untuk membalikkan sebuah string palindrome. Program ini mempekerjakan methode charAt(i), yang mengembalikan nilai karakter ke-i pada string, dimulai dari 0. public class StringDemo { public static void main(String[] args) { String palindrome = "Dot saw I was Tod"; int len = palindrome.length(); char[] tempCharArray = new char[len]; char[] charArray = new char[len]; // put original string in an array of chars for (int i = 0; i < len; i++) { tempCharArray[i] = palindrome.charAt(i); } 12 Pelatihan Java ; Java Numbers and String – Ammar Shadiq – Ver 1.0 : 10-04-2010
  • 13. // reverse array of chars for (int j = 0; j < len; j++) { charArray[j] = tempCharArray[len - 1 - j]; } String reversePalindrome = new String(charArray); System.out.println(reversePalindrome); } } Menjalanakan program diatas akan menghasilkan output sebagai berikut: doT saw I was toD Untuk menghasilkan pembalikan string, program harus mengkonversi string ke array berisi karakter (loop pertama), membalikkan array ke pada array kedua (loop kedua), lalu kemudian mengubahnya lagi menjadi String. Kelas string memiliki sebuah method, getChars(), untuk mengkonversi sebuah string, ataupun sebagian string kedalam array dari karakter-karakter tersebut sehingga dapat kita ganti loop pertama pada program diatas dengan: palindrome.getChars(0, len, tempCharArray, 0); Menggabungkan String Kelas String memiliki sebuah methode untuk menggabungkan (concatenating) dua string: string1.concat(string2); Ini mengembalikan sebuah string baru dengan string2 yang ditambahkan di akhir string1. String umumnya digabungkan dengan operator + seperti pada: "Hello," + " world" + "!" Yang menghasilkan : "Hello, world!" Operator + digunakan secara luas pada pernyataan untuk menampilkan ke layar. Sebagai contoh; String string1 = "saw I was "; System.out.println("Dot " + string1 + "Tod"); Yang menampilkan Dot saw I was Tod Penggabungan seperti itu dapat terdiri dari berbagai objek. Untuk setiap objek yang bukan string, methode toString() dipanggil untuk mengkonversi object tersebut ke string. Catatan: Bahasa pemrograman java tidak mengizinkan string literal memiliki beberapa baris pada kode, sehingga anda harus menggunakan operator penggabungan + pada akhir dari tiap baris. Sebagai contoh, String quote = "Sekarang adalah waktunya untuk tiap manusia" + "yang baik untuk membantu negaranya."; Memecah string menjadi dua baris menggunakan operator +, sekali lagi, sangat umum pada pernyataan yang menampilkan ke layar. 13 Pelatihan Java ; Java Numbers and String – Ammar Shadiq – Ver 1.0 : 10-04-2010
  • 14. Membuat String format Anda telah melihat methode printf() dan format() untuk menampilkan output dengan angka yang telah terformat. Kelas string memiliki methode yang sama, format(), yang mengembalikan sebuah objek string daripada sebuah object PrintStream. Menggunakan methode static format() mengizinkan anda untuk menciptakan sebuah string terformat yang dapat anda guna ulang, dibandingkan dengan statement print sekali pakai. Sebagai contoh, dibanding menuliskan: System.out.printf("Nilai dari variabel float adalah %f, sedangkan nilai " + "dari variabel integer adalah %d, dan variabel string “ + “adalah %s", floatVar, intVar, stringVar); anda dapat menuliskan String fs; fs = String.format("Nilai dari variabel float adalah %f, sedangkan nilai" + "dari variabel integer adalah %d, dan variabel string “ + “adalah %s", floatVar, intVar, stringVar); System.out.println(fs); Mengkonversi String ke Number Sering kali, sebuah program berakhir dengan data numerik dalam objek string – sebagai contoh : sebuah nilai yang dimasukkan oleh user. Subclass-subclass Number yang membungkus tipe data numerik primitif ( Byte, Integer, Double, Float, Long, and Short) masing-masing memiliki sebuak method kelas yang bernama valueOf yang mengkonversi sebuah string menjadi objek dari tipe data tersebut. Berikut adalah contoh program ValueOfDemo yang mendapatkan dua string dari Command Line, mengkonversi kedua string tersebut ke number. Dan melakukan operasi aritmetik pada nilai yang terkandungnya: public class ValueOfDemo { public static void main(String[] args) { //program ini membutuhkan dua argumen pada Command Line // contoh pengeksekusian : javac ValueOfDemo 23 45 if (args.length == 2) { //mengkonversi string ke number float a = (Float.valueOf(args[0]) ).floatValue(); float b = (Float.valueOf(args[1]) ).floatValue(); // lakukan beberapa operasi aritmetik dan tampilkan ke layar System.out.println("a + b = " + (a + b) ); System.out.println("a - b = " + (a - b) ); System.out.println("a * b = " + (a * b) ); System.out.println("a / b = " + (a / b) ); System.out.println("a % b = " + (a % b) ); } else { System.out.println("program ini membutuhkan dua arg masukan."); 14 Pelatihan Java ; Java Numbers and String – Ammar Shadiq – Ver 1.0 : 10-04-2010
  • 15. } } } Berikut adalah output dari program diatas saat anda memasukkan nilai 4.5 dan 87.2 pada argumen command-line: a + b = 91.7 a - b = -82.7 a * b = 392.4 a / b = 0.0516055 a % b = 4.5 Catatan: tiap subclass Number yang membungkus tipe data numerik primitif juga menyediakan sebuah metode parseXXX()(contohnya parseFloat()) yang dapat digunakan untuk mengkonversi string ke tipe data numerik primitif. Metode parseFloat() bersifat lebih langsung daripada method valueOf(). Sebagai contoh, pada program ValueOfDemo, kita dapat menggunakan: float a = Float.parseFloat(args[0]); float b = Float.parseFloat(args[1]); Mengkonversi Number ke String kadang kala anda membutuhkan cara untuk mengkonversi sebuah string karena anda harus mengoperasikan nilai dari suatu variabel dalam bentuk String. Ada beberapa cara mudah untuk melakukan ini : int i; String s1 = "" + i; //Concatenate "i" with an empty string; //conversion is handled for you. atau String s2 = String.valueOf(i); //The valueOf class method. Tiap subclass dari Number memiliki sebuah methode toString() (Kebanyakan kelas Pada java memilikinya), yang mengkonversi tipe data primitif yang dimilikinya kedalam bentuk String. Sebagai contoh: int i; double d; String s3 = Integer.toString(i); String s4 = Double.toString(d); Contoh program ToStringDemo dibawah menggunakan metod toString untuk mengkonversi sebuah angka kedalam bentuk String. Program ini lalu menggunakan metode-metode string tertentu untuk mengkomputasi banyaknya digit sebelum dan sesudah titik desimal: public class ToStringDemo { public static void main(String[] args) { double d = 858.48; String s = Double.toString(d); int dot = s.indexOf('.'); System.out.println(dot + " digit sebelum titik desimal."); System.out.println( (s.length() - dot - 1) + " digit setelah titik desimal."); } } // output 3 digit sebelum titik desimal. 2 digit setelah titik desimal. 15 Pelatihan Java ; Java Numbers and String – Ammar Shadiq – Ver 1.0 : 10-04-2010