Tugas Pertemuan 11 Pemrograman Berbasis Objek (PBO) A 2024
Nama : Amadeo Yesa
NRP : 5025231160
Kelas : A
Tahun : 2024
Pada pertemuan 11, diberikan studi kasus sebuah aplikasi Network, yaitu sebuah jaringan sosial sederhana dengan beberapa fitur dasar:
- User: Pengguna bisa membuat akun, memposting status, dan menyukai postingan orang lain.
- Post: Postingan ini akan berisi konten yang dibuat oleh pengguna, seperti teks atau gambar.
- Network: Kelas ini menyimpan daftar pengguna dan postingan yang ada dalam aplikasi.
Class User
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);
}
public void likePost(Post post){
post.addLike(this);
}
public List<Post> getPosts(){
return posts;
}
}Class Post
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(){
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();
}
}Class Network
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);
}
public void showAllPosts(){
System.out.println("\nAll Posts:");
for(Post post : posts){
System.out.println(post.getAuthor().getUsername() + " posted: " + post.getContent() + " - Likes: " + post.getLikeCount());
}
}
}Main
public class Main {
public static void main(String[] args) {
Network network = new Network();
User alice = network.addUser("Alice");
User bob = network.addUser("Bob");
alice.addPost("Hello, this is Alice's first post!");
bob.addPost("Hi everyone, Bob here!");
network.addPost(alice.getPosts().get(0));
network.addPost(bob.getPosts().get(0));
bob.likePost(alice.getPosts().get(0));
alice.likePost(bob.getPosts().get(0));
network.showAllPosts();
}
}Hasil
Source Code:

Comments
Post a Comment