Keutamaan Tauhid dalam masa-masa sulit

Kita hidup didunia tiada lain utk tujuan yg besar, tujuan utk merealisasikan ibadah hanya kepada Allah. Allah berfirman:

Dan Aku tidak menciptakan jin dan manusia melainkan supaya mereka menyembah-Ku.
(Adz Dzariaat ayat 56)

Tujuan ini begitu agung, maka Allah utus para rasul, Allah turunkan kitab-kitab suci untuk menjelaskan hakikat beribadah kepada Allah Ta’ala
semua ini utk kebaikan manusia, tidak ada sedikitpun untuk mencelakakan manusia.

Allah Berfirman :
…Allah menghendaki kemudahan bagimu, dan tidak menghendaki kesukaran bagimu…
(Al Baqarah ayat 185)


Maka syariat yang mulia ini datang utk menghilangkan penyembahan terhadap mahluk menuju penyembahan kepada Allah, utk menyelamatkan manusia dari api neraka

Rasulullah Shallallahu ‘alaihi wa sallam bersabda :
Permisalanku dan umatku seperti seorang laki-laki yg menyalakan api ,lalu laron-laron itu jatuh kedalam api, dan aku berusaha memegang ikat pinggang kalian jangan sampe kalian jatuh kedalam api, akan tetapi kalian malah lepas dariku

Untuk selengkapnya silahkan dengar Mp3 kajian berikut, semoga bermanfaat bagi kita semua

Tema : Keutamaan Tauhid dalam masa-masa sulit
Pembicara : Ustadz Badrusalam
Tempat : masjid Al Kautsar POLDA
Tanggal : 30 juli 2008
Sumber : Radiorodja.com


icon for podpress Keutamaan Tauhid dalam masa-masa sulit: Hide Player | Play in Popup | Download | Download ZIP |

Baca Selengkapnya

Ceramah Ramadhan 1428H

Tema : Nasihat bagi Muslim Setelah Romadhon
Pembicara : Ustadz Badrusalam

Romadhan telah berlalu, masih terbayang indahnya romdahon. Selanjutnya bagaimana kita setelah meninggalkan romadhan. tentu kita tidak mau menjadi orang2 yg merugi. kita ingin setelah ramadhan menjadi lebih baik lagi. Ternyata amal ibadah di bulan ramadhan bukan hanya disaat ramadhan saja, tapi bagaiman kita bisa istiqomah setelahnya.

tujuan berpuasa untuk bertaqwa, karena Allah telah berfirman dalam Al Baqarah ayat 183 :



يَا أَيُّهَا الَّذِينَ آمَنُوا كُتِبَ عَلَيْكُمُ الصِّيَامُ كَمَا كُتِبَ عَلَى الَّذِينَ مِنْ قَبْلِكُمْ لَعَلَّكُمْ تَتَّقُونَ



Artinya : Hai orang-orang yang beriman, diwajibkan atas kamu berpuasa sebagaimana diwajibkan atas orang-orang sebelum kamu agar kamu bertakwa

Selanjutanya silahkan dengar kajian selengkapnya dari mp3 di bawah ini. semoga bermanfaat bagi kita semua



Download Kajian

Baca Selengkapnya

Berdasarkan pertanyaan-pertanyaan yang sering muncul kepada saya tentang langkah2 penerapan metode Dekomposisi Census II, dengan ini saya sampaikan coding yang dibuat dengan bahasa pemrograman Turbo Pascal versi 7.0.

Perlu diketahui bahwa program tersebut adalah “salah satu contoh dan bukan satu-satunya contoh” dari sistem perhitungan metode Dekomposisi Census II yang dapat dijadikan rujukan.

Program yang saya buat ini masih sangat sederhana dan belum disertai dengan GUI yang interaktif, bahkan masih menggunakan Turbo Pascal dengan alasan :
Pertama, goal yang ingin dicapai adalah "pemahaman alur penerapan metode" dan "bukan pembuatan aplikasi"
Kedua, Turbo Pascal adalah bahasa pemrograman terstruktur yang lebih mudah difahami bagian per bagiannya.


Semoga artikel sederhana ini dapat bermanfaat untuk menyudahi segala confius yang sering terjadi saat mempelajari metode dekomposisi Census II. Bagi yang ingin mengetahui ringkasan teorinya dapat mempelajari terlebih dahulu di link ini

Untuk menganalisa data dalam jumlah besar dan bervariasi hendaknya menggunakan aplikasi yang lebih baik atau menggunakan software-software baku dipasaran.

Oh ya, karena pendekatan pada artikel ini masih sederhana maka sistem penyimpanan data yang saya gunakan juga masih sederhana yaitu dengan cara menyimpan data time series pada array sebagai berikut :


Const
L = 12;
n = 72;

NamaFile = 'SKontKLS.txt';

data : array [1..n] of real =
(1.6,1.6,2.3,3,3.1,3.1,3.1,2.8,3,3.2,2.4,2.2,2.2,2.5,3.6,
4,4,4.2,4.1,4.1,3.8,4.1,3.7,3.2,3,3.5,5.3,5.5,5.8,6,5.7,
6.2,5.6,5.5,5.4,4.3,3.9,3.9,6.3,6.8,7.8,7.9,6.8,7.1,6.5,
7.1,6,4.7,4.5,4.6,6.9,6,8.1,7.3,7,7.1,6.2,6.9,4.7,
4.3,4.1,4.3,4.6,4.4,4.5,5.1,6.1,5.9,6.1,6.8,5.8,5.6);



Jika disajikan dalam bentuk tabel, maka rangkaian array di atas akan mewakili data time series ttg kontrak kerja karyawan seperti dibawah ini

Bulan

Tahun

1982

1983

1984

1985

1986

1987

1

1.6

2.2

3

3.9

4.5

4.1

2

1.6

2.5

3.5

3.9

4.6

4.3

3

2.3

3.6

5.3

6.3

6.9

4.6

4

3

4

5.5

6.8

6

4.4

5

3.1

4

5.8

7.8

8.1

4.5

6

3.1

4.2

6

7.9

7.3

5.1

7

3.1

4.1

5.7

6.8

7

6.1

8

2.8

4.1

6.2

7.1

7.1

5.9

9

3

3.8

5.6

6.5

6.2

6.1

10

3.2

4.1

5.5

7.1

6.9

6.8

11

2.4

3.7

5.4

6

4.7

5.8

12

2.2

3.2

4.3

4.7

4.3

5.6



Sebelum melanjutkan ke bagian program / algoritma dekomposisi, maka dipersilakan kepada pembaca yang kebelet pipis untuk pergi ke toilet terlebih dahulu, karena nahan-nahan pipis itu tidak baik untuk kesehatan para ilmuwan

sekedar saran aja loh ya...hehehe... :D
biar suasana bisa lebih cair ... :)

Oke kalo sudah lega, silakan tarik nafas dan mulailah membuka buku Makridakis, Wheelwright and McGee dan kemudian berusaha memahami alur pemrograman di bawah ini.

Selamat belajar....

Catatan bagi mereka yang belum begitu mengenal turbo pascal, bila ada suatu statemen atau code yang ditulis diantara tanda kurung seperti ini {}, maka statemen atau kode tersebut tidak ikut dikompilasi dan hanya dianggap sebagai catatan pengingat saja.



uses crt;

Const
L = 12;
n = 72;

NamaFile = 'SKontKLS.txt';

data : array [1..n] of real =
(1.6,1.6,2.3,3,3.1,3.1,3.1,2.8,3,3.2,2.4,2.2,2.2,2.5,3.6,
4,4,4.2,4.1,4.1,3.8,4.1,3.7,3.2,3,3.5,5.3,5.5,5.8,6,5.7,
6.2,5.6,5.5,5.4,4.3,3.9,3.9,6.3,6.8,7.8,7.9,6.8,7.1,6.5,
7.1,6,4.7,4.5,4.6,6.9,6,8.1,7.3,7,7.1,6.2,6.9,4.7,
4.3,4.1,4.3,4.6,4.4,4.5,5.1,6.1,5.9,6.1,6.8,5.8,5.6);

type
savedat = array [1..n] of real;
savetab = array [1..25,1..L] of real;

var
per2 : integer;

procedure RasioAwal(Var output : savedat);
var
i,j : byte;
sum,save : real;

begin
per2:=Round(L/2);
for i:=(per2+1) to n-(per2-1) do
begin
sum:=0;
for j:=i-per2 to i+(per2-1) do
sum:=sum+data[j];
if i>(per2+1) then
output[i-1]:=200*L*data[i-1]/(save+sum);
save:=sum;
end;

{Inisialisasi 6 data awal dan akhir yang hilang}
for i:=1 to per2 do
begin
output[i]:=0;
output[n+i-per2]:=0;
end;
end;

procedure Transpose(input : savedat;var Output : Savetab);
var
i,j,k : byte;

begin
k:=0;
for i:=1 to round(n/L) do
begin
for j:=1 to L do
output[i,j]:=input[j+k];
k:=k+L;
end;
end;

procedure DummyTab(Input : savetab; var Dummy : savetab);
var
i,j,Baris : byte;
begin
baris:=Round(n/L);
for i:=1 to 2 do
for j:=1 to L do
begin
Dummy[i,j]:=0;
Dummy[baris+i+2,j]:=0;
end;

for i:=3 to baris+2 do
for j:=1 to L do
Dummy[i,j]:=input[i-2,j];

end;

procedure MA3x3(input : savetab; var output : savetab);
var
i,j,baris : byte;
init : real;
begin
Baris := Round(n/L)+4;

{Mengganti nilai nol}
init:=input[3,1];
for j:=1 to per2 do
begin
{Atas}
if (input [3,j]=0) then
begin
input[2,j]:=(input[4,j]+input[5,j])/2;
input[3,j]:=input[2,j];
end else
begin
input[2,j]:=(input[3,j]+input[4,j])/2;
input[1,j]:=input[2,j];
end;

input[1,j+per2]:=(input[3,j+per2]+input[4,j+per2])/2;
input[2,j+per2]:=input[1,j+per2];

{Bawah}
input[Baris-1,j]:=(input[Baris-2,j]+input[Baris-3,j])/2;
input[Baris,j]:=input[Baris-1,j];
if (input[Baris-2,j+per2]=0) then
begin
input[Baris-1,j+per2]:=
(input[baris-3,j+per2]+input[baris-4,j+per2])/2;
Input[Baris-2,j+per2]:=input[Baris-1,j+per2];
end else
begin
input[Baris-1,j+per2]:=(input[baris-3,j+per2]+
input[baris-2,j+per2])/2;
input[baris,j+per2]:=input[baris-1,j+per2];
end;
end;

for j:=1 to L do
for i:=3 to baris-2 do
output[i-2,j]:=(input[i-2,j]+2*input[i-1,j]+3*input[i,j]+ 2*input[i+1,j]+input[i+2,j])/9;

if init=0 then
for j:=1 to per2 do
begin
output[1,j]:=0;
output[Round(n/L),per2+j]:=0;
end;
end;

procedure MA5x5(input : Savetab; Var output : Savetab);
var
k,h,Baris : byte;
Dum : array [1..20,1..12] of real;
begin
Baris := Round(n/L);
for k:=1 to L do
begin
Dum[4,k]:=(input[1,k]+input[2,k]+input[3,k])/3;
Dum[5+Baris,k]:=(input[BAris,k]+
input[BAris-1,k]+input[Baris-2,k])/3;
end;

for h:=1 to 3 do
for k:=1 to L do
begin
Dum[h,k]:=Dum[4,k];
Dum[5+BAris+h,k]:=Dum[5+Baris,k];
end;

for h:=1 to BAris do
for k:=1 to L do Dum[4+h,k]:=input[h,k];

for k:=1 to L do
for h:=1 to BAris do
Output[h,k]:=(Dum[h,k]+2*Dum[h+1,k]+3*Dum[h+2,k]+
4*Dum[h+3,k]+5*Dum[h+4,k]+
4*Dum[h+5,k]+3*Dum[h+6,k]+2*Dum[h+7,k]+Dum[h+8,k])/25;
end;

Procedure Musim(Rasio,RMA3x3 : Savetab; var FMusim : savetab);
Var
i,j : byte;
Dummy,HAsil : Savetab;
SD,sum : real;
Begin
for j:=1 to L do
begin
SD:=0;
for i:=1 to Round(n/L) do
if not(Rasio[i,j]=0) then
SD:=SD+sqr(Rasio[i,j]-RMA3x3[i,j]);
if (Rasio[1,2]=0) then
SD:=sqrt(SD/(Round(n/L)-1)) else SD:=sqrt(SD/Round(n/L));
for i:=1 to Round(n/L) do
begin
if not(Rasio[i,j]=0) then
if ((Rasio[i,j]<(RMA3x3[i,j]- 2*SD))or(Rasio[i,j]>(RMA3x3[i,j]+2*SD))) then
begin
if ((Rasio[i-1,j]=0)or(Rasio[i+1,j]=0)) then
begin
if Rasio[i-1,j]=0 then
Hasil[i,j]:=(Rasio[i+1,j]+Rasio[i+2,j])/2
else Hasil[i,j]:=(Rasio[i-1,j]+Rasio[i-2,j])/2
end else
HAsil[i,j]:=(Rasio[i-1,j]+Rasio[i+1,j])/2;
end else
Hasil[i,j]:=Rasio[i,j];
end;
end;

{Mengganti nilai yang hilang}
if (Rasio[1,1]=0) then
for j:=1 to Round(L/2) do
begin
Hasil[1,j]:=HAsil[2,j];
Hasil[Round(n/L),j+per2]:=Hasil[Round(n/L)-1,j+per2];
end;

{Penyesuaian 1200}
for i:=1 to Round(n/L) do
begin
sd:=0;
for j:=1 to L do
sd:=sd+Hasil[i,j];
for j:=1 to L do
FMusim[i,j]:=Hasil[i,j]*L*100/sd;
end;

End;


{Tubuh Program Utama}
var
Rasio,TCI,Spencer : savedat;
DS : array [1..n+14] of real;
Trasio,Dummy,HasilMA,Fmusim : savetab;
i,j,k,h,pil : byte;
Awal, akhir : real;
simpan : text;
label 10;

begin
clrscr;
RasioAwal(Rasio);
for h:=1 to 2 do
begin
Transpose(RAsio,TRasio);
DummyTab(TRasio,Dummy);
MA3x3(Dummy,HasilMA);
Musim(TRasio,HasilMA,FMusim);

{Menggunakan MA 3x3 untuk menghilangkan Random}
DummyTab(FMusim,Dummy);
MA3x3(Dummy,FMusim);

{Menggunakan MA 5x5 untuk menghilangkan Random}
{ MA5x5(FMusim,HAsilMA);
for i:=1 to round(n/L) do
for j:=1 to L do
FMusim[i,j]:=HasilMA[i,j];
}

k:=0;i:=1;
for i:=1 to round(n/L) do
begin
for j:=1 to L do
TCI[j+k]:=Data[j+k]/FMusim[i,j]*100;
k:=k+L;
end;

Awal:=0;Akhir:=0;
If L=4 then
Begin
For I:=1 to 2 do
Begin
Awal:=awal+TCI[I];
Akhir:=akhir+TCI[n-2+I];
End;

For I:=1 to 3 do
Begin
DS[I]:=awal/2;
DS[n+3+I]:=akhir/2;
End;

For I:=4 to n+3 do DS[I]:=TCI[I-3];
For I:=1 to n do
Begin
Spencer[I]:=0.06*DS[I]+0.133*DS[I+1]+0.2*DS[I+2]+0.2*
DS[I+3]+0.2*DS[I+4]+0.133*DS[I+5]+0.067*DS[I+6];
Rasio[I]:=data[I]/spencer[I];
End;
end else
begin
for i:=1 to 4 do
begin
Awal:=Awal+TCI[i];
Akhir:=Akhir+TCI[n-4+i];
end;
for i:=1 to 7 do
begin
DS[i]:=Awal/4;
DS[n+7+i]:=Akhir/4;
end;

for i:=8 to n+7 do
DS[i]:=TCI[i-7];
for i:=1 to n do
begin
spencer[i]:= (-0.009*DS[i]-0.019*DS[i+1]-0.016*DS[i+2]+
0.009*DS[i+3]+0.066*DS[i+4]+0.144*DS[i+5]+
0.209*DS[i+6]+0.231*DS[i+7]+0.209*DS[i+8]+
0.144*DS[i+9]+0.066*DS[i+10]+0.009*DS[i+11]-
0.016*DS[i+12]-0.019*DS[i+13]-0.009*DS[i+14]);
RAsio[i]:=data[i]/spencer[i];
end;
end;
end;

{Simpan hasil dalam file text, perlu disipakan dulu folder C:\simpanan\}
assign(simpan,'C:\simpanan\'+NAmaFile);
rewrite(simpan);
writeln;
writeln('Versi data : [1] Lengkap or [2] untuk dimuluskan');
readln(pil);
if not(pil=2) then
writeln(simpan,'bln St TCI TC');
k:=0;
for i:=1 to round(n/L) do
begin
for j:=1 to L do
if pil=2 then
writeln(simpan,data[j+k]:20,(FMusim[i,j]/100):20, TCI[j+k]:20)
else
writeln(simpan,j:5,(FMusim[i,j]/100):15:3,
TCI[j+k]:15:3,Spencer[j+k]:15:3);
k:=k+L;
end;

close(simpan);
writeln('Silahkan lihat hasilnya pada file : '+NamaFile);
readln;
end.



Baca Selengkapnya

MAXIMUM FLOW

Oleh : Dicky Rahardiantoro


Dalam masalah rute terpendek (shortest route) dapat dipecahkan masalah rute perjalanan terpendek untuk memindahkan barang-barang dari kantor lama ke kantor baru. Dalam masalah pohon rentang minimum (minimal spanning tree) telah dipecahkan contoh permasalahan panjang kabel listrik terpendek yang dapat mensuplai kebutuhan listrik tiap ruangan.

Pada masalah-masalah tersebut tidak dijumpai adanya perhitungan tentang kapasitas suatu cabang yang terbatas pada jumlah tertentu. Padahal terdapat masalah-masalah jaringan dimana cabang-cabang suatu jaringan tersebut memiliki kapasitas arus yang terbatas. Sebagai contoh, debit arus air antar saluran air, masing-masing cabang dalam jaringan saluran air tentunya memiliki debit maksimum, bilamana debit maksimum tersebut dilanggar akan menyebabkan terjadinya luapan air di salah satu atau beberapa cabang. Contoh lain, arus lalu lintas pada beberapa badan jalan, arus lalu lintas maksimum perlu dihitung untuk menghindari kemacetan jalan.

Untuk lebih memahami masalah arus maksimum, kembali kita ambil contoh dari Istec Corporation. Kali ini masalah yang diangkat adalah masalah maximum flow of cars (arus kendaraan maksimum) yang melewati jalan penghubung antara Mess karyawan dengan kantor baru. Jalan penghubung tersebut dapat digambarkan dalam gambar jaringan di bawah ini.


Sebelum menjelaskan ke pemecahan masalah, maka perlu dijelaskan terlebih dahulu arti dari angka-angka yang terdapat pada tiap cabang. Cabang yang menghubungkan antara node-1 dengan node-2 memuat angka 2 dan 0, maksudnya adalah :

- arus maksimal kendaraan yang dapat melintasi jalan dari node-1 ke node-2 adalah 200 mobil per jam

- arus dari node-2 ke node-1 adalah 0 mobil per jam, artinya tidak ada arus dari node-2 ke node-1 (arus hanya searah dari node-1 ke node-2)

Interpretasi di atas juga dapat diterapkan pada cabang-cabang lain yang menghubungkan antar node. Permasalahannya adalah berapakah arus maksimum dari jalan yang menghubungkan mess karyawan dengan kantor?

Untuk menjawab permasalahan ini, maka diambil langkah-langkah penyelesaian yang dibuat oleh L.R. Ford Jr dan D.R. Fulkerson sebagai berikut :

  1. Pilihlah secara arbitrer garis edar dalam jaringan tersebut dari titik awal ke tujuan
  2. Sesuaikan kapasitas pada setiap node dengan mengurangkan arus maksimal untuk garis edar yang dipilih pada langkah pertama
  3. Tambahkan arus maksimal sepanjang garis edar ke arus berlawanan arah pada setiap node
  4. Ulangi langkah 1,2 dan 3 sampai tidak ada lagi garis edar dengan kapasitas arus yang tersedia


Berikut ini adalah penerapan langkah-langkah penyelesaian arus maksimal untuk menjawab permasalahan arus maksimal dari mess karyawan Istec Corporation ke kantor barunya.

Secara arbitrer diambil garis edar 1-2-5-7-8



Arus maksimal dari node-1 ke node-8 yang melewati garis edar 1-2-5-7-8 adalah sebesar 2 atau 200 mobil per jam. Tiap arus menuju ke node-8 dikurangi 2 dan arus yang berlawanan ditambah 2, sehingga menghasilkan hasil sebagai berikut.


Hasil di atas memperlihatkan bahwa tidak ada lagi jalan yang dapat ditempuh melalui node-1 ke node-2, karena arus maksimumnya adalah nol (0). Secara arbitrer diambil garis edar 1-3-6-8. Arus maksimum pada garis edar ini adalah 2 atau 200 mobil per jam, sehingga total arus maksimum yang dapat masuk adalah sebesar 4 atau 400 mobil per jam.

Karena arus maksimum pada garis edar 1-3-6-8 adalah 2, maka tiap arus menuju node-8 dikurangi 2 dan tiap arus berlawanan ditambah 2.



Jalur lain atau garis edar lain yang masih memungkinkan untuk dilewati adalah jalur 1-4-6-8 dan 1-4-8 dengan arus maksimum masing-masing jalur adalah 1 atau 100 mobil per jam, sehingga meningkatkan total arus maksimum yang dapat masuk sebesar 5 atau 500 mobil per jam.

Secara arbitrer diambil garis edar 1-4-8. Tiap arus menuju node-8 dikurangi 1 dan tiap arus berlawanan ditambah 1.



Pada langkah ini tidak ada lagi jalur atau garis edar yang dapat menghubungkan arus dari node-1 ke node-8. Agar lebih jelasnya diagram jaringan disajikan dengan tanda-tanda panah berikut :



Karena tidak ada lagi arus yang dapat mengalir dari node-1 ke node-8, maka proses iterasi telah mencapai penyelesaian optimun. Dari sini dapat diambil kesimpulan bahwa arus maksimum yang menghubungkan antara lokasi mess karyawan dengan kantor baru adalah sebesar 5 atau 500 mobil per jam dengan rincian sebagai berikut :

Jalur

Maksimum Arus Mobil

1 – 2 – 5 – 7 – 8

200

1 – 3 – 6 – 8

200

1 – 4 – 8

100

Total

500

Baca Selengkapnya

MINIMAL SPANNING TREE

oleh : Dicky Rahardiantoro


Pohon rentang minimum (minimal spanning tree) adalah teknik mencari jalan penghubung yang dapat menghubungkan semua titik dalam jaringan secara bersamaan sampai diperoleh jarak minimum.

Masalah pohon rentang minimum serupa dengan masalah rute terpendek (shortest route), kecuali bahwa tujuannya adalah untuk menghubungkan seluruh simpul dalam jaringan sehingga total panjang cabang tersebut diminimisasi. Jaringan yang dihasilkan merentangkan (menghubungkan) semua titikdalam jaringan tersebut pada total jarak (panjang) minimum.

Langkah-langkah dari pohon rentang minimum adalah :

  1. pilih secara arbitrer sebuah node dalam jaringan
  2. hubungkan node tersebut dengan node terdekat yang dapat meminimalkan total jarak
  3. perhatikan semua node apakah terdapat node yang belum terhubung, temukan dan hubungkan node terdekat yang belum terhubung
  4. ulangi langkah ketiga sampai seluruh node dapat terhubung
Sebagai contoh, gedung Istec Corporation yang baru memiliki beberapa ruangan dan tiap ruangan membutuhkan 1 lubang aliran listrik (atau biasa disebut sebagai steker). Teknisi listrik akan menyalurkan listrik dari ruang bagian depan sampai keseluruh ruangan dengan total panjang kabel yang seefisien mungkin. Adapun jarak antar ruangan dapat digambarkan dalam gambar jaringan berikut ini, sedangkan ruang bagian depan digambarkan sebagai node-1.



Karena node-1 adalah ruangan terdepan yang menjadi sumber aliran listrik utama, maka node-1 akan dijadikan sebagai patokan dalam jaringan. Node yang paling dekat dengan node-1 adalah node dengan jarak 2 meter, sehingga kita hubungkan node 1 dengan node-3.


Kemudian kita lihat node-node terdekat yang belum terhubung dengan node 1 dan 3, yaitu node 7, 6 dan 2. Yang terdekat dengan node 3 adalah node 7 dengan jarak 3 meter. Kemudian node 3 dan node 7 dapat dihubungkan.


Node yang belum terhubung terdekat dengan node 1, 3 dan 7 adalah node 6 dengan panjang 2 meter.


Node yang belum terhubung dan dekat dengan node 1,3,7 dan 6 adalah 5 dan 2. Node 5 dapat terhubung dengan node 6 dengan jarak 3 meter, sedangkan node 3 dapat dihubungkan dengan node-1 dengan jarak 3 meter.


Sisa node yang belum terhubung adalah node 8, 4 dan 9. Node 4 dapat dihubungkan dengan node 5 dengan jarak 3 meter, dan untuk mencapai node 9 total jarak terdekat lebih pendek jika ditempuh dari node 8 ke 9 dari pada melalui node 4.



Karena seluruh node telah terhubung atau telah terkait dalam satu jaringan, maka solusi di atas telah optimum. Jadi teknisi listrik dapat memulai merentangkan kabelnya dengan menghubungkan node 1 – 2, 1 – 3, 3 – 7, 6 – 7, 5 – 6, 4 – 5, 6 – 8, 8 – 9

Panjang kabel yang dibutuhkan adalah : 21 meter





Baca Selengkapnya

Shortest Path Problems

oleh : Dicky Rahardiantoro


Jaringan (Network) adalah suatu susunan garis edar (path) yang menghubungkan berbagai titik, di mana satu barang atau lebih bergerak dari satu titik ke titik lain atau setiap orang akrab dengan berbegai jaringan seperti system jalan tol, jaringan telepon, jaringan rel kereta api, dan jaringan televisi.

Network model sangatlah aplikatif untuk diterapkan ke banyak permasalahan pengambilan keputusan yang dapat dimodelkan sebagai model optimasi jaringan dan penyelesaian problem yang efisien dan efektif.

Jaringan diilustrasikan sebagai diagram yang terdiri dari dua komponen penting : simpul (nodes) dan cabang (branches). Simpul melambangkan titik-titik persimpangan. Cabang menghubungkan simpul-simpul tersebut dan mencerminkan arus satu titik ke titik lain dalam jaringan tersebut. Simpul-simpul dalam diagram jaringan dilambangkan dengan lingkaran dan cabang dilambangkan dengan garis yang menghubungkan simpul-simpul tersebut.

Jaringan yang ditunjukkan pada gambar di atas memiiki empat simpul dan empat cabang. Simpul yang melambangkan Atlanta disebut sebagai titik awal (origin) dan tiga simpul sisanya dapat merupakan tujuan, tergantung dariapa yang ingin kita tentukan dari jaringan tersebut. Nilai-nilai yang tertera pada tiap cabang dapat menunjukkan tentang informasi jarak, lamanya waktu, atau biaya yang diberikan pada masing-masing cabang.

Pada prinsipnya, tujuan dari pemodelan jaringan adalah untuk memperoleh solusi jarak terpendek, waktu tersingkat dan biaya terendah di antara titik-titik dalam jaringan.



MASALAH RUTE TERPENDEK

Masalah rute terpendek (Shortest Path Problems) berguna untuk menentukan jarak tersingkat antara titik awal dan beberapa titik tujuan. Sebagai contoh, sebuah perusahaan jasa pengangkutan barang disewa untuk memindahkan furnitur dan perlengkapan kantor milik Istec Corporation ke markas besarnya yang baru. Untuk memindahkan barang-barang tersebut, perusahaan jasa yang disewa dapat melalui beberapa jalur antar kota sebagaimana yang digambarkan pada diagram jaringan berikut ini.



Agar perjalanan lebih efisien, maka jalur manakah yang jarak tempuhnya lebih pendek ?

Shorthes Route Algorithm

Langkah-1, berilah node-1 label permanen [0,S]. Angka pertama pada permanen label tersebut menunjukkan jarak antar node, sedangkan angka kedua menunjukkan nomer node sebelumnya. Node-1 tidak memiliki node pendahulu (node sebelumnya) sehingga label S menunjukkan bahwa ia adalah node awal.

Langkah-2, hitunglah tentatif label (d,n) terhadap semua node yang dapat dicapai langsung dari node 1. Label d menunjukkan jarak suatu node dengan node sebelumnya dan n adalah node sebelumnya.

Langkah-3, identifikasi seluruh node dengan tentatif label yang menunjukkan jarak paling kecil dengan node sebelumnya. Katakanlah node tersebut sebagai node-k, maka ubahlah tentatif label pada node-k tersebut menjadi permanen label dengan menggunakan simbol [ , ]. Jika semua node telah memiliki permanen label maka beralihlah ke langkah ke-5

Langkah-4, berilah tentatif label (t,k) pada node yang dapat dicapai langsung dari node-k. Label t menunjukkan jarak kumulatif sedangkan k adalah node sebelumnya yang telah memiliki permanen label. Bila suatu node telah memiliki tentatif label maka gunakan tentatif label yang memiliki jarak terpendek

Langkah-5, lakukan langkah-langkah di atas sampai seluruh tetatif label pada tiap node memiliki jarak paling pendek dengan node sebelumnya, sehingga tentatif label tersebut menjadi permanen label

Penerapan Shortest Route Algorithm pada proses pemindahan barang-barang Istec Corporation ke kantor barunya.

Label [0,S] diberikan pada node-1. Node 2, 3 dan 4 adalah node yang dapat dicapai langsung dari node-1. Masing-masing diberi tetatif label (100,1) , (50,1) dan (40,1).

Karena node-4 memiliki jarak paling pendek dari node-1 maka tentatif label node-4 berubah menjadi permanen label [40,1].


Node 3 dan 6 adalah node yang dapat dicapai langsung dari node-4 yang telah memiliki permanen label. Total jarak node 4 ke node 3 adalah sebesar 60 dan total jarak node 4 ke node 6 adalah 140, sehingga node 6 diberi tentatif label (140,4) dan node 3 diberi tambahan 1 tentatif label (60,4).

Node 3 memiliki 2 tentatif label, yaitu : (50,1) dan (60,4), padahal tiap node hanya boleh memiliki 1 tentatif label. Sehingga tentatif label yang dipilih untuk node-3 adalah (50,1).

Karena tidak ada lagi jalur yang dapat ditempuh menuju node-3 selain dari node-1 dan node-4, maka tentatif label (50,1) sudah menunjukkan jarak terpendek, sehinga tentatif label tersebut dapat diubah menjadi permanen label [50,1].


Untuk mencapai node-2 hanya terdapat satu jalur yaitu melalui node 1 sehingga tentatif label pada node-2 dapat diubah menjadi permanen label [100,1].

Node-5 dapat dicapai oleh node-2 dan node-3, sehingga node-5 dapat memiliki tentatif label (200,2) dan (150,3). Tentatif label yang dipilih untuk node-5 adalah (150,3). Karena tidak terdapat lagi suatu node yang dapat mencapai node-5 dengan jarak yang lebih pendek dari 150 maka tentatif label berubah menjadi permanen label [150,3].



Lakukan proses tersebut sampai seluruh node memiliki tentatif label dan seluruh tentatif label dapat berubah menjadi permanen label. Pada iterasi akhir diperoleh hasil sebagai berikut :


Hasil tersebut menunjukkan bahwa untuk mencapai node-13 jarak terpendeknya adalah melalui node-10, 7, 5, 3, 1. Artinya perjalanan dari node-1 (kantor lama) ke node-13 (kantor baru) hendaknya dapat melalui rute 1 – 3 – 5 – 7 – 10 – 13 dengan jarak total sebesar 430 miles.





Baca Selengkapnya

test code

Baca Selengkapnya

Antara Reputasi dan Dosa

Perbuatan dosa seringkali bersama kenikmatan-kenikmatan sesaat, ia laksana nila yang menetes dan masuk ke bejana, kemudian merusak manfaat dari isi bejana tersebut.

Sebagaimana perkataan pepatah "Karena nila setitik, rusak susu sebelanga". Pepatah tersebut mengisyaratkan tentang bahayanya perbuatan dosa terhadap reputasi yang telah susah payah kita bangun.

Sebuah reputasi amat sangat rentan, karena bisa jadi ia hancur atas sebab kesalahan kecil saja. Padahal untuk membangun sebuah reputasi dibutuhkan waktu yang cukup lama bahkan tahunan.

Secara psikologis hampir setiap manusia memiliki kecenderungan untuk lebih mudah mengingat kesalahan orang lain dari pada kesalahan dirinya sendiri. Mudah ingat terhadap kesalahan orang, tetapi menjadi pelupa terhadap kesalahan diri sendiri, itulah sifat umum dari makhluk yang bernama manusia. Hal ini lah yang menjadi katalisator untuk mempercepat reaksi perusakkan dari nila setitik terhadap susu sebelanga, karena orang yang ingat biasanya juga akan membicarakannya kepada orang lain.


Jika sebuah reputasi telah kita nodai sendiri dengan kesalahan atau dosa tertentu dan kesalahan tersebut tidaklah merugikan orang lain, maka saya teringat dengan kata-kata yang sering kali diucapkan dalam mimbar2 khutbah dan majelis ta'lim yaitu "Kullu Banni Adam Khoththo, wa Khoiru Khoththoina At-Tawabun". Kata-kata tersebut bersumber dari Rasulullah sholallahu 'alaihi wassalam yang artinya : Seluruh anak adam melakukan kesalahan dan sebaik-baik orang yang berbuat salah adalah yang bertaubat.

Setiap manusia pastilah pernah berbuat salah, dan bagi yang pernah berbuat salah terdapat sikap yang perlu ditempuh, antara lain adalah :

TAUBAT

Dari Asma bin Al-Hakam Al-Fazari, dia bercerita, aku pernah mendengar Ali Radhiyallahu ‘anhu berkata : “Sesungguhnya aku adalah seseorang yang jika mendengar sebuah hadits dari Rasulullah Shallallahu ‘alaihi wa sallam, maka Allah memberiku manfaat dari hadits tersebut sesuai dengan kehendak-Nya untuk memberi manfaat kepadaku. Dan jika ada seseorang dari Sahabatnya menyampaikan hadits maka aku memintanya bersumpah. Jika dia mau bersumpah kepadaku, maka aku akan membenarkannya. Sesungguhnya Abu Bakar telah memberitahuku, dan Abu Bakar adalah seorang yang jujur, dia bercerita, aku pernah mendengar Rasulullah Shallallahu ‘alaihi wa sallam bersabda :
“Tidaklah seseorang melakukan suatu perbuatan dosa, lalu dia bangun (bangkit) dan bersuci, kemudian mengerjakan shalat, dan setelah itu memohon ampunan kepada Allah, melainkan Allah akan memberikan ampunan kepadanya”. Kemudian beliau membaca ayat : “Dan (juga) orang-orang yang apabila mengerjakan perbuatan keji atau menganiaya diri sendiri mereka ingat akan Allah, lalu memohon ampun terhadap dosa-dosa mereka dan siapa lagi yang dapat mengampuni dosa selain dari pada Allah – Dan mereka tidak meneruskan perbuatan kejinya itu, sedang mereka mengetahui” [Ali-Imran : 135]


BERHENTI MENGURUS DOSA MILIK ORANG LAIN

Betapa pedihnya dosa ataupun kebodohan, dan betapa besarnya resiko yang perlu ditanggung khususnya dalam hal reputasi, hal ini adalah sangat memalukan dan ketika kita mengingatnya maka rasanya kita ingin berteriak keras dan berharap teriakan tersebut dapat melepaskan kesesakkan dada kita akibat perbuatan masa silam.

Jika kita termasuk orang yang pernah berbuat kesalahan, dosa ataupun kebodohan, maka ketika kita melihat kesalahan / dosa orang lain; sudah sepantasnyalah kita mengatakan kepada diri sendiri :

"Wahai diri, sesungguhnya padamu juga terdapat dosa dan kebodohan; maka berhentilah untuk mengurus dan mengingat-ingat kesalahan dan dosa orang lain.


Jadikan pedihnya akibat dosa untuk bertaubat
Jadikan rasa sakitnya omongan orang lain atas diri kita sebagai pengalaman, sehingga kita tidak tega menjatuhkan reputasi orang lain atas ke-khilafannya. Bila kita memiliki kemampuan dan ilmu yang cukup maka nasihatilah orang yang berbuat salah tersebut agar kembali ke jalan yang lurus, tapi jika kita tidak kuasa maka minimal kita kendalikan diri kita sehingga aibnya tidak tersebar.

Lain masalah, tentu lain sikap dan lain pula solusinya. Jika ada orang yang melakukan kemaksiatan secara terang-terangan maka tentunya ada cara tersendiri untuk menghadapinya, yaitu : [Klik Disini]

Semoga dengan sikap TAUBAT dan MUDAH MELUPAKAN KESALAHAN ORANG LAIN, Allah berkenan mengampuni dosa-dosa kita dan Allah memberikan jalan kemudahan kepada kita untuk memperbaiki diri.

Sebuah Renungan




Baca Selengkapnya

Keutamaan Ilmu Syar’i

[Part-1]




[Part-2]




[Part-3]



Catatan :

Untuk mendowload video disarankan untuk mendownload dan menginstall real player:

http://uk.real.com/realplayer/

Setelah mendownload dan menginstallnya, cukup mengarahkan mouse ke video yang ikhwah sekalian sedang putar dan klik tombol download yang muncul dibagian kanan atas video.

Untuk lebih jelasnya bisa dilihat disini:

http://www.lytebyte.com/2007/10/14/how-to-download-youtube-and-other-online-videos-using-real-player/

atau sebagai alternatif, bisa mendownload orbit youtube downloader:

http://www.orbitdownloader.com/Use-as-YouTube-Downloader.htm

Baca Selengkapnya