Selasa, 10 Oktober 2017

JAVA PROGRAMMING


Gambar 6.1. di samping ini saya yakin kalian pernah melihatnya.Ya, inilah notasi umum dari salah satu teori matematika, yaitu matrik. Operasi matrik, merupakan operasi  yang banyak digunakan dalam banyak aktifitas yang membutuhkan perhitungan dengan model banyak  bilangan.Cobalah buka kembali buku matematika kalianyang membahas matrik kalian akan melihat banyak sekali yang bisa kita lakukan dengan matrik. Pernahkan kalian mendengar perangkat lunak bernama MATLAB? Perangkat lunak yang didasarkan pada operasi matrik ini sangat populer dikalangan ilmuan, insinyur dan orang-orang yang banyak berkecimpung dengan perhitungan. Dengan menggunakan array kalian juga bisa membuat program yang dapat melakukan operasi matrik seperti halnya MATLAB. Standar kompetensi algoritma pemrograman lanjutan terdiri atas empat kompetensi dasar yaitu, menggunakan array multidimensi dan menggunakan prosedur dan fungsi. Dalam penyajian pada buku ini, setiap kompetensi dasar memuat uraian materi, dan latihan. Ringkasan diletakkan pada setiap akhir bab. Sebelum mempelajari kompetensi ini ingatlah kembali prinsip pemecahan masalah, algoritma pemrograman dasar dan materi-materi pendukung dari mata pelajaran matematika. Pada akhir bab, tercantum soal-soal latihan yang disusun dari soal-soal yang mudah hingga soal-soal yang sulit. Latihan soal ini digunakan untuk mengukur kemampuan terhadap kompetensi dasar ini. Artinya setelah mempelajari kompetensi dasar ini secara mandiri dengan bimbingan guru sebagai fasilitator, ukurlah sendiri kemampuan dengan mengerjakan soal-soal latihan tersebut.


6.1. ARRAY MULTIDIMENSI

6.1.1. Pengertian Array Multidimensi
Array satu dimensi seperti pada Bab 5 sangat baik untuk menyimpan data sejenis yang berurutan, namun bagaimana bila kita ingin menyimpan daftar kota dengan temperature rata-ratanya secara bersama-sama, atau menyimpan data nama Siswa dengan nilai ujiannya? Pada kasus seperti ini kita dapat menggunakan dua array satu dimensi, satu array untuk menyimpan nama dan satu array untuk menyimpan nilai. Namun ini bukanlah pilihan yang baik karena akan menyulitkan dan membuat kode program menjadi tidak efisien. Pilihan yang lebih baik adalah dengan menggunakan pendekatan Array Multidimensi. Kita dapat menyimpan dengan menggunakan array dua dimensi untuk kasus di atas. Perhatikan gambar berikut ini untuk melihat perbedaan dua array satu dimensi dengan array dua dimensi.

Gambar 6.2. Perbedaan array satu dimensi dan dua dimensi

Array dua dimensi mempunyai dua indeks. Indeks yang pertama menunjukkan baris sedangkan indeks yang kedua adalah kolom. Pada Gambar 6.2, variable array NilaiSiswa memiliki dua indeks yaitu indeks pertama 4 yang menyatakan nilai indeks maksimal untuk baris adalah 4 (atau ada 5 baris karena indeks baris pertama bernilai 0), sedangkan indeks kedua adalah 1 yang menunjukkan nilai indeks maksimal untuk kolom adalah 1 (atau ada 2 kolom karena indeks kolom pertama bernilai 0). Untuk mendeklarasikan array dua dimensi dapat digunakan cara sebagai berikut :

Dim NilaiSiswa(4,1)

Sedangkan untuk mengakses nilai pada array dua dimensi dapat digunakan sepeti contoh berikut.

Contoh 6.1. Membaca nilai array multidimensi

Print NilaiSiswa(3,0)
Print NilaiSiswa(3,1)

Pernyataan pertama dari contoh 6.1, akan menghasilkan output “Dono” (Baris ke 4 dan kolom pertama) sedangkan pernyataan kedua menghasilkan output 56 (Baris ke 4 kolom kedua). Keuntungan menggunakan array multidimensi adalah secara konseptual, array ini lebih mudah dikelola. Sebagai contoh kita ingin membuat program permainan dan kita ingin mencari posisi dari suatu tempat pada sebuah papan permainan. Setiap bujursangkar dapat diidentifikasi dengan menggunakan dua angka, yaitu koordinat horizontal dan vertikalnya (atau baris dan kolomnya). Struktur seperti ini adalah tipikal penggunaan array dua dimensi. Koordinat horizontal adalah indeks barisnya sedangkan koordinat vertical adalah indeks kolomnya. Bentuk array multidimensi ini dapat dikembangkan menjadi lebih dari dua dimensi. Pernyataan Dim Matrix(9,9,9) akan membuat array multidimensi yang memiliki 1000 elemen (10x10x10). 6.1.2. Operasi Matriks dengan Array Multidimensi Seperti disinggung di awal bab ini, kita bisa menggunakan array untuk melakukan operasi matrik. Perhatikan Gambar 6.3 berikut ini.

Gambar 6.3 ini menunjukkan matrik dua dimensi yang terdiri dari 4 baris dan 3 kolom. Atau biasa dinotasikan sebagai A4x3. Hal ini identik dengan array multidimensi dengan yang kita definisikan sebagai A(3, 2). Perhatikan kembali angka pada indeks array selalu lebih kecil satu dari jumlah sesungguhnya karena indeks selalu dimulai dengan 0. Sedangkan indeks pada matrik dimulai pada angka 1. Untuk membuat array atau matrik seperti pada Gambar 6.3, maka kita memerlukan struktur pengulangan. Bentuk for dapat kita gunakan karena kita telah tahu dengan pasti berapa baris dan berapa kolomnya. Gambar berikut menyajikan flowchart untuk membuat matrik pada Gambar 6.3.

Pada Gambar 6.4. kita melihat dua buah variabel counter yaitu I dan J. I digunakan untuk membuat indeks pada baris yaitu 4 baris (1 to 4), sedangkan J digunakan untuk membuat indeks pada kolom yaitu 3 kolom (1 to 3). Pembacaan data akan berlangsung sebagai berikut:

A(1,1) = ....
A(1,2) = ....
A(1,3) = ....
A(2,1) = ....
A(2,2) = ....
A(2,3) = .... dan seterusnya.

Gambar 6.4. Algoritma untuk membuat matrik 4 x 3.

Contoh 6.2. Operasi penjumlahan pada matrik.
Perhatikan matrik berikut ini:

Operasi matriks di atas adalah operasi penjumlahan dua buah matrik dengan dimensi yang sama yaitu 3x3. Bagaimanakah algoritma penyelesaiannya?

Penyelesaian:
Pada contoh soal di atas ada dua buah matriks misalkan A matriks pertama dan B adalah matriks kedua. Selain itu juga dibutuhkan matrik ke tiga yaitu C sebagai hasil penjumlahan matriks A dan B. Gambar 6.5. menunjukkan algoritma penjumlahan dua buah matriks.


Gambar 6.5. Algoritma penjumlahan dua buah matrik


6.2 PROSEDUR DAN FUNGSI

Setiap bahasa pemrograman selalu menyediakan fungsi-fungsi yang sudah didefinisikan oleh bahasa pemrograman tersebut (built-in function). Namun ada kalanya kita memerlukan suatu prosedur tertentu yang kita gunakan berulang kali dan tidak tersedia dalam built-in function. Prosedur adalah sekumpulan perintah yang merupakan bagian dari program yang lebih besar yang berfungsi mengerjakan suatu tugas tertentu. Prosedur atau kadang disebut subrutin / subprogram biasanya relative independent terhadap bagian kode program yang lain. Atau sebenarnya prosedur dapat berdiri sendiri. Keuntungan menggunakan prosedur adalah :
o mengurangi duplikasi kode program.
o memberikan kemungkinan penggunaan kembali kode untuk program yang lain.
o memecah masalah yang rumit dalam masalah-masalah yang lebih kecil dan lebih mudah
   diselesaikan (lihat prinsip problem reduction pada Bab 2).
o membuat kode program lebih mudah dibaca.
o dapat digunakan untuk menyembunyikan detil program.

Pada flowchart untuk menuliskan prosedur digunakan notasi Predefined Process (lihat Bab 5 untuk notasi flowchart). Secara skematis penggunaan prosedur dapat dilihat pada Gambar 6.6.

Gambar 6.6. Skema penggunaan prosedur.

Gambar 6.6. menunjukkan ada proses utama yang terjadi dan ada prosedur yang sebenarnya merupakan bagian dari proses utama ini. Ketika proses utama membutuhkan suatu tugas tertentu maka proses utama akan memanggil prosedur tertentu menyelesaikan tugas tersebut. Perhatikan contoh berikut:

Buatlah algoritma menghitung luas segitiga, segiempat, dan lingkaran.

Penyelesaian:
Untuk membuat algoritma ini kita dapat memandang proses perhitungan luas segitiga, luas segiempat dan luas lingkaran sebagai bagian program yang berdiri sendiri. Kita dapat membuat prosedur untuk masing-masing proses. Dan kita akan memanggil prosedur tersebut dari proses utama (Gambar 6.7).
Gambar 6.7. Penyelesaian contoh 6.3.

Urutan proses pada Gambar 6.7 adalah sebagai berikut.
o Pembacaan data
o Pada proses utama akan terjadi pengecekan pada data yang dibaca,
o Apabila data yang dibaca adalah untuk segitiga, maka proses utama akan memanggil prosedur
   hitung luas segitiga dengan membawa nilai variable yang diperlukan oleh prosedur luas hitung
   segitga.
o Proses perhitungan luas segitiga hanya dilakukan pada prosedurtersebut.
o Setelah proses perhitungan maka hasil perhitungan akan dibawa kembali ke proses utama untuk
   dicetak hasilnya.Urutan proses yang sama juga terjadi jika data yang dibaca adalah untuk
   segiempat atau lingkaran.

Prosedur yang baik memiliki ciri-ciri sebagai berikut :
o Hanya memiliki satu fungsi tujuan (logical inherent). Sebuah prosedur sebaiknya hanya memiliki
   satu fungsi tujuan dan tidak bercampur dengan tujuan-tujuan lain. Hal ini untuk membuat
   prosedur lebih focus sehingga tujuan akan dapat tercapai dengan baik.
o Tidak tergantung pada prosedur lain (independent). Sebuah prosedur harusnya bersifat mandiri,
   artinya prosedur ini dapat berjalan dan diuji tanpa menunggu bagian lainnya selesai. Selain itu
   variable-variabel yang digunakan dalam prosedur tersebut tidak mempengaruhi variable-variabel
   yang digunakan pada bagian lain di keseluruhan program.
o Berukuran kecil (small size). Yang dimaksud ukuran disini adalah panjang algoritma atau
   panjang kode program pada suatu prosedur. Ukuran kecil akan mudah dibaca dan diperbaiki.
   Apabila sebuah modul sudah terlalu besar maka sebaiknya dipertimbangkan untuk
   dipecah-pecah menjadi beberapa modul yang lebih kecil.

6.3 RINGKASAN
    •   Array dua dimensi mempunyai dua indeks. Indeks yang pertama menunjukkan baris
        sedangkan indeks yang kedua adalah kolom.
    •   Pembacaan data dan penulisan data pada array multidimensi dilakukan dengan langsung
         menunjuk pada nomor indeksnya
    •   Prosedur adalah sekumpulan perintah yang merupakan bagian dari program yang lebih
        besar yang berfungsi mengerjakan suatu tugas tertentu.



          Gambar cangkir dengan uap mengepul diatasnya serta tulisan Java seperti Gambar 8.1 ini mungkin pernah kalian lihat. Ya, ini adalah logo dari bahasa pemrograman Java yang popularitasnya meningkat beberapa tahun belakangan ini. Banyak game dan aplikasi yang digunakan pada perangkat mobile seperti telepon selular dan PDA dibuat dengan bahasa ini. Bahasa ini dikenal karena portabilitas dan dukungan pada konsep pemrograman berorientasi obyek. Bab ini meliputi dua standar kompetensi, yaitu membuat program dalam bahasa pemrograman berorientasi obyek dan membuat program aplikasi menggunakan Java. Hal ini karena kedekatan konsep antara Java dan pemrograman berorientasi obyek. Standar kompetensi membuat program dalam bahasa pemrograman berorientasi obyek terdiri dari empat kompetensi dasar yaitu tipe data dan kontrol program, pembuatan kelas, penggunaan inheritance, polymorphism, dan overloading, dan penggunaan interface dan paket. Sedangkan standar kompetensi membuat program aplikasi menggunakan Java terdiri dari lima kompetensi dasar, yaitu menjelaskan file I/O, tipe data dan variabel, menerapkan operator, menjelaskan exception handling, menerapkan multithreading dan menjelaskan network programming. Dalam penyajian pada buku ini, satu sub bab tidak langsung merujuk pada satu kompetensi dasar. Ringkasan diletakkan pada setiap akhir bab kemudian dilanjutkan dengan soal-soal latihan. Sebelum mempelajari kompetensi ini ingatlah kembali sistem operasi, prinsip pemecahan masalah, algoritma pemrograman dasar dan lanjutan, pemrograman dengan VB dan VB.Net dan materi-materi pendukung dari mata pelajaran lain.


8.1. KONSEP PEMROGRAMAN BERORIENTASI OBYEK

       Pemrograman Berorientasi Obyek (Object Oriented Programming – OOP) adalah programming paradigm yang menggunakan obyek dan interaksinya untuk merancang aplikasi dan program komputer. OOP tidak banyak digunakan sebelum awal tahun 1990an. Tapi sekarang menjadi sesuatu yang sudah lumrah digunakan. Bahasa-bahasa pemrograman seperti keluarga dotNet dari Microsoft (Visual Basic.Net, Visual C#, dan Visual J), Borland Delphi, Java, Phyton, PHP versi 5 ke atas, C++ dan banyak lainnya merupakan bahasa pemrograman yang mendukung konsep OOP. Apakah obyek itu? Semua benda yang ada didunia ini dapat kita sebut sebagai obyek. Guru mata pelajaran RPL kalian adalah suatu obyek. Buku yang kalian pegang ini juga suatu obyek. Bahkan mata pelajaran RPL adalah juga sebuah obyek. Setiap obyek akan mempunyai karakteristik dan tingkah laku tertentu. Karakteristik disebut attribute dan tingkah laku disebut sebagai behavior atau method. Dalam difinisi pemrograman berorientasi obyek dikenal adanya kelas dan obyek. Class atau kelas mendefinisikan karakteristik abstrak dari sesuatu termasuk atribut atau sifat-sifat dari sesuatu dan apa yang dapat dikerjakan oleh sesuatu (method). Sebagai contoh, mobil adalah sebuah kelas yang memiliki attribut warna, merek, tipe dan lain-lain. Mobil juga punya method antara lain, maju, mundur dan berhenti (lihat Gambar 8.2).


Gambar 8.2. Kelas, atribut dan method.

        Obyek adalah contoh dari kelas yang sudah didefinisikan. Atribut dan method dari kelas secara otomatis akan menurun pada obyek namun dengan kekhususan. Sebagai ilustrasi kita perhatikan Gambar 8.2. Pada gambar tersebut, kita bisa identifikasi kelasnya adalah mobil dengan atribut dan methodnya. Obyeknya adalah sebuah mobil sedan dengan merk Toyota, dan warnanya adalah merah. Sedan itu juga memiliki method maju, mundur dan berhenti. Pada kasus ini mobil sedan disebut sebagai instance atau turunan dari kelas mobil. Ada beberapa konsep penting yang kalian harus pahami dalam pemrograman berorientasi yaitu, abstraksi, enkapsulasi, inheritance dan polymorphism.

8.1.1. Abstraksi
          Abstraction atau disebut juga composition merupakan prinsip penyederhanaan dari sesuatu yang kompleks dengan cara memodelkan kelas sesuai dengan masalahnya. Untuk lebih memperjelas pengertian coba perhatikan Gambar 8.3. Pada gambar tersebut terlihat sebuah mobil jika dipecah-pecah bagian-bagiannya kita akan dapatkan seperti ban, mesin, rangka mobil, kaca, dan lain-lain dan hal in berlaku sebaliknya. Jika kita gabungkan bagian-bagian tersebut maka kita akan mendapatkan sebuah kelas mobil. Pada pemrograman berorientasi obyek biasanya kalau kita menjumpai beberapa kelas atau obyek yang kalau diidentifikasi memiliki banyak kesamaan atribut dan method maka kita akan menggabungkan kelas-kelas tersebut menjadi satu super class.

Gambar 8.3. Contoh abstraction.

8.1.2. Enkapsulasi
          Prinsip encapsulation adalah prinsip penyembunyian detil dari sebuah kelas terhadap obyek yang berinteraksi terhadapnya. Sebagai contoh ketika kita menjalankan mobil, sebenarnya kita sedang berinteraksi dan kita meminta kepada mobil untuk menjalankan methodnya seperti maju, mundur atau berhenti. Kita berinteraksi hanya dengan beberapa bagian dari mobil (interface) seperti persneling, setir, pijakan gas, pijakan rem dan bagian lain. Tapi detil proses yang terjadi didalam mobil bagaimana bisa maju, mundur atau berhenti kita tidak perlu tahu.

8.1.3. Inheritance
          Inheritance atau pewarisan adalah prinsip pewarisan sifat dari orang tua ke anak atau turunannya yang diterapkan pada kelas. Orang tua memiliki atribut dan method yang lebih umum dibandingkan dengan anak atau turunannya. Pada Gambar 8.4. kita bisa tahu bahwa mobil memiliki atribut dan method yang lebih umum dibandingkan dengan sedan , truk atau bus. Mobil sebagai kelas yang mewarisi disebut sebagai super class, sedangkan sedan, truk dan bus sebagai kelas yang diwarisi disebut sub class.

8.1.4. Polymorphism
          Polymorphism mungkin merupakan konsep pemrograman beroerientasi obyek yang paling sulit dimengerti. Arti dari polymorphism adalah kemampuan dari suatu obyek untuk mempunyai lebih dari satu bentuk. Atau dalam pengertian lain adalah kita dapat menerapkan sesuatu hal yang berbeda melalui suatu cara yang sama. Sebagai contoh kalau ada empat ekor hewan berbeda yaitu burung, ular, katak, dan singa kemudian kita minta untuk bergerak, maka burung akan terbang, ular akan melata, katak melompat, singa mungkin akan mberlari. Jadi suatu method yang sama mungkin bisa diterapkan secara lain jika obyek yang menerapkan adalah berlainan.

8.2. PENGENALAN PADA JAVA

       Bahasa pemrograman Java pertama lahir dari The Green Project, yang berjalan selama 18 bulan, dari awal tahun 1991 hingga musim panas 1992. Proyek tersebut menggunakan versi yang dinamakan Oak. Nama Oak ini tidak dipakai untuk versi release Java karena sebuah perangkat lunak sudah terdaftar dengan merek dagang tersebut, sehingga diambil nama penggantinya menjadi "Java". Nama ini diambil dari kopi murni yang digiling langsung dari biji (kopi tubruk). Saat ini Java berada dibawah lisensi Sun Microsystems
      Menurut definisi dari Sun, Java adalah nama untuk sekumpulan teknologi untuk membuat dan menjalankan perangkat luinak pada komputer standalone ataupun pada lingkungan jaringan. Orang orang yang berkecimpung dalam dunia pemrograman lebih suka menyebut Java sebagai sebuah teknologi dibanding hanya sebuah bahasa pemrograman, karena Java lebih lengkap dibanding sebuah bahasa pemrograman konvensional.

8.2.1. Kebutuhan Perangkat Lunak
          Untuk membuat program Java paling tidak harus tersedia dua buah software yaitu:
          • Java 2 SDK Standard Edition (J2SE). Perangkat lunak ini merupakan yang akan kita
          gunakan untuk mengkompilasi kode program Java yang kita buat. Selain itu pada perangkat
          lunak ini tersedia kelas-kelas yang dapat kita gunakan untuk membangun aplikasi desktop,
          grafis, keamanan, konektivitas basis data dan jaringan. Perangkat lunak ini dapat
          di-download gratis di situs Sun Microsystem. Setelah itu perangkat lunak ini harus diinstal
          pada system operasi yang kita pakai.
          • Text Editor. Perangkat lunak ini berfungsi untuk menuliskan kode-kode program. Notepad,
          Vi, Gedit, merupakan contoh-contoh teks editor yang dapat digunakan. Namun
          menggunakan teks editor agak menyulitkan karena tidak tersedia fasilitas bantu yang
          memudahkan dalam menuliskan kode program. Saat ini beberapa IDE tersedia gratis di
          internet. IDE tersebut telah menyediakan banyak fasilitas seperti syntax coloring, auto
          completion, dan template untuk memudahkan membuat aplikasi berbasis Java. NetBeans
          (www.netbeans.org) dan Eclipse (www.eclipse.org) merupakan dua buah IDE yang sangat
          terkenal dan sangat kuat. Gambar 8.5. menunjukkan tampilan NetBeans IDE.

 Gambar 8.5. NetBeans IDE.

8.2.2. Kompilasi Kode Program
       Sebelum kita membuat program dan mengkompilasinya kita harus mengatur ClassPath. ClassPath adalah suatu sistem variabel yang digunakan untuk mengatakan pada program yang ditulis dengan bahasa Java tempat lokasi-lokasi yang akan digunakan. Misalkan kita meletakkan kode program kita di direktori d:\TestCode\Java, maka kita perlu mengatur path agar kita bisa menggunakan compiler java dari direktori ini. Berikut ini langkahlangkah membuat classpath:

• Buka command-prompt di Windows kemudian setelah terbuka ketikkan :

   Set PATH=C:\progra~1\java\jdk1.5.0\bin;%PATH%
   Set CLASSPATH=.;D:\TestCode\Java

Path di atas adalah jika kita menggunakan JDK versi 1.5, jika versi yang lain maka tinggal menyesuaikan.

• Periksa apakah setting sudah benar dengan mengetikkan perintah java pada direktori manapun dari command prompt. Setelah classpath terbentuk, coba buka Notepad kemudian ketikkan kode berikut ini.

    public class Main {
           //isi blok
           public static void main(String[] args) {
           System.out.println("Hallo ini Java lho");
            }
            }

           Kemudian simpan file kode tersebut dengan nama yang sama dengan class yang ada pada kode tersebut yaitu Main dan diakhiri dengan ekstensi.java. Simpan di lokasi yang telah kita tetapkan di atas (lihat Gambar 8.6). Aturan penulisan nama file di Java sangat ketat, sehingga jika kalian member
nama file tidak sama dengan nama kelasnya, maka program akan menolak untuk dieksekusi.
         Pada kode program di atas, baris pertama menunjukkan nama class yaitu Main. Pada Java semua kode seharusnya ditempatkan didalam deklarasi class. Kita melakukannya dengan menggunakan kata kunci class. Sebagai tambahan, class menggunakan akses khusus public, yang menunjukkan bahwa class kita mempunyai akses bebas ke class yang lain dari package yang lain pula (package merupakan kumpulan class-class).
            Setelah deklarasi class kemudian diikuti tanda { yang menunjukkan awal blok kode. Tanda ini harus ditutup dengan tanda } sebagai akhir blok.
            Baris yang dimulai dengan tanda // adalah komentar. Kemudian baris berikutnya adalah deklarasi nama method. Dalam hal ini nama method-nya adalah main (method utama). Kita dapat membuat method-method lainnya diluar main ini. Setelah deklarasi ini diikuti juga dengan blok kode. Pada blok kode berisi pernyataan System.out.println("Hallo ini Java lho");. Perintah System.out.println(), menampilkan teks yang diapit oleh tanda petik ganda (“ ”) pada layar.
Gambar 8.6. Nama file dan lokasi penyimpanan.

           Sekarang buka command prompt dan arahkan ke direktori tempat file java kalian simpan dan ketikkan seperti pada Gambar 8.7. Perhatikan cara penulisan dan hasil yang diperoleh.

Gambar 8.7. Cara eksekusi program dalam Java.

             Sebelum dapat dieksekusi, maka kode program (Main.java) harus dikompilasi dengan menggunakan perintah javac seperti terlihat di Gambar 8.7. Setelah kompilasi berhasil, maka program dapat kita eksekusi dengan menggunakan perintah java. Proses kompilasi akan menghasilkan file dengan nama Main.class (periksa direktori kalian dengan perintah dir, dan cari file dengan akhiran .class). Yang kita panggil pada perintah java adalah file dengan akhiran class ini dan bukan lagi kode sumber yang berakhiran .java.

8.3. TIPE DATA, VARIABEL, DAN PERNYATAAN INPUT/OUTPUT (I/O)

8.3.1. Tipe Data
        Ada 8 tipe data dasar pada Java yaitu boolean (untuk bentuk logika), char (untuk bentuk tekstual), byte, short, int, long (integral), double and float (floating point). Tabel 8.1 berikut menunjukkan penjelasan tentang tipe data tersebut.

Tabel 8.1. Tipe data pada Java.










           Pada Java, String bukan merupakan tipe data primitif (namun merupakan suatu Class). String mewakili tipe data yang terdiri atas beberapa karakter. String ditulis dengan menggunakan tanda petik ganda (“”). Contoh-contoh berikut menunjukkan bagaimana menggunakan tipe-tipe data di atas. Ketikkan kode pada contoh-contoh berikut kemudian kompilasi dan jalankan. Perhatikan output dari program.

Contoh 8.1. Penggunaan tipe data integral.

          public class ContohPerhitungan {
              public static void main(String[] args) {
                  byte a = 1;
                  short b = 12;
                  int c = 300, d, e;
                  d = a + b + c;
                  e = a * b * c;
                  System.out.println("Hasil penjumlahan = " + d);
                  System.out.println("Hasil perkalian = " + e);
               }
            }

Contoh 8.2. Penggunaan tipe data float.

          public class LuasLingkaran {
              public static void main(String[] args) {
                  double pi = 3.1416;
                  double r = 2.12;
                  double luas;
                  luas = pi * r * r;
                  System.out.println("Luas Lingkaran = " + luas);
              }
          }

Contoh 8.3. Penggunaan tipe data char.

          public class tipeChar {
              public static void main(String[] args) {
                  char ch = 'A';
                  System.out.println("ch = " + ch);
                  ch++;
                  System.out.println("ch = " + ch);
             }
          }

8.3.2. Variabel dan Konstanta
          Aturan penamaan (identifier) variabel dan konstanta seperti terdapat pada Bab 5 juga berlaku pada Java. Selain itu penulisan identifier pada Java bersifat case-sensitive. Artinya huruf besar dan huruf kecil dianggap suatu yang berbeda. Tidak seperti pada VB, Java mensyaratkan kita mendeklarasikan variabel dan konstanta lebih dulu. Kalau tidak maka kode program tidak akan dapat dikompilasi.

           Cara pendeklarasian variabel adalah sebagai berikut:

                           <tipe data> <nama variabel> [=nilai awal];

           Nilai awal bersifat opsional atau boleh dicantumkan atau tidak. Perhatikan contoh 8.1 di atas. Variabel a, b, dan c telah ditentukan nilai awalnya. Sedangkan variabel d dan e tidak ditentukan nilainya. Perhatikan juga contoh 8.2 dan 8.3 untuk pendeklarasian variabel.

8.3.3. Input / Output
         Pada contoh-contoh kode program di atas sebenarnya kita telah menggunakan salah satu cara untuk menampilkan output ke layar, yaitu perintah System.out.println, namun kita belum pernah menggunakan pernyataan untuk mendapatkan input. Berikut ini kita akan pelajari bagaimana menggunakan pernyataan input dan output pada Java. Untuk dapat menangkap input dari keyboard, maka kita harus menggunakan kelas BufferedReader yang berada di java.io package. Sehingga di awal program kita harus mencantumkan kelas tersebut pada kode program. Perhatikan contoh berikut.

Contoh 8.4. Pernyataan input pada Java.

          import java.io.BufferedReader;
          import java.io.InputStreamReader;
          import java.io.IOException;

          public class InputKeyboard
          {
              public static void main( String[] args ){
              BufferedReader dataIn = new BufferedReader(new
                                   InputStreamReader( System.in) );
              String name = "";

              System.out.print("Ketikkan nama anda:");

              try{
                                      name = dataIn.readLine();
                                      }catch( IOException e ){
                                      System.out.println("Error!");
          }
          System.out.println("Hai " + name +"!");
              }
          }

              Tiga baris yang diawali dengan perintah import menunjukkan bahwa kita akan menggunakan kelas BufferedReader, InputStreamReader dan IOException yang berada di java.io package. Penjelasan tentang package akan kita bahas pada bagian lain dari bab ini.

         Pada statement,
      
                        BufferedReader dataIn = new BufferedReader(new
                        InputStreamReader( System.in) );

               kita mendeklarasikan sebuah variabel bernama dataIn dengan tipe kelas BufferedReader. Kemudian, kita mendeklarasikan variabel String dengan identifier name. Pernyataan ini digunakan untuk menunjukkan tempat menyimpan input dari pengguna. Variabel name diinisialisasi sebagai String kosong "". Baris berikutnya adalah memberikan output string seperti yang telah kita pelajari dengan menggunakan pernyataan System.out.print;
                 Sekarang, blok di bawah ini merupakan try-catch blok (kita akan bahas tentang ini di sub bab exception)

try{
            name = dataIn.readLine();
}catch( IOException e ){
            System.out.println("Error!");
}

                Pada baris ini menjelaskan bahwa kemungkinan terjadi error pada statement name = dataIn.readLine(); akan ditangkap. Jika ada kesalahan maka tulisan “Error” akan disampaikan. Jika tidak ada kesalahan maka variabel name akan diisi dengan apa yang dimasukkan oleh pengguna melalui keyboard. Dan akan ditampilkan pada pernyataan terakhir. Untuk menampilkan output yang kita inginkan, dapat menggunakan perintah sebagai berikut :

System.out.println()
System.out.print()

                         System.out.println()akan membuat baris baru sedangkan
System.out.print() tidak akan membuat baris baru.

8.4. OPERATOR

8.4.1. Operator Aritmatika
          Operator aritmatika yang digunakan pada Java hampir sama dengan yang digunakan pada VB. Hanya pada penggunaan operator modulus yang berbeda notasinya. VB menggunakan mod sedangkan Java menggunakan tanda %. Tabel 8.2 menunjukkan operator aritmatika yang ada di Java.

Tabel 8.2. Operator aritmatika pada Java
Contoh berikut menunjukkan bagaimana menggunakan operator aritmatika. Ketikkan kode pada contoh berikut kemudian kompilasi dan jalankan. Perhatikan output dari program.

Contoh 8.4. Penggunaan operator aritmatika.

public class DemoAritmatika
{
     public static void main(String[] args)
     {
         int i = 21;
         int j = 38;
         double x = 9.123;
         double y = 12.78;
     //Cetak nilai variabel
         System.out.println("Nilai Variabel...");
         System.out.println(" i = " + i);
         System.out.println(" j = " + j);
         System.out.println(" x = " + x);
         System.out.println(" y = " + y);
    //penjumlahan
         System.out.println("Penjumlahan...");
         System.out.println(" i + j = " + (i + j));
         System.out.println(" x + y = " + (x + y));
   //pengurangan
         System.out.println("Pengurangan...");
         System.out.println(" i - j = " + (i - j));
         System.out.println(" x - y = " + (x - y));
  //perkalian
         System.out.println("Perkalian...");
         System.out.println(" i * j = " + (i * j));
         System.out.println(" x * y = " + (x * y));
  //pembagian
         System.out.println("Pembagian...");
         System.out.println(" i / j = " + (i / j));
         System.out.println(" x / y = " + (x / y));
  //modulus
         System.out.println("Sisa Hasil Bagi...");
         System.out.println(" i % j = " + (i % j));
         System.out.println(" x % y = " + (x % y));
  //increment
         System.out.println("Increment...");
         System.out.println(" i++ = " + (i++));
         System.out.println(" ++i = " + (++i));
         System.out.println(" j++ + i = " + (j++ + i));
         System.out.println(" ++j + i = " + (++j + i));
      }
}

8.4.2. Operator Relasional
          Operator relasional atau perbandingan pada Java juga mirip dengan VB. Hanya berbeda pada perbandingan symbol sama dan tidak sama. Pada VB untuk membandingkan dua buah operand apakah sama atau tidak menggunakan operator = untuk sama dengan dan <> untuk tidak sama dengan. Sedangkan pada java digunakan == untuk sama dengan dan != untuk tidak sama dengan. Ketikkan kode pada contoh berikut kemudian kompilasi dan jalankan. Perhatikan output dari program.

Contoh 8.5. Penggunaan operator relasional.

public class DemoRelasional
{
    public static void main(String[] args)
    {
        int i = 20;
        int j = 16;
        int k = 16;
   //Cetak nilai variabel
        System.out.println("Nilai variabel...");
        System.out.println(" i = " + i);
        System.out.println(" j = " + j);
        System.out.println(" k = " + k);
  //lebih besar dari
        System.out.println("Lebih besar dari...");
        System.out.println(" i > j = " + (i > j));
        System.out.println(" j > i = " + (j > i));
        System.out.println(" k > j = " + (k > j));
  //lebih besar atau sama dengan
        System.out.println("Lebih besar atau sama dengan...");
        System.out.println(" i >= j = " + (i >= j));
        System.out.println(" j >= i = " + (j >= i));
        System.out.println(" k >= j = " + (k >= j));
  //lebih kecil dari
        System.out.println("Lebih kecil dari...");
        System.out.println(" i < j = " + (i < j));
        System.out.println(" j < i = " + (j < i));
        System.out.println(" k < j = " + (k < j));
  //lebih kecil atau sama dengan
        System.out.println("Lebih kecil atau sama dengan...");
        System.out.println(" i <= j = " + (i <= j));
        System.out.println(" j <= i = " + (j <= i));
        System.out.println(" k <= j = " + (k <= j));
  //sama dengan
        System.out.println("Sama dengan...");
        System.out.println(" i == j = " + (i == j));
        System.out.println(" k == j = " + (k == j));
  //tidak sama dengan
        System.out.println("Tidak sama dengan...");
        System.out.println(" i != j = " + (i != j));
        System.out.println(" k != j = " + (k != j));
     }
}

8.4.3. Operator Logika
          Ada 3 operator logika yang disediakan Java yaitu: && (AND), || (logikaOR), | dan ! (logika NOT). Penggunaan operator ini sama persis dengan yang ada pada VB. Hanya notasinya saja yang berbeda.

8.5. STRUKTUR KONTROL PROGRAM

       Seperti halnya pada VB, pada Java juga menyediakan struktur kontrol program untuk pemilihan maupun pengulangan. Perintah yang digunakan dalam struktur kontrol ini juga hampir mirip.

8.5.1. Struktur Pemilihan
          Struktur pemilihan dapat menggunakan if, if … else, dan if …else … if. Perhatikan potongan kode-kode program berikut.

Contoh 8.6. Penggunaan if.

          int nilai = 68;

          if( nilai > 60 ) System.out.println("Selamat anda lulus!");

Contoh 8.6 ini hanya menggunakan if untuk membuat struktur pemilihan. Jika nilai lebih dari 60 maka program akan menampilkan output “Selamat anda lulus!”

Contoh 8.7. Penggunaan if … else.

          int nilai = 68;

          if( nilai > 60 ) System.out.println("Selamat anda lulus!");

          else System.out.println("Anda tidak lulus!");

Pada contoh 8.7, kita menggunakan struktur if … else. Jika nilai lebih dari 60 maka akan menampilkan output “Selamat anda lulus!” tetapi jika tidak (else) maka program akan menampilkan output “Anda tidak lulus!”.

Contoh 8.8. Penggunaan if … else … if.

          int nilai = 68;

          if( nilai > 90 ){

          System.out.println("Nilai anda sangat baik!");
          }
          else if( nilai > 60 ){
          System.out.println("Nilai anda baik!");
          }
          else{
          System.out.println("Anda tidak lulus");
          }

Contoh 8.8 merupakan pengembangan dari contoh 8.7. Jika nilai lebih dari 90 maka program akan menampilkan output “Nilai anda sangat baik!”, tetapi jika kurang dari 90 dan lebih dari 60 (else if) maka program akan menampilkan output “Nilai anda baik!” dan jika tidak kedua-duanya (else) maka program akan menampilkan output “Anda tidak lulus”
              Struktur pemilihan juga memungkinkan kita untuk memilih banyak alternatif. Namun jika menggunakan if akan sangat kompleks. Java menyediakan perintah switch. Perintah ini sama fungsinya dengan Select .. case pada VB. Perhatikan contoh berikut.

Contoh 8.9. Penggunaan switch.

          public class SwitchControl {
              public static void main(String[] args) {
                   int a=2;
                   int b;
                   switch(a) {
                          case 1:
                                b = a + 1;
                                break;
                          case 2:
                                b = a + 2;
                                break;
                          case 3:
                                b = a + 3;
                                break;
                          case 4:
                                b = a + 4;
                                break;
                         default: b = 0;
                   }
                  System.out.println("Nilai b: " + b);
               }
           }

             Berapakah hasil dari kode program pada contoh 8.9 di atas. Kalau jawaban kalian 4 berarti kalian telah memahami bagaimana cara kerja perintah switch. Switch akan memeriksa apakah ada case yang memiliki nilai sama dengan a yaitu 2. Pemeriksaan dimulai dari case pertama yaitu 1. Pernyataan break harus dituliskan untuk menghentikan pencarian pada case berikutnya. Cobalah hilangkan pernyataan break dan jalankan kode program di atas.

8.5.2. Struktur Pengulangan
              Ada tiga bentuk struktur pengulangan pada Java yaitu for, while dan dowhile.Berikut ini contoh-contoh bentuk pengulangan.

Contoh 8.10. Penggunaan for pada Java.

     public class ForLoop {
          public static void main(String[] args) {
               int j=4;
               for (int x=0; x < 5; x++) {
                   System.out.println("Nilai x: " + x);
                   System.out.println("Nilai j: " + j);
                   System.out.println();
                   j--;
               }
       }
  }

           Sintaks umum for adalah : for (nilai awal; kondisi; increment) kemudian dilanjutkan dengan bagian yang akan diulang. Perhatikan baik-baik bagaimana menggunakan struktur for pada contoh 8.10 di atas. Nilai x=0 adalah nilai awal. Sedangkan x < 5 adalah kondisi yang harus dipenuhi agar pengulangan bisa dilakukan. Nilai x++ merupakan increment. Ingat bahwa penulisan x++ sama artinya dengan x = x + 1. Cobalah jalankan kode program di atas.

Contoh 8.11. Penggunaan while pada Java.

     public class WhileLoop {
         public static void main(String[] args) {
             int y = 4;
             while ( y > 0 ){
                   System.out.print(y);
                   y--;
             }
       }
    }

             Pada contoh 8.11 ini kita menggunakan while untuk membuat pengulangan. Pada while kita perlu menginisialisasi variabel sebelum masuk ke bagian while. Variabel y kita inisialisasi dengan nilai 4. Kondisi yang harus dipenuhi pada while adalah y>0. Pada contoh ini counternya bersifat menurun (perhatikan bagian y--). Sehingga yang akan tercetak dilayar adalah 4321.

Contoh 8.12. Penggunaan do-while pada Java.

     public class ContohDoWhile {
          public static void main(String[] args) {
              int z=3;
              do {
                   System.out.println("Java");
                   z++;
              } while (z < 6);
          }
       }

              Contoh 8.12 menunjukkan bagaimana kita dapat menggunakan do-while untuk mengulang pencetakan kata “Java”. Perhatikan dengan baik sintaks penulisan do-while pada contoh ini. Do-while juga membutuhkan inisialisasi dan counter agar pengulangan dapat dilakukan. Cobalah jalankan program di atas. Berapa kalikah tulisan “Java” akan tampil? Sekarang gantilah kondisi pada while dengan z < 1. Apakah kode program masih mencetak tulisan “Java”? Mengapa? Bacalah kembali Bab 7 pada bagian struktur kontrol pengulangan untuk memahami hal ini.

8.5.3. Menggunakan Break dan Continue
Pernyataan break memiliki tiga fungsi yaitu:
• Menghentikan pemilihan pada pernyataan switch.
• Menghentikan proses pengulangan atau keluar dari badan loop.
• Keluar dari blok label tertentu.
Pemakaian break pada pernyataan switch sudah kita pelajari pada struktur pemilihan. Kita akan pelajari sekarang bagaimana menggunakan break pada pengulangan. Perhatikan contoh berikut.

Contoh 8.13. Penggunaan break pada pengulangan.

      class BreakPengulangan {
             public static void main(String[] args) {
                 for (int i=0; i<10; i++) {
                      if (i == 5) {
                        break;
                      }
                      System.out.println("baris ke-" + i);
                      }
                      System.out.println("Ini setelah break pengulangan”);
                    }
             }

Pada contoh 8.13 seharusnya pengulangan akan terjadi sebanyak 10 kali (dimulai dari 0 sampai dengan 9). Tetapi, karena ada pernyataan if (1 == 5) {break;} maka pengulangan akan berhenti ketika nilai i =5. Kemudian alur program akan keluar dari badan dan menjalankan perintah setelah tanda
akhir pengulangan. Pernyataan continue digunakan untuk memaksa program untuk melanjutkan proses pengulangan. Perhatikan contoh berikut.

Contoh 8.14. Penggunaan continue.

      String nama[] = {"Joni", "Riko", "Denis", "Riko"};
      int hitung = 0;
      for( int i=0; i<names.length; i++ ){
            if( !nama[i].equals("Riko") ){
            continue;
      }
            hitung++;
      }
            System.out.println("Ada " + hitung + " Riko dalam daftar");

Contoh 8.14 adalah potongan program untuk mencari jumlah nama Riko di dalam kumpulan nama. Pernyataan if(!names[i].equals(“Riko”) mempunyai arti jika isi pada variabel nama bukan “Riko” maka jalankan perintah continue. Peletakkan pernyataan continue ini memaksa program untuk mengulang langsung tanpa harus menjalankan perintah di bawah continue. Artinya baris hitung++ tidak akan dijalankan. Sehingga kalau kita eksekusi kode program di atas hasilnya adalah 2.

**untuk lebih jelasnya, sobat bisa download Modul Rpl Jilid 2

Referensi :
Modul Rpl Jilid 2

Dosen Pengampu
Okta Veza, S.Kom

0 komentar:

Posting Komentar