analisis algortitma (activity selection problem)

permasalahanya!!!
Sebuah stduio musik membuka layanan penyewaan studio. Studio ini hanya beroperasi dari jam 1-14, setiap group band yang akan menyewa di wajibkan membocking 2 hari sebelumnya. Pemilik studio wajib memilih grup band mana saja yang di perbolekan menyewa. satu slot hanya boleh digunakan satu grup band pada hari itu, misakan 2 hari lalu terdapat 10 grup band yang sudah memesanan :




Persoalan :
1.selesaikan dengan algoritma brute force. Tentukan grup band mana saja yang di perbolehkan latihan!!!

2.selesaikan dengan algoritma greedy. Jelaskan srategi greedy yang mungkin dapat diterapkan agar diperoleh grup band yan paling banyak pada hari ini!!!


menggunakan algoritma brute force.


okey,,,srateginya :
1. urutkan terlebih dahulu grup band dari yang terkecil ke terbesar berdasarkan jam mulai.

jadi seperti ini :




2. grup band urutan ke satu yang terpilih pertama.

3. kemudian pilih aktivitas yang waktu mulainya lebih besar atau sama dengan
waktu selesai aktivitas yang dipilih sebelumnya .

ini algoritmanya :


kita coba !!!
i = 2 // berarti yang no ke 2 yaitu grup band C
2 >= 3 // (2 adalah jam awal dari C dan 3 adalah jam akhir dari A ) tidak maka lanjut ke i = 3

i = 3 // no ke 3 yaitu grup band B
3 >= 3 // (3 adalah jam awal dari B dan 3 adalah jam akhir dari A )cocok maka
g ← g U { i } // i disini adalah B, jadi B gabungkan ke dalam g
j ← i // j adalah jam akhir jadi jam akhir yang di pakai adalah jam akhir grup B yaitu 4

i = 4 // no ke 4 yaitu grup band D
5 >= 4 // (5 adalah jam awal dari D dan 4 adalah jam akhir dari B ) cocok maka
g ← g U { i } // i disini adalah D, jadi D gabungkan ke dalam g
j ← i // j adalah jam akhir, jadi jam akhir yang di pakai adalah jam akhir grup D yaitu 7

i = 5 // no ke 5 yaitu grup band F
7 >= 7 // 7 adalah jam awal dari F dan 7 adalah jam akhir dari D ) cocok maka
g ← g U { i } // i disini adalah F, jadi F gabungkan ke dalam g
j ← i // j adalah jam akhir, jadi jam akhir yang di pakai adalah jam akhir grup F yaitu 10


i = 6 // berarti yang no ke 6 yaitu grup band E
8 >= 10 //(8 adalah jam awal dari E dan 10 adalah jam akhir dari F )tidak maka lanjut ke i = 7

i = 7 // berarti yang no ke 7 yaitu grup band G
9 >= 10 //(9 adalah jam awal dari G dan 10 adalah jam akhir dari F )tidak maka lanjut ke i = 8

i = 8 // berarti yang no ke 8 yaitu grup band I
9 >= 10 //(9 adalah jam awal dari I dan 10 adalah jam akhir dari F )tidak maka lanjut ke i = 9

i = 9 // no ke 5 yaitu grup band H
11 >= 10 // (11 adalah jam awal dari H dan 7 adalah jam akhir dari F ) cocok maka
g ← g U { i } // i disini adalah H, jadi H gabungkan ke dalam g
j ← i // j adalah jam akhir, jadi jam akhir yang di pakai adalah jam akhir grup H yaitu 12

i = 10 // no ke 10 yaitu grup band J
12 >= 12 // (12 adalah jam awal dari J dan 12 adalah jam akhir dari H ) cocok maka
g ← g U { i } // i disini adalah J, jadi J gabungkan ke dalam g
j ← i // j adalah jam akhir, jadi jam akhir yang di pakai adalah jam akhir grup J yaitu 14

i = 11 //keluar dari perulangan

jadi grup band yang bisa memakai studio pada har i ini yaitu g = {A, B, D, F, H, J }


2. menggunakan algoritma greedy


pilih aktivitas yang durasinya paling kecil lebih dahulu dan waktu mulainya tidak lebih besar dari waktu selesai aktivitas lain yang telah terpilih.

Kemudian lakukan perulangan seperti srategi yang pertama dan waktu mulainya tidak lebih besar dari waktu selesai aktivitas lain yang telah terpilih dari langkah di atas.

Maka grup band yang terpilih yaitu g = {A, B, D, E, G, H, J}


Baca Selengkapnya......

Cara Install Ubuntu
proses install ubuntu sebenarnya gampang, malah menurut aku proses nginstall ubuntu itu lebih gampang dari proese nginstall windows. Sebelumnya kamu harus punya dulu cd instaler ubuntu dan perangkat komputer kamu juga harus yang mendukung kaya CD-rom atau DVD-rom, kalau sudah lengkap kamu baca cara-cara install ubuntu yang ada di bawah ini :



1. pertama yang harus kamu lakukan buat komputer kamu membaca terlebih dahulu ke cd/dvd-rom udah itu masukan cd-nya dan tunggu sampai cd-nya terbaca.
2. kalau sudah keluar tampilan kaya gini pilih start install ubuntu


3. kamu harus tunggu lagi sampai keluar Live cd ubuntu seperti gambar ini :



4. Kamu double klick di icon install, maka proses intall akan segera di mulai


5. Akan keluar sebuah kotak dialog kamu di sini akan di suruh untuk mamilih bahasa pada saat pengerjaan proses intalisasi seperti yang ada di bawah



6. Kemudian menentukan zona tempat dan waktu



7. Lalu menentukan format keyboard, kita di indonesia keyboard sama dengan keyboard USA


8. Memilih dan menentukan pembagian ruang harddisk atau mempartisi , kamu bisa mengikuti pilihan yang ditawarkan oleh ubuntu atau kamu juga bisa dengan cara manual seperti dengan 40 GB ext3 dengan mountpoin / dan di format, 512 MB swap area dan free space

9. Kamu disini akan disuruh untuk mengisi seperti yang ada dibawah ini


10. Pastikan yang kamu ketikkan benar kemudian next



11. Maka proses install system di mulai


12. selesai



Baca Selengkapnya......

DFD

Contoh Gambar DFD dalam Sistem Telepon Rumah

Baca Selengkapnya......

algoritma greedy (penukaran koin)

Algoritma greedy adalah algoritma yang memecahkan masalah langkah demi langkah, pada setiap langkah:

1. mengambil pilihan yang terbaik yang dapat diperoleh saat itu

2. berharap bahwa dengan memilih optimum loklal pada setiap langkah akan mencapai optimum global.

Algoritma greedy mengasumsikan bahwa optimum lokal merupakan bagian dari optimum global.
Prinsip algoritma greedy adalah: “take what you can get now!”.

Secara umum, algoritma greedy memiliki 5 elemen :
1. Himpunan kandidat, C.
Himpunan ini berisi elemen pembentuk solusi.

2. Himpunan solusi, S.
Berisi kandidat yang terpilih sebagai solusi persoalan.

3. Fungsi seleksi.
Fungsi yang memilih kandidat terpilih untuk ditambahkan ke dalam solusi.

4. Fungsi kelayakan
Fungsi yang memeriksa apakah suatu kandidat dapat digunakan untuk memberikan solusi. Kandidat yang layak dimasukkan ke dalam himpunan solusi, sedangkan kandidat yang tidak layak dibuang dan tidak dipertimbangkan lagi.

5. Fungsi obyektif
Fungsi yang memaksimumkan atau meminimumkan solusi.

Masalah yang cocok dalam menggambarkan algoritma greedy adalah pada masalah penukaran uang koin. Seseorang memiliki uang koin yang bernilai 32, dan akan di tukar dengan nilai uang pada himpunan 1,5,10, dan 25. Terdapat berbagai cara untuk mendapatkan koin dengan nilai 32. Dengan menggunakan algoritma greedy, kombinasi yang diperoleh adalah :
1. Sebuah koin 25,
2. Sebuah koin 5,
3. Dan 2 buah koin 1.

elemen-elemen greedy pada kasus penukaran koin :

1. Himpunan kandidat : koin yang merepresentasikan nilai 1,5,10,25, paling sedikit mengandung satu koin untuk setiap nilai

2. Himpunan solusi : koin yang terpilih sehingga total nilai koin seluruhnya tepat sama jumlahnya dengan nilai uang yang ditukarkan.

3. Fungsi seleksi : pilih koin yang nilai nya paling tinggi dari himpunan kandidat yang tersisa.

4. Fungsi layak : periksa apakah nilai total dari himpunan koin yang dipilih tidak melebihi jumlah uang yang harus dibayar.

5. Fungsi obyektif : jumlah koin yang digunakan minimum

-------------------------------------------------------------------------------------------
berikut algoritmanya :

function penukaran_koin(input c : himpunan_koin, A : integer) → himpunan_koin
{mengembalikan koin-koin yang total nilainya = A, tetapi jumlah koinnya minimum}

Deklarasi
s : himpunan_koin
x : koin

Algoritma
s ← {} //inisialisasi var S dengan Kosong
while (Σ(nilai semua koin di dalam s) ≠ A) and (c ≠ {} ) do //memeriksa apakah sudah //di temukan solusinya atau tidak.
x ← koin yang mempunyai nilai terbesar //x merupakan nilai koin terbesar dari himpunan kandidat
c ← c - {x} //kurangi c dengan x
if (Σ(nilai semua koin di dalam s) + nilai koin x ≤ A then //perikasa apakah kandidat
s ← s ∪ {x} //yg terpilih membentuk
endif // solusi yang layak jika
endwhile // ya maka masukan.

if (Σ(nilai semua koin di dalam s) = A then
return s
else
write(tidak ada solusi untuk penukaran koin ini’)
endif



Baca Selengkapnya......

Program Warnet

Sekedar sharing ja tentang bahasa pemrograman Pascal,,, yah walaupun gk begitu bahasa Pascal saya punya contoh program pascal yang mungkin bisa jadi referensi bagi yang membutuhkan.hheu
tapi jangan sal di copas jah yah harus di pahami betul-betul supaya gk jadi generasi copas.
nih contoh koding program bwt "Warnet".


type data = record
nama,jenis: string;
lamaharga,lama,scan,hitam,warna,teh,total,jam,menit: integer;

end;


type
warnet = array [1..100] of data;


var

wdata:warnet;
n:integer;
nota:integer;
//total:integer;


//////==prosedur mengisi data==///////
procedure isidata(var wdata:warnet; n:integer);
var
i:integer;
X:INTEGER;
begin
X:=1;
for i :=1 to n do

begin
writeln('');
writeln('Data Ke : ',X);
X:=X+1;
writeln('');
write('Nama Anda : '); readln(wdata[i].nama);
writeln('====Jenis Pemakaian===' );
writeln('1. Internet' );
writeln('2. Pengetikan' );
writeln('3. Game Online' );
writeln('======================' );
write('Ketikan Jenis Pemakaian : '); readln(wdata[i].jenis);
wdata[i].jenis:=upcase(wdata[i].jenis);
write('Lama Waktu Pemakaian (menit) : '); readln(wdata[i].lama);
write('Banyaknya Yang Di Scan : '); readln(wdata[i].scan);
write('Banyaknya Yang Di Print Hitam : '); readln(wdata[i].hitam);
write('Banyaknya Yang Di Print Berwarna : '); readln(wdata[i].warna);
write('Banyaknya Teh Botol : '); readln(wdata[i].teh);
writeln();

end;
end;
/////////akhir Procedure Isidata////////////////


//////==prosedur menampilkan data==/////////
procedure tampildata(var wdata:warnet; n:integer);
var
i:integer;

hargastandar:integer;
jam:integer;
sisalama:integer;

begin

//cari harga lama ngerental//

for i :=1 to n do
begin
hargastandar:=0;
wdata[i].lamaharga:=0;
//pertama membagi dulu lama pemakian//
if wdata[i].lama div 15=0 then
sisalama:= 1
else
sisalama:= wdata[i].lama div 15 ;

//tutup//

//pemilihan jenis//
if wdata[i].jenis='INTERNET' then
begin
hargastandar:=1000;
wdata[i].lamaharga:=sisalama*hargastandar;
end;

if wdata[i].jenis='GAME ONLINE' then
begin
hargastandar:=1250;
wdata[i].lamaharga:=sisalama*hargastandar;
end;

if wdata[i].jenis='PENGETIKAN' then
begin
hargastandar:=500;
wdata[i].lamaharga:=sisalama*hargastandar;
end;
//tutup//
end;


//convert lama pemakian ke satuan jam//
for i :=1 to n do
begin
jam:=wdata[i].lama div 60;
sisalama:=wdata[i].lama mod 60;
wdata[i].jam:=jam;
wdata[i].menit:=sisalama;
end;

//cari total hrga//
for i :=1 to n do
begin
wdata[i].total:= wdata[i].scan*1000 + wdata[i].warna*500 + wdata[i].hitam*300 + wdata[i].teh*3000+wdata[i].lamaharga;
end;




/////////////yang akan ditampilkan/////////////////////////
clrscr;

gotoxy(3,3);writeln('==============================================================================');
gotoxy(3,4);writeln('No Nama Jenis Waktu Lembar Lembar Lembar Teh Total ');
gotoxy(3,5);writeln(' Pemakai Pemakaian Pemakaian Scan Hitam berwarna Botol Bayar ');
gotoxy(3,6);writeln('==============================================================================');
for i:= 1 to n do
begin
gotoxy(3,6+i);writeln(i);
gotoxy(6,6+i);writeln(wdata[i].nama);
gotoxy(16,6+i);writeln(wdata[i].jenis);
gotoxy(28,6+i);writeln(wdata[i].jam,' Jam ',wdata[i].menit,'M');
gotoxy(39,6+i);writeln(wdata[i].scan);
gotoxy(47,6+i);writeln(wdata[i].hitam);
gotoxy(56,6+i);writeln(wdata[i].warna);
gotoxy(66,6+i);writeln(wdata[i].teh);
gotoxy(73,6+i);writeln('Rp.',wdata[i].total);
end;


end;

/////////akhir Procedure tampildata////////////////



begin
writeln('===================================================================');
writeln(' PROGRAM HITUNG BIAYA');
WRITELN(' RENTAL KOMPUTER');
writeln('===================================================================');
write('No.Nota : '); readln(nota);
write('Jumlah Pemakaian : '); readln(n);

isidata(wdata,n);
readln();
tampildata(wdata,n);
readln();

end.


semoga bisa bermanfaat dan ingat jgn maen copas ja,,tp pahami juga supaya pinter.

Baca Selengkapnya......

Tentang Blog ini

Assalamualikum Wr.Wb


saya bukan orang yg pandai menyusun kata-kata indah makanya saya gk panjang lebar ke sana ke sini langsung jah ke pokoknya moga-moga blog ini bermanfaat untuk yg membacanya.

Baca Selengkapnya......