Langsung ke konten utama

Contoh Makalah Algoritma Greedy


Greedy Algoritma

#Pendahuluan
Ternyata matematika sangat berguna bagi kehiduapan manusia sperti pembangunan gedung, pembuatan jalan tol, bahkan untuk membuat sebuah aplikasi dll. algoritma greedy adalah salah satu dari sekian banyaknya rumus matematika.kali ini saya akan memberi tahu cara membuat aplikasi untuk menghitung algoritma greedy menggunakan java.

#Dasar Teori
            Algoritma greedy merupakan metode yang paling populer untuk memecahkan persoalan optimasi. Greedy sendiri diambil dari bahasa inggris yang artinya rakus, tamak atau serakah .Prinsip algoritma greedy adalah: “take what you can get now!”. Algoritma greedy membentuk solusi langkah per langkah (step by step). Terdapat banyak pilihan yang perlu dieksplorasi pada setiap langkah solusi. Oleh karena itu, pada setiap langkah harus dibuat keputusan yang terbaik dalam menentukan pilihan. Keputusan yang telah diambil pada suatu langkah tidak dapat diubah lagi pada langkah selanjutnya.

#Uji Coba
1.   Masukkan kode berikut :
import java.io.DataInputStream;
class AlgoritmaGreedy
{
 public int i,j,k;

 // konstruktor
 AlgoritmaGreedy(){
 }

 // method untuk proses algoritma greedy
 void Greedy(int koin[], int hasil[],int jum[], int uang, int i)
 {
  int s [] = new int[uang];

  while(jum[i] < uang)
  {
   k=(int)(Math.random()*koin.length);
   s[hasil[i]] = koin[k];

   if((jum[i] + s[hasil[i]]) <= uang)
    System.out.print(s[hasil[i]]+" ");

   jum[i]+=s[hasil[i]];
   hasil[i]+=1;
  }
  System.out.print(" ");

  if (jum[i] == uang)
   System.out.println(" = "+hasil[i]+" koin");
   else
    System.out.println(" = Tidak ada solusi");
 }

 // method sorting
 void sorting(int data[], int n)
 {
  for(i=0;i<n-1;i++){
      for(j=0; j<n-1;j++)
       if(data[j]<data[j+1])
       {
        k=data[j];
        data[j]=data[j+1];
        data[j+1]= k;
       }
     }
 }

 // method untuk mencari solusi max n min
 void solusiGlobal(int data[],int jum[], int uang)
    {
     int bin[] = new int[data.length];
     j=0;
     for (i=0;i<data.length;i++)
     {
      if(jum[i]==uang){
       bin[j]=data[i];
       j+=1;
      }
     }

     sorting(bin,bin.length);

     k=0;
     for(i=0;i<bin.length;i++)
      if(bin[i] != 0)
       k+=1;

     System.out.println("nSolusi Minimum : "+bin[k-1]);
     System.out.println("Solusi Maximum : "+bin[0]);
 }
}

class main
{
 public static void main (String[] args) throws Exception
 {
  DataInputStream entri = new DataInputStream(System.in);
  System.out.print("Masukan jumlah uang yg di tukar: ");
  int uang = Integer.parseInt(entri.readLine());
  System.out.print("Masukkan banyaknya koin: ");
  int n = Integer.parseInt(entri.readLine());
  int koin[] = new int[n];

  for(int i = 0;i<n;i++)
  {
   System.out.print("Koin ke-"+(i+1)+" : ");
   koin[i] = Integer.parseInt(entri.readLine());
  }

  System.out.print("Masukkan batas iterasi: ");
  int batas = Integer.parseInt(entri.readLine());
  int hasil[] = new int [batas];
  int jum[] = new int [batas];


  // instansiasi objek greedy
  AlgoritmaGreedy g = new AlgoritmaGreedy();

  for(int i =0;i<batas;i++)
  {
   System.out.print("nSolusi ke-"+(i+1)+" = (");
   g.Greedy(koin,hasil,jum,uang,i);
  }
  g.solusiGlobal(hasil,jum,uang);
 }
}

2.   Maka akan keluar hasil sperti ini



#Penutup

Demikian yang dapat kami paparkan mengenai materi yang menjadi pokok bahasan dalam makalah ini, tentunya masih banyak kekurangan dan kelemahannya, kerena terbatasnya pengetahuan dan kurangnya rujukan atau referensi yang ada hubungannya dengan judul makalah ini.

Komentar

Postingan populer dari blog ini

PENGERTIAN DAN JENIS JENIS TIPE DATA

Assalamualaikum wr.wb. A. Tipe Data      1. Pengertian Tipe data     Tipe data adalah jenis nilai yang dapat ditampung oleh suatu variabel. 2.  Jenis- jenis tipe data / Data Type a) Tipe data primitive (Sederhana)           Tipe data primitive adalah Tipe data yang mampu menyimpan satu nilai tiap satu variabel. Tipe data primitive merupakan tipe data dasar yang sering dipakai oleh program. Contoh tipe data primitive  adalah tipe numerik (integer dan real), tipe data karakter/char, tipe data boolean.         1.  Numerik          Tipe data numeric digunakan pada variabel atau konstanta untuk menyimpan nilai             dalam bentuk angka. Tipe data ini terbagi atas integer, dan real.         a.   Integer        ...

CONTOH DIAGRAM ERD PERPUSTAKAAN

Gambar ERD dalam peminjaman buku di perpustakaan: ——————————————————————————————————————————————————————– Contoh Kasus 2: Seperti deskripsi soal kasus nomor 1, namun ada beberapa tambahan penjelasan seperti berikut: Seorang mahasiswa boleh meminjam beberapa buku. Satu buku boleh dipinjam beberapa mahasiswa. Semua mahasiswa sangat pelu buku sehingga tidak ada yang tidak pernah meminjam ke perpustakaan. Setiap peminjam akan dicatat tanggal peminjamannya. Semua mahasiswa disiplin mengembalikan buku tepat satu minggu setelah peminjaman. Gambarkan ERDnya!! MODEL ENTITY – RELATIONSHIP Model Entity Relationship : Suatu penyajian data dengan menggunakan Entity dan Relationship Entity : Objek secara fisik : Buku, Perpustakaan, Mahasiswa Objek secara konsep : Meminjam Relationship :  Atribut : Atribut Multivalue Derajat dari Relationship : Trenary degree (Derajat Tiga) Cardinality Ratio Constraint M : N ...

Flowchart adalah

Assalamualaikum Wr. Wb. Flowchart  A. Pengertian Flowchart (Diagram Alir)                 Flowchart atau bagan alir adalah skema/bagan (chart) yang menunjukkan aliran (flow) di dalam suatu program secara logika.   Flowchart merupakan alat yang banyak digunakan untuk menggambarkan algoritma dalam bentuk notasi – notasi tertentu. Flowchart merupakan gambar atau bagan yang memperlihatkan urutan dan hubungan antar proses beserta pernyataannya. Gambaran ini dinyatakan dengan simbol. Dengan demikian setiap simbol menggambarkan proses tertentu. Sedangkan antar proses digambarkan dengan garis penghubung. Dengan menggunakan flowchart akan memudahkan kita untuk melakukan pengecekan bagian – bagian yang terlupakan dalam analisis masalah. Di samping itu flowchart juga berguna sebagai fasilitas untuk berkomunikasi antara pemrogram yang bekerja dalam tim suatu proyek.  Walaupun tidak ada kaidah – kaidah yang baku dal...