Anda di halaman 1dari 61

C

Sejarah Singkat dan Versi


Bahasa C dikembangkan oleh Dennis M. Ritchie dan Brian W. Kernighan pada awal
tahun 1970. Bahasa C berkembang di lingkungan UNIX (±90% sistem operasi UNIX
ditulis dalam bahasa C).
Terdapat beberapa standar untuk bahasa C, standar di sini dapat diartikan sebagai
guideline dalam menuliskan bahasa C. Beberapa Standar yang ada:
 Definisi Kernighan & Ritchie (K&R),
 ANSI-C (X-3.159 -1989-),
 Definisi AT&T (untuk superset C, C++), dan
 GNU Coding Standards.
Versi pada PC misalnya:
 Lattice C,
 Microsoft C/Microsoft QuickC, dan
 Turbo C/Borland C++.
Pada tahun 1986, dikembangkan superset C (kompatibel dengan C, namun
dilengkapi dengan kemampuan pemrograman berorientasi objek) oleh Bjarne
Stroustrup [Stroustrup-86], yaitu bahasa C++ (C with Class).

Catatan: Di dalam kelas ini memakai standar ANSI C. Contoh-contoh sedapat


mungkin dipilih bebas dari implementasi kompilator tertentu. Jika ada contoh yang
spesifik terhadap implementasi, implementasi kompilator yang dipakai akan
disebutkan.

Aplikasi dalam bahasa C


Bahasa C banyak dipakai untuk:
1. Membuat sistem operasi dan program-program sistem.
2. Pemrograman yang "dekat" ke perangkat keras (misalnya untuk kontrol
peralatan).
3. Membuat tool kit.
4. Menulis program aplikasi.
Kelebihan bahasa C, sehingga terpilih untuk aplikasi-aplikasi tersebut, adalah
kemampuannya untuk membuat kode yang compact, efisien tanpa mengorbankan
readability (beda dengan bahasa assembly yang efisien namun susah dibaca, atau
bahasa tingkat tinggi lain yang enak dibaca namun tidak efisien). Walaupun tak
dapat diingkari bahwa program dalam bahasa C lebih sulit dibaca (karena compact)
dibandingkan dengan bahasa tingkat tinggi yang lain.

Istilah-istilah yang akan dipakai


Istilah Pengertian
Blok Sekumpulan kalimat C yang ditulis di antara { dan }.
Definisi Memberitahukan sifat (property) objek dan sekaligus mengalokasikan memori untuk objek.
Deklarasi Memberitahukan sifat (property) objek (terutama berkaitan dengan tipe).
Istilah Pengertian
Inisialisasi Memberikan nilai objek
Deklarasi Global Deklarasi yang berlaku dalam satu unit translasi (file).
Deklarasi Lokal Deklarasi yang hanya berlaku dalam blok tempat deklarasi.
Objek Daerah memori bernama (sama dengan variabel).
Ekspresi yang me-referensi suatu objek. Secara mudah, lvalue adalah nilai di sebelah kiri
Lvalue ekspresi assignment. Contoh: identifier dengan tipe dan kelas   penyimpanan tertentu atau hasil
indireksi dari pointer.
Deklarasi fungsi, menyatakan nama, tipe return value, nama dan tipe parameter formal
Prototipe
(argumen).
Body Realisasi dari fungsi
Scope Daerah program tempat suatu nama dikenal.

Sebagai bahan perkenalan, anda dapat membaca tentang bahasa C


di https://en.wikipedia.org/wiki/C_(programming_language)
Buku yang direkomendasikan untuk dibaca adalah yang ditulis oleh penulis bahasa
C Kernighan & Ritchie: "The C Programming Language", yang informasi untuk
mengaksesnya dapat diperoleh
di https://en.wikipedia.org/wiki/The_C_Programming_Language
Kami sangat merekomendasikan Anda untuk menuliskan kembali kode yang
dicontohkan di kelas ini. Menuliskan kembali masuk ke pendekatan "Niru" dari 3N
(Niteni-Niru-Nambahi) yaitu metode pembelajaran yang dipakai di kelas C ini.
Developer yang baik adalah yang mampu mencari solusi terhadap suatu masalah
dan juga mampu menuliskan solusi tersebut ke dalam source code. Oleh karena itu
menuliskan code adalah sebagian besar tugas dari menjadi seorang developer.
Biasanya source code dituliskan ke dalam IDE (Integrated Development
Environment). IDE adalah aplikasi untuk membuat program. Fitur-fitur dari IDE
biasanya sangat lengkap dimulai dari mempermudah penulisan
kode, formatting kode, hingga compile dan running kode. 
Bagi Anda yang masih belajar, disarankan untuk menggunakan compiler
online yang fiturnya minimalis akan tetapi sangat cocok untuk siswa yang sedang
mulai belajar programming. Compiler online hanya membutuhkan browser dan
koneksi internet saja, sedangkan untuk menggunakan IDE client haruslah instalasi
ke pc/komputer.
 
Compiler Online
Untuk mengikuti kelas ini cobalah salah satu dari compiler online yang kami
rekomendasikan. Tiap compiler online memiliki plus-minusnya masing-masing, jadi
pilihlah yang menurut Anda paling gampang dan nyaman untuk digunakan.
Beberapa compiler online yang direkomendasikan adalah (urut abjad): 

1. Jdoodle : https://www.jdoodle.com/c-online-compiler

2. Glot : https://glot.io/new/c
3. Onlinegdb : https://www.onlinegdb.com

4. Repl : https://repl.it/languages/c

5. TutorialsPoint : https://www.tutorialspoint.com/compile_c_online.php

Catatan: Karena compiler ini sifatnya online, ada kemungkinan terjadi problem


teknis yang di luar jangkauan kita. Jika masalah ini terjadi di salah
satu compiler online tersebut, maka disarankan untuk mencoba compiler
online lainnya.
Contoh program paling sederhana adalah program menuliskan “Halo Dunia!“, yang
diberikan teksnya sebagai berikut. Program ini tidak mengirimkan nilai apapun, hanya
menuliskan sebuah string.

Badan program hanya terdiri dari satu instruksi menulis yaitu printf. Karena menulis, maka
memerlukan library standar untuk baca/tulis, yang dalam program sebagai berikut ditulis
dengan #include<stdio.h>.

1. /* File : halo.c */

2. /* Penulis : Bu Dengklek, email inge@bebras.or.id */

3. /* Program menuliskan “Halo Dunia! ” dan “end-of-line” (ganti baris) */

4. #include<stdio.h>

5. int

6. main(void)

7. { /* Badan Program */

8.     printf("Halo Dunia!\n ");

9. }

Perbedaan program ini dengan program sebelumnya adalah bahwa selain


menuliskan sebuah string (deretan huruf) ke layar, pada akhir eksekusi, program ini
mengirimkan atau mengembalikan ke Anda (return) sebuah nilai 0 yang dinyatakan
oleh perintah return 0. Karena mengirimkan sebuah nilai integer (Nol), awal program
adalah int main.

Untuk contoh program ini, sepertinya pengiriman nilai 0 tersebut tidak ada gunanya.
Tetapi kelak, saat Anda memrogram sistem dan program berinteraksi dengan
lingkungan serta program lain, nilai kembalian ini sangat berguna untuk men-cek
apakah program Anda melakukan tugasnya sesuai dengan spesifikasi, sampai
selesai dengan baik yaitu mengirimkan nilai 0. Oleh karena itu, selanjutnya, bentuk
penulisan ini yang dipakai sebagai “standar” penulisan dalam tutorial ini dan juga
oleh banyak tim developer, karena jika program dieksekusi dengan benar, program
lain yang memanfaatkannya dapat menangkap nilai 0 yang dikirimkannya.
1. /* File : halo1.c */

2. /* Penulis : Bu Dengklek, email inge@bebras.or.id */

3. /* Program untuk menuliskan Halo Dunia! ke layar */

4. #include<stdio.h>

5. int

6. main ()

7. {

8. /* KAMUS */

9.  

10./* ALGORITMA */

11.  printf ("Halo Dunia!\n");

12.  return 0;

13.}

Pengisian nilai dapat dilakukan saat suatu variabel dideklarasi melalui kalimat int
i; yang artinya Anda menyatakan (declare) bahwa Anda akan memakai sebuah
variabel bernama i. Cermati deklarasi yang dituliskan pada program sebagai berikut.

1. #include<stdio.h>

2. int main()

3. {  

4.   int i = 5;

5. }

Dengan mendeklarasikan suatu variabel berjenis int maka variabel tersebut dapat
menampung nilai bilangan bulat antara -32767 dan 32767. Jika anda membutuhkan
untuk nilai yang lebih besar, akan dibahas nanti pada modul selanjutnya.

Selain ditentukan nilainya, nilai tersebut akan dicetak ke layar. Untuk mencetak,
komputer perlu diberitahu bagaimana suatu nilai dicetak. %d pada teks program
akan digantikan oleh nilai I di layar.

1. /* File : initvar.c */

2. /* Penulis : Bu Dengklek, email inge@bebras.or.id */


3. /* Mengisi variabel i yg bertype in dengan nilai 5 dan menuliskannya */

4. #include<stdio.h>

5. int main ()

6. {/* Kamus */

7.   int i = 5; /* deklarasi dan inisialisasi nilai variabel i dengan 5 */

8.   /* Algoritma */

9.   printf ("Ini nilai i : %d \n", i);/*untuk mengamati dampak


inisialisasi*/

10.  return 0;

11.}

Pengisian nilai variabel I pada program ini dilakukan dengan melakukan assignment,


yang dalam bahasa C dituliskan dengan tanda =.

Perhatikan bahwa “=”artinya adalah mengisi hasil perhitungan ruas kanan ke nama
variabel di ruas kiri, dan bukan berati tanda “sama dengan”. Di sini Anda mulai
mengenal “semantik” (makna) dari unit sintaktikal yaitu simbol “=” dalam bahasa C.

1. /* File : assigni.c */

2. /* Penulis : Bu Dengklek, email inge@bebras.or.id */

3. /* Mengisi variabel i yg ber-type in dengan nilai 5 dan menuliskannya */

4. #include<stdio.h>

5.  

6. int main ()

7. {/* Kamus */

8.   int i;

9.  

10.  /* Algoritma */

11.  i = 5; /* sekarang variabel i akan bernilai 5 */

12.  printf ("Ini nilai i : %d \n", i);

13. 

14.  i = i+1; /* nilai i ditambah 1, hasilnya disimpan kembali di i */

15.  printf ("Ini nilai i : %d \n", i);


16. 

17.  return 0;

18.}

Pengisian nilai variabel I pada program ini dilakukan dengan melakukan assignment,


yang dalam bahasa C dituliskan dengan tanda =.

Perhatikan bahwa “=”artinya adalah mengisi hasil perhitungan ruas kanan ke nama
variabel di ruas kiri, dan bukan berati tanda “sama dengan”. Di sini Anda mulai
mengenal “semantik” (makna) dari unit sintaktikal yaitu simbol “=” dalam bahasa C.

1. /* File : assigni.c */

2. /* Penulis : Bu Dengklek, email inge@bebras.or.id */

3. /* Mengisi variabel i yg ber-type in dengan nilai 5 dan menuliskannya */

4. #include<stdio.h>

5.  

6. int main ()

7. {/* Kamus */

8.   int i;

9.  

10.  /* Algoritma */

11.  i = 5; /* sekarang variabel i akan bernilai 5 */

12.  printf ("Ini nilai i : %d \n", i);

13. 

14.  i = i+1; /* nilai i ditambah 1, hasilnya disimpan kembali di i */

15.  printf ("Ini nilai i : %d \n", i);

16. 

17.  return 0;

18.}

Sebuah karakter dikodekan menjadi kode ASCII atau kode lainnya dalam komputer.
Karakter dapat berupa : angka [‘0’ ..  ‘9’], abjad huruf kecil [‘a’..’z’], abjad huruf
kapital ‘’A’..’Z’], karakter khusus selain abjad dan huruf yang dapat Anda amati pada
keyboard  {!, @, #, $, ^, &, *, (, ), ?, “, ! ……. } atau karakter lainnya  yang tidak
kelihatan.
Deklarasi sebuah nama yang isinya adalah karakter dalam bahasa C dinyatakan
dengan char. Sebuah variabel ber-type char hanya dapat menampung satu karakter
saja, dan nilainya dapat diberikan dalam penulisan karakternya, atau kodenya.

Program berikut ini adalah contoh bagaimana Anda menyimpan sebuah “nilai”
karakter dalam variabel bertipekan char.

1. /* File: assignKar.c */

2. /* Penulis : Bu Dengklek, email inge@bebras.or.id */

3. /* Deskripsi : */

4. /* Program ini berisi contoh sederhana untuk mendefinisikan */

5. /* variabel bertype karakter */

6. #include<stdio.h>

7. int main ()

8. {

9. /* KAMUS */

10.  char c = 65; /* inisialisasi nilai karakter dengan 65, kode huruf ‘A’
*/

11.  char c1;

12./* Algoritma */

13./* penulisan karakter sebagai huruf */

14.  printf ("Karakter = %c\n", c);

15.  c1 = 'Z'; /* variabel c1 diisi dengan huruf ‘Z’ */

16.  printf ("Karakter = %c\n", c1);

17. 

18./* penulisan karakter */

19.  printf ("Karakter dalam kode ASCII = %d\n", c);

20.  printf ("Karakter sebagai huruf = %c\n", c);

21.  printf ("Karakter dalam kode ASCII = %d\n", c1);


22.  printf ("Karakter sebagai huruf = %c\n", c1);

23. 

24.  return 0;

25.}

Contoh program di Modul Pengisian Nilai dengan Inisialisasi.

1. int main ()

2. {/* Kamus */

3.   int i = 5; /* deklarasi dan inisialisasi nilai variabel i dengan 5 */

4.   /* Algoritma */

5.   printf ("Ini nilai i : %d \n", i);/*untuk mengamati dampak


inisialisasi*/

6.   return 0;

7. }

Contoh program di Modul Pengisian Nilai dengan Assignment.

1. int main ()

2. {/* Kamus */

3.   int i;

4.  

5.   /* Algoritma */

6.   i = 5; /* sekarang variabel i akan bernilai 5 */

7.   printf ("Ini nilai i : %d \n", i);

8.  

9.   i = i+1; /* nilai i ditambah 1, hasilnya disimpan kembali di i */

10.  printf ("Ini nilai i : %d \n", i);

11. 

12.  return 0;

13.}

Perhatikanlah kembali pada kedua contoh program di atas. Pada contoh Program
inisialisasi, Anda akan mengisi variabel dengan nilai bilangan bulat pada saat nama
variabel dideklarasikan, sedangkan pada program assignment Anda mengisinya
dengan instruksi assignment.

Contoh program di Modul Inisialisasi dan Assignment Nilai Bilangan Riil.

1. int main()

2. { /* Kamus */

3.   float f = 0.555;

4.   float x= 1.5E3;

5. /* Algoritma */

6.    printf ("Ini nilai f : %f \n", f);

7.    printf ("Ini nilai f : %5.2f \n", f);

8.    printf ("Ini nilai x : %10.2f \n", f);

9. return 0;

10.}

Tentu saja variabel penyimpannya bertipekan bilangan bulat (integer) yang dalam
bahasa C dituliskan sebagai int. Sedangkan pada program di atas Anda mengisi
variabel ber-type float yaitu bilangan riil dengan angka riil.

Selain itu, Anda belajar bahwa menuliskan suatu nilai membutuhkan pedoman,
format bagaimana nilai integer, nilai bilangan riil atau char dituliskan.
Java
Apa itu Java

Java adalah salah satu bahasa pemrograman yang populer saat ini. Java adalah
bahasa yang “general purpose, concurrent, class-based, dan object-oriented” tutur
penciptanya, James Gosling. Dengan Java, developer bisa membuat aplikasi yang
bersifat WORA (write once, run anywhere), artinya cukup sekali kita menuliskan
kode maka hasilnya yang berupa aplikasi, dapat berjalan di banyak platform..

Compiling di Java mengubah Java code menjadi Java bytecode. Dengan


menggunakan Java bytecode, kita lebih mudah memproses porting ke platform
lainnya via Java Virtual Machine (JVM)

Sintaks yang digunakan Java berasal dari C dan C++ dengan lebih sedikit
fasilitas low-level jika dibandingkan dengan keduanya. Java
memiliki automatic garbage collector yang berfungsi untuk mengelola memori secara
otomatis. Automatic garbage collector akan secara otomatis membebaskan memori
yang sudah tidak digunakan, dengan tujuan menghindari kebocoran memori
(memory leaks). Otomasi ini mengurangi beban developer dalam menuliskan kode
untuk membebaskan memori secara manual. Inilah yang membedakan Java dengan
C dan C++ (contoh metode free di C dan metode delete di C++)

ools
Sebelum berperang, kita harus siapkan senjatanya terlebih dahulu. Demikian halnya
dengan programming. Sebelum coding maka kita harus memastikan tools apa yang
akan kita pakai. Tools pertama yang terpenting adalah Java Development Kit (JDK).

Java Development Kit (JDK)

Java Development Kit adalah tools yang digunakan seorang developer dalam


proses developing, debugging, dan monitoring suatu aplikasi Java. Di dalam JDK
juga terdapat Java Runtime Environment yang digunakan untuk menjalankan suatu
aplikasi Java.

How to install JDK

Instal Java Development Kit yang bisa kita dapatkan pada tautan berikut:

 https://www.oracle.com/java/technologies/javase/javase-jdk8-downloads.html
Biasanya muncul pertanyaan, "Apakah JRE cukup?" Tidak, JRE adalah Java
Runtime Environment yang berfungsi sebagai Virtual Machine untuk menjalankan
program Java. Sedangkan JDK merupakan Java SE Development Kit, di mana JRE
juga terdapat di dalamnya. Dan yang lebih penting adalah di dalamnya
terdapat compiler dan tools untuk membuat dan compile program.

Sederhananya JRE untuk menjalankan program, sedangkan JDK untuk membuat


program. Mari kita mulai dengan proses instalasi dari JDK dari Oracle.

1. Langsung saja buka tautan di atas menggunakan browser Anda. Pilihlah link


download yang sesuai dengan OS yang Anda pakai.
2. Jangan lupa untuk mencentang Accept License Agreement dan klik
tombol Download.

3. Anda akan diminta untuk login terlebih dahulu, silakan mendaftar dulu jika
Anda belum memiliki akun.
4. Setelah proses mengunduh selesai, langsung install ke gawai Anda dan ikuti
petunjuknya sampai selesai.
Update PATH Environment Variable (Opsional)

Anda dapat menjalankan JDK tanpa pengaturan enviroment PATH atau secara
opsional mengaturnya agar dapat menjalankan berkas java ((javac.exe, java.exe,
javadoc.exe, dan sebagainya) dari directory manapun. Jika Anda tidak mengatur
variabel PATH, maka Anda perlu menentukan jalur lengkap/lokasi ke berkas yang
dapat dieksekusi setiap kali Anda menjalankannya, seperti:

1. C:\> "C:\Program Files\Java\jdk1.7.0\bin\javac" MyClass.java

"C:\Program Files\Java\jdk1.7.0\bin\javac" merupakan lokasi dari JDK yang biasanya


akan secara default ada. Di sini contoh versi yang digunakan adalah jdk 1.7.0. Di
dalamnya ada folder bin dan javac.

Lalu bagaimana cara mengaturnya? Caranya mudah kok, yakni:

1. Klik Start, kemudian pilih Control Panel, dan pilih System.

2. Kemudian klik Advanced dan pilih Environment Variables.

3. Tambahkan lokasi folder bin dari JDK untuk variabel PATHdi Variabel Sistem.


Berikut ini adalah nilai tipikal untuk variabel PATH:

1. C:\WINDOWS\system32;C:\WINDOWS;C:\Program Files\Java\jdk1.7.0\bin

Tentu sesuaikan dengan lokasi dari java yang ada dalam PC Anda.

4. Jika sudah Klik OK atau Apply untuk mengakhirinya.

5. Untuk memastikan apakah gawai sudah mengetahui tentang infomasi jdk, Anda bisa
menjalankan perintah java -version (Windows) atau javac -version (Linux/MacOS).
Tentu beda OS akan mempengaruhi cara pengaturan PATH Environment Variable.
Develop, Debug dan Monitor

Apa itu develop, debug dan monitor? Develop adalah proses penyusunan baris per


baris kode sampai menjadi satu aplikasi utuh yang memiliki suatu fungsi. Tujuan
akhir yang ingin dicapai akan mempengaruhi kompleksitas proses development. Tak
peduli betapa rumitnya proses development, kesalahan mungkin terjadi. Kesalahan
ini kita sebut sebagai bug, yakni  eror yang dapat membuat aplikasi kita tidak dapat
berjalan seperti keinginan. Di sinilah muncul istilah debug, yakni proses mencari dan
menghilangkan eror tersebut di dalam aplikasi untuk kemudian memperbaikinya.
Dan terakhir, monitor adalah proses untuk mengamati jalannya aplikasi dari yang
kita buat. Biasanya ini berhubungan dengan performa aplikasi
dengan environment di mana ia dijalankan. Intinya, JDK adalah tools wajib yang
harus digunakan oleh seorang developer Java untuk membuat suatu aplikasi dari nol
hingga selesai.

Integrated Development Environment (IDE)

Untuk membuat suatu aplikasi Java sebenarnya cukup dengan teks editor dan
command line. Editor digunakan untuk menuliskan baris kodenya
sementara command line digunakan untuk menjalankan perintah Java. Akan tetapi,
saat ini sudah ada IDE yang membantu tidak hanya dalam proses developing,
bahkan hingga optimasinya.

Biasanya di dalam IDE terdapat source code editor, build automation tools,


dan debugger. Fitur lainnya adalah code completion yang sangat berguna terkait
efisiensi penulisan kode. IDE juga biasanya dilengkapi dengan version control
system yang bermanfaat untuk versioning suatu aplikasi. Beberapa IDE juga
memiliki tools untuk membuat tampilan (layout) dalam Graphical User
Interface (GUI), sehingga kita bisa membuat suatu tampilan dengan cara drag-and-
drop.

IDE saat ini sudah menjadi tools wajib untuk memaksimalkan produktivitas


seorang developer dalam membuat suatu aplikasi. Seperti perumpamaan
sebelumnya, IDE adalah senjata developer. Semakin canggih dan tingginya kita
menguasai senjata tersebut, semakin ampuh juga efeknya.

Tools yang akan digunakan di dalam kelas ini adalah :

 OpenJDK, yakni free open source di bawah lisensi GNUGeneral Public License.

 Intellij, adalah IDE untuk Java development yang dikembangkan oleh JetBrains


Namun demikian, untuk mengikuti kelas ini, penggunaan Intellij dan OpenJDK
tidaklah bersifat wajib. Anda boleh menggunakan tools Java lainnya, tetapi lebih
disarankan memakai tools bahasan materi ini. Tujuannya, untuk mengurangi potensi
kesalahan teknis atau lainnya.
How to install Intellij

1. Unduh Intellij di tautan ini https://www.jetbrains.com/idea/download/. (Anda bisa


menggunakan versi Community)

2. Ikuti langkah-langkah di bawah ini untuk proses instalasinya.


3. Jalankan installer yang sudah Anda unduh:
4. Pilihlah lokasi di mana Anda hendak menyimpan aplikasi tersebut.

5. Centang pilihan launcher sesuai dengan versi OS yang Anda gunakan (32 atau 64)
bit. Perintah tersebut membuat launcher nampak di desktop. Anda pun bisa dengan
mudah mengakses Intellij.
6. Untuk start menu biarkan pilihan default-nya tetap intact.
7. Tunggu sampai prosesnya selesai.

8. Saat selesai, klik Finish.


Untuk petunjuk pemakaian yang resmi dari Intellij, silakan lihat tautan
ini https://www.jetbrains.com/help/idea/meet-intellij-idea.html.

IDE Online

Jika Anda mengalami kesulitan, Anda bisa menggunakan glot.io dan repl.it. 

Untuk glot.io, silakan ikuti cara-cara berikut:

1. Pertama bukalah halaman https://glot.io/.

2. Selanjutnya, pilih bahasa Java karena Anda akan mempelajari bahasa ini.
3. Selanjutnya, Anda bisa ubah nama proyek dan nama berkas yang Anda
buat dan tentunya Anda bisa memulai menuliskan baris kode di dalamnya.

Terdapat beberapa tombol pada gambar di atas, di antaranya:

1. tombol Run digunakan untuk menjalankan kode,


2. tombol Input digunakan untuk memasukkan teks ke dalam program
yang dijalankan,
3. tombol Output digunakan untuk menampilkan hasil dari program yang
dijalankan,
4. dan tombol Save digunakan untuk menyimpan berkas yang sudah
dibuat.

4. Anda juga bisa membuat beberapa berkas di dalam proyek ini dengan
menekan tombol add (+), seperti gambar di bawah:
Sedangkan untuk repl.it, silakan ikut cara-cara berikut:

1. Pertama, buka halaman repl.it.

2. Selanjutnya klik tombol Start coding, kemudian pilih bahasa Java.

Setelah itu, klik tombol Create repl.

3. Nah dengan begitu, Anda akan disuguhkan halaman untuk menuangkan kode-kode
Java Anda.
Di bagian kiri merupakan stuktur project, bagian tengah merupakan tempat
menuangkan kode Java, dan bagian kanan merupakan tempat input/output program.

First Java Project


Tujuan

Setelah semua tools sudah siap, mari kita buat aplikasi sederhana yang disimpan


dalam sebuah file Hello.java. Kita akan menuliskan teks Hello World! di layar
seperti ini:

Codelab Membuat Proyek Baru

Ikuti langkah-langkah berikut ini:

1. Buka aplikasi IntelliJ. Akan muncul window setup wizard seperti ini. Pilihlah Create


New Project.
Di dalam tampilan awal IntelliJ, terdapat beberapa pilihan menu, di antaranya:

1. Create New Project: untuk membuat project baru.

2. Import Project: untuk memasukan project yang telah di buat sebelumnya.

3. Open: untuk Membuka folder yang sudah berisi aplikasi yang telah di buat.

4. Chek out from Version Control: digunakan untuk berkolaboratif dengan


teman atau rekan kerja Anda.

2. Kemudian pilih Next.
3. Jika terdapat pilihan Create project from template, abaikan dan pilih next.

4. Ganti Project location ke directory folder yang Anda inginkan.


Berilah Project name-nya “HelloJava”.
5. Tampilan utama aplikasi adalah seperti ini.

Codelab Membuat Kelas Baru

Mari kita buat berkas baru dengan cara:

1. Klik kanan di bagian src kemudian pilih New → New Java Class. Lihatlah gambar di


bawah ini:

2. Setelah itu akan muncul dialog seperti gambar di bawah ini, berilah nama Main.
3. Tambahkan kode berikut ke dalam kelas Mainyang telah kita buat.

1. public class Main {

2.     public static void main(String[] args) {

3.         System.out.println("Hello, World!");

4.     }

5. }

Codelab Menjalankan Kelas Main

Anda bisa menjalankan Aplikasi dengan cara berikut:

1. Tekanlah tanda run dengan warna hijau di sebelah kiri editor. Lihat gambar di


bawah ini:

2. Setelah itu akan muncul log pada bagian bawah. Anda juga dapat melihat output-
nya.
Hello, World!

3.

Selesai sudah materi introduction. Di sini kita sudah membahas banyak hal


mengenai Java, JDK, IDE dan juga latihan membuat aplikasi Hello World. Jika
Anda ingin mengetahui arti dari kode di atas Anda dapat membacanya pada
tautan ini.

Basic 
Demi menaklukkan medan pemrograman dengan Java, kita perlu memahami
terlebih dahulu seperti apakah Java itu. Bagaimana strukturnya? Bagaimana
menggunakan fungsi basic programming yang ia miliki? Oleh karena itu kita perlu
tahu pemrograman dasar Java yang dikemas dalam materi berikut:  

1. Struktur Dasar
Ini adalah materi paling mendasar dari Java yang wajib Anda kuasai.  

2. Tipe Data
Setiap tipe data digunakan untuk menampung konten yang berbeda. Delapan (8) tipe
data dalam Java yang akan kita pelajari
adalah int, float, char, long, double, boolean, byte dan short.

3. String
Selain data primitif, string merupakan pokok dasar yang perlu Anda kuasai.

4. Operator
Operator meliputi operasi aritmatika dasar seperti penambahan, pengurangan,
perkalian, dan pembagian. Selain aritmatika dasar, terdapat juga operator-operator
lain seperti assignment, unary, equality and relational, dan condition.

5. Fungsi Input Output


Proses input dan output merupakan hal yang penting agar kita dapat berinteraksi
dengan program. Di sini kita akan belajar beberapa komponen yang dapat
menerima input dari user dan komponen yang dapat menampilkan data ke user.

6. Percabangan
Jalannya suatu program pasti akan bergantung pada kondisi yang dipilih. Untuk itu
kita memerlukan percabangan yang berfungsi sebagai control flow
statement atau statement yang dapat mengontrol alur jalan suatu kode berdasarkan
kondisinya.

7. Perulangan
Perulangan adalah kode yang bisa kita gunakan untuk mengulang beberapa instruksi
kode, seperti for, while, dan do-while.

8. Array
Array adalah kumpulan data yang dimasukkan ke dalam satu objek. Di materi ini kita
akan belajar tentang pembuatan array dan aplikasinya di dalam suatu program.

Struktur Dasar
Package

Kita telah menginstal tools yang diperlukan dan membuat program sederhana yang


menampilkan 'Hello, World!' di bagian Pendahuluan. Kini kita akan mempelajari
struktur dasar dari program Java. Setiap class di program Java diletakkan dalam
sebuah package, yakni mekanisme penempatan/penamaan class agar lebih
terstruktur atau modular.

Mekanisme package sangat diperlukan. Salah satunya untuk


membedakan class dengan nama yang sama. Misalnya institusi Apache
membuat class StringUtils. Begitu juga  dengan institusi Spring yang
membuat class StringUtils. Lalu bagaimana kita membedakan keduanya jika kita
ingin menggunakan kedua library tersebut secara bersamaan? Karena pada
praktiknya hampir setiap aplikasi Java dibuat dengan library dari eksternal. Yup,
coding Java sama dengan bermain di dunia open-source.

Langkah penamaan package:

 Umumnya menggunakan nama domain institusi (dengan penulisan di balik) pembuat


program tersebut.

 Sertakan nama program/aplikasi. Ikuti dengan nama modul-modulnya.

 Beri pemisah dengan tanda titik.


Anda tidak perlu bingung, berikut contohnya:

Nama domain institusi dicoding.com


Nama aplikasi Java Fundamental
Nama modul Basic
Maka nama package  dapat kita tulis seperti ini com.dicoding.javafundamental.basic
Perhatikan tabel di atas, nama package harus menggunakan huruf kecil tanpa
spasi. Package akan sinkron dengan directory dari berkas (file) .java (source-code)
dan juga hasil compile-nya yaitu file .class.

Codelab Struktur Dasar

Di bagian pendahuluan Anda sudah membuat program HelloJava dengan


sebuah class Main.Java, namun jika dilihat kembali Anda tidak akan melihat
informasi package di sana. Dalam kasus ini
program HelloJava mengunakan default package, di mana hal tersebut adalah cara
yang sangat tidak disarankan. Oleh karena itu mari kita mulai koding dengan
membuat kelas Main dalam package.
1. Buka aplikasi IntelliJ.

2. Setelah mengetahui beberapa penjelasan tersebut, sekarang kita pilih Create New


Project.

3. Pastikan pilih Java di panel kiri lalu klik tombol Next.

4. Kemudian, masukkanlah Project name dengan StrukturDasar. Untuk lokasi


proyeknya, Anda bisa memilih lokasi yang diinginkan.
Kemudian Klik tombol Finish.
Catatan: Jika ada popup-window Tip of the Day, silakan lihat untuk
membantu Anda beradaptasi dengan aplikasi IntelliJ.

Tutuplah jendela Tip of the Day untuk melanjutkan ke langkah berikutnya.

5. Buat package baru dengan cara sebagai berikut. Di panel proyek sebelah


kiri, klik kanan directory src. Kemudian pilih New - Package.
Kemudian masukkan package name-nya
dengan com.dicoding.javafundamental.basic.

6. Selanjutnta buat class baru di dalam package yang baru saja Anda buat


dengan cara, klik kanan di package tersebut dan pilihlah New - Java Class.

Kemudian masukan nama class tersebut dengan Main dan klik OK.


7. Perhatikan posisi dari class  Main yang Anda buat sebelumnya. Class tersebut akan
berada di dalam directory yang sama dengan nama package-nya.

8. Tambahkan kode sebagai berikut di class Main.

1. package com.dicoding.javafundamental.basic;

2.  

3. public class Main {

4.     public static void main(String[] args) {

5.         System.out.println("Hello world!");

6.     }

7. }

Jika Anda perhatikan terdapat kode package yang merupakan lokasi dari kelas Main.


Kelas Main berada di dalam package com.dicoding.javafundamental.basic.

9. Lalu jalankanlah class Main.java dengan klik salah satu tombol


di sebelah kiri panel Editor. Lalu pilih Run ‘Main.main()’.

10. Hasilnya akan muncul di panel 


di bawah:
Hello world!
11.

Apa yang sudah kita lakukan sebenarnya sama saja dengan bagian Pendahuluan.
Bedanya, Anda meletakkan class Main di
dalam package com.dicoding.javafundamental.basic. Ayo kita lanjut!

Ketika setiap class diletakkan di dalam sebuah package, bagaimana cara


memanggil class tertentu di antara class lain yang berbeda package-nya? Caranya
adalah dengan memanggil nama package secara lengkap, kemudian diikuti
nama class-nya. Hal ini biasa disebut dengan istilah Fully Qualified Name.
Misalnya, fully qualified name dari class  Main yang baru saja kita buat adalah:

1. com.dicoding.javafundamental.basic.Main

Import

Import digunakan untuk menyederhanakan pemanggilan class yang


berbeda package. Alhasil, Anda tak perlu menyebutkan fully
qualified name dari class yang ingin digunakan. Dari pengertian ini juga tersirat kita
tak perlu juga menyebutkan fully qualified name jika dalam package yang sama.

Khusus untuk class dari package java.lang, ia tidak perlu dipanggil


menggunakan fully qualified name. Artinya tidak perlu menggunakan import saat
memanggilnya, misalnya class java.lang.System yang kita gunakan
untuk print “Hello world!”. Perhatikan bahwa kode di bawah ini: 

1. System.out.println("Hello world!");

Pada kode di atas, kita hanya memanggil class dengan nama class System tanpa


nama package-nya.

Bagaimana kalau kita import beberapa class dari package yang sama? Kita bisa


menggunakan wildcard (simbol *) untuk menggantikan nama class-nya. Artinya,
Java akan otomatis mengenali seluruh class dari package tersebut. 
Codelab Import

OK untuk lebih jelasnya, mari kita langsung koding saja.

1. Buka kembali project StrukturDasar.

2. Buatlah kembali package dengan cara klik kanan directory src, kemudian


pilih New - Package. Masukkanlah nama package-
nya dengan com.dicoding.javafundamental.basic.musik.

Maka tampilan package saat ini menjadi seperti ini:

3. Selanjutnya buatlah classGitar di dalam packagemusic.

Tambahkan kode berikut di class Gitar:

1. public class Gitar {


2.     public static void bunyi(){

3.         System.out.println("jrenggg..");

4.     }

5. }

4. Buka kembali classMain, tambahkan kode seperti di bawah ini:

5. Perhatikan IntelliJ akan memberi tanda eror berwarna merah karena classGitar tidak


dikenali. Untuk itu kita perlu importclassGitar agar dikenali. Pindahkan kursor ke
baris kode yang ditandai dengan error tersebut, lalu tekan alt +
Enter(Windows) atau option + return(MacOS).

Otomatis IntelliJ akan menambahkan baris kode seperti berikut:

1. import com.dicoding.javafundamental.basic.musik.Gitar;

6. Lalu jalankanlah class Main dengan klik tombol run p


astikan tidak ada eror.
Hasilnya akan jadi seperti ini:
Hello world!
jrenggg..

7.

8. Selanjutnya buatlah kembali package baru dengan cara klik


kanan directory src, kemudian pilih New - Package. Masukkanlah nama package-
nya dengan: com.dicoding.javafundamental.basic.kendaraan.
Maka struktur package kali ini akan menjadi seperti ini:

9. Selanjutnya buat class baru dengan nama  Mobil, Motor, dan Kereta di


dalam package tersebut.

Tambahkan baris kode berikut di masing-masing class tersebut.


Pertama buka classMobil dan ubahlah kode di dalamnya menjadi seperti iniberikut:

1. public class Mobil {

2.     public static void jumlahBan(){

3.         System.out.println("Ban mobil 4");

4.     }

5. }
Selanjutnya bukalah classMotor dan ubahlah kode di dalamnya:

6. public class Motor {

7.     public static void jumlahBan() {

8.         System.out.println("Ban motor 2");

9.     }

10.}

Terakhir bukalah classKereta dan ubah juga kode di dalamnya menjadi seperti ini:

11.public class Kereta {

12.    public static void jumlahBan() {

13.        System.out.println("Ban kereta banyak!");

14.    }

15.}

10. Bukalah classMain lalu ketik (jangan copy-paste) kode berikut.

1. Mobil.jumlahBan();

11. Ketika kode di atas mulai diketik sebagian, maka IntelliJ akan memberi saran kode
(dikenal dengan istilah auto-complete) seperti gambar di bawah. Tekan Enter
agar IntelliJ melengkapi baris kode.

Dengan bantuan auto complete, Anda tidak perlu melakukan import secara manual.

12. Lengkapi class Main dengan kode sebagai berikut :

1. Motor.jumlahBan();

2. Kereta.jumlahBan();
13. Baris import dapat Anda sederhanakan yang awalnya seperti ini:

1. import com.dicoding.javafundamental.basic.kendaraan.Kereta;

2. import com.dicoding.javafundamental.basic.kendaraan.Mobil;

3. import com.dicoding.javafundamental.basic.kendaraan.Motor;

4. import com.dicoding.javafundamental.basic.musik.Gitar;

Menjadi:

5. import com.dicoding.javafundamental.basic.kendaraan.*;

6. import com.dicoding.javafundamental.basic.musik.Gitar;

Maka kelas Main menjadi seperti ini:

7. package com.dicoding.javafundamental.basic;

8.  

9. import com.dicoding.javafundamental.basic.kendaraan.*;

10.import com.dicoding.javafundamental.basic.musik.Gitar;

11. 

12.public class Main {

13.    public static void main(String[] args) {

14.        System.out.println("Hello world!");

15. 

16.        Gitar.bunyi();

17. 

18.        Mobil.jumlahBan();

19.        Motor.jumlahBan();

20.        Kereta.jumlahBan();

21.    }

22.}

Catatan:
Penggunaan wildcard (*) kadang tidak disarankan jika class di
dalam package tersebut terlalu banyak. Sebabnya, ia memperlama waktu untuk
pencarian class tersebut. Untuk itu kita serahkan ke IntelliJ mengatur import yang
optimal. Pilih menu Code | Optimize Imports. Baris import akan kembali ke
sebelumnya tanpa menggunakan wildcard (*).

14. Lalu jalankan class Main dengan klik tombol 


dan pastikan tidak ada error di dalamnya.

15. Maka hasilnya jadi seperti ini:


Hello wordl!
jrenggg..
Ban mobil 4
Ban motor 2
Ban kereta banyak!

16.
Classpath

Classpath adalah mekanisme di Java untuk menemukan class lain.


Biasanya class lain tersebut berasal dari library yang berbeda atau bahkan JDK itu
sendiri (kita sudah memakai class System). Jika Java tidak bisa
menemukan class yang kita panggil melalui kode kita, akan
terjadi error ClassNotFoundException atau NoClassDefFoundError. Error ini biasa
terjadi bagi pemula Java karena biasanya belum paham konsep classpath atau ada
kesalahan pengaturan classpath.

Sekarang tenang ya kalau ketemu error serupa. Kita kan sudah tahu bahwa terduga
adalah problem di classpath. Jadi paham juga deh, dari mana kita mesti
melakukan troubleshooting.

Codelab Classpath

1. Buka kembali proyek StrukturDasar. Buat directory baru dengan cara klik kanan di


proyek StrukturDasar seperti gambar di bawah:

Selanjutnya masukkan directory name dengan lib.

Maka akan jadi seperti ini:

2. Unduh library apachecommon-lang dari tautan berikut: 

o https://repo1.maven.org/maven2/org/apache/commons/commons-
lang3/3.9/commons-lang3-3.9.jar
3. Salin berkas .jar tersebut ke directory lib.

Maka akan jadi seperti ini:

4. Klik kanan di commons-lang3-3.9.jar untuk menjadikan


file jar menjadi library, pilihlah Add as Library....
Setelah itu biarkan namanya menjadi default dan tekan OK.
Maka hasilnya akan jadi seperti ini:

Perhatikan sekarang ada tanda panah di kiri sehingga kita bisa browse isi


berkas jar tersebut. Jika tanda tersebut tidak ada, maka proses penambahan library
yang Anda lakukan gagal.

5. Sekarang berkas jar sudah menjadi library di projectStrukturDasar.

6. Tambahkan baris kode berikut di classMain. Sebaiknya ketik (koding) saja


supaya get a grip tentang fitur auto -complete IntelliJ ini.

o Date today = new Date();

o System.out.println("Hari ini = " + today);

o Date tomorrow = DateUtils.addDays(today, 1);

o System.out.println("Besok = " + tomorrow);

Sehingga kelas Main.java menjadi seperti ini:

o package com.dicoding.javafundamental.basic;

o  

o import com.dicoding.javafundamental.basic.kendaraan.*;

o import com.dicoding.javafundamental.basic.musik.Gitar;
o import org.apache.commons.lang3.time.DateUtils;

o  

o import java.util.Date;

o  

o public class Main {

o     public static void main(String[] args) {

o         System.out.println("Hello world!");

o         Gitar.bunyi();

o  

o         Mobil.jumlahBan();

o         Motor.jumlahBan();

o         Kereta.jumlahBan();

o  

o         Date today = new Date();

o         System.out.println("Hari ini = " + today);

o Date tomorrow = DateUtils.addDays(today, 1);

o System.out.println("Besok = " + tomorrow);

o     }

o }

2. Jalankan class Main dengan klik tombol , pastikan tidak ada error.

Maka hasilnya akan menjadi seperti ini:


Hello wordl!
jrenggg..
Ban mobil 4
Ban motor 2
Ban kereta banyak!
Hari ini = Tue Jul 16 18:12:44 WIB 2019
Besok = Wed Jul 17 18:12:44 WIB 2019

3.

Praktik yang kita lakukan barusan adalah menambahkan library (file jar) secara


manual ke proyek. Cara ini sebenarnya kurang efektif jika dilakukan untuk proyek
besar. Bayangkan jika kita menggunakan library A yang bergantung (dependencies)
ke library B, C, D, lalu library B bergantung ke library X dan Y. Cukup bikin repot
kan? Solusinya, gunakan tools seperti maven atau gradle. Pembahasan maven dan
gradle di luar cakupan dari class ini. Saran kami, bacalah referensi yang ada di
bawah karena kedua tools tersebut sudah menjadi standar
dalam development Java.

 http://www.baeldung.com/java-classnotfoundexception-and-noclassdeffounderror

 https://maven.apache.org

 https://gradle.org

 https://spring.io/guides/gs/maven

 https://spring.io/guides/gs/gradle

Pemaketan

Setiap kode Java yang ditulis akan dikompilasi menjadi bytecode (file


dengan extension .class) lalu pada akhirnya akan dipaketkan untuk didistribusikan.
Bentuk pemaketan yang sering digunakan adalah bentuk JAR (Java ARchive), ada
juga bentuk lain misal WAR (Web ARchive) dan EAR (Enterprise ARchive). Dari
nama pemaketan ini bisa ditebak sebenarnya hanya berkas archive atau berkas zip.
Isinya bisa diintip menggunakan winzip, winrar atau aplikasi sejenis.
 Di dalam hasil pemaketan tersebut ada berkas metadata yang menjelaskan isi
berkas JAR. File tersebut adalah manifest.mf yang diletakkan di directory META-
INF. 

Codelab Pemaketan

Mari kita coba paketkan project StrukturDasar dalam bentuk JAR.

1. Buka kembali IntelliJ. File | Project Structure | Artifacts. Klik tombol + lalu


pilih JAR | From modules with dependencies.

Pilih Main Class, klik tombol 

atau  lalu ketik Main di popup. Kemudia klik OK untuk melanjutkan.

Maka akan jadi seperti gambar di bawah. Klik OK untuk melanjutkan.


Hasil akhirnya akan menjadi seperti gambar di bawah. Klik OK untuk melanjutkan.
2. Selanjutnya pilihlah menu Build dan pilih Build Artifacts.

Pilihlah Build untuk memulai membangun Artifacts.

Perhatikan,
akan terbentuk StrukturDasar.jar di directory artifacts yang isinya sama persis
seperti directory production.

3. Perhatikan dan buka berkas MANIFEST.MF yang dibuat otomatis oleh


proses Build.

1. Manifest-Version: 1.0

2. Main-Class: com.dicoding.javafundamental.basic.Main
4. Buka panel Terminal di bagian bawah IDE (sesuaikan dengan versi IDE
Anda):

Kemudian ketikkan command atau perintah berikut dan lihat hasilnya.

1. java -jar [lokasi .jar]

Untuk lokasi .jar, Anda dapat melihat letak berkas .jar yang sudah Anda
generate. Contohnya seperti ini:

Maka dapat disimpulkan lokasinya


adalah out/artifacts/StrukturDasar_jar/StrukturDasar.jar.

Maka hasilnya akan jadi seperti ini:

Hello wordl!
jrenggg..
Ban mobil 4
Ban motor 2
Ban kereta banyak!
Hari ini = Tue Jul 16 18:12:44 WIB 2019
Besok = Wed Jul 17 18:12:44 WIB 2019

Selesai sudah materi struktur dasar. Sampai ketemu di materi selanjutnya, happy


coding!

Jika Anda mengalami kesulitan, silakan unduh source code-nya di Source Code


Struktur Dasar.

Input Output
Pemrograman Java terdiri dari 3 komponen dasar yaitu Input, Proses dan Output.
Dari materi sebelumnya juga kita sudah belajar menggunakan beberapa kode yang
merupakan bagian dari Proses dan Output. Sudahkah Anda menyadarinya? Pada
materi ini kita akan mempelajari bagaimana mengambil hasil Input hingga
bagaimana hasil Input diproses dan ditampilkan pada layar.

Lantas bagaimana Input, Proses dan Output itu?

 Input : Nilai yang dimasukkan

 Proses : Serangkaian langkah yang dilakukan untuk mengelola input yang diberikan

 Output : Menampilkan hasil olah data.


Pada bahasa pemrograman Java, Basic Input-nya sudah dibekali
beberapa library untuk membantu pengambilan Input berbasis teks. Beberapa di
antaranya:

 Bufferedreader

 Scanner
Sedangkan untuk menampilkan atau Output dari program adalah:

 Print

 Println
Berikut bagaimana masing-masing kelas yang disediakan oleh Bahasa
Pemogragaman Java untuk mengambil input dari user.

Scanner

Scanner merupakan kelas yang menyediakan fungsi-fungsi untuk membaca dan


mengambil input dari pengguna. Scanner memiliki kemudahan yang dapat membaca
teks, baik yang memiliki tipe data primitif maupun string.

Codelab Scanner

Mari kita coba kode di bawah ini untuk implementasi materi Scanner ini. 

1. Buatlah proyek baru dengan nama InputOuput dengan nama


package com.dicoding.javafundamental.inputouput di dalamnya:

2. Buatlah sebuah kelas baru di dalamnya dengan nama InputOutputFunction,


kemudian tambahkan kode berikut:

1. package com.dicoding.javafundamental.inputouput;

2.  

3. import java.util.Scanner;

4.  

5. public class InputOutputFunction {

6.  

7.     public static void main(String[] args) {

8.         Scanner scanner = new Scanner(System.in);

9.         System.out.println("Program penjumalahan sangat


sederhana");
10.        System.out.print("Masukan Angka pertama : ");

11. int value = scanner.nextInt();

12.        System.out.print("Masukan Angka kedua : ");

13. int anotherValue = scanner.nextInt();

14. int result = value + anotherValue;

15. System.out.println("Hasilnya adalah : " + result);

16.    }

17.}

3. Selanjutnya jalankanlah kode di atas pada IDE yang kalian gunakan. Bila
sukses, seharusnya Console akan menampilkan output seperti ini.

Program penjumlahan sangat sederhana


Masukan Angka pertama : 10
Masukan Angka kedua : 5
Hasilnya adalah : 15
4.

5.
Bedah Code Scanner

Perhatikan kode di bawah ini:

1. Scanner scanner = new Scanner(System.in);

Kode di atas merupakan inisialisasi awal ketika akan menggunakan Scanner. Di


bagian ini kita mencoba untuk menggunakan perintah mengambil input yang
diberikan oleh user. Bila program dijalankan, setiap input yang diberikan akan
disimpan oleh Scanner.

1. System.out.print("Masukan Angka pertama : ");


2. int value = scanner.nextInt();

Selanjutnya kita akan mengambil data yang telah dimasukkan


melalui Scanner. Dengan memanggil Scanner.nextInt() setiap Input dari keyboard
akan diberikan ke value.

Adapun catatan yang harus diperhatikan adalah penggunaan fungsi Scanner.


Pengambilan data sangat bergantung pada tipe data yang dimasukan. Ini harus
sesuai, misalnya untuk string, panggilah Scanner.next(). Jika data yang
diinputkan Integer, panggilah Scanner.nextInt(). Jika input tidak sesuai, program
akan menemui eror.

BufferedReader

Kelas dalam Java ini merupakan paket dari Java.io. BufferedReader dapat


digunakan pada materi ini sebagai Basic Input karena sebenarnya kelas ini tidak
hanya digunakan untuk membaca input dari keyboard saja, melainkan juga untuk
mendapatkan input dari user. Fungsi terakhir ini adalah fungsi
dasar BufferedReader yang sama dengan Scanner.

Dalam implementasinya BufferedReader tidak dapat berjalan sendiri. Untuk


mendapatkan input dibutuhkan kelas InputStreamReader. 

Codelab BufferedReader

Pada codelab kali ini, kita akan memanfaatkan BufferdReader untuk


mendapatkan input dari user.

1. Bukalah kembali proyek InputOutput dan buatlah kelas baru dengan


nama UserBufferedReader.

2. Masukkan kode berikut ke dalam kelas UserBufferedReader:


1. package com.dicoding.javafundamental.inputouput;

2.  

3. import java.io.BufferedReader;

4. import java.io.IOException;

5. import java.io.InputStreamReader;

6.  

7. public class UserBufferedReader {

8.  

9.     public static void main(String[] args) {

10.

11. InputStreamReader streamReader = new


InputStreamReader(System.in);

12. BufferedReader bufferedReader = new


BufferedReader(streamReader);

13.        System.out.println("Program penjumlahan sangat


sederhana");

14. int value = 0;

15. int anotherValue = 0;

16.        try {

17.            System.out.print("Masukan Angka pertama : ");

18. value = Integer.parseInt(bufferedReader.readLine());

19.            System.out.print("Masukan Angka kedua : ");

20. anotherValue =
Integer.parseInt(bufferedReader.readLine());

21.

22.        } catch (IOException e) {

23.            e.printStackTrace();

24.        }

25. int resul = value + anotherValue;

26. System.out.println("Hasilnya adalah : " + resul);


27.    }

28.}

3. Jalankan kode di atas maka hasilnya akan jadi seperti ini:


Program penjumlahan sangat sederhana
Masukan Angka pertama : 9
Masukan Angka kedua : 2
Hasilnya adalah : 11

4.

Bedah Code BufferedReader

Mari kita kupas bagaimana kode di atas berjalan.

1. InputStreamReader streamReader = new InputStreamReader(System.in);

2. BufferedReader bufferedReader = new BufferedReader(streamReader);

Tidak jauh berbeda dengan cara dari penggunaan Scanner, kita harus


menginisialisasi BufferedReader yang dibantu oleh InputStreamReader agar dapat
membaca Input dari Keyboard.

1. try {

2.     System.out.print("Masukan Angka pertama : ");

3.     value = Integer.parseInt(bufferedReader.readLine());

4.     System.out.print("Masukan Angka kedua : ");

5.     anotherValue = Integer.parseInt(bufferedReader.readLine());

6.  

7. } catch (IOException e) {
8.     e.printStackTrace();

9. }

Namun sedikit berbeda dengan


implementasi Scanner, tambahkan ioException sebagai penanganan error
input pada BufferedReader. Selain itu untuk menyimpan pada sebuah variabel, data
yang diberikan oleh BufferedReader harus kita parsing terlebih dahulu.

1. int value = Integer.parseInt(bufferedReader.readLine());

Seperti pada potongan kode diatas, bila ingin menyimpan data pada int maka nilai
yang ada pada bufferedReader.readLine() harus dikonversi dahulu ke dalam bentuk
integer menggunakan Integer.parseInt.

print dan println

Tentunya kita sudah familiar bagaimana memberikan output dari yang sudah kita
praktikkan pada beberapa contoh program sebelumnya. Pada dasarnya kedua
fungsi di atas sama-sama memiliki peran untuk menampilkan teks di Console
maupun dari IDE yang kita gunakan.

Apa yang berbeda diantara 2 fungsi di atas? Berikut implementasinya:

Codelab print dan println

Pada codelab kali ini, kita akan memanfaatkan print dan println:

1. Bukalah kembali proyek InputOutput dan buatlah kelas baru dengan


nama UserOutput.

2. Masukkan kode berikut ke dalam kelas UserOutput:


1. package com.dicoding.javafundamental.inputouput;

2.  

3. public class UserOutput {

4.  

5.     public static void main(String[] args) {

6.         System.out.println("Dicetak pakai println()");

7.         System.out.println("Ini juga dicetak pakai println()");

8.         System.out.print("Ini dicetak dengan print()");

9.         System.out.print(" dan ini juga dicetak dengan print()");

10.    }

11.}

3. Jalankan kode di atas maka hasilnya akan jadi seperti ini:


Dicetak pakai println()
Ini juga dicetak pakai println()
Ini dicetak dengan print() dan ini juga dicetak dengan print()

4.

Bedah Code print dan println

Bila kode di atas kita jalankan, Ouput yang diberikan kurang lebih seperti di bawah
ini:

1. Dicetak pakai println()

2. Ini juga dicetak pakai println()


3. Ini dicetak dengan print() dan ini juga dicetak dengan print()

Saat program dijalankan, semua kode yang di-print di atas akan keluar sesuai fungsi
yang kita pakai. Kita bedah kode diatas.

1. System.out.println("Dicetak pakai println()");

Penggunaan println akan menampilkan teks dan tambahan baris baru.

1. System.out.print("Ini dicetak dengan print()");

2. System.out.print(" dan ini juga dicetak dengan print()");

Sedangkan fungsi print menampilkan keluaran berupa teks sesuai dengan yang


dimasukkan.

Jika Anda kesulitan, silakan lihat hasil jadinya di Source Code InputOuput.

Anda mungkin juga menyukai