Anda di halaman 1dari 12

LAPORAN PRAKTIKUM PEMROGRAMAN 2

LABSHEET 2

Disusun untuk memenuhi Tugas Praktik Mata Kuliah Pemrograman 2

Dosen Pengampu : Drs. Totok Sukardiyono M.T

Disusun oleh :
Graselin Adella Simanjuntak
23050530040
E

PRODI PENDIDIKAN TEKNIK INFORMATIKA


FAKULTAS TEKNIK
UNIVERSITAS NEGERI YOGYAKARTA
2024
A. TUJUAN
Setelah menyelesaikan prak�kum, mahasiswa memiliki kemampuan yang memadai
dalam pengembangan program menggunakan bahasa pemrograman Java. Mereka
dapat dengan cermat membuat struktur kelas yang sesuai, serta mendefinisikan
atribut dan fungsi dengan tepat sesuai kebutuhan program. Dalam penggunaan
objek, mahasiswa mampu mengaksesnya dengan akurat dan efisien dalam program
Java yang mereka bangun. Salah satu keterampilan yang dikuasai adalah menerapkan
konsep overload pada metode, memungkinkan mereka untuk menangani berbagai
situasi dengan cara yang sesuai dan efek�f.

B. DASAR TEORI
• Class merupakan suatu kotak penyimpanan yang berisikan beragam elemen
yang akan dimanfaatkan dalam pengembangan program berbasis objek. Di
dalamnya, terdapat berbagai informasi dan fungsi yang diwarisi oleh objek-
objek yang terbentuk. Kelas ini menjadi fondasi utama dalam pembuatan
aplikasi berbasis objek. Bagian-bagian pen�ng dari sebuah kelas adalah:
a) Variabel/proper�/atribut
Variabel atau atribut adalah sifat-sifat yang melekat pada sebuah
objek. Dalam sebuah kelas, kita bisa mendeklarasikan atribut-atribut
yang akan digunakan untuk membentuk objek. Variabel dalam sebuah
kelas bisa berupa:
1. Variabel lokal: Variabel yang dideklarasikan di dalam sebuah
metode, dan hanya berlaku di dalam metode tersebut.
2. Variabel instance: Variabel yang dideklarasikan di dalam kelas,
namun di luar metode, dan bisa diakses dari berbagai metode
dalam kelas tersebut.
3. Variabel kelas: Variabel yang dideklarasikan sebagai sta�s di
dalam kelas, dan berlaku untuk semua objek dari kelas
tersebut.

Variabel dan metode dalam kelas dapat memiliki hak akses tertentu,
antara lain:
1. Private: Hanya dapat diakses di dalam kelas yang
bersangkutan.
2. Protected: Dapat diakses di dalam kelas itu sendiri dan kelas
turunannya.
3. Public: Dapat diakses dari mana saja.

b) Metode
Metode adalah kumpulan perintah atau program yang memiliki nama
tertentu. Metode bisa berupa fungsi (yang mengembalikan nilai) atau
prosedur (yang �dak mengembalikan nilai). Dalam bahasa
pemrograman Java, terdapat dua jenis metode:
1. Fungsi: Metode yang mengembalikan nilai ke�ka dipanggil.
2. Prosedur: Metode yang �dak mengembalikan nilai, biasanya
menggunakan kata kunci void.

c) Konstruktor
Konstruktor adalah metode khusus dalam sebuah kelas yang memiliki
nama sama dengan nama kelas tersebut. Fungsinya adalah untuk
menginisialisasi atribut-atribut instan dari objek dan akan dipanggil
secara otoma�s ke�ka objek tersebut dibuat.

d) Object
Objek adalah representasi konkret dari sebuah kelas. Se�ap objek
memiliki atribut-atribut dan metode yang sama dengan kelas
tempatnya berasal. Objek memungkinkan kita untuk memodelkan dan
memanipulasi data dalam program.

e) Scope Variable
Variabel Scope adalah penentu dari sejauh mana suatu variabel dapat
diakses dalam sebuah program. Variabel bisa memiliki cakupan global
(dapat diakses dari seluruh program) atau lokal (hanya dapat diakses
di dalam blok atau metode tertentu).

f) Overloading Methods
Overloading adalah teknik dalam pemrograman di mana kita dapat
mendefinisikan beberapa metode dengan nama yang sama dalam
sebuah kelas, namun dengan parameter atau �pe data yang berbeda.
Hal ini memungkinkan kita untuk memiliki metode dengan fungsi yang
hampir sama namun dapat menerima input yang beragam.

g) Input/Output
Dalam Java, standar input output yang umum digunakan adalah:
1. System.in: Digunakan untuk menerima input dari pengguna
melalui keyboard.
2. System.out: Digunakan untuk menampilkan output ke layar.
3. System.err: Digunakan untuk menampilkan pesan kesalahan
atau excep�on.

C. TUGAS

1. Diagram Class
+--------------------------------------+
| Mahasiswa |
+--------------------------------------+
| - nama: String |
| - angkatan: int |
| - asal: String |
+--------------------------------------+
| + Mahasiswa1() |
| + ubah(nm: String, ak: int, as: |
| String): void |
| + cetak(): void |
| + main(args: String[]): void |
+--------------------------------------+
• Program 1
import java.util.Scanner;

public class Mahasiswa {


public String nama;
public int angkatan;
public String asal;

public Mahasiswa() {
nama = "Ani";
angkatan = 2010;
asal = "Magelang";
}

public void ubah(String nm, int ak, String as)


{
nama = nm;
angkatan = ak;
asal = as;
}

public void cetak() {


System.out.println("nama : " + nama);
System.out.println("angkatan : " +
angkatan);
System.out.println("asal : " + asal);
}

public static void main(String[] args) {


Mahasiswa MHS = new Mahasiswa();

System.out.println("Data Awal:");
MHS.cetak();
System.out.println();

Scanner scanner = new Scanner(System.in);


System.out.println("Masukkan Data Baru:");
System.out.print("Masukkan nama : ");
String namaBaru = scanner.nextLine();
System.out.print("Masukkan angkatan : ");
int angkatanBaru = scanner.nextInt();
scanner.nextLine();
System.out.print("Masukkan asal : ");
String asalBaru = scanner.nextLine();

MHS.ubah(namaBaru, angkatanBaru,
asalBaru);

System.out.println("\nSetelah
Perubahan:");
MHS.cetak();
}
}

• Program 2
import java.util.Scanner;

public class Mahasiswaa {


public String nama;
public int angkatan;
public String asal;

public Mahasiswaa() {
nama = "Ani";
angkatan = 2010;
asal = "Magelang";
}

public void ubah(String nama, int angkatan,


String asal) {
this.nama = nama;
this.angkatan = angkatan;
this.asal = asal;
}

public void cetak() {


System.out.println("nama : " + nama);
System.out.println("angkatan : " +
angkatan);
System.out.println("asal : " + asal);
}

public static void main(String[] args) {


Mahasiswaa mhs = new Mahasiswaa();

// Menampilkan data awal


System.out.println("Data Awal:");
mhs.cetak();
Scanner scanner = new Scanner(System.in);

// Meminta input pengguna untuk data baru


System.out.println("\nMasukkan Data
Baru:");
System.out.print("Masukkan nama : ");
String inputNama = scanner.nextLine();

System.out.print("Masukkan angkatan : ");


int inputAngkatan = scanner.nextInt();
scanner.nextLine(); // Membersihkan buffer
newline

System.out.print("Masukkan asal : ");


String inputAsal = scanner.nextLine();

// Mengubah data dengan data baru


mhs.ubah(inputNama, inputAngkatan,
inputAsal);

// Menampilkan hasil setelah perubahan


System.out.println("\nSetelah
Perubahan:");
mhs.cetak();
}
}

• Output 1 dan 2 :
2. Diagram Class
+------------------------------------------+
| OverloadingPerkalian |
+------------------------------------------+
| <<static>> |
| + main(String[] args) |
| <<static>> |
| + kali(int a, int b): int |
| + kali(double a, double b): double |
| + kali(int a, int b, int c): int |
+------------------------------------------+

• public class OverloadingPerkalian {


public static void main(String[] args) {
OverloadingPerkalian program = new
OverloadingPerkalian();
program.perkalian();
}

public void perkalian() {


System.out.println("Perkalian");
// 1. Perkalian dua integer
int result1 = kali(3, 3);
System.out.println("1. " + result1);
// 2. Perkalian dua double
double result2 = kali(1.0, 9.0);
System.out.println("2. a(1) * b(9) = "
+ result2);
// 3. Perkalian tiga integer
int result3 = kali(2, 3, 3);
System.out.println("3. " + result3);
// 4. Perkalian dua double
double result4 = kali(3.5, 5.0);
System.out.println("4. " + result4);
}

static int kali(int a, int b) {


return a * b;
}

static double kali(double a, double b) {


return a * b;
}

static int kali(int a, int b, int c) {


return a * b * c;
}
}

• Output :

3. Apa fungsi dari kata this?


• Untuk menyatakan variabel dalam class itu sendiri.

4. Program 2 buah segi�ga


• import java.util.Scanner;

public class SegitigaOutput {


public static void main(String[] args) {
Scanner scanner = new
Scanner(System.in);
System.out.print("Input bilangan: ");
int n = scanner.nextInt();
System.out.println();
// Segitiga sama sisi
System.out.println("Segitiga sama sisi
terbalik, sisi = " + n);
for (int i = n; i >= 1; i--) {
for (int j = 1; j <= n - i; j++) {
System.out.print(" ");
}
for (int k = 1; k <= i; k++) {
System.out.print("* ");
}
System.out.println();
}
// Segitiga siku-siku
System.out.println("\nSegitiga siku-
siku dengan alas = " + n + ", tinggi = " + n);
for (int i = 1; i <= n; i++) {
for (int j = 1; j <= i; j++) {
System.out.print("* ");
}
System.out.println();
}
}
}
• Output :

5. Program Presensi

• import java.util.Scanner;
import java.util.ArrayList;

public class PresensiMahasiswa {


public static void main(String[] args) {
Scanner scanner = new
Scanner(System.in);
ArrayList<String> daftarMahasiswa = new
ArrayList<>();
while (true) {
tampilkanMenu();
System.out.print("Pilih menu
(a/b/c): ");
char menu =
scanner.next().charAt(0);

switch (menu) {
case 'a':

tambahMahasiswa(daftarMahasiswa, scanner);
break;
case 'b':

lihatJumlahMahasiswa(daftarMahasiswa);
break;
case 'c':
System.out.println("Terima
kasih. Program keluar.");
System.exit(0);
default:
System.out.println("Pilihan
menu tidak valid. Silakan coba lagi.");
}
}
}

private static void tampilkanMenu() {


System.out.println("Menu Presensi
Mahasiswa:");
System.out.println("a. Menambah
Mahasiswa");
System.out.println("b. Melihat Jumlah
Mahasiswa yang Masuk");
System.out.println("c. Keluar (exit)");
}

private static void


tambahMahasiswa(ArrayList<String>
daftarMahasiswa, Scanner scanner) {
System.out.print("Masukkan nama
mahasiswa: ");
String namaMahasiswa = scanner.next();
daftarMahasiswa.add(namaMahasiswa);
System.out.println("Mahasiswa " +
namaMahasiswa + " berhasil ditambahkan.");
}
private static void
lihatJumlahMahasiswa(ArrayList<String>
daftarMahasiswa) {
System.out.println("Jumlah mahasiswa
yang masuk: " + daftarMahasiswa.size());
for (String nama : daftarMahasiswa) {
System.out.println("- " + nama);
}
}
}
• Output :

Anda mungkin juga menyukai