Deskripsi Studi Kasus Improving Structure With Inheritance
1 of 9
Download to read offline
More Related Content
Deskripsi Studi Kasus Improving Structure With Inheritance
1. Deskripsi Studi Kasus
Dalam aplikasi Newtwork Example ini, kita ingin membuat jaringan sosial sederhana
dengan beberapa fitur dasar:
1. User: Pengguna bisa membuat akun, memposting status, dan menyukai
postingan orang lain.
2. Post: Postingan ini akan berisi konten yang dibuat oleh pengguna, seperti teks
atau gambar.
3. Network: Kelas ini menyimpan daftar pengguna dan postingan yang ada dalam
aplikasi.
Struktur Kelas
1. User: Mewakili pengguna dalam aplikasi. Pengguna dapat membuat postingan
atau memberi like pada postingan orang lain.
2. Post: Mewakili sebuah postingan atau status. Postingan memiliki konten dan
daftar pengguna yang telah menyukai postingan tersebut.
3. Network: Mengelola semua pengguna dan postingan di dalam aplikasi.
Contoh Output
2. Implementasi Kode
1. Kelas User
Kelas ini memiliki metode untuk membuat postingan dan memberi like pada postingan
lain.
User Class: Kelas User menyimpan nama pengguna dan daftar postingannya sendiri.
Pengguna dapat membuat postingan baru dengan addPost() dan memberi "like" pada
postingan lain dengan likePost().
import java.util.ArrayList;
import java.util.List;
public class User {
private String username;
private List<Post> posts;
public User(String username) {
this.username = username;
this.posts = new ArrayList<>();
}
public String getUsername() {
return username;
}
public void addPost(String content) {
Post post = new Post(this, content);
posts.add(post);
System.out.println(username + " posted: " + content);
}
3. public void likePost(Post post) {
post.addLike(this);
}
public List<Post> getPosts() {
return posts;
}
}
4. 2. Kelas Post
Kelas Post berisi informasi tentang postingan, termasuk konten, daftar likes, dan siapa
penulisnya.
Post Class: Kelas Post menyimpan informasi postingan, termasuk penulis (author),
konten (content), dan daftar pengguna yang menyukai postingan tersebut.
import java.util.ArrayList;
import java.util.List;
public class Post {
private User author;
private String content;
private List<User> likes;
public Post(User author, String content) {
this.author = author;
this.content = content;
this.likes = new ArrayList<>();
}
public String getContent() {
return content;
}
public User getAuthor() {
return author;
}
public List<User> getLikes() {
5. return likes;
}
public void addLike(User user) {
if (!likes.contains(user)) {
likes.add(user);
System.out.println(user.getUsername() + " liked: " + content);
}
}
public int getLikeCount() {
return likes.size();
}
}
6. 3. Kelas Network
Kelas Network mengelola seluruh pengguna dan postingan di jaringan sosial.
Network Class: Kelas Network bertindak sebagai pengelola dari daftar pengguna dan
postingan. Ia menyediakan metode untuk menambah pengguna, menyimpan
postingan, dan menampilkan semua postingan di jaringan.
import java.util.ArrayList;
import java.util.List;
public class Network {
private List<User> users;
private List<Post> posts;
public Network() {
users = new ArrayList<>();
posts = new ArrayList<>();
}
public User addUser(String username) {
User user = new User(username);
users.add(user);
System.out.println("User added: " + username);
return user;
}
public void addPost(Post post) {
posts.add(post);
}
7. public void showAllPosts() {
System.out.println("nAll Posts:");
for (Post post : posts) {
System.out.println(post.getAuthor().getUsername() + " posted: " +
post.getContent() + " - Likes: " + post.getLikeCount());
}
}
}
8. 4. Kelas Main (Untuk Menjalankan Program)
Kelas ini digunakan untuk menjalankan aplikasi jaringan sosial kecil ini.
public class Main {
public static void main(String[] args) {
// Buat Network
Network network = new Network();
// Tambah pengguna
User alice = network.addUser("Alice");
User bob = network.addUser("Bob");
// Pengguna membuat postingan
alice.addPost("Hello, this is Alice's first post!");
bob.addPost("Hi everyone, Bob here!");
// Simpan postingan ke Network
network.addPost(alice.getPosts().get(0));
network.addPost(bob.getPosts().get(0));
// Pengguna menyukai postingan
bob.likePost(alice.getPosts().get(0));
alice.likePost(bob.getPosts().get(0));
// Tampilkan semua postingan di network
network.showAllPosts();
}
}