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
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 */
4. #include<stdio.h>
5. int
6. main(void)
7. { /* Badan Program */
9. }
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 */
4. #include<stdio.h>
5. int
6. main ()
7. {
8. /* KAMUS */
9.
10./* ALGORITMA */
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 */
4. #include<stdio.h>
5. int main ()
6. {/* Kamus */
8. /* Algoritma */
10. return 0;
11.}
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 */
4. #include<stdio.h>
5.
6. int main ()
7. {/* Kamus */
8. int i;
9.
10. /* Algoritma */
13.
17. return 0;
18.}
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 */
4. #include<stdio.h>
5.
6. int main ()
7. {/* Kamus */
8. int i;
9.
10. /* Algoritma */
13.
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 */
3. /* Deskripsi : */
6. #include<stdio.h>
7. int main ()
8. {
9. /* KAMUS */
10. char c = 65; /* inisialisasi nilai karakter dengan 65, kode huruf ‘A’
*/
12./* Algoritma */
17.
23.
24. return 0;
25.}
1. int main ()
2. {/* Kamus */
4. /* Algoritma */
6. return 0;
7. }
1. int main ()
2. {/* Kamus */
3. int i;
4.
5. /* Algoritma */
8.
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.
1. int main()
2. { /* Kamus */
3. float f = 0.555;
4. float x= 1.5E3;
5. /* Algoritma */
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..
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).
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.
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:\WINDOWS\system32;C:\WINDOWS;C:\Program Files\Java\jdk1.7.0\bin
Tentu sesuaikan dengan lokasi dari java yang ada dalam PC Anda.
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
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.
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.
IDE Online
Jika Anda mengalami kesulitan, Anda bisa menggunakan glot.io dan repl.it.
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.
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:
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.
3. Open: untuk Membuka folder yang sudah berisi aplikasi yang telah di buat.
2. Kemudian pilih Next.
3. Jika terdapat pilihan Create project from template, abaikan dan pilih next.
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.
3. System.out.println("Hello, World!");
4. }
5. }
2. Setelah itu akan muncul log pada bagian bawah. Anda juga dapat melihat output-
nya.
Hello, World!
3.
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.
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
Langkah penamaan package:
1. package com.dicoding.javafundamental.basic;
2.
5. System.out.println("Hello world!");
6. }
7. }
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!
1. com.dicoding.javafundamental.basic.Main
Import
1. System.out.println("Hello world!");
3. System.out.println("jrenggg..");
4. }
5. }
1. import com.dicoding.javafundamental.basic.musik.Gitar;
7.
4. }
5. }
Selanjutnya bukalah classMotor dan ubahlah kode di dalamnya:
9. }
10.}
14. }
15.}
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.
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;
7. package com.dicoding.javafundamental.basic;
8.
9. import com.dicoding.javafundamental.basic.kendaraan.*;
10.import com.dicoding.javafundamental.basic.musik.Gitar;
11.
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 (*).
16.
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
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.
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 System.out.println("Hello world!");
o Gitar.bunyi();
o
o Mobil.jumlahBan();
o Motor.jumlahBan();
o Kereta.jumlahBan();
o
o }
o }
3.
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
Codelab Pemaketan
Perhatikan,
akan terbentuk StrukturDasar.jar di directory artifacts yang isinya sama persis
seperti directory production.
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):
Untuk lokasi .jar, Anda dapat melihat letak berkas .jar yang sudah Anda
generate. Contohnya 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
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.
Proses : Serangkaian langkah yang dilakukan untuk mengelola input yang diberikan
Bufferedreader
Scanner
Sedangkan untuk menampilkan atau Output dari program adalah:
Println
Berikut bagaimana masing-masing kelas yang disediakan oleh Bahasa
Pemogragaman Java untuk mengambil input dari user.
Scanner
Codelab Scanner
1. package com.dicoding.javafundamental.inputouput;
2.
3. import java.util.Scanner;
4.
6.
16. }
17.}
3. Selanjutnya jalankanlah kode di atas pada IDE yang kalian gunakan. Bila
sukses, seharusnya Console akan menampilkan output seperti ini.
5.
Bedah Code Scanner
BufferedReader
Codelab BufferedReader
2.
3. import java.io.BufferedReader;
4. import java.io.IOException;
5. import java.io.InputStreamReader;
6.
8.
10.
16. try {
20. anotherValue =
Integer.parseInt(bufferedReader.readLine());
21.
23. e.printStackTrace();
24. }
28.}
4.
1. try {
3. value = Integer.parseInt(bufferedReader.readLine());
5. anotherValue = Integer.parseInt(bufferedReader.readLine());
6.
7. } catch (IOException e) {
8. e.printStackTrace();
9. }
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.
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.
2.
4.
10. }
11.}
4.
Bila kode di atas kita jalankan, Ouput yang diberikan kurang lebih seperti di bawah
ini:
Saat program dijalankan, semua kode yang di-print di atas akan keluar sesuai fungsi
yang kita pakai. Kita bedah kode diatas.
Jika Anda kesulitan, silakan lihat hasil jadinya di Source Code InputOuput.