Survey
* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project
* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project
Input Nilai tanpa Case String di Java Oleh: Yudi Setiawan Input di Java umumnya ada Case String didalamnya namun, saya pernah dapat soal dimana sample input nya tidak terdapat Case String didalamnya. Lalu bagaimana kita meng-handle nya ??? Pernah kemarin saya dapat soal perlombaan seperti berikut ini 1. Hello World Tuliskan N baris tulisan Hello World N (tanpa tanda kutip) Input: sebuah baris berisi N. 1<=N<=100. Sample Input 1 3 Output: N baris Sample Output: halo artechno 1 halo artechno 3 halo artechno 3 halo artechno 3 2. KABISAT Diberikan input tahun dan interval, tentukan tahun berikutnya atau sebelumnya, dan tentukan apakah tahun tersebut kabisat atau tidak. Misalnya diberikan tahun 2000 dan interval 5, maka program harus memberikan output sbb: 2000 kabisat 2001 bukan kabisat 2002 bukan kabisat 2003 bukan kabisat 2004 kabisat 2005 bukan kabisat Namun jika interval berupa bilangan negatif, misalnya tahun 2000 dan interval -3, maka outputnya sbb: 2000 kabisat 1999 bukan kabisat 1998 bukan kabisat 1997 bukan kabisat Input sebuah baris berupa integer A (1000 <= A <= 9000) dan B (-999 <= B <= 999), A menyatakan tahun dan B menyatakan interval. Sample Input 2000 5 2000 -3 Ouput beberapa baris berisi tahun dan "kabisat" atau "bukan kabisat" (tanpa tanda kutip). N adalah nomor test case. Perhatikan contoh output untuk lebih jelas. Sample Output 2000 kabisat 2001 bukan kabisat 2002 bukan kabisat 2003 bukan kabisat 2004 kabisat 2005 bukan kabisat 2000 kabisat 1999 bukan kabisat 1998 bukan kabisat 1997 bukan kabisat Dari Soal diatas, dapat Anda lihat bahwa tidak adanya inputan Case String dalam program tersebut lalu, bagaimana cara melakukan inputannya dalam coding. Sebelum menanggapi soal diatas, alangkah lebih baiknya jika Anda pelajari teknik input dengan Scanner dan BufferedReader di Java. A. Scanner Pada Java, untuk melakukan input nilai dari user Anda bisa menggunakan library Scanner yang terdapat di java.util.Scanner. Jadi, untuk lebih jelasnya silakan coba coding berikut. import java.util.Scanner; public class InputScanner { public static void main(String[] args) { Scanner input = new Scanner(System.in); int nilai = input.nextInt(); String nama = input.next(); System.out.println(nilai); System.out.println(nama); } } Penjelasan : import java.util.Scanner digunakan untuk memanggil library Scanner. Scanner input = new Scanner(System.in) untuk mendeklarasikan/membuat objek baru dari Scanner int nilai untuk membuat variabel integer dengan nama nilai dan input.nextInt() untuk menerima inputan dengan tipe data integer. String nama untuk membuat variabel String dan input.next() untuk menerima inputan dengan tipe data string. System.out.println(nilai) untuk menampilkan value dari variabel nilai. System.out.println(nama) untuk menampilkan value dari variabel nama. B. BufferedReader Di BufferedReader Anda akan mengenal sebuah istilah yang namanya itu ialah try - catch dimana, untuk inputan dengan BufferedReader Anda harus mendeklarasikan proses inputan tersebut di dalam blok try - catch. Pada BufferedReader ada beberapa library yang harus Anda import yaitu; 1. java.io.BufferedReader 2. java.io.InputStreamReader 3. java.io.IOException Untuk mencobanya, silakan ketik kode program berikut. import java.io.BufferedReader; import java.io.InputStreamReader; import java.io.IOException; public class InputBufferedReader { public static void main(String[] args) { BufferedReader dataIn = new BufferedReader(new InputStreamReader(System.in)); try { int nilai = Integer.parseInt(dataIn.readLine()); String nama = dataIn.readLine(); System.out.println(nilai); System.out.println(nama); }catch(Exception exc) { exc.printStackTrace(); } } } Penjelasan : import java.io.BufferedReader; untuk memanggil library BufferedReader import java.io.InputStreamReader; untuk memanggil library InputStreamReader import java.io.IOException; untuk memanggil library IOException BufferedReader dataIn = new BufferedReader(new InputStreamReader(System.in)); untuk mendeklarasikan/membuat objek baru dari BufferedReader try catch digunakan sebagai blok untuk menerima inputan dari proses BufferedReader int nilai digunakan untuk membuat variabel integer dengan nama nilai Integer.parseInt(dataIn.readLine()); untuk meng-handle inputan dari user dan kemudian meng-konversi nilainya kedalam bentuk integer String nama untuk membuat variabel string dataIn.readLine(); untuk meng-handle inputan dari user yang disimpan dalam bentuk string. System.out.println(nilai) untuk mencetak value dari variabel nilai System.out.println(nama) untuk mencetak value dari variabel nama catch(Exception exc) digunakan sebagai blok yang meng-handle misalnya, ada error/problem ketika proses inputannya tidak sesuai. exc.printStackTrace() untuk mencetak pesan error yang terjadi apabila terdapat error. Ada 2 cara pendeklarasian try - catch dimana cara pertama sudah saya jelaskan seperti diatas dan cara kedua ialah dengan meletakkannya berbarengan dengan method main(). Untuk lebih jelasnya, silakan ketik kode program berikut. import java.io.BufferedReader; import java.io.InputStreamReader; import java.io.IOException; public class InputBufferedReader2 { public static void main(String[] args) throws IOException { BufferedReader dataIn = new BufferedReader(new InputStreamReader(System.in)); int nilai = Integer.parseInt(dataIn.readLine()); String nama = dataIn.readLine(); System.out.println(nilai); System.out.println(nama); } } Perhatikan pada kode program diatas, ada sedikit perbedaan dari cara yang pertama yakni, dimana blok try - catch nya hilang atau diganti dengan throws IOException. Setelah Anda paham dengan cara kerja dari Scanner dan BufferedReader sekarang mari kita selesaikan soal diatas secara bersama - sama. Sebelumnya, saya sudah menganggap bahwa Anda sudah belajar tentang Looping dalam Java agar nanti Anda tidak kebingungan dalam memahami jawaban dari soal diatas. Soal nomor 1 Membuat percetakan Hello World N dimana N ialah nomor barisnya secara berulang-ulang. Berikut ialah kode program untuk soal nomor 1. import java.util.Scanner; public class HelloWorldN { public static void main(String[] args) { Scanner input = new Scanner(System.in); int nilai = input.nextInt(); for(int n = 1; n <= nilai; n++) System.out.println("Hello World "+n); } } Penjelasan : for(int n = 1; n <= nilai; n++) maksudnya ialah akan melakukan perulangan secara terus - menerus sesuai dengan inputan yang diberikan oleh user. Soal nomor 2 Menentukan apakah tahun yang di inputkan oleh user merupakan tahun KABISAT atau BUKAN KABISAT dimana inputannya tadi akan di interval sesuai dengan inputan user. Jika inputan intervalnya bernilai positif maka, inputan tahunnya akan bertambah namun, jika intervalnya bernilai negatif maka, inputan tahunnya akan berkurang. Berikut ialah kode program untuk soal nomor 2. import java.util.Scanner; public class TahunKabisat { public static Scanner input = new Scanner(System.in); public static int tahun = input.nextInt(); public static int interval = input.nextInt(); public static void main(String[] args) { CekTahun(); if(interval > 0) { for(int x = interval; x >= 1; x--) { tahun++; CekTahun(); } } else { for(int x = interval; x < 0; x++) { tahun--; CekTahun(); } } } public static void CekTahun() { if((tahun % 4) == 0) System.out.println(tahun+" Kabisat"); else System.out.println(tahun+" Bukan Kabisat"); } } Penjelasan : Tahun Kabisat ditentukan dengan hitungan jika tahun dibagi dengan 4 hasil sisa pembagiannya sama dengan 0 maka, itu merupakan tahun kabisat". Contohnya, Tahun 2000 merupakan tahun Kabisat karena 2000 / 4 tidak memiliki nilai sisa atau sama dengan 0 dari hasil pembagiannya namun, tahun 2001 bukan tahun kabisat karena 2001 / 4 memiliki nilai sisa dari hasil pembagiannya. Jadi, lebih tepatnya pada kasus ini kita menggunakan operator Sisa Pembagian atau MOD. Di Java, operator ini ditulis dengan simbol '%'. Perhatikan pada kode program diatas, pada method CekTahun() di situ Anda bisa lihat bahwa tahun % 4 == 0 Tentang Penulis Yudi Setiawan Saat ini aktif sebagai Mahasiswa di salah satu Universitas di kota Medan dengan mengambil bidang Fakultas Teknik dan Ilmu Komputer. Sangat senang dengan bahasa pemrograman Java dan Android.