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:



Github


Komentar

Postingan populer dari blog ini

Implementasi Unit Test

Implementasi Support System

Tugas Ticket Machine