diff --git a/Muhammad Raihan Ariffianto_ITB/OOP.java b/Muhammad Raihan Ariffianto_ITB/OOP.java new file mode 100644 index 0000000..c67fe8a --- /dev/null +++ b/Muhammad Raihan Ariffianto_ITB/OOP.java @@ -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(); + } +} \ No newline at end of file diff --git a/README.md b/README.md index e54cdbd..24290e1 100644 --- a/README.md +++ b/README.md @@ -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.