Network Aplication
Nama : Hafidz Panji Ashari
NRP : 5025231278
Kelas : PBO-A
Kelas User:
- Mewakili pengguna dalam aplikasi.
- Pengguna memiliki nama, daftar postingan yang mereka buat (
posts), dan daftar postingan yang mereka sukai (likedPosts). - Metode
createPostmembuat postingan baru, dan metodelikePostmenambahkan "like" ke sebuah postingan.
import java.util.ArrayList;
public class User {
private String name;
private ArrayList<Post> posts;
private ArrayList<Post> likedPosts;
public User(String name) {
this.name = name;
this.posts = new ArrayList<>();
this.likedPosts = new ArrayList<>();
}
public String getName() {
return name;
}
public void createPost(String content) {
Post post = new Post(content, this);
posts.add(post);
Network.getInstance().addPost(post);
System.out.println(name + " created a post: " + content);
}
public void likePost(Post post) {
if (!likedPosts.contains(post)) {
likedPosts.add(post);
post.addLike(this);
System.out.println(name + " liked the post: " + post.getContent());
} else {
System.out.println(name + " has already liked this post.");
}
}
public ArrayList<Post> getPosts() {
return posts;
}
}
Kelas Post:
- Mewakili sebuah postingan dalam aplikasi.
- Postingan memiliki konten, penulis (pengguna yang membuat postingan), dan daftar pengguna yang menyukai postingan (
likes). - Metode
addLikemenambahkan "like" dari pengguna ke daftar.
import java.util.ArrayList;
public class Post {
private String content;
private User author;
private ArrayList<User> likes;
public Post(String content, User author) {
this.content = content;
this.author = author;
this.likes = new ArrayList<>();
}
public String getContent() {
return content;
}
public User getAuthor() {
return author;
}
public void addLike(User user) {
likes.add(user);
}
public ArrayList<User> getLikes() {
return likes;
}
}
Kelas Network:
- Mengelola semua pengguna dan postingan dalam aplikasi.
- Menggunakan pola Singleton, sehingga hanya ada satu instance
Network. - Menyediakan metode
addUseruntuk menambahkan pengguna danaddPostuntuk menambahkan postingan
import java.util.ArrayList;
public class Network {
private ArrayList<User> users;
private ArrayList<Post> posts;
private static Network instance;
private Network() {
users = new ArrayList<>();
posts = new ArrayList<>();
}
public static Network getInstance() {
if (instance == null) {
instance = new Network();
}
return instance;
}
public void addUser(User user) {
users.add(user);
System.out.println("User added: " + user.getName());
}
public void addPost(Post post) {
posts.add(post);
}
public ArrayList<User> getUsers() {
return users;
}
public ArrayList<Post> getPosts() {
return posts;
}
}
Kelas Main:
- Berfungsi sebagai titik awal program.
- Membuat instance
User, menambahkan mereka keNetwork, membuat beberapa postingan, dan memberikan "like" pada postingan.
public class Main {
public static void main(String[] args) {
Network network = Network.getInstance();
User user1 = new User("Alice");
User user2 = new User("Bob");
network.addUser(user1);
network.addUser(user2);
user1.createPost("Hello, this is my first post!");
user2.createPost("Good morning, everyone!");
Post post1 = network.getPosts().get(0);
Post post2 = network.getPosts().get(1);
user2.likePost(post1);
user1.likePost(post2);
}
}
output

Comments
Post a Comment