Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Hands on OOP submission by Muhammad Raihan Ariffianto #67

Open
wants to merge 5 commits into
base: master
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
23 changes: 23 additions & 0 deletions Muhammad Raihan Ariffianto_ITB/OOP.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
public class Staff {
String name;
int age;
String section = "IT";

public String updateSection(String newSection){
section = newSection;
return section;
}

public void getDetails(){
System.out.println("Staff Name: " + name);
System.out.println("Staff Age: " + age);
System.out.println("Staff Section: " + section);
}

public static void main(String args[]) {
Staff staff1 = new Staff();
staff1.getDetails();
staff1.updateSection("HR");
staff1.getDetails();
}
}
64 changes: 2 additions & 62 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,65 +1,5 @@
# Hands On OOP

## Deskripsi Tugas
Buatlah suatu program yang *perlu* mengimplementasikan konsep-konsep OOP, seminimalnya
- Inheritance
- Interface dan/atau abstract class
- Polimorfisme
- Mengimplementasikan (minimal 1) design pattern
- Mengimplementasikan (minimal 1) prinsip SOLID

Tugas ini sangat membebaskan kalian untuk berkreasi. Konsep-konsep lain yang kalian gunakan dan keunikan program akan sangat dihargai dan dihitung sebagai bonus nilai (jangan lupa tulis di penjelasan program). Silakan berkreasi! :D

### Beberapa Bonus yang Direkomendasikan
- Stream API dan/atau functional programming
- Multilevel inheritance
- Interactive program (Menerima input dan mengeluarkan output sesuai input)

## Penjelasan Program
Selain membuat program, kalian perlu menuliskan penjelasan program kalian, dengan seminimalnya berisikan
- Deskripsi program
- Penjelasan design pattern yang dipilih
- Letak implementasi design pattern tersebut
- Alasan pemilihan design pattern tersebut
- Cara menjalankan program
- Versi bahasa dan dependency (jika ada) yang digunakan
- Konsep-konsep lain yang kalian gunakan dan keunikan program (jika ada)

## Pengumpulan
- Pengumpulan tugas ini mirip dengan tugas sebelumnya.
- Fork ke repository github kalian masing - masing
- Buka repository pada repo yang telah di fork sebelumnya
- Clone repository tersebut
- Buat program sesuai deskripsi di atas di dalam folder dengan format `Nama_Univ`
- Tulis penjelasan program kalian pada file `README.md` di dalam folder tersebut
- Add folder tersebut ke dalam staging
- Letakkan folder tersebut sejajar dengan file README.md
- Setelah itu push kembali ke repository kalian
- Pull request kedalam repository GDSC yang sudah anda fork tadi
- Isi judul pull request dengan "Hands on OOP submission by < Nama kalian >"

## Bahasa Pemrograman
Tidak semua bahasa pemrograman dapat mengimplementasikan OOP. Untuk tugas ini, ada bahasa yang dapat digunakan dan tidak dapat digunakan.

### Bahasa yang dapat digunakan
Selain bahasa di bawah ini, kalian dapat me-request bahasa lain, dengan persetujuan tim kurikulum GDSC ITB

- C++
- Java
- Kotlin
- Typescript
- Go (Golang)
- C#

### Bahasa yang tidak dapat digunakan
Karena keterbatasan di bahasa-bahasa berikut, bahasa di bawah ini tidak digunakan di tugas ini
- Python
- PHP
- C

## Deliverable
- Kumpulkan link github fork repository dan link pull request kalian ke gform yang dibagikan

## Deadline
- Jumat, 27 Januari 2023, pukul 23.59
Program ini menciptakan suatu class bernama staff dengan attributes name,age, dan section. Terdapat 2 methods yaitu getDetails dan updateSection. erfungsi untuk menanampilkan atribut dari objek. updateSection berfungsi untuk mengubah nilai variabel section dari suatu objek.

Design pattern singleton dipilih karena konsep dari program yang cukup sederhana, menghasilkan 1 instance/object saja, dan variabel dalam class bisa diakses secara global.