Tugas Pertemuan 11 - 5025231186

Agym Kamil Ramadhan
5025231186

Studi Kasus Network Interitance

Deskripsi Aplikasi
Aplikasi ini terdiri dari tiga komponen utama:

  1. Member: Mewakili pengguna yang dapat membuat pesan dan memberikan "like".
  2. Message: Mewakili pesan yang dibuat oleh pengguna, dengan fitur untuk menerima "like".
  3. Community: Sebagai platform untuk mengelola anggota, pesan, dan aktivitas dalam aplikasi.

Sebagai tambahan, aplikasi ini memiliki fitur bonus yang menampilkan anggota paling aktif berdasarkan jumlah pesan yang mereka buat.

Fitur Utama
Fitur-fitur utama dalam aplikasi meliputi:

  1. Pendaftaran Pengguna: Pengguna dapat mendaftar ke komunitas dengan nama mereka.
  2. Pembuatan Pesan: Pengguna dapat membuat dan membagikan pesan di komunitas.
  3. Memberikan Suka: Pengguna lain dapat memberikan "like" pada pesan yang mereka sukai.
  4. Menampilkan Semua Pesan: Semua pesan dari anggota komunitas ditampilkan bersama jumlah "like" yang diterima.
  5. Anggota Paling Aktif: Aplikasi menampilkan pengguna paling aktif berdasarkan jumlah pesan yang dibuat.

Penjelasan Kode

  1. Kelas Member

    • Tujuan: Mewakili anggota komunitas.
    • Atribut:
      • name: Nama pengguna.
      • messages: Daftar pesan yang dibuat.
    • Metode Utama:
      • createMessage: Membuat pesan baru.
      • giveLike: Memberikan "like" pada pesan anggota lain.
  2. Kelas Message

    • Tujuan: Mewakili pesan dalam komunitas.
    • Atribut:
      • author: Penulis pesan.
      • content: Isi pesan.
      • likes: Daftar pengguna yang memberikan "like".
    • Metode Utama:
      • addLike: Menambahkan "like" pada pesan.
      • getTotalLikes: Menghitung total "like" yang diterima.
  3. Kelas Community

    • Tujuan: Mengelola komunitas.
    • Atribut:
      • members: Daftar anggota komunitas.
      • messages: Daftar semua pesan dalam komunitas.
    • Metode Utama:
      • registerMember: Menambahkan anggota baru.
      • addMessage: Menambahkan pesan ke komunitas.
      • displayAllMessages: Menampilkan semua pesan berikut jumlah "like"-nya.
      • showMostActiveMember: Menampilkan anggota dengan jumlah pesan terbanyak.
  4. Kelas SocialCommunity (Kelas Utama)

    • Tujuan: Menjalankan aplikasi.
    • Fungsi Utama: Menunjukkan proses pendaftaran, pembuatan pesan, pemberian "like", dan menampilkan hasil aktivitas komunitas



import java.util.ArrayList;
import java.util.List;

class Member {
private String name;
private List<Message> messages;

public Member(String name) {
this.name = name;
this.messages = new ArrayList<>();
}

public String getName() {
return name;
}

public void createMessage(String content, Community community) {
Message message = new Message(this, content);
messages.add(message);
community.addMessage(message);
System.out.println(name + " created a message: " + content);
}

public void giveLike(Message message) {
message.addLike(this);
}

public List<Message> getMessages() {
return messages;
}
}

class Message {
private Member author;
private String content;
private List<Member> likes;

public Message(Member author, String content) {
this.author = author;
this.content = content;
this.likes = new ArrayList<>();
}

public String getContent() {
return content;
}

public Member getAuthor() {
return author;
}

public void addLike(Member member) {
if (!likes.contains(member)) {
likes.add(member);
System.out.println(member.getName() + " liked: " + content);
}
}

public int getTotalLikes() {
return likes.size();
}
}

class Community {
private List<Member> members;
private List<Message> messages;

public Community() {
members = new ArrayList<>();
messages = new ArrayList<>();
}

public Member registerMember(String name) {
Member member = new Member(name);
members.add(member);
System.out.println("New member joined: " + name);
return member;
}

public void addMessage(Message message) {
messages.add(message);
}

public void displayAllMessages() {
System.out.println("\nAll Messages:");
for (Message message : messages) {
System.out.println(message.getAuthor().getName() + " wrote: " + message.getContent() + " - Likes: " + message.getTotalLikes());
}
}

public void showMostActiveMember() {
Member mostActive = null;
int maxMessages = 0;

for (Member member : members) {
if (member.getMessages().size() > maxMessages) {
mostActive = member;
maxMessages = member.getMessages().size();
}
}

if (mostActive != null) {
System.out.println("\nMost Active Member: " + mostActive.getName() + " with " + maxMessages + " messages.");
} else {
System.out.println("\nNo active members yet.");
}
}
}

public class SocialCommunity {
public static void main(String[] args) {
Community community = new Community();

Member kamil = community.registerMember("kamil");
Member caca = community.registerMember("caca");

kamil.createMessage("Halo ini kamil", community);
caca.createMessage("haii caca di siniii", community);

caca.giveLike(kamil.getMessages().get(0));
kamil.giveLike(caca.getMessages().get(0));

community.displayAllMessages();

community.showMostActiveMember();
}
}



Komentar

Postingan populer dari blog ini

Pemrograman Berorientasi Objek A - ETS

Tugas Pertemuan 3 - 5025231186

Tugas Pertemuan 4 - 5025231186