SlideShare a Scribd company logo
Java Dasar
Eko Kurniawan Khannedy
Eko Kurniawan Khannedy
- Technical architect at one of the biggest
ecommerce company in Indonesia
- 10+ years experiences
- youtube.com/c/ProgrammerZamanNow
Eko Kurniawan Khannedy
● Telegram : @khannedy
● Facebook : fb.com/ProgrammerZamanNow
● Instagram : instagram.com/programmerzamannow
● Youtube : youtube.com/c/ProgrammerZamanNow
● Telegram Channel : https://t.me/ProgrammerZamanNow
● Email : echo.khannedy@gmail.com
Untuk Siapa Materi Ini?
● Programmer Pemula
● Android Engineer
● Backend Engineer
● Data Engineer
Agenda
● Pengenalan Java
● Instalasi Java
● Tipe Data di Java
● Operator
● Percabangan
● Perulangan
● Method
Pengenalan Java
Sejarah Java
● Java adalah bahasa pemrograman yang dibuat oleh James Gosling saat bekerja di Sun Microsystem
● Java dirilis ke public tahun 1995
● Java adalah bahasa pemrograman berorientasi objek dan mendukung pengelolaan memori secara
otomatis
● Saat ini perusahaan Sun Microsystem telah dibeli oleh Oracle
● Java terkenal dengan write once, run anywhere, karena binary program Java di-generate secara
independen dan bisa dijalankan di Java Virtual Machine yang terinstall di berbagai sistem operasi
Teknologi Java
● Java Standard Edition
● Java Enterprise Edition
● Java Micro Edition
Versi Java
Kenapa Belajar Java
https://www.tiobe.com/tiobe-index/
Dimana Java Banyak Digunakan?
● Backend, banyak perusahaan besar saat ini menggunakan Java sebagai aplikasi backend nya
seperti Twitter, Netflix, Spotify, Amazon, Alibaba, Blibli, dan lain-lain
● Big Data, teknologi-teknologi big data yang saat ini populer, kebanyakan adalah teknologi Java,
seperti Apache Hadoop, Elasticsearch, Apache Cassandra, Apache Spark, Apache Kafka, dan
lain-lain
● Android, di Android kita bisa menggunakan Java dan Kotlin untuk membuat aplikasi nya
JRE vs JDK
● JRE singkatan dari Java Runtime Environment
● JDK singkatan dari Java Development Kit
Java Virtual Machine
● Java sendiri hanyalah bahasa pemrograman, otak dibalik teknologi Java sebenarnya sebuah
teknologi yang disebut Java Virtual Machine
● Java Virtual Machine merupakan program yang digunakan untuk mengeksekusi binary file Java
● Karena JVM hanya mengerti binary file, sehingga akhirnya banyak bahasa pemrograman yang
mengadopsi teknologi JVM, seperti Kotlin, Scala, Groovy dan lain-lain
● Dengan begitu, banyak bahasa pemrograman yang lebih canggih dari Java, namun mereka tetap
jalan di JVM yang sudah terbukti stabil dan bagus
Proses Development Program Java
Menginstall Java
OpenJDK
● OpenJDK adalah salah satu implementasi Java Development Kit yang opensource dan gratis
● https://openjdk.java.net/
OpenJDK vs yang lain
● Oracle JDK : https://www.oracle.com/java/technologies/javase-downloads.html
● Amazon Corretto : https://aws.amazon.com/id/corretto/
● Zulu : https://www.azul.com/downloads/zulu-community/
Download OpenJDK
● https://jdk.java.net/
Setting PATH
● Windows : https://medium.com/programmer-zaman-now/setting-java-path-di-windows-4da2c65d8298
● Linux atau Mac
# Add to .bashrc or .profile or .zshrc
export JAVA_HOME="/Library/Java/JavaVirtualMachines/jdk1.8.0_241.jdk/Contents/Home"
export PATH="$JAVA_HOME/bin:$PATH"
Integrated Development Environment
● IDE adalah smart editor yang digunakan untuk mengedit kode program
● IDE juga digunakan untuk melakukan otomatisasi proses kompilasi kode programdan otomatisasi
proses menjalankan program
IDE untuk Java
● Intelli JDEA Ultimate / Community : https://www.jetbrains.com/idea/
● Eclipse : https://www.eclipse.org/downloads/packages/
● NetBeans : https://netbeans.apache.org/
● JDeveloper : https://www.oracle.com/application-development/technologies/jdeveloper.html
Program Hello World
Program Hello World
Kompilasi Kode Java
Tipe Data Number
Tipe Data Number
● Integer Number
● Floating Point Number
Integer Number
Tipe Data Min Max Size Default
byte -128 127 1 byte 0
short -32,768 32,767 2 bytes 0
int -2,147,483,648 2,147,483,647 4 bytes 0
long -9,223,372,036,
854,775,808
9,223,372,036,
854,775,807
8 bytes 0
Kode : Integer Number
Floating Point Number
Tipe Data Min Max Size Default
float 3.4e−038 3.4e+038 4 bytes 0.0
double 1.7e−308 1.7e+308 8 bytes 0.0
Kode : Floating Point Number
Kode : Literals
Kode : Underscore
Konversi Tipe Data Number
● Widening Casting (Otomatis) : byte -> short -> int -> long -> float -> double
● Narrowing Casting (Manual) : double -> float -> long -> int -> char -> short -> byte
Kode : Konversi Tipe Data Number
Tipe Data Character
Tipe Data Character
● Data Character (huruf) di Java direpresentasikan oleh tipe char.
● Untuk membuat data char di Java, kita bisa menggunakan tanda ‘ (petik satu) di awal dan di akhir
karakter
Kode : Character
Tipe Data Boolean
Tipe Data Boolean
● Tipe data boolean adalah tipe data yang memiliki 2 nilai, yaitu benar dan salah
● Tipe data boolean di Java direpresentasikan dengan kata kunci boolean
● Nilai benar direpresentasikan dengan kata kunci true
● Nilai salah direpresentasikan dengan kata kunci false
● Default value untuk boolean adalah false
Kode : Boolean
Tipe Data String
Tipe Data String
● Tipe data String adalah tipe data yang berisikan data kumpulan karakter atau sederhananya adalah
teks
● Di Java, tipe data String direpresentasikan dengan kata kunci String
● Untuk membuat String di Java, kita menggunakan karakter “ (petik dua) sebelum dan setelah teks
nya
● Default value untuk String adalah null
Kode : String
Kode : Menggabungkan String
Variable
Variable
● Variable adalah tempat untuk menyimpan data
● Java adalah bahasa static type, sehingga sebuah variable hanya bisa digunakan untuk menyimpan
tipe data yang sama, tidak bisa berubah-ubah tipe data seperti di bahasa pemrograman PHP atau
JavaScript
● Untuk membuat variable di Java kita bisa menggunakan nama tipe data lalu diikuti dengan nama
variable nya
● Nama variable tidak boleh mengandung whitespace (spasi, enter, tab), dan tidak boleh seluruhnya
number
Kode : Variable
Kata Kunci var
● Sejak versi Java 10, Java mendukung pembuatan variabel dengan kata kunci var, sehingga kita
tidak perlu menyebutkan tipe datanya
● Namun perlu diingat, saat kita menggunakan kata kunci var untuk membuat variable, kita harus
menginisiasi value / nilai dari variable tersebut secara langsung
Kode : Kata Kunci var
Kata Kunci final
● Secara default, variable di Java bisa diubah-ubah nilainya
● Jika kita ingin membuat sebuah variable yang datanya tidak boleh diubah setelah pertama kali
dibuat, kita bisa menggunakan kata kunci final
● Istilah variabel seperti ini, banyak juga yang menyebutnya konstan
Kode : Kata Kunci final
Tipe Data Bukan Primitif
Tipe Data Bukan Primitif
● Tipe data primitif adalah tipe bawaan di dalam bahasa pemrograman. Tipe data primitif tidak bisa
diubah lagi
● Tipe data number, char, boolean adalah tipe data primitif. Tipe data primitif selalu memiliki default
value
● Tipe data String bukan tipe data primitif, tipe data bukan primitif tidak memiliki default value, dan
bisa bernilai null
● Tipe data bukan primitif bisa memiliki method/function (yang akan dibahas nanti)
● Di Java, semua tipe data primitif memiliki representasi tipe data bukan primitif nya
Representasi Tipe Data Primitif (1)
Tipe Data Primitif Tipe Data Bukan Primitif
byte Byte
short Short
int Integer
long Long
float Float
double Double
Representasi Tipe Data Primitif (2)
Tipe Data Primitif Tipe Data Bukan Primitif
char Character
boolean Boolean
Kode : Tipe Data Bukan Primitif
Kode : Konversi Dari Tipe Primitif
Tipe Data Array
Tipe Data Array
● Array adalah tipe data yang berisikan kumpulan data dengan tipe yang sama
● Jumlah data di Array tidak bisa berubah setelah pertama kali dibuat
Cara Kerja Array
Kode : Membuat Array
Kode : Array Initializer
Operasi di Array
Operasi Array Keterangan
array[index] Mengambil data di array
array[index] = value Mengubah data di array
array.length Mengambil panjang array
Kode : Operasi di Array
Kode : Array di dalam Array
Operasi Matematika
Operasi Matematika
Operator Keterangan
+ Penjumlahan
- Pengurangan
* Perkalian
/ Pembagian
% Sisa Pembagian
Kode : Operasi Matematika
Augmented Assignments
Operasi Matematika Augmented Assignments
a = a + 10 a += 10
a = a - 10 a -= 10
a = a * 10 a *= 10
a = a / 10 a /= 10
a = a % 10 a %= 10
Kode : Augmented Assignments
Unary Operator
Operator Keterangan
++ a = a + 1
-- a = a - 1
- Negative
+ Positive
! Boolean kebalikan
Kode : Unary Operator
Operasi Perbandingan
Operasi Perbandingan
● Operasi perbandingan adalah operasi untuk membandingkan dua buah data
● Operasi perbandingan adalah operasi yang menghasilkan nilai boolean (benar atau salah)
● Jika hasil operasinya adalah benar, maka nilainya adalah true
● Jika hasil operasinya adalah salah, maka nilainya adalah false
Operator Perbandingan
Operator Keterangan
> Lebih Dari
< Kurang Dari
>= Lebih Dari Sama Dengan
<= Kurang Dari Sama Dengan
== Sama Dengan
!= Tidak Sama Dengan
Kode : Operasi Perbandingan
Operasi Boolean
Operasi Boolean
Operator Keterangan
&& Dan
|| Atau
! Kebalikan
Operasi &&
Nilai 1 Operator Nilai 2 Hasil
true && true true
true && false false
false && true false
false && false false
Operasi ||
Nilai 1 Operator Nilai 2 Hasil
true || true true
true || false true
false || true true
false || false false
Operasi !
Operator Nilai 2 Hasil
! true false
! false true
Kode : Operasi Boolean
Expression, Statement & Block
Expression
● Expression adalah konstruksi dari variabel, operator dan pemanggilan method yang mengevaluasi menjadi
sebuah single value
● Expression adalah core component dari statement
Kode : Expression
Statement
● Statement bisa dibilang adalah kalimat lengkap dalam bahasa.
● Sebuah statement berisikan execution komplit, biasanya diakhiri dengan titik koma
● Ada beberapa jenis statement :
○ Assignment expression
○ Penggunaan ++ dan --
○ Method invocation
○ Object creation expression
Kode : Statement
Block
● Block adalah kumpulan statement yang terdiri dari nol atau lebih statement.
● Block diawali dan diakhiri dengan kurung kurawal { }
Kode : Block
If Statement
If Statement
● Dalam Java, if adalah salah satu kata kunci yang digunakan untuk percabangan
● Percabangan artinya kita bisa mengeksekusi kode program tertentu ketika suatu kondisi terpenuhi
● Hampir di semua bahasa pemrograman mendukung if expression
Kode : If Statement
Else Statement
● Blok if akan dieksekusi ketika kondisi if bernilai true
● Kadang kita ingin melakukan eksekusi program tertentu jika kondisi if bernilai false
● Hal ini bisa dilakukan menggunakan else expression
Kode : Else Statement
Else If Statement
● Kada dalam If, kita butuh membuat beberapa kondisi
● Kasus seperti ini, di Java kita bisa menggunakan Else If expression
● Else if di Java bisa lebih dari satu
Kode : Else If Statement
Switch Statement
Switch Statement
● Kadang kita hanya butuh menggunakan kondisi sederhana di if statement, seperti hanya
menggunakan perbandingan ==
● Switch adalah statement percabangan yang sama dengan if, namun lebih sederhana cara
pembuatannya
● Kondisi di switch statement hanya untuk perbandingan ==
Kode : Switch Statement
Switch Lambda
● Di Java versi 14, diperkenalkan switch expression dengan lambda
● Ini lebih mempermudah saat penggunaan switch expression karena kita tidak perlu lagi
menggunakan kata kunci break
Kode : Switch Lambda
Kata Kunci yield
● Di Java 14, ada kata kunci baru yaitu yield, dimana kita menggunakan kata kunci yield untuk
mengembalikan nilai pada switch statement
● Ini sangat mempermudah kita ketika butuh membuat data berdasarkan kondisi switch statement
Kode : Switch Tanpa yield
Kode : Switch Dengan yield
Ternary Operator
Ternary Operator
● Ternary operator adalah operator sederhana dari if statement
● Ternary operator terdiri dari kondisi yang dievaluasi, jika menghasilkan true maka nilai pertama
diambil, jika false, maka nilai kedua diambil
Kode : Tanpa Ternary Operator
Kode : Dengan Ternary Operator
For Loop
For Loop
● For adalah salah satu kata kunci yang bisa digunakan untuk melakukan perulangan
● Blok kode yang terdapat di dalam for akan selalu diulangi selama kondisi for terpenuhi
Sintak Perulangan For
for(init statement; kondisi; post statement){
// block perulangan
}
● Init statement akan dieksekusi hanya sekali di awal sebelum perulangan
● Kondisi akan dilakukan pengecekan dalam setiap perulangan, jika true perulangan akan dilakukan,
jika false perulangan akan berhenti
● Post statement akan dieksekusi setiap kali diakhir perulangan
● Init statement, Kondisi dan Post Statement tidak wajib diisi, jika Kondisi tidak diisi, berarti kondisi
selalu bernilai true
Kode : Perulangan Tanpa Henti
Kode : Perulangan Dengan Kondisi
Kode : Perulangan Dengan Init Statement
Kode : Perulangan Dengan Post Statement
While Loop
While Loop
● While loop adalah versi perulangan yang lebih sederhana dibanding for loop
● Di while loop, hanya terdapat kondisi perulangan, tanpa ada init statement dan post statement
Kode : While Loop
Do While Loop
Do While Loop
● Do While loop adalah perulangan yang mirip dengan while
● Perbedaannya hanya pada pengecekan kondisi
● Pengecekan kondisi di while loop dilakukan di awal sebelum perulangan dilakukan, sedangkan di do
while loop dilakukan setelah perulangan dilakukan
● Oleh karena itu dalam do while loop, minimal pasti sekali perulangan dilakukan walaupun kondisi
tidak bernilai true
Kode : Do While Loop
Break & Continue
Break & Continue
● Pada switch statement, kita sudah mengenal kata kunci break, yaitu untuk menghentikan case
dalam switch
● Sama dengan pada perulangan, break juga digunakan untuk menghentikan seluruh perulangan.
● Namun berbeda dengan continue, continue digunakan untuk menghentikan perulangan saat ini,
lalu melanjutkan ke perulangan selanjutnya
Kode : Break
Kode : Continue
For Each
For Each
● Kadang kita biasa mengakses data array menggunakann perulangan
● Mengakses data array menggunakan perulangan sangat bertele-tele, kita harus membuat counter,
lalu mengakses array menggunakan counter yang kita buat
● Namun untungnya, di Java terdapat perulangan for each, yang bisa digunakan untuk mengakses
seluruh data di Array secara otomatis
Kode : Tanpa For Each
Kode : For Each
Method
Method
● Method adalah block kode program yang akan berjalan saat kita panggil
● Sebelumnya kita sudah menggunakan method println() untuk menampilkan tulisan di console
● Untuk membuat method di Java, kita bisa menggunakan kata kunci void, lalu diikuti dengan nama
method, kurung () dan diakhiri dengan block
● Kita bisa memanggil method dengan menggunakan nama method lalu diikuti dengan kurung ()
● Di bahasa pemrograman lain, Method juga disebut dengan Function
Kode : Method
Method Parameter
Method Parameter
● Kita bisa mengirim informasi ke method yang ingin kita panggil
● Untuk melakukan hal tersebut, kita perlu menambahkan parameter atau argument di method yang
sudah kita buat
● Cara membuat parameter sama seperti cara membuat variabel
● Parameter ditempatkan di dalam kurung () di deklarasi method
● Parameter bisa lebih dari satu, jika lebih dari satu, harus dipisah menggunakan tanda koma
Kode : Method Parameter
Method Return Value
Method Return Value
● Secara default, method itu tidak menghasilkan value apapun, namun jika kita ingin, kita bisa
membuat sebuah method mengembalikan nilai
● Agar method bisa menghasilkan value, kita harus mengubah kata kunci void dengan tipe data yang
dihasilkan
● Dan di dalam block method, untuk menghasilkan nilai tersebut, kita harus menggunakan kata kunci
return, lalu diikuti dengan data yang sesuai dengan tipe data yang sudah kita deklarasikan di
method
● Di Java, kita hanya bisa menghasilkan 1 data di sebuah method, tidak bisa lebih dari satu
Kode : Method Return Value
Method Variable Argument
Method Variable Argument
● Kadang kita butuh mengirim data ke method sejumlah data yang tidak pasti
● Biasanya, agar bisa seperti ini, kita akan menggunakan Array sebagai parameter di method
tersebut
● Namun di Java, kita bisa menggunakan variable argument, untuk mengirim data yang berisi jumlah
tak tentu, bisa nol atau lebih
● Parameter dengan tipe variable argument, hanya bisa ditempatkan di posisi akhir parameter
Kode : Tanpa Variable Argument
Kode : Dengan Variable Argument
Method Overloading
Method Overloading
● Method overloading adalah kemampuan membuat method dengan nama yang sama lebih dari
sekali.
● Namun ada ketentuannya, yaitu data parameter di method tersebut harus berbeda-beda, enta
jumlah atau tipe data parameternya
● Jika ada yang sama, maka program Java kita akan error
Kode : Method Overloading
Recursive Method
Recursive Method
● Recursive method adalah kemampuan method memanggil method dirinya sendiri
● Kadang memang ada banyak problem, yang lebih mudah diselesaikan menggunakan recursive
method, seperti contohnya kasus factorial
Kode : Factorial Loop
Kode : Factorial Recursive
Problem Dengan Recursive
● Walaupun recursive method itu sangat menarik, namun kita perlu berhati-hati
● Jika recursive terlalu dalam, maka akan ada kemungkinan terjadi error StackOverflow, yaitu error
dimana stack method terlalu banyak di Java
● Kenapa problem ini bisa terjadi? Karena ketika kita memanggil method, Java akan menyimpannya
dalam stack, jika method tersebut memanggil method lain, maka stack akan menumpuk terus, dan
jika terlalu dalam, maka stack akan terlalu besar, dan bisa menyebabkan error StackOverflow
Kode : Error StackOverflow
Scope
Scope
● Di Java, variable hanya bisa diakses di dalam area dimana mereka dibuat.
● Hal ini disebut scope
● Contoh, jika sebuah variable dibuat di method, maka hanya bisa diakses di method tersebut, atau
jika dibuat didalam block, maka hanya bisa diakses didalam block tersebut
Kode : Scope
Komentar
Komentar
● Kadang dalam membuat program, kita sering menempatkan komentar di kode program tersebut
● Komentar adalah kode program yang akan di hiraukan saat proses kompilasi, sehingga di binary
code Java, tidak akan ada kode komentar tersebut
● Biasanya komentar digunakan untuk dokumentasi
Kode : Komentar
Materi Selanjutnya
Materi Selanjutnya
● Java Object Oriented Programming

More Related Content

PPT
Pengenalan java-oop
PDF
Modul PBO Bab-01 - Pengenalan Java
PDF
001 belajar java dasar
PDF
Belajar Java Programming
PDF
Pengenalan Pemrograman Java
PDF
Modul 2 pbo
PPTX
MENTORING KODING PERTEMUAN 3 oleh M.Farhan GHIFARI, S.Kom
PDF
Java Fundamental ( JSE ) simple tutorial
Pengenalan java-oop
Modul PBO Bab-01 - Pengenalan Java
001 belajar java dasar
Belajar Java Programming
Pengenalan Pemrograman Java
Modul 2 pbo
MENTORING KODING PERTEMUAN 3 oleh M.Farhan GHIFARI, S.Kom
Java Fundamental ( JSE ) simple tutorial

Similar to Java_Dasar dasar dasar java programming language (20)

PPTX
1-2 Pengenalan Java.pptx
PPT
Object oriented programming menggunakan java
PPT
pertemuanke 1.ppt
PPT
Pert 3, Teori PBO
DOCX
Makalah java
DOCX
Laporan i
PDF
3-Dasar-dasar Pemrograman JAVA PEMULA UNTUK SMK
PPTX
Materi Java.pptx
PDF
Network Programming 2 - Dasar Pemrograman Java
PPTX
Variabel dan Tipe Data.pptx kuliah universitas terbuka
PPTX
INFORMATIKA Rumpun Bisnis dan Manajemen_Bab 5 Algoritme Pemrograman dan Prakt...
PDF
1_Pengenalan_Java.pdf
PDF
1_Pengenalan_Java.pdf
PDF
pengetahuan dasar tentang bahasa pemrograman
DOCX
Mengenal pemrograman java
PDF
Diktat Algoritma Pemrograman Java
PPTX
Pertemuan 1 &2 Pengenalan Pemrograman JAVA.pptx
PPTX
Pertemuan 2 Pengenalan JAVA dengan Netbeans.pptx
PPTX
pbo2.pptx
PDF
Java dasar-libre
1-2 Pengenalan Java.pptx
Object oriented programming menggunakan java
pertemuanke 1.ppt
Pert 3, Teori PBO
Makalah java
Laporan i
3-Dasar-dasar Pemrograman JAVA PEMULA UNTUK SMK
Materi Java.pptx
Network Programming 2 - Dasar Pemrograman Java
Variabel dan Tipe Data.pptx kuliah universitas terbuka
INFORMATIKA Rumpun Bisnis dan Manajemen_Bab 5 Algoritme Pemrograman dan Prakt...
1_Pengenalan_Java.pdf
1_Pengenalan_Java.pdf
pengetahuan dasar tentang bahasa pemrograman
Mengenal pemrograman java
Diktat Algoritma Pemrograman Java
Pertemuan 1 &2 Pengenalan Pemrograman JAVA.pptx
Pertemuan 2 Pengenalan JAVA dengan Netbeans.pptx
pbo2.pptx
Java dasar-libre
Ad

Recently uploaded (9)

DOCX
Antivirus Versi.FULL.JALiN.KB.PRO Keutuhan Aplikasi Konsep dan Praktik dalam ...
PPT
pengantar-sistem-informasi manajemen.ppt
PPTX
Implementasi Microservices pada Manufaktur
PPTX
Materi_Array_Karakter_String untuk kelas XI sma.pptx
PDF
Rekomendasi Riset Lanjutan : perspektif_futurologis.pdf
PPTX
Peranan AI dalam Dunia Pendidikan dan Industri Aplikasinya
PDF
Modul_Pemula_Merakit_Komputer untuk smppdf
PPTX
Materi asdsa asd asd sad sa dsa dsa d sa
DOCX
Keutuhan Aplikasi Konsep dan Praktik dalam Upaya menciptakan aplikasi Anti Vi...
Antivirus Versi.FULL.JALiN.KB.PRO Keutuhan Aplikasi Konsep dan Praktik dalam ...
pengantar-sistem-informasi manajemen.ppt
Implementasi Microservices pada Manufaktur
Materi_Array_Karakter_String untuk kelas XI sma.pptx
Rekomendasi Riset Lanjutan : perspektif_futurologis.pdf
Peranan AI dalam Dunia Pendidikan dan Industri Aplikasinya
Modul_Pemula_Merakit_Komputer untuk smppdf
Materi asdsa asd asd sad sa dsa dsa d sa
Keutuhan Aplikasi Konsep dan Praktik dalam Upaya menciptakan aplikasi Anti Vi...
Ad

Java_Dasar dasar dasar java programming language

  • 2. Eko Kurniawan Khannedy - Technical architect at one of the biggest ecommerce company in Indonesia - 10+ years experiences - youtube.com/c/ProgrammerZamanNow
  • 3. Eko Kurniawan Khannedy ● Telegram : @khannedy ● Facebook : fb.com/ProgrammerZamanNow ● Instagram : instagram.com/programmerzamannow ● Youtube : youtube.com/c/ProgrammerZamanNow ● Telegram Channel : https://t.me/ProgrammerZamanNow ● Email : echo.khannedy@gmail.com
  • 4. Untuk Siapa Materi Ini? ● Programmer Pemula ● Android Engineer ● Backend Engineer ● Data Engineer
  • 5. Agenda ● Pengenalan Java ● Instalasi Java ● Tipe Data di Java ● Operator ● Percabangan ● Perulangan ● Method
  • 7. Sejarah Java ● Java adalah bahasa pemrograman yang dibuat oleh James Gosling saat bekerja di Sun Microsystem ● Java dirilis ke public tahun 1995 ● Java adalah bahasa pemrograman berorientasi objek dan mendukung pengelolaan memori secara otomatis ● Saat ini perusahaan Sun Microsystem telah dibeli oleh Oracle ● Java terkenal dengan write once, run anywhere, karena binary program Java di-generate secara independen dan bisa dijalankan di Java Virtual Machine yang terinstall di berbagai sistem operasi
  • 8. Teknologi Java ● Java Standard Edition ● Java Enterprise Edition ● Java Micro Edition
  • 11. Dimana Java Banyak Digunakan? ● Backend, banyak perusahaan besar saat ini menggunakan Java sebagai aplikasi backend nya seperti Twitter, Netflix, Spotify, Amazon, Alibaba, Blibli, dan lain-lain ● Big Data, teknologi-teknologi big data yang saat ini populer, kebanyakan adalah teknologi Java, seperti Apache Hadoop, Elasticsearch, Apache Cassandra, Apache Spark, Apache Kafka, dan lain-lain ● Android, di Android kita bisa menggunakan Java dan Kotlin untuk membuat aplikasi nya
  • 12. JRE vs JDK ● JRE singkatan dari Java Runtime Environment ● JDK singkatan dari Java Development Kit
  • 13. Java Virtual Machine ● Java sendiri hanyalah bahasa pemrograman, otak dibalik teknologi Java sebenarnya sebuah teknologi yang disebut Java Virtual Machine ● Java Virtual Machine merupakan program yang digunakan untuk mengeksekusi binary file Java ● Karena JVM hanya mengerti binary file, sehingga akhirnya banyak bahasa pemrograman yang mengadopsi teknologi JVM, seperti Kotlin, Scala, Groovy dan lain-lain ● Dengan begitu, banyak bahasa pemrograman yang lebih canggih dari Java, namun mereka tetap jalan di JVM yang sudah terbukti stabil dan bagus
  • 16. OpenJDK ● OpenJDK adalah salah satu implementasi Java Development Kit yang opensource dan gratis ● https://openjdk.java.net/
  • 17. OpenJDK vs yang lain ● Oracle JDK : https://www.oracle.com/java/technologies/javase-downloads.html ● Amazon Corretto : https://aws.amazon.com/id/corretto/ ● Zulu : https://www.azul.com/downloads/zulu-community/
  • 19. Setting PATH ● Windows : https://medium.com/programmer-zaman-now/setting-java-path-di-windows-4da2c65d8298 ● Linux atau Mac # Add to .bashrc or .profile or .zshrc export JAVA_HOME="/Library/Java/JavaVirtualMachines/jdk1.8.0_241.jdk/Contents/Home" export PATH="$JAVA_HOME/bin:$PATH"
  • 20. Integrated Development Environment ● IDE adalah smart editor yang digunakan untuk mengedit kode program ● IDE juga digunakan untuk melakukan otomatisasi proses kompilasi kode programdan otomatisasi proses menjalankan program IDE untuk Java ● Intelli JDEA Ultimate / Community : https://www.jetbrains.com/idea/ ● Eclipse : https://www.eclipse.org/downloads/packages/ ● NetBeans : https://netbeans.apache.org/ ● JDeveloper : https://www.oracle.com/application-development/technologies/jdeveloper.html
  • 25. Tipe Data Number ● Integer Number ● Floating Point Number
  • 26. Integer Number Tipe Data Min Max Size Default byte -128 127 1 byte 0 short -32,768 32,767 2 bytes 0 int -2,147,483,648 2,147,483,647 4 bytes 0 long -9,223,372,036, 854,775,808 9,223,372,036, 854,775,807 8 bytes 0
  • 27. Kode : Integer Number
  • 28. Floating Point Number Tipe Data Min Max Size Default float 3.4e−038 3.4e+038 4 bytes 0.0 double 1.7e−308 1.7e+308 8 bytes 0.0
  • 29. Kode : Floating Point Number
  • 32. Konversi Tipe Data Number ● Widening Casting (Otomatis) : byte -> short -> int -> long -> float -> double ● Narrowing Casting (Manual) : double -> float -> long -> int -> char -> short -> byte
  • 33. Kode : Konversi Tipe Data Number
  • 35. Tipe Data Character ● Data Character (huruf) di Java direpresentasikan oleh tipe char. ● Untuk membuat data char di Java, kita bisa menggunakan tanda ‘ (petik satu) di awal dan di akhir karakter
  • 38. Tipe Data Boolean ● Tipe data boolean adalah tipe data yang memiliki 2 nilai, yaitu benar dan salah ● Tipe data boolean di Java direpresentasikan dengan kata kunci boolean ● Nilai benar direpresentasikan dengan kata kunci true ● Nilai salah direpresentasikan dengan kata kunci false ● Default value untuk boolean adalah false
  • 41. Tipe Data String ● Tipe data String adalah tipe data yang berisikan data kumpulan karakter atau sederhananya adalah teks ● Di Java, tipe data String direpresentasikan dengan kata kunci String ● Untuk membuat String di Java, kita menggunakan karakter “ (petik dua) sebelum dan setelah teks nya ● Default value untuk String adalah null
  • 45. Variable ● Variable adalah tempat untuk menyimpan data ● Java adalah bahasa static type, sehingga sebuah variable hanya bisa digunakan untuk menyimpan tipe data yang sama, tidak bisa berubah-ubah tipe data seperti di bahasa pemrograman PHP atau JavaScript ● Untuk membuat variable di Java kita bisa menggunakan nama tipe data lalu diikuti dengan nama variable nya ● Nama variable tidak boleh mengandung whitespace (spasi, enter, tab), dan tidak boleh seluruhnya number
  • 47. Kata Kunci var ● Sejak versi Java 10, Java mendukung pembuatan variabel dengan kata kunci var, sehingga kita tidak perlu menyebutkan tipe datanya ● Namun perlu diingat, saat kita menggunakan kata kunci var untuk membuat variable, kita harus menginisiasi value / nilai dari variable tersebut secara langsung
  • 48. Kode : Kata Kunci var
  • 49. Kata Kunci final ● Secara default, variable di Java bisa diubah-ubah nilainya ● Jika kita ingin membuat sebuah variable yang datanya tidak boleh diubah setelah pertama kali dibuat, kita bisa menggunakan kata kunci final ● Istilah variabel seperti ini, banyak juga yang menyebutnya konstan
  • 50. Kode : Kata Kunci final
  • 51. Tipe Data Bukan Primitif
  • 52. Tipe Data Bukan Primitif ● Tipe data primitif adalah tipe bawaan di dalam bahasa pemrograman. Tipe data primitif tidak bisa diubah lagi ● Tipe data number, char, boolean adalah tipe data primitif. Tipe data primitif selalu memiliki default value ● Tipe data String bukan tipe data primitif, tipe data bukan primitif tidak memiliki default value, dan bisa bernilai null ● Tipe data bukan primitif bisa memiliki method/function (yang akan dibahas nanti) ● Di Java, semua tipe data primitif memiliki representasi tipe data bukan primitif nya
  • 53. Representasi Tipe Data Primitif (1) Tipe Data Primitif Tipe Data Bukan Primitif byte Byte short Short int Integer long Long float Float double Double
  • 54. Representasi Tipe Data Primitif (2) Tipe Data Primitif Tipe Data Bukan Primitif char Character boolean Boolean
  • 55. Kode : Tipe Data Bukan Primitif
  • 56. Kode : Konversi Dari Tipe Primitif
  • 58. Tipe Data Array ● Array adalah tipe data yang berisikan kumpulan data dengan tipe yang sama ● Jumlah data di Array tidak bisa berubah setelah pertama kali dibuat
  • 60. Kode : Membuat Array
  • 61. Kode : Array Initializer
  • 62. Operasi di Array Operasi Array Keterangan array[index] Mengambil data di array array[index] = value Mengubah data di array array.length Mengambil panjang array
  • 63. Kode : Operasi di Array
  • 64. Kode : Array di dalam Array
  • 66. Operasi Matematika Operator Keterangan + Penjumlahan - Pengurangan * Perkalian / Pembagian % Sisa Pembagian
  • 67. Kode : Operasi Matematika
  • 68. Augmented Assignments Operasi Matematika Augmented Assignments a = a + 10 a += 10 a = a - 10 a -= 10 a = a * 10 a *= 10 a = a / 10 a /= 10 a = a % 10 a %= 10
  • 69. Kode : Augmented Assignments
  • 70. Unary Operator Operator Keterangan ++ a = a + 1 -- a = a - 1 - Negative + Positive ! Boolean kebalikan
  • 71. Kode : Unary Operator
  • 73. Operasi Perbandingan ● Operasi perbandingan adalah operasi untuk membandingkan dua buah data ● Operasi perbandingan adalah operasi yang menghasilkan nilai boolean (benar atau salah) ● Jika hasil operasinya adalah benar, maka nilainya adalah true ● Jika hasil operasinya adalah salah, maka nilainya adalah false
  • 74. Operator Perbandingan Operator Keterangan > Lebih Dari < Kurang Dari >= Lebih Dari Sama Dengan <= Kurang Dari Sama Dengan == Sama Dengan != Tidak Sama Dengan
  • 75. Kode : Operasi Perbandingan
  • 77. Operasi Boolean Operator Keterangan && Dan || Atau ! Kebalikan
  • 78. Operasi && Nilai 1 Operator Nilai 2 Hasil true && true true true && false false false && true false false && false false
  • 79. Operasi || Nilai 1 Operator Nilai 2 Hasil true || true true true || false true false || true true false || false false
  • 80. Operasi ! Operator Nilai 2 Hasil ! true false ! false true
  • 81. Kode : Operasi Boolean
  • 83. Expression ● Expression adalah konstruksi dari variabel, operator dan pemanggilan method yang mengevaluasi menjadi sebuah single value ● Expression adalah core component dari statement
  • 85. Statement ● Statement bisa dibilang adalah kalimat lengkap dalam bahasa. ● Sebuah statement berisikan execution komplit, biasanya diakhiri dengan titik koma ● Ada beberapa jenis statement : ○ Assignment expression ○ Penggunaan ++ dan -- ○ Method invocation ○ Object creation expression
  • 87. Block ● Block adalah kumpulan statement yang terdiri dari nol atau lebih statement. ● Block diawali dan diakhiri dengan kurung kurawal { }
  • 90. If Statement ● Dalam Java, if adalah salah satu kata kunci yang digunakan untuk percabangan ● Percabangan artinya kita bisa mengeksekusi kode program tertentu ketika suatu kondisi terpenuhi ● Hampir di semua bahasa pemrograman mendukung if expression
  • 91. Kode : If Statement
  • 92. Else Statement ● Blok if akan dieksekusi ketika kondisi if bernilai true ● Kadang kita ingin melakukan eksekusi program tertentu jika kondisi if bernilai false ● Hal ini bisa dilakukan menggunakan else expression
  • 93. Kode : Else Statement
  • 94. Else If Statement ● Kada dalam If, kita butuh membuat beberapa kondisi ● Kasus seperti ini, di Java kita bisa menggunakan Else If expression ● Else if di Java bisa lebih dari satu
  • 95. Kode : Else If Statement
  • 97. Switch Statement ● Kadang kita hanya butuh menggunakan kondisi sederhana di if statement, seperti hanya menggunakan perbandingan == ● Switch adalah statement percabangan yang sama dengan if, namun lebih sederhana cara pembuatannya ● Kondisi di switch statement hanya untuk perbandingan ==
  • 98. Kode : Switch Statement
  • 99. Switch Lambda ● Di Java versi 14, diperkenalkan switch expression dengan lambda ● Ini lebih mempermudah saat penggunaan switch expression karena kita tidak perlu lagi menggunakan kata kunci break
  • 100. Kode : Switch Lambda
  • 101. Kata Kunci yield ● Di Java 14, ada kata kunci baru yaitu yield, dimana kita menggunakan kata kunci yield untuk mengembalikan nilai pada switch statement ● Ini sangat mempermudah kita ketika butuh membuat data berdasarkan kondisi switch statement
  • 102. Kode : Switch Tanpa yield
  • 103. Kode : Switch Dengan yield
  • 105. Ternary Operator ● Ternary operator adalah operator sederhana dari if statement ● Ternary operator terdiri dari kondisi yang dievaluasi, jika menghasilkan true maka nilai pertama diambil, jika false, maka nilai kedua diambil
  • 106. Kode : Tanpa Ternary Operator
  • 107. Kode : Dengan Ternary Operator
  • 109. For Loop ● For adalah salah satu kata kunci yang bisa digunakan untuk melakukan perulangan ● Blok kode yang terdapat di dalam for akan selalu diulangi selama kondisi for terpenuhi
  • 110. Sintak Perulangan For for(init statement; kondisi; post statement){ // block perulangan } ● Init statement akan dieksekusi hanya sekali di awal sebelum perulangan ● Kondisi akan dilakukan pengecekan dalam setiap perulangan, jika true perulangan akan dilakukan, jika false perulangan akan berhenti ● Post statement akan dieksekusi setiap kali diakhir perulangan ● Init statement, Kondisi dan Post Statement tidak wajib diisi, jika Kondisi tidak diisi, berarti kondisi selalu bernilai true
  • 111. Kode : Perulangan Tanpa Henti
  • 112. Kode : Perulangan Dengan Kondisi
  • 113. Kode : Perulangan Dengan Init Statement
  • 114. Kode : Perulangan Dengan Post Statement
  • 116. While Loop ● While loop adalah versi perulangan yang lebih sederhana dibanding for loop ● Di while loop, hanya terdapat kondisi perulangan, tanpa ada init statement dan post statement
  • 117. Kode : While Loop
  • 119. Do While Loop ● Do While loop adalah perulangan yang mirip dengan while ● Perbedaannya hanya pada pengecekan kondisi ● Pengecekan kondisi di while loop dilakukan di awal sebelum perulangan dilakukan, sedangkan di do while loop dilakukan setelah perulangan dilakukan ● Oleh karena itu dalam do while loop, minimal pasti sekali perulangan dilakukan walaupun kondisi tidak bernilai true
  • 120. Kode : Do While Loop
  • 122. Break & Continue ● Pada switch statement, kita sudah mengenal kata kunci break, yaitu untuk menghentikan case dalam switch ● Sama dengan pada perulangan, break juga digunakan untuk menghentikan seluruh perulangan. ● Namun berbeda dengan continue, continue digunakan untuk menghentikan perulangan saat ini, lalu melanjutkan ke perulangan selanjutnya
  • 126. For Each ● Kadang kita biasa mengakses data array menggunakann perulangan ● Mengakses data array menggunakan perulangan sangat bertele-tele, kita harus membuat counter, lalu mengakses array menggunakan counter yang kita buat ● Namun untungnya, di Java terdapat perulangan for each, yang bisa digunakan untuk mengakses seluruh data di Array secara otomatis
  • 127. Kode : Tanpa For Each
  • 128. Kode : For Each
  • 129. Method
  • 130. Method ● Method adalah block kode program yang akan berjalan saat kita panggil ● Sebelumnya kita sudah menggunakan method println() untuk menampilkan tulisan di console ● Untuk membuat method di Java, kita bisa menggunakan kata kunci void, lalu diikuti dengan nama method, kurung () dan diakhiri dengan block ● Kita bisa memanggil method dengan menggunakan nama method lalu diikuti dengan kurung () ● Di bahasa pemrograman lain, Method juga disebut dengan Function
  • 133. Method Parameter ● Kita bisa mengirim informasi ke method yang ingin kita panggil ● Untuk melakukan hal tersebut, kita perlu menambahkan parameter atau argument di method yang sudah kita buat ● Cara membuat parameter sama seperti cara membuat variabel ● Parameter ditempatkan di dalam kurung () di deklarasi method ● Parameter bisa lebih dari satu, jika lebih dari satu, harus dipisah menggunakan tanda koma
  • 134. Kode : Method Parameter
  • 136. Method Return Value ● Secara default, method itu tidak menghasilkan value apapun, namun jika kita ingin, kita bisa membuat sebuah method mengembalikan nilai ● Agar method bisa menghasilkan value, kita harus mengubah kata kunci void dengan tipe data yang dihasilkan ● Dan di dalam block method, untuk menghasilkan nilai tersebut, kita harus menggunakan kata kunci return, lalu diikuti dengan data yang sesuai dengan tipe data yang sudah kita deklarasikan di method ● Di Java, kita hanya bisa menghasilkan 1 data di sebuah method, tidak bisa lebih dari satu
  • 137. Kode : Method Return Value
  • 139. Method Variable Argument ● Kadang kita butuh mengirim data ke method sejumlah data yang tidak pasti ● Biasanya, agar bisa seperti ini, kita akan menggunakan Array sebagai parameter di method tersebut ● Namun di Java, kita bisa menggunakan variable argument, untuk mengirim data yang berisi jumlah tak tentu, bisa nol atau lebih ● Parameter dengan tipe variable argument, hanya bisa ditempatkan di posisi akhir parameter
  • 140. Kode : Tanpa Variable Argument
  • 141. Kode : Dengan Variable Argument
  • 143. Method Overloading ● Method overloading adalah kemampuan membuat method dengan nama yang sama lebih dari sekali. ● Namun ada ketentuannya, yaitu data parameter di method tersebut harus berbeda-beda, enta jumlah atau tipe data parameternya ● Jika ada yang sama, maka program Java kita akan error
  • 144. Kode : Method Overloading
  • 146. Recursive Method ● Recursive method adalah kemampuan method memanggil method dirinya sendiri ● Kadang memang ada banyak problem, yang lebih mudah diselesaikan menggunakan recursive method, seperti contohnya kasus factorial
  • 148. Kode : Factorial Recursive
  • 149. Problem Dengan Recursive ● Walaupun recursive method itu sangat menarik, namun kita perlu berhati-hati ● Jika recursive terlalu dalam, maka akan ada kemungkinan terjadi error StackOverflow, yaitu error dimana stack method terlalu banyak di Java ● Kenapa problem ini bisa terjadi? Karena ketika kita memanggil method, Java akan menyimpannya dalam stack, jika method tersebut memanggil method lain, maka stack akan menumpuk terus, dan jika terlalu dalam, maka stack akan terlalu besar, dan bisa menyebabkan error StackOverflow
  • 150. Kode : Error StackOverflow
  • 151. Scope
  • 152. Scope ● Di Java, variable hanya bisa diakses di dalam area dimana mereka dibuat. ● Hal ini disebut scope ● Contoh, jika sebuah variable dibuat di method, maka hanya bisa diakses di method tersebut, atau jika dibuat didalam block, maka hanya bisa diakses didalam block tersebut
  • 155. Komentar ● Kadang dalam membuat program, kita sering menempatkan komentar di kode program tersebut ● Komentar adalah kode program yang akan di hiraukan saat proses kompilasi, sehingga di binary code Java, tidak akan ada kode komentar tersebut ● Biasanya komentar digunakan untuk dokumentasi
  • 158. Materi Selanjutnya ● Java Object Oriented Programming