Download pdf - Jagocoding.com

Survey
yes no Was this document useful for you?
   Thank you for your participation!

* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project

Document related concepts
no text concepts found
Transcript
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.