Melayani Dengan Riang Gembira

dan DOA

Cari di Blog Ini

Berubah tanpa ilmu adalah perubahan sia-sia

Yang abadi dalam kehidupan di dunia adalah perubahan, dengan ilmu perubahan menjadi terarah.

Orang cerdas itu adalah orang yang berencana untuk besok hari

Maka disiplin adalah bagian dari rencana.

14 Oktober 2020

Menerapkan Penanganan Error Dalam Mendeteksi Kesalahan Program

Indikator Pencapaian Kompetensi dan Tujuan Pembelajaran

IPK Pengetahuan

  1. Menjelaskan konsep error handling (penanganan kesalahan) dalam pemrograman aplikasi berorientasi obyek.
  2. Menjelaskan prosedur error handling (penanganan kesalahan)dalam pemrograman aplikasi berorientasi obyek.
  3. Menganalisis penanganan kesalahan (error handling) dalam pemrograman aplikasi berorientasi obyek.
  4. Menerapkan error handling (penanganan kesalahan)dalam pemrograman aplikasi berorientasi obyek.
  5. Merancang program aplikasi berorientasi obyek dengan penerapan error handling (penanganan kesalahan).

IPK Keterampilan

  1. Membuat kode program aplikasi berorientasi obyek yang menerapkan error handling (penanganan kesalahan).
  2. Menguji program aplikasi berorientasi obyek yang menerapkan error handling (penanganan kesalahan).
  3. Memperbaikipenanganan kesalahan(error handling) dalam program aplikasi berorientasi obyek.
  4. Memodifikasipenanganan kesalahan(error handling) dalam program aplikasi berorientasi obyek.

TujuanPembelajaran

Setelah melalui kegiatan diskusi, menggali informasi, presentasi dan tugas praktek diharapkan peserta didik akan dapat :
  1. Siswa dapat Menjelaskan konsep penanganan error dalam PBO dengan benar.
  2. Siswa dapat Menjelaskan prosedur penanganan error dalam pemrograman aplikasi berorientasi obyek dengan baik.
  3. Menerapkan prosedur penanganan error dalam pemrograman aplikasi berorientasi obyek dengan baik

Materi Kegiatan Pembelajaran

Syntax Error,  Runtime Error dan Logic Error

Error dapat saja terjadi dalam pemrograman. Secara garis besarnya, error dalam pemrograman Java ini ada beberapa jenis, yaitu :

Syntax error
Runtime error
Logic error


Syntax error

Syntax adalah aturan penulisan yang sudah ditetapkan pada struktur elemen – elemen dalam bahasa pemrograman.  Dalam bahasa umum sintaks error adalah kesalahan penulisan kata/kalimat

Jadi syntax error ini adalah kesalahan dalam coding karena aturan penulisan yang tidak sesuai atau kesalahan pada konstruksi kode, misalnya :
  • Salah dalam menuliskan keyword Java
  • Tidak menggunakan tanda kurung kurawal untuk pernyataan
  • Tidak menggunakan tanda atau karakter yang sesuai, misalnya tidak menggunakan tanda ” “, untuk tipe data String.
Syntax error ini mudah ditelusuri atau ditemukan karena compiler akan memberi tahu kita di mana letak kesalahan dalam penulisan kode program.

Sebagai contoh :

public class SelamatDatang {
   
    public static void main(String args []){
        //Seharusnya "Selamat datang di pemrograman Java"
        System.out.println(Selamat datang di pemrograman Java");
   
    }
   
}


Kode di atas memiliki error, yaitu seharusnya teks Selamat datang di pemrograman Java berada dalam tanda ” “.

Oleh karena itu, setelah anda melakukan compile, maka compiler akan memberi tahu error tersebut seperti gambar di bawah ini :


Kesalahan ditunjukan pada baris ke 15 oleh compiler.
Syntax Error biasanya terjadi karena kesalahan penulisan. Mungkin kekurangan sebuah perintah di Java atau lupa untuk menulis tanda titik koma pada akhir pernyataan. 

Java mencoba untuk megisolasi error tersebut dengan cara menunjukkan baris dari kode dan terlebih dahulu karakter yang salah dalam baris tersebut. 

Bagaimanapun juga, error belum tentu berada pada titik yang ditunjuk. 

Kesalahan umum lainnya adalah dalam kapitalisasi, ejaan, penggunaan dari karakter khusus yang tidak benar, dan penghilangan dari pemberian tanda baca yang sebenarnya. 

Runtime Error

Runtime error merupakan salah satu jenis error yang terjadi karena program secara tiba-tiba dihentikan ketika program tersebut sedang berjalan.

Runtime error ini dapat terjadi bila program tidak bisa menangani operasi yang tidak mungkin untuk dilakukan.

Contohnya runtime error ini dapat terjadi karena :

Ketika program meminta user untuk menginputkan angka, namun user malah menginputkan huruf
Ketika melakukan perhitungan pembagian angka 1 dengan 0
Sebagai contoh:

public class CekError {
   
    public static void main(String args []){
        //membagi angka 1 dengan angka 0
        System.out.println( 1 / 0 );
   
    }
   
}

public class CekError {
   
    public static void main(String args []){
        //membagi angka 1 dengan angka 0
        System.out.println( 1 / 0 );
   
    }
   
}
Pada program di atas akan menampilkan pesan error karena program di minta untuk membagi angka 1 dengan angka nol. Pada command prompt akan menampilkan pesan error seperti di bawah ini :

Runtime error pada pemrograman Java
Runtime error pada command prompt pemrograman Java
Demikian pula jika kode diatas di jalankan pada IDE Netbeans ataupun Eclipse, maka compiler akan memberikan pesan dan tanda runtime error yang terjadi.

Logic error

Logic error terjadi bila program berjalan dan tidak memberikan hasil seperti yang diinginkan.


Misalnya anda membuat program konversi dari nilai centimeter ke nilai milimeter.

Seperti sudah diketahui bahwa :

1 cm = 10 mm

Contoh program  sederhananya :

public class Konversi {
   
    public static void main(String args []){
       
        System.out.println("1 cm itu sama dengan ");
        //Konversi cm ke mm
        System.out.println( 1.0 / 10.0 + "mm");
   
    }
   
}
public class Konversi {
   
    public static void main(String args []){
       
        System.out.println("1 cm itu sama dengan ");
        //Konversi cm ke mm
        System.out.println( 1.0 / 10.0 + "mm");
   
    }
   
}
Setelah mengeksekusi program di atas, maka akan terlihat pada command prompt seperti di bawah ini:

Program di atas berjalan dengan mulus ketika dieksekusi baik ketika menggunakan IDE Netbeans ataupun Eclipse, namun bila diperhatikan terlihat nilai bahwa 1 cm itu sama dengan 0.1 mm, tentu saja ini adalah hal yang salah, dan inilah yang disebut dengan logic error.



Runtime Error


Sebuah program yang berhasil dikompile belum tentu berhasil di jalankan. Inilah yang dinamakan Run time error, kesalahan ini tidak akan ditampilkan sampai kita menjalankan program tersebut. Hal ini bisa saja terjadi misalnya dikarenakan struktur yang di buat programmer tidak jelas atau mungkin tidak logis.

Exception Handling

1) Dasar Exception

Exception adalah sebuah event yang menjalankan alur proses normal pada program. Event ini biasanya berupa kesalahan(error) dari beberapa bentuk. Ini disebabkan program kita berakhir tidak normal. Dalam bahasa java, ketika terjadi kesalahan, otomatis akan dilemparkan sebuah objek yang disebut exception, yang kemudian dapat diproses lebih lanjut oleh method yang siap menangani kesalahan tersebut.

Method tersebut dapat dipilih untuk menangani exception berdasarkan tipe tertentu.Exception dapat muncul tidak beraturan dalam suatu method, atau dapat juga dibuat secara menual dan nantinya melaporkan sejumlah keadaan kesalahan ke method yang memanggil.

2) Tipe-Tipe Exception

Beberapa exception yang telah digunakan dalam begian-bagian terdahulu adalah ArithmeticException, FileNotFoundException, dan InputMisMatchException.

 

Masih banyak kelas exception lain yang digunakan dalam java, antara lain NullPointerException,ClassNotFoundException,IOException, RunTimeException, IndexOutOBoundsException, IllegalArgumentException

Kelas Throwable merupakan akar dari semua kelas exception.Semua kelas exception java mewarisi secara langsung atau tidak langsung dari Throwable. Kita bisa menciptakan kelas exception sendiri dengan cara mewarisi exception atau subclass exception. 

Kelas-kelas exception dapat diklasifikasikan menjadi 3 tipe utama : error system, exception, dan exception runtime.

Error system dilempar oleh JVM dan direpresentasikan oleh kelas Error. Kelas error mendeskripsikan error internal. Error semacam ini jarang terjadi. Jika terjadi, kita dapat memberitahukan kepada user dan menghentikan program secara normal.

Kelas-kelas exception dapat diklasifikasikan menjadi 3 tipe utama : error system, exception, dan exception runtime.

Penanganan Exceptions

Untuk menangani exception dalam java, kita gunakan blok try-catch-throwthrows-finally. Apa yang kita lakukan dalam program kita adalah kita menempatkan pernyataan yang mungkin menghasilkan exception dalam blok ini.

Bentuk umum dari blok try-catch-finally adalah :

Listing Program

   try{

      //tulis pernyataan yang dapat mengakibatkan exception

      //dalam blok ini

  }

  catch( <exceptionType1><varName1> ){

     //tulis aksi apa dari program Anda yang dijalankan jika ada

     //exception tipe tertentu terjadi

  }

Exception dilemparkan selama eksekusi dari blok try dapat ditangkap dan ditangani dalam blok catch. Kode dalam blok finally selalu di-eksekusi.


class ContohEksepsi1 {

  public static void main(String[] args) {

    int pembilang = 2;

    int penyebut = 0;

    try {

      int hasil = pembilang/penyebut; // menimbulkan eksepsi

      System.out.println("Hasil = " + hasil); // tidak dieksekusi

    } catch (ArithmeticException ae) {

      System.out.println("KESALAHAN: " +

        "Terdapat pembagian dengan nol");

    }

    System.out.println("Statemen setelah blok try-catch");

  }

}

 

 

class ContohEksepsi2 {

  public static void main(String[] args) {

    int pembilang = 2;

    int penyebut = 0;

    try {

      int hasil = pembilang/penyebut;         // SALAH

      System.out.println("Hasil = " + hasil); // tidak dieksekusi

    } catch (Exception e) {

      System.out.println("KESALAHAN: " +

        "Terdapat pembagian dengan nol");

    }

    System.out.println("Statemen setelah blok try-catch");

  }

}

 

class ContohEksepsi3 {

  public static void main(String[] args) {

    int pembilang = 2;

    int penyebut = 0;

    try {

      int hasil = pembilang/penyebut;         // SALAH

      System.out.println("Hasil = " + hasil); // tidak dieksekusi

    } catch (Exception e) {

      System.out.println(e.getMessage());

    }

    System.out.println("Statemen setelah blok try-catch");

  }

}

 

 

class ContohEksepsi4 {

  public static void main(String[] args) {

    int pembilang = 2;

    int penyebut = 0;

    try {

      int hasil = pembilang/penyebut;         // SALAH

      System.out.println("Hasil = " + hasil); // tidak dieksekusi

    } catch (Exception e) {

      e.printStackTrace();   // mencetak stack trace

    }

    System.out.println("Statemen setelah blok try-catch");

  }

}

 Demo Finaly

 class DemoFinally {          

  private static int i = 0;

 

  public static void main(String[] args) {   

    while (true) {

      try {

        System.out.print("Pada saat i = " + i + ": ");

        if (i++ == 0) {

          throw new Exception();  // melempar eksepsi

        }

        System.out.println("Tidak terjadi eksepsi");

             } catch (Exception e) {

        System.out.println("Terdapat eksepsi");

             } finally {

        System.out.println("Statemen dalam blok finally\n");

        if (i == 2) {

          break;  // pada saat i==2, pengulangan akan berhenti

        }

      }

    }

  }       

}

 

 Contoh penanganan error

  

/**

 * @(#)RunTimeExceptionError.java

 *

 *

 * @author

 * @version 1.00 2019/9/10

 */

 

 

public class RuntimeExceptionTest {

 

            public static void main(String[] args){

            int i = Integer.parseInt("abc");

            System.out.println("kode setelah exception");

            }

}

 

Output yang muncul

--------------------Configuration: <Default>--------------------

Exception in thread "main" java.lang.NumberFormatException: For input string: "abc"

    at java.lang.NumberFormatException.forInputString(NumberFormatException.java:65)

    at java.lang.Integer.parseInt(Integer.java:580)

    at java.lang.Integer.parseInt(Integer.java:615)

    at RuntimeExceptionTest.main(RuntimeExceptionTest.java:14)

 

Process completed.

 Cara Menangkap Error

 /**

 * @(#)RuntimeExceptionTestHandling.java

 *

 *

 * @author

 * @version 1.00 2019/9/10

 */

public class RuntimeExceptionTestHandling {

public static void main(String[] args){

            int i = 0;

            int k = 0;

            try{

            i = Integer.parseInt("50");  // mengkonversi string 50 menjadi angka integer 50  // perintahnya benar

             k = Integer.parseInt("abcd");  // mengkonversi string abcd menjadi angka integer : tapi akan error

            }

            catch(NumberFormatException ex ) {

                        System.out.println("Disini ditampilkan pesan kesalahan ! : ");

                        System.out.println("============================ ");

                        ex.printStackTrace();    // menampilkan pesan kesalahan

            }

            System.out.println("kode setelah exception var i : "+i);

            System.out.println("kode setelah exception var k : "+k);

            }

}

 


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

public class GetInputFromKeyboard {

        public static void main(String[] args) {

//Create BufferedReader object from Standard input device.
//Standard input device is typically a keyborad.

        BufferedReader dataIn = new BufferedReader(new InputStreamReader( System.in) );

//Prompt a user to enter his/her name

        String name = "";

        System.out.println("Please Enter Your Name:");
//  Read data into name variable 
        try{
            name = dataIn.readLine(); }catch( IOException e ){
            System.out.println("Error!");

        } // Display the name System.out.println("Hello " + name +"!");

    }
}

Tugas / Penilaian

Soal Error Handling.

 A. Teori.

  1. Dalam setiap pemrograman biasanya ada 3(tiga) jenis error, sebutkan dan jelaskan dua jenis kesalahan umum dalam PBO?
  2. Sebutkanlah istilah khusus di dalam penanganan error pada PBO ?
  3. Penanganan error dalam PBO dilakukan oleh suatu class. Sebutkan dan jelaskan class yang dimaksud tersebut ?
  4. Kelas Induk penanganan error mempunyai 3 (tiga) tipe kelas turunannya, sebutkan dan jelaskan ?
  5. Tuliskan block atau sintak umum penulisan penanganan error dalam format exception ?

A. Praktek
  1. Buatlah contoh penulisan penanganan error untuk eksepsi aritmatka.
  2. Buatlah contoh penulisan penanganan error untuk eksepsi catch (Exception e).
  3. Buatlah contoh penulisan penanganan error untuk eksepsi menampilkan pesan kesalahan (Exception e) dengan menampilkan e.getMessage()
  4. Buatlah contoh penulisan penanganan error untuk eksepsi menampilkan penelusuran kesalahan (e.printStackTrace())
  5. Buatlah contoh penulisan penanganan error melalui prosedur eksespsi finaly

13 Oktober 2020

Menganalisis Pemanfaatan Class Built_in

Indikator  Pencapaian Kompetensi dan Tujuan Pembelajaran

IPK Pengetahuan

  1. Menjelaskan konsep  class built-in dari  kumpulan class dalam PBO.
  2. Menjelaskan prosedur pemanfaatkan class built-in dalam aplikasi PBO.
  3. Menerapkan langkah-langkah dalam pemanfaatan class built-in PBO 

IPK Keterampilan

  1. Merancang program aplikasi berorientasi obyek dengan memanfaatkan class built-in
  2. Membuat kode program aplikasi berorientasi obyek yang memakai  class built-in.
  3. Menguji program aplikasi berorientasi obyek dengan dukungan class built-in.

Tujuan Pembelajaran

Setelah melalui kegiatan diskusi, menggali informasi, presentasi dan tugas praktek diharapkan peserta didik akan dapat :
  1. Siswa dapat Menjelaskan konsep class built-in dalam pemrograman aplikasi berorientasi obyek dengan benar.
  2. Siswa dapat Menjelaskan prosedur pemanfaatan class built-in dalam pemrograman aplikasi berorientasi obyek dengan baik.
  3. Menerapkan prosedur pemanfaatan class built-in dalam pemrograman aplikasi berorientasi obyek dengan baik
  4. Siswa dapat merancang program aplikasi dalam dukungan class built-in

Materi Kegiatan Pembelajaran

Class Built in

~ Built in class adalah class-class yang secara langsung disediakan oleh java, user dapat langsung menggunakan tanpa perlu mendefinisikan sendiri.

Import built in class dengan menggunakan keyword import.

Contoh: import.java.util.scanner;

Buat instance dari class tersebut.




Scanner input=New Scanner (System.in);

Tanda titik digunakan oleh java sebagai pemisah antara instance dengan method/atribut.
input.nextLine();

Class String

 Sintaks: String <nama.variabel>="deklarasi";

String merupakan class, namun demikian khusus untuk String, instansiasi dapat dilakukan tanpa menyertakan new dan method construktornya. adalah Class String. Dalam Java, string dapat digunakan menggunakan array dari character atau disederhanakan dengan menggunakan class String

 Sintak standar seharusnya seperti ini:

  String str=New String ("ini contoh String");

Namun cukup dituliskan:
String str="ini contoh String";

Method-Method dalam class String

  1. Equais
  2. Equais Ignorecase
  3. Compareto
  4. Substring
  5. Length
  6. Tolowercase
  7. Tolippercase
  8. Trim
  9. CharAt
  10. Index Of

Class StringBuffer, class ini serupa dengan objek string, kecuali kenyataan bahwa objek String Buffer bersifat dapat berubah atau dapat dimodifikasi, sedangkan pada object String bersifat konstan.

 

Class Math

Math adalah class yang terdapat paket java. Yang berisi fungsi-fungsi matematika dan konstanta penting dimatematika. class math.Class yang dapat berisi method untuk menunjukkan perbedaan operasi matematika seperti fungsi trigonometri dan logaritma.

Selama method-method ini semua static, kita dapat menggunakannya tanpa memerlukan sebuah objek Math.

  Contoh:

• Y= math.Cos (PT/2);

• Y= math.Sqrt (16);

• Y= math.Pow (3.2);

• Y= math.abs (-3);

 

  Ex:

Public class main{

Static void test(){

         double d2= math.Sqrt (d1);

         double d3= math.Pow (2.3);

         System.out.println ("d2="+d2);

         System.out.printlm ("d3="+d3);

}

Public Static void main (String[]args) {

 test();

 }

}

Contoh Class Built In : Class Math dan Class String.
Class Math adalah kelas yang berisi fungsi-fungsi matematika dan konstanta penting dimatematika.

Class String 
karena java tidak menyediakan variabel tipe primitive yang langsung mengakses kumpulan karakter/kata maka disediakanlah class string.
Pseudecode : 
String <nama_variabel> : "deklarasi";

String merupakan class namun demikian untuk string instansiasi dapat dilakukan tanpa menyertakan new dan method constuktornya.
 Seharusnya penulisan seperti ini :
String str = new string ("ini contoh string") ;
 Cukup dituliskan :
String str = "ini contoh string" ;


  class DemoMembuatString {           

  public static void main(String[] args) {

       

    char[] arr = {'a','b','c','d','e'};

   

    String s1 = "Contoh string literal";

    String s2 = new String();

    String s3 = new String(arr);

    String s4 = new String(arr, 1, 3);

    String s5 = new String(s1);

   

    System.out.println("s1: " + s1);

    System.out.println("s2: " + s2);

    System.out.println("s3: " + s3);

    System.out.println("s4: " + s4);

    System.out.println("s5: " + s5);

  }

}











 Program komputer terdiri dari tiga komponen utama, yaitu: input, proses, dan output. 

Input: nilai yang kita masukan ke program
Proses: langkah demi langkah yang dilakukan untuk mengelola input menjadi sesuatu yang berguna
Output: hasil pengolahan

Semua bahasa pemrograman telah menyediakan fungs-fungsi untuk melakukan input dan output.

Java sendiri sudah menyediakan tiga class untuk mengambil input:
  1. Class Scanner;
  2. Class BufferReader;
  3. dan Class Console.

Tiga class tersebut untuk mengambil input pada program berbasis teks (console). Sedangkan untuk GUI menggunakan class yang lain seperti JOptionPane dan inputbox pada form.

Sementara untuk outputnya, Java menyediakan fungsi print()println(), dan format().

Mengambil Input dengan Class Scanner

Scanner merupakan class yang menyediakan fungsi-fungsi untuk mengambil input dari keyboard.
Agar kita bisa menggunakan Scanner, kita perlu mengimpornya ke dalam kode:

import java.util.Scanner;

Lebih jelasnya…buatlah paket baru bernama pertemuan2 pada source packages. 

Klik kanan pada souce packages, kemudian pilih new package:
Kemudian isi nama paket dengan pertemuan2, lalu klik Finish:
Setelah itu, lanjutkan dengan membuat kelas (java class) baru di paket pertemuan2:
Berikan nama: DataKaryawan. Kemudian klik Finish:

Setelah itu, silahkan ikuti kode berikut ini:
package pertemuan2;
 
// mengimpor Scanner ke program
import java.util.Scanner;
 public class DataKaryawan {
     public static void main(String[] args) {
        // deklarasi variabel
        String nama, alamat;
        int usia, gaji;
         // membuat scanner baru
        Scanner keyboard = new Scanner(System.in);
         // Tampilkan output ke user
        System.out.println("### Pendataan Karyawan PT. Petani Kode ###");
        System.out.print("Nama karyawan: ");
        // menggunakan scanner dan menyimpan apa yang diketik di variabel nama
        nama = keyboard.nextLine();
        // Tampilkan outpu lagi
        System.out.print("Alamat: ");
        // menggunakan scanner lagi
        alamat = keyboard.nextLine();
        System.out.print("Usia: ");
        usia = keyboard.nextInt();
        System.out.print("Gaji: ");
        gaji = keyboard.nextInt();
         // Menampilkan apa yang sudah simpan di variabel
        System.out.println("--------------------");
        System.out.println("Nama Karyawan: " + nama);
        System.out.println("Alamat: " + alamat);
        System.out.println("Usia: " + usia + " tahun");
        System.out.println("Gaji: Rp " + gaji);
    }
 }

Perlu diperhatikan, penggunakan fungsi untuk mengambil data bergantung dari tipe data yang digunakan.

Misal, tipe datanya adalah String, maka fungsi atau method yang dipakai adalah nextLine().

Begitu juga dengan tipe data lain, Integer menggunakan nextInt()Double menggunakan nextDouble(), dsb.

Setelah selesai membuat program, silahkan dijalankan. Klik kanan kemudian pilih Run File atau tekan tombol [Shift]+[F6].

 Mengambil Input dengan Class BufferReader

Class BufferReader sebenarnya tidak hanya untuk mengambil input dari keyboard saja.

Class ini juga dapat digunakan untuk membaca input dari file dan jaringan.

Class ini terletak di dalam paket java.io.

Silahkan diimpor untuk dapat menggunakan class BufferReader.

 

import java.io.BufferedReader;

Silahkan buat class baru bernama ContohBufferReader, kemudian isi dengan kode berikut ini.

package pertemuan2;
 
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
public class ContohBufferReader {
    public static void main(String[] args) throws IOException {
        String nama;
        // Membuat objek inputstream
        InputStreamReader isr = new InputStreamReader(System.in);
        // membuat objek bufferreader
        BufferedReader br = new BufferedReader(isr);
        // Mengisi varibel nama dengan Bufferreader
        System.out.print("Inputkan nama: ");
        nama = br.readLine();
        // tampilkan output isi variabel nama
        System.out.println("Nama kamu adalah " + nama);
    }
}

Ternyata class BufferReader tidak bisa bekerja sendirian. Dia juga butuh teman yaitu: class InputStreamReader dan class IOException.

Sekarang mari kita coba jalankan programnya:

Perbedaan BufferReader dengan Scanner terlihat dari fungsi atau method yang dipakai.

Scanner menggunakan next(), sedangkan BufferReader menggunakan readLine().

Lalu untuk tipe data integer, BufferReader menggunakan fungsi read() saja. Hal ini dapat kita lihat dalam hint autocomplete .

Tips: Tekan Ctrl+Spasi saat menulis kode untuk menampilkan hint autocomplete .

Mengambil Input dengan Class Console

Class Console hampir sama dengan BufferReader. Dia juga menggunakan fungsi readLine() untuk mengambil input.

Akan tetapi… Class ini hanya bisa digunakan di lingkungan console saja, seperti Terminal dan CMD.
Class Console tidak bisa digunakan langsung di Netbeans.
Maka dari itu, kita harus kompilasi secara manual.
Untuk menggunakan class ini, kita perlu mengimpornya terlebih dahulu.

import java.io.Console;

Mari kita coba…

Buatlah file baru bernama InputConsole.java dengan isi sebagai berikut:

import java.io.Console;

 public class InputConsole {

    public static void main(String[] args) {

         String nama;

        int usia;

         // membuat objek console

        Console con = System.console();

         // mengisi variabel nama dan usia dengan console

        System.out.print("Inputkan nama: ");

        nama = con.readLine();

        System.out.print("Inputkan usia: ");

        usia = Integer.parseInt(con.readLine());

         // mengampilkan isi variabel nama dan usia

        System.out.println("Nama kamu adalah: " + nama);

        System.out.println("Saat ini berusia " + usia + " tahun");

    }

}

Perhatikan: dalam kode di atas, kita menggunakan fungsi Integer.parseInt(con.readLine()) untuk tipe data integer. Artinya, kita mengubah tipe data String ke Integer. 

Karena Console tidak memiliki nilai kembalian berupa integer untuk fungsi read().

Setelah itu, lakukan kompilasi melalui Terminal atau CMD. Buka terminal, kemudian masuk ke direktori tempat menyimpan kodenya.

Ketik perintah: javac InputConsole.java untuk melakukan kompilasi.

Setelah itu, ketik perintah java InputConsole untuk menjalankannya:

 Menampilkan Output

 Kita sudah mengenal beberapa cara mengambil input dari keyboard untuk program berbasis teks.

Sekarang bagaimana dengan outputnya?

Ada beberapa fungsi yang sudah disediakan oleh Java:

1.         Fungsi System.out.print()

2.         Fungsi System.out.println()

3.         Fungsi System.out.format()

Apa saja perbedaan dari fungsi-fungsi tersebut?

 

Fungsi print() vs println()

Fungsi print() dan println() sama-sama digunakan untuk menampilkan teks.

Lalu apa bedanya?

Fungsi print() akan menampilkan teks apa adanya. Sedangkan println() akan menampilkan teks dengan ditambah baris baru.

Mari kita coba dalam kode:

package eksperimen;

public class PrintVsPrinln {

 

    public static void main(String[] args) {

 

        System.out.print("ini teks yang dicetak dengan print()");

        System.out.println("sedangkan ini teks yang dicetak dengan println()");

        System.out.print("pake print() lagi");

    }

}





 Sekarang lihat hasil outputnya:

Menggabungkan String

 Ketika menggunakan fungsi print() maupun println(), kadang kita perlu mengambil teks dari variabel dan menggabungkannya dengan teks yang lain.

Misalnya seperti ini:

Kita punya variabel namaDepan dan namaBelakang:

String namaDepan = "Petani";

String namaBelakang = "Kode";

Kemudian kita ingin menampilkannya dengan fungsi print(), maka kita hanya perlu memasukkannya ke sana.

System.out.print(namaDepan);

System.out.print(namaBelakang);

Kode tersebut akan menghasilkan: PetaniKode

Sebenarnya kita tidak perlu menggunakan dua fungsi print(), karena kita bisa menggabungkannya dengan operator +.

Contoh:

System.out.print(namaDepan + namaBelakang);

Agar ada spasi, tinggal ditambahkan saja spasi:

System.out.print(namaDepan + " " + namaBelakang);

Format String

Sedangkan untuk menggabungkan String yang lebih kompleks, kita bisa menggunakan fungsi format().

Contoh:

package eksperimen;

 

public class FormatString {

    public static void main(String[] args) {

        String namaDepan = "Petani";

        String namaBelakang = "Kode";

        System.out.format("Nama saya %s %s %n", namaDepan, namaBelakang);

    }

}

Perhatikan: di sana kita menggunakan simbol %s untuk mengambil nilai dari variabel di sampingnya. %s artinya string.

Selain %s, ada juga simbol lain:

ü  %d untuk desimal atau angka;

ü  %f untuk bilangan pecahan;

ü  %n untuk baris baru, bisa juga pakai \n;


Kode di atas akan menghasilkan: Nama saya Petani Kode