Implementasi Network App
Nama: Azka Rizqullah Ramadhani
NRP: 5025231148
Kelas: Pemrograman Berbasis Object (A)
Kode ini berisi implementasi Network App yang terdiri dari 3 class inti yaitu:
- User: Pengguna bisa membuat akun, memposting status, dan menyukai postingan orang lain.
- Post: Postingan ini akan berisi konten yang dibuat oleh penguna, seperti teks atau gambar.
- Network: Menyimpan semua data layaknya database
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("\nAllPosts:");
for (Post post : posts){
System.out.println(post.getAuthor().getUsername() + " posted : " + post.getContent() +" - Likes : " + post.getLikeCount());
}
}
}
Class 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:
Komentar
Posting Komentar