Aturan Perkuliahan:
Tugas Perkuliahan:
Tugas Kelompok:
Pengantar Pemrograman (Java)
CPMK & Sub-CPMK
CPMK:
- Memahami konsep dasar pemrograman Java
Sub-CPMK:
- Menjelaskan konsep pemrograman
- Mengenal lingkungan Java
Tujuan Pembelajaran
Apa itu Pemrograman?
Apa itu Software?
Jenis Software
- Software Sistem
- Software Aplikasi
Sejarah Java
Karakteristik Java
- Object Oriented
- Platform Independent
- Robust & Secure
Slogan Java
Komponen Java
Struktur Program Java Minimal
class NamaClass {
public static void main(String[] args) {
// kode
}
}
Penjelasan
Contoh args
Class
Struktur Dasar Program
Aspek | C++ | Java |
Fungsi utama | int main() {} | public static void main(String[] args) {} |
Header / library | #include <iostream> | import java.util.*; |
Namespace | using namespace std; | Tidak ada (pakai package) |
Output | cout << "Hello” << endl; | System.out.println("Hello"); |
Input | cin >> x; | Scanner sc = new Scanner(System.in); x = sc.nextInt(); |
Input dan Output
Operasi | C++ | Java |
Output | cout << "Hello"; | System.out.print("Hello"); |
Output baris baru | cout << endl; | System.out.println(); |
Input dasar | cin >> x; | Scanner sc = new Scanner(System.in); |
Input integer | cin >> x; | int x = sc.nextInt(); |
Input string | cin >> s; | String s = sc.next(); |
Input satu baris | getline(cin, s); | sc.nextLine(); |
Tipe Data Dasar
Konsep | C++ | Java |
Integer | int | int |
Pecahan | float, double | float, double |
Karakter | char | char |
Boolean | bool | boolean |
String | string | String |
Unsigned | unsigned int | ❌ Tidak ada |
Deklarasi Variabel
Konsep | C++ | Java |
Deklarasi | int x; | int x; |
Inisialisasi | int x = 5; | int x = 5; |
Konstanta | const int x = 10; | final int x = 10; |
| | |
Percabangan
Konsep | C++ | Java |
if | if (x > 0) | if (x > 0) |
else if | else if | else if |
switch | switch(x) | switch(x) |
Range switch | ❌ | ✅ (Java 14+) |
Contoh Range switch
public class Main {
public static void main(String[] args) {
int nilai = 85;
String grade = switch (nilai) {
case int n when n >= 90 -> "A";
case int n when n >= 80 -> "B";
case int n when n >= 70 -> "C";
case int n when n >= 60 -> "D";
default -> "E";
};
System.out.println("Grade: " + grade);
}
}
Perulangan
Konsep | C++ | Java |
for | for(int i=0;i<n;i++) | Sama |
while | while(x) | Sama |
do-while | do{}while(); | Sama |
foreach | for(int x: arr) | Sama |
Array
Konsep | C++ | Java |
Deklarasi | int a[5]; | int[] a = new int[5]; |
Inisialisasi | int a[]={1,2}; | int[] a={1,2}; |
Ukuran | sizeof(a) | a.length |
Array dinamis | new int[n] | new int[n] |
String
Konsep | C++ | Java |
Tipe | string | String |
Panjang | s.length() | s.length() |
Gabung | s1 + s2 | s1 + s2 |
Bandingkan | s1 == s2 | s1.equals(s2) |
Substring | s.substr() | s.substring() |
OOP (Object-Oriented Programming)
Konsep | C++ | Java |
Class | class A{} | class A{} |
Constructor | Sama | Sama |
Destructor | ~A() | ❌ |
Inheritance | class B: public A | class B extends A |
Multiple inheritance | ✅ | ❌ (pakai interface) |
Interface | ❌ | interface |
Abstraction | virtual | abstract |
Polymorphism | virtual | Method override |
Memory Management
Konsep | C++ | Java |
Alokasi | new, malloc() | new |
Dealokasi | delete, free() | ❌ |
Garbage Collector | ❌ | ✅ |
Pointer | ✅ | ❌ |
Exception Handling
Konsep | C++ | Java |
try-catch | try { } catch(...) | try { } catch(Exception e) |
throw | throw | throw |
finally | ❌ | finally |
Checked exception | ❌ | ✅ |
Library & Framework
Konsep | C++ | Java |
Library standar | STL | Java Standard Library |
GUI | Qt, wxWidgets | Swing, JavaFX |
Web | ❌ | Spring, Jakarta EE |
Cross-platform | Manual | Otomatis (JVM) |
Eksekusi Program
Konsep | C++ | Java |
Compile | g++ file.cpp | javac File.java |
Run | ./a.out | java File |
Output | Native binary | Bytecode (JVM) |
Ringkasan Singkat
Aspek | C++ | Java |
Kecepatan | Lebih cepat | Lebih stabil |
Kompleksitas | Tinggi | Lebih mudah |
Pointer | Ada | Tidak |
Memory | Manual | Otomatis |
Cocok untuk | Sistem, Embedded | Aplikasi, Web, Mobile |
Contoh Input Output
C++
#include <iostream>
#include <string>
using namespace std;
int main() {
string nama;
cout << "Masukkan nama: ";
getline(cin, nama);
cout << "Halo " << nama << endl;
return 0;
}
Java
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.print("Masukkan nama: ");
String nama = sc.nextLine();
System.out.println("Halo " + nama);
}
}
Perbedaan Java vs C++
Perbedaan utama:
Contoh IF & LOOP
C++
for(int i = 1; i <= 5; i++){
if(i % 2 == 0){
cout << i << " Genap" << endl;
} else {
cout << i << " Ganjil" << endl;
}
}
Java
for(int i = 1; i <= 5; i++){
if(i % 2 == 0){
System.out.println(i + " Genap");
} else {
System.out.println(i + " Ganjil");
}
}
Contoh Array
C++
int angka[] = {1,2,3,4,5};
for(int i = 0; i < 5; i++){
cout << angka[i] << endl;
}
Java
int[] angka = {1,2,3,4,5};
for(int i = 0; i < angka.length; i++){
System.out.println(angka[i]);
}
Contoh Array & LOOP
C++
int angka[] = {1,2,3,4,5};
for(int i = 0; i < 5; i++){
cout << angka[i] << endl;
}
Java
int[] angka = {1,2,3,4,5};
for(int i = 0; i < angka.length; i++){
System.out.println(angka[i]);
}
Ringkasan Perbedaan Kunci
Aspek | Java | C++ |
Entry point | public static void main | int main() |
I/O | System.out | cout |
Input | Scanner | cin |
OOP | Wajib dalam class | Bisa prosedural |
Memory | Garbage Collector | Manual (new/delete) |
Pointer | Tidak ada | Ada |
Manajemen Memori
OOP
Exception Handling
Kompilasi
Kesimpulan
Latihan Mandiri
Ketentuan
- Program dapat dijalankan
- Output sesuai
Pengumpulan
Ringkasan
Refleksi