Hidup Ini Bagai Putaran Roda, Harus di Kayuh Agar Terus Berputar'

Rabu, 26 Agustus 2009

Si cantik Ubuntu dan si bersahaja Slackware

Ada joke yang mengatakan arti Ubuntu dalam bahasa Afrika adalah “Slackware is too hard for me”, temen2 Slacker juga ga pada mo kalah, ikut2an bikin juga arti dari kata Slackware dalam bahasa Afrika yaitu “Ubuntu is too easy for me”.

This time, ane ga coba membandingkan antara kedua OS tersebut…. hmm… ga membandingkan seh sebenernya, sekedar review berdasarkan apa yang ane rasakan selama pake kedua OS tersebut dan reviewnya bukan review serius, just for fun aja… Ubuntunya di wakili si Jaunty alias Ubuntu 9.04, dan Slackwarenya emang ga pure Slackware alias diwakili oleh Adiva atau biasa dikenal dengan istilah versi personalnya Zencafe, nah di Adiva yang sedikit banyak udah di make over aja masih ada beberapa hal yang kurang memadai buat di sandingkan dengan Ubuntu, tapi disisi lain Slackware/Adiva ini memiliki kelebihan yang ga di punya Ubuntu. Adiva, distro yang ampe sekarang ga pernah rilis2 ke publik tapi isonya udah beredar kesana kemari
xexexexexexexe :d

BEAUTY BY DEFAULT

Klo bicara soal cantik bawaan, Ubuntu ibarat cewek kota dengan dandanan yang aduhai bikin siapapun ingin mengenalnya. Bahkan orang yang belum pernah mengenal keluarga Linux pun sedikit banyak akan tergiur pada saat melihat si cewek kota yang aduhai ini. Berbeda dengan Slackware, tipikal gadis desa yang sederhana, naturally klo kata orang punya inner beauty yang bikin orang kesemsem klo udah pernah mengenalnya. But buat orang yang belom kenal ni distro terutama yang biasa bergaul dengan cewek matre bernama Windos ane rasa kurang berminat untuk mengenal ni gadis desa.

GAUL ABIS

Soal pergaulan pastilah ada bedanya, sang cewek kota ini sangat terbuka orangnya, gampang bergaul dengan berbagai hardware bahkan klo punya modem 3G hampir bisa dipastikan bakal di kenal ma ni cewek sampe providernya segala. Sang gadis desa? bisa dikatakan dia sedikit ketinggalan soal ini. Di jamin klo bicara hardware seringkali kita harus berkotor2 tangan ngajarin si gadis biar bisa kenal itupun kadang tetep ga cocok ma dia. Ga tau hardwarenya yang ga mo kenal ni gadis desa, atau si gadis desanya agak2 kesulitan untuk belajar mengenal tu hardware.

MAKE OVER

Bicara dandan, si cewek kota relatif lebih asyik di ajak dandan, kita butuh aplikasi tinggal apt-get beres. Sedikit berbeda dengan sang gadis desa, kadangkala kita harus ajarin dengan cara configure; make; make install. Bukan apa2 mungkin karena biasa pake bedak Viva giliran di kasih bedak yang rada bagusan dikit bingung dia. Terutama sekarang mulai banyak software yang menawarkan kemudahan installasi buat sang cewek kota dan hanya menyediakan source code buat sang gadis desa.

KERAS KEPALA

Nah, disini kejelekan si cewek kota, biarpun enak di ajak dandan dan gaul. Kadang kadang suka keras kepala. Pengalaman ane justru si cewek kota agak sulit klo di ajak install aplikasi diluar standar yang dia pake. Mungkin karena biasa terima jadi, giliran disuruh kotor kotor tangan dia ogah. Pada saat ane butuh versi aplikasi diluar standar ada ada alasan yang di pake si cewek kota, GPG nya lah ga sesuai standar dia, dependensinya lah harus ikutan di upgrade, segudang deh alasannya. Jauh berbeda dengan sang gadis desa, sang gadis desa tipikal penurut, aplikasi yang masih bleeding edge pun di hajar, yang penting kita tau gimana cara ngajarinnya beres.

RESOURCE

Klo bicara boros ngganya, yang namanya cewek kota sama gadis desa ane rasa ga perlu terlalu di banding-bandingkan. Ubuntu butuh standar resource lebih tinggi, Slackware sang gadis desa dikasih pc jadulpun jadi, cingcay lah, nerimo wae klo kata orang

KESIMPULAN

Wew, udah sampe kesimpulan aja, ya intinya sebenernya ane ngeblog bukan buat nyarankan pake A atau pake B. Kek ane bilang tadi ni sekedar review santai. Yang jelas kontrasnya adalah bisa dikatakan Ubuntu bisa kita ibaratkan cewek kota yang cantik, aduhai dan gaul abis sedangkan Slackware bisa kita ibaratkan gadis desa nan bersahaja. Untuk yang blom pernah nyenggol yang namanya Linux mungkin sebaiknya coba mengenal sang cewek kota yang pada dasarnya udah dandan, gaul dan supel. Untuk yang suka poles poles yg suka ngoprek klo bisa hindari Ubuntu, karena akan sedikit bikin mumet soalnya naturenya memang buat orang yang kenal Linux sekedarnya, ga bisa di ajak ekstrim. So, it’s your choice mau milih yang mana….

Arti Tawa Ikhlas


Sebagian orang mungkin berkata, tawa adalah luapan emosi sesaat karena lucu.
Pernahkah seseorang menghampiri anda dan melakukan lelucon yang tidak lucu sedangkan
anda membalasnya dengan tatapan kosong?
Dan itu sama sekali tidak membuat anda merasa bersalah.
Namun, tahukah arti dibalik semua lelucon orang2 seperti itu?

Mereka berusaha membuat lelucon agar kita tertawa, agar kita lupa pada masalah2 berat
yang kita hadapi sahari2, agar kita lupa sejenak pada perasaan sedih dan amarah
kita...

Namun apa yang kita balas, tawa secukupnya, tawa seadanya...
Pernahkah kita menghargai usaha mereka dengan tawa ikhlas walaupun lelucon mereka
tidaklah lucu?
Itu jarang kita lakukan, bahkan dengan tatapan kosong, kita mencemooh mereka dengan
kata "garing", cukup mengecewakan untuk orang2 seperti kita yang pernah melakukan hal
demikian.

Yang kita ingat dan kita pikirkan hanyalah perasaan2 negatif kita, perasaan2 seperti
marah, sedih dan masalah2 berat kita.
Mungkin kita akan dianggap gila jika tertawa tanpa alasan yang jelas setiap hari, dan
menganggap air mata dan amarah adalah hal yang wajar kita lampiaskan setiap hari...

Tidaklah mudah mendapatkan teman yang selalu ingin membuat kita tertawa dengan
leluconnya dan yang selalu ingin melihat kita bahagia, jadi, hargailah teman-teman
penuh tawa dan lelucon yang kamu miliki saat ini, karena jika kamu kehilangannya,
ketika kamu menangis, tiada orang kan mampu menghentikan air matamu, dan ketika kamu marah,
tiada orang kan mampu meredupkan amarahmu...

Ingatkan aku untuk selalu berusaha bersyukur di setiap keadaan

Ingatkan aku untuk selalu berusaha bersyukur di setiap keadaan…. Karena didalam sepahit apapun keadaan, pasti masih ada celah disana untuk ditemukan sebuah alasan untuk bersyukur.

Suatu saat ketika sedang membutuhkan banyak materi untuk sebuah keperluan dan ternyata tak kutemukan selembarpun sesuatu yang bernama rupiah terselip di sakuku, dompet, dan rekeningpun telah lama hanya berisi sederetan angka…. Tanpa isi…. Duh Gusti…. Sambil gigit jari aku berfikir kemungkinan jalan apa yang dapat aku pilih untuk menyelesaikan masalah klasik ini……
Namun bukankah aku masih dikaruniai teman (alhamdulillah, satu celah)? Yah akhirnya kupinjam juga sejumlah uang itu kepada salah satu teman baik, dan keperluan mendesak itupun terselesaikan….

Bukankah KEPERCAYAAN dari teman-temanku yang baik hati untuk meminjamiku sejumlah uang juga adalah sebuah karunia? Sebuah ni’mat dariNYA yang sangat pantas untuk aku syukuri? Alhamdulillah… wasyukrulillah…. Kutemukan satu celah untuk bersyukur meski dalam keadaan pahit

Kenapa tidak mencari “celah” itu diantara serpihan hati yang patah? Diantara bongkahan2 kegagalan, diantara butiran2 kekecewaan, diantara himpitan kesulitan hidup….. dan segudang keadaan pahit yang mungkin kita hadapi di tengah samudra kehidupan ini. Bukankah keadaan2 itu yang seringkali berusaha menggiringku menuju ke arah lubang hitam Kufur Ni’mat? Na’udzubillah…… Alloh… ingatkan hambamu ini untuk selalu bersyukur disetiap keadaan….. suka maupun duka…

Selasa, 04 Agustus 2009

3 karakter laki laki

3 hari yang lalu aku ketemu dia. seorang penjual bubur ayam.Asep namanya, umur 37 tahun. iseng aku bertanya...." Jam berapa mas mulai masaknya?" akhirnya mengalirlah ceritanya. Dia asli Sukabumi. merantau bersama 12 orang teman sekampung, ngontrak rumah 2 kamar...seharga 600ribu/bulan. Kalo dihitung....keuntungan dia bersih dikurangi modal dan biaya hidup sekitar 600ribu/bulan. "Setiap bulan saya pulang mbak, seminggu di kampung". Dengan seorang istri yang tidak bekerja dan 3 orang anak yang masih sekolah......"Mang cukup pak?"
dia hanya tersenyum...." Alhamdulillah mbak, masih diberi jalan rejeki sama Allah........yang penting saya usaha yang halal".
Kuhanya mampu memandangi dia.....begitu ya.......

dua hari yang lalu.....aku kenal seorang penjual siomay...namanya Doni. umurnya menginjak 24 tahun. "Dah berapa lama jualan mas?' dengan tersipu dia bilang sekitar 5 tahun. Dia anak tunggal...berasal dari Kuningan....... Keuntungannya sekitar 50rb perhari. Tapi kalo gk laku....dapet 10 ribu juga syukur.
keuntungannya dipakai buat apa?"
"ditabung mbak"
akhirnya ceritalah dia. Dia punya pacar dari SMA. Minta pesta pernikahan yang meriah.....pake organ tunggal segala. Dia berusaha berhemat agar bisa memenuhi permintaannya.
"Mang pacar kamu gk tau berapa penghasilan kamu?"
" TAhu mbak."
"Trus....kamu mau aja? Khan daripada dipake buat pesta besar mending duit dipake buat modal".
" Yah...gimana dong mbak...saya udah cinta...."
Aku cuma bengong. Preman macam apakah si cinta....bikin laki - laki tidak berlogika?


Kemarin.....aku pengin banget beli es cincau.....Pak Syarif nama penjualnya. Umurnya ternyata menjelang 70 tahun. Setiap hari dia naik sepeda keliling condet bahkan sampai cawang.
"Sudah tua masih jualan pak? MAng anaknya kemana?"
Dengan senyum getir dia bercerita. IStrinya menjadi pengupas bawang. Dia saat ini mengontrak rumah petak satu kamar yang dihuni dia, istrinya, anak perempuannya, menantu dan satu cucunya.
MEnantunya baru 6 bulan yang lalu di PHK. anak perempuannya sibuk mengurusi bayinya.
"LAh..kenapa bukan menantunya yang keliling pak?"
"Dia malu mbak...kalo nanti ketemu mantan teman kerja..."
Ya Alllah............tega benar tu menantu.....dengan penghasilan tak menentu.....pak Syarif harus menanggung hidup orang yang lebih muda dan sehat daripada dia...
3 lelaki yang ditakdirkan dalam garis nasib yang sama : kemiskinan.
ada A. PAk Asep......yang mencoba tegar dan tetap bersyukur atas nasibnya
ada B. Doni .....yang begitu romantis menjadikan cinta diatas segalanya
ada C. PAk Syarif....begitu pasrah dan nerimo menerima takdir....

bila.....datang 3 lelaki dengan karakter seperti mereka bertiga...mana yang akan kamu pilih?

tulis jawabannya:
ketik...REG spasi...JAWAB spasi A/B/C

kirim ke nomer hape MR masing2.......

just joke.....but it's true story.....

Minggu, 14 Juni 2009

Segi tiga Sama Kaki di java

Contoh program yang menghasilkan Segi tiga sama kaki di java yang menghadap ke sisi kanan dan sisi kiri dengan output seperti gambar di bawah ini dengan menggunakan operator perulangan (for / while / do…while) :

A. Segi tiga sama kaki yang menghadap ke kanan dengan tampilang sebagi berikut :

Koding segi tiga sama kaki yang menghadap ke sisi kanan, dengan output di atas dapat di buat di program java dengan koding sebgai berikut :

/**
* @(#)Text2.java
* @author siswoko
* @version 1.00 2009/6/15
*/
import java.io.DataInputStream;
class SegitigaSamaKaki
{
public static void main(String[] args)
{
String Bintang = "*";
DataInputStream Data = new DataInputStream(System.in);

try
{
System.out.println("\nCrete by Siswoko ");
System.out.print("\nNilai Baris Tengah = ");
String Input = Data.readLine();
int Baris = Integer.parseInt(Input);

for (int i = 1; i <= Baris; i++)
{
for (int j = 1; j <= i; j++)
{
System.out.print(Bintang);
}
System.out.println();
}

for (int k = 1; k <= Baris - 1; k++)
{
for (int l = Baris -1; l >= k; l--)
{
System.out.print(Bintang);
}
System.out.println();
}
}
catch (Exception e)
{
System.out.println("Salah memasukkan data (Harus berupa bilangan bulat)");
}
}
}

Sedangkan untuk segi tiga sama kaki yang menghadap ke kiri dapat di rubah sehingga output menjadi gambar di bawah ini:

Dengan demikian kodingpu agak di rubah sediki dengan susunan coding sebagi beriku :

/**
* @(#)Text3.java
* @author Siswoko
* @version 1.00 2009/6/15
*/
import java.io.DataInputStream;
class SegitigaSamaKakikekiri
{
public static void main(String[] args)
{
String Bintang = "*";
DataInputStream Data = new DataInputStream(System.in);

try
{
System.out.println("\nCrete by Siswoko ");
System.out.print("Nilai Baris Tengah = ");
String Input = Data.readLine();
int Baris = Integer.parseInt(Input);
int Counter1 = Baris;
int Counter2 = Baris;

for (int i = 1; i <= Baris; i++)
{
for (int j = Counter1 - 1; j >= 1; j--)
{
System.out.print(" ");
}
for (int k = 1; k <= i; k++)
{
System.out.print(Bintang);
}
System.out.println();
Counter1--;
}

for (int l = 1; l <= Baris - 1; l++)
{
for (int m = 1; m <= l; m++)
{
System.out.print(" ");
}
for (int n = 1; n <= Counter2 - 1; n++)
{
System.out.print(Bintang);
}System.out.println();
Counter2--;
}
}
catch (Exception e)
{
System.out.println("Salah memasukkan data (Harus berupa bilangan bulat)");
}
}
}

Setelah itu di save dengan nama egitigaSamaKakikekiri.java , semoga tutor ini bermanfaat. semalat mencoba

Paramida dalam java

contoh program java Paramida yang menghasilkan output seperti gambar di bawah ini dengan menggunakan instruksi perulangan (for / while / do.. while) :



dengan output sepertidi atas dapat di buat di java, dengan koding sebagai berikut :
/**
* @(#)Text1.java
*
*
* @author Siswoko
* @version 1.00 2009/6/15
*/

import java.io.*;
public class paramida
{
public static void main (String[] args) throws Exception
{
System.out.println("Contoh Program Paramida \nBy : Siswoko ");
BufferedReader masukan = new BufferedReader(new InputStreamReader(System.in));
System.out.print("Tinggi Piramida : ");
int t = Integer.parseInt(masukan.readLine());
for (int b = 0; b < (t + 1); b++) { for (int k = 0; k < (t + 1) - b; k++) { System.out.print(" "); } for (int bil= b; bil >= 1; bil--)
{
System.out.print(" *");
}
System.out.println();
}
}
}

setelah itu di savae dengan nama paramida.java. semoga bermanfaat

Perhitungan Nilai grade

dah lama ya gak update blog, hampir 2 bulan hehehe gapain aja ya ya selama 2 bulan gak ngeblog, kemarin dapet tugas buat perhitungan nilai grade mahasiswa dengan array. maanfaati aja deh buat isi blog . oke langsung aja :

Program untuk menghitung nilai akhir mahasiswa dengan perhitungan sbb :
Presensi = 10%
Tugas = 10%
UTS = 30%
UAS = 50%
Nilai >= 85, Grade = A
Nilai >= 75, Grade = B
Nilai >= 65, Grade = C
Nilai >= 55, Grade = D
Nilai < grade =" E" datain =" new" dm="Integer.parseInt(dataIn.readLine())" i="0;" nrp="" nama="" tpresensi="" ttugas="" tuts="" tuas="" htg1="(abs[i]*10)/100;" htg2="(tgs[i]*10)/100;" htg3="(uts[i]*30)/100;" htg4="(uas[i]*50)/100;" double="" tnilai="" string="" if="" jumhtg="htg1+htg2+htg3+htg4;">= 85)
{
ket="Grade A";
}
else if ((jumhtg>=75) && (jumhtg <=84 )) { ket="Grade B"; } else if ((jumhtg>=65) && (jumhtg <=74 )) { ket="Grade C"; } else if( (jumhtg>=56) && (jumhtg <=64 ) )
{
ket="Grade D";
}
else
{
ket="Grade E";
}

System.out.println("\tGrade : "+ket);
System.out.println("====================");
}
}
catch (Exception e)
{

}

}
public static void main (String[] args)
{
System.out.println("Tugas Array Mahasiswa \nby : Siswoko ");
mahasiswa();


}

}

Senin, 20 April 2009

Trik Memproteksi Koleksi CD

Mungkin bagi anda yang mempunyai koleksi CD Software, music, video, dan lain lain pernah dibikin kesel ama temen yang tanpa seizin anda meminjam koleksi CD anda, Untung jika saat mengembalikan keadaan cd masih seprti semula namun bagaimana jika cd tersebut malah tambah goresannya? yang ada malah bingung mo nyuruh ganti temen klo ndak ganti ya rugi……?

Mungkin bagi anda yang mempunyai koleksi CD Software, music, video, dan lain lain pernah dibikin kesel ama temen yang tanpa seizin anda meminjam koleksi CD anda, Untung jika saat mengembalikan keadaan cd masih seprti semula namun bagaimana jika cd tersebut malah tambah goresannya? yang ada malah bingung mo nyuruh ganti temen klo ndak ganti ya rugi?

Nah disini saya ada sedikit tips bagi anda pengguna visual basic. Tips ini memang hanya berlaku bagi sistem operasi windows namun bagi anda yang suka utak atik dapat menggunakan pada sistem operasi lain. Prinsip yang ingin saya kerjakan adalah sebagai berikut

1. CD hanya dapat digunakan bagi komputer yang kita rekomendasi saja.
2. CD akan keluar dari Cdrom jika tidak sesuai yang kita inginkan.

Nah mungkin bagi anda yang sering berkutat dengan VB saya rasa tidak akan mendapat masalah dengan pekerjaan yang akan dilakukan atau malah ini merupakan pekerjaan kacangan. Penggunaan CD hanya bisa pada komputer yang telah kita rekomendasi bagaimana ini bisa dilakukan! Mungkin tiap orang akan mempunyai cara yang berbeda namun disini akan saya sampaikan salah satu cara yang bisa digunakan. Cara yang akan saya lakukan adalah dengan membaca serial diska pada komputer. Nah mengapa saya gunakan cara ini ? Cara ini saya ambil karena setiap diska berbeda serialnya pada setiap operasi sistem. Jadi walaupun satu diska namun jika dalam diska tersebut ada beberapa sistem operasi maka serialnya akan berbeda.

Untuk sourcenya adalah sebagai berikut :

Source Code Form
—————->

Private Sub Form_Load()
Dim buffer As String * 255
Dim d As Long
Dim Y
X = GetPrivateProfileString(”SERIAL”, “NO”, “(error)”, _
buffer, 255, “C:\c1pmunkCD.ini”)’ Membaca file ini
Y = Left(buffer, X)
If Y = “(error)” Then
retvalue = mciSendString(”set CDaudio door open”, _
retrunString, 127, 0)’Cd Keluar
End
Else
If Y = sn(”c:”) & “-” & sn(”d:”) Then
MsgBox “sELAMAT mENGGUNAKAn cDNYa c1pmunk”, _
vbInformation, “c1pmunk INFO” ‘Tampil Pesan
End
Else
retvalue = mciSendString(”set CDaudio door open”, retrunString, _
127, 0)’Cd Keluar
End
End If
End If
End Sub

Source Code Module
———————–>
Public Declare Function GetPrivateProfileString Lib “kernel32″ _
Alias “GetPrivateProfileStringA” (ByVal lpApplicationName _
As String, ByVal lpKeyName As Any, ByVal lpDefault As String, _
ByVal lpReturnedString As String, ByVal nSize As Long, ByVal _
lpFileName As String) As Long

Public Declare Function mciSendString Lib “winmm.dll” Alias _
“mciSendStringA” (ByVal lpstrCommand As String, ByVal _
lpstrReturnString As String, ByVal uReturnLength As Long, _
ByVal hwndCallback As Long) As Long

Public Declare Function GetVolumeInformation Lib “kernel32″ Alias _
“GetVolumeInformationA” (ByVal lpRootPathName As String, _
ByVal lpVolumeNameBuffer As String, ByVal nVolumeNameSize As _
Long, lpVolumeSerialNumber As Long, lpMaximumComponentLength _
As Long, lpFileSystemFlags As Long, ByVal _
lpFileSystemNameBuffer As String, ByVal nFileSystemNameSize _
As Long) As Long

Public Function sn(ByVal RootPatch As String) As String
Dim vollabel As String
Dim volsize As Long
Dim serial As Long
Dim MaxLen As Long
Dim Flags As Long
Dim name As String
Dim Namesize As Long
Dim s As String

If GetVolumeInformation(RootPatch, vollabel, volsize, serial, _
MaxLen, Flags, name, Namesize) Then
s = Format(Hex(serial), “00000000″)
sn = Left(s, 4) + “-” + Right(s, 4)
Else
sn = “0000-0000″
End If
End Function

Nah setelah selesai maka anda bisa mengeceknya lebih dulu dengan menjalankan Run atau tekan F5 jika sudah benar maka Cdrom anda akan keluar. Jika anda telah menyukainya maka bisa membuat menjadi aplikasi exe dari File -> Make … .exe Dan tunggu proses hingga selesai simpan pada map dokument anda. Misalnya file saya namai cekcd.exe

Langkah selanjutnya adalah membuat agar aplikasi berjalan saat CD dimasukan. Cara yang dapat dilakukan dengan membuat autorun cd yaitu dengan membuat berkas autorun. Buka text editor anda misalnya notepad dan masukan source seperti ini

/———————\
Source Code Aotorun
[autorun]
OPEN=cekcd.exe
ICON=cekcd.exe
\———————/

Simpan dengan nama autorun.inf pada map dimana cekcd.exe anda simpan.

Anda lihat lagi pada tabel Source Code Form baris ke 5

GetPrivateProfileString(”SERIAL”, “NO”, “(error)”, buffer, 255, “C:\c1pmunkCD.ini”)

Nah disini tertulis c:\c1pmunkCD.ini yaitu source ini sedang membaca berkas c1pmunkCD.ini pada kandar C dengan nama Serial dan kuncinya No kemudian jika tidak ditemukan akan bernilai (error). Untuk itu anda harus membuat lagi file ini dan disimpan pada kandar C:\. Untuk nama berkas bisa sesuka anda namun rubah juga untuk pembacaan nama berkasnya. Sourceya sebagai berikut :

Source Code Aotorun
[SERIAL]
NO=XXXX-XXXX-XXXX-XXXX

Simpan dengan nama bowoCD.ini dan masukan nilai XXXX-XXXX-XXXX-XXXX sesuai serial diska anda. Nah anda siap membakar CD koleksi anda dan jangan lupa masukan berkas autoran.inf dan cekcd.exe yang telah anda buat pada CD tanpa dimasukan dalam map. Untuk medapatkan serial yang dimaksud pada huruf XXXX-XXXX-XXXX-XXXX, anda dapat membuat aplikasi tersendiri dengan memanfaatkan Source Code Module dan Source Code Form terutama pada baris 11.

Minggu, 25 Januari 2009

Prasangka

Aduh ketemu temen lama emang bisa menyihir waktu cerita mulai dari jam 9 pagi sampek gak terasa sampai jam 4 sore, ada cerita yang aku mersas terkesan dengan cerita kelurga temenku langsung aja ceritanya gini, Ada seorang janda miskin hidup berdua dengan putri kecilnya yang masih berusia sembilan tahun. Kemiskinan memaksanya untuk membuat sendiri kue-kue dan menjajakannya di pasar demi kelangsungan hidup mereka. Hidup penuh kekurangan membuat si kecil tidak pernah bermanja-manja kepada ibunya seperti anak-anak kecil lainnya.

Suatu hari di musim dingin, saat selesai membuat kue, si ibu tersadar melihat keranjang penjaja kuenya sudah rusak berat. Dia pun keluar rumah untuk membeli keranjang baru dan berpesan kepada putrinya agar menunggu saja di rumah. Pulang dari membeli keranjang, si ibu menemukan pintu rumah tidak terkunci dan putrinya tidak ada di rumah. Spontan amarahnya memuncak. Putri betul-betul tidak tahu diri! Cuaca dingin seperti ini, disuruh diam di rumah sebentar saja malahan pergi bermain dengan teman-temannya!

Setelah selesai menyusun kue di keranjang, si ibu segera pergi untuk menjajakan kuenya. Dinginnya salju yang memenuhi jalanan tidak menyurutkan tekadnya demi kehidupan mereka. Dan sebagai hukuman untuk si putri, pintu rumah di kuncinya dari luar. "Kali ini Putri harus diberi pelajaran karena telah melanggar pesan," geram si ibu dalam hati.

Sepulang dari menjajakan kue, mata si ibu mendadak nanar saat menemukan gadis kecilnya tergeletak di depan pintu. Dengan berteriak histeris segera dipeluknya tubuh putrinya yang telah kaku karena kedinginan. Dengan susah payah dipindahkannyalah tubuh putri ke
dalam rumah.

"Putri...Putri. ..Putri.. ., bangun, Nak! Ini ibu, Nak! Bangun, Nak!
Ibu tidak marah kok. Bangun Putri anakku!" Serunya sambil menangis merung-raung dan berusaha sekuat tenaga membangunkan dengan menguncang-guncangk an tubuh si putri agar terbangun. Tetapi putri tidak bereaksi sama sekali.

Tiba-tiba terjatuh dari genggaman tangan si putri sebuah bungkusan kecil. Saat dibuka, ternyata di dalamnya berisi sebungkus kecil biskuit dan secarik kertas usang. Dengan tergesa-gesa dan tangan yang gemetar hebat, si ibu segera mengenali tulisan putrinya yang masih berantakan tetapi terbaca jelas.

"Ibuku tersayang, Ibu pasti lupa hari istimewa Ibu ya. Hi... hi... hi..., ini Putri belikan biskuit kesukaan ibu. Maaf Bu, uang putri tidak cukup untuk membeli yang besar dan maaf lagi Putri telah melanggar pesan Ibu karena meninggalkan rumah untuk membeli biskuit ini. Selamat ulang tahun, Bu. Putri selalu sayang, Ibu!" Dan meledaklah tangis sang ibu.

Pembaca yang budiman,

Huai Ie, prasangka sering mendatangkan petaka adalah kalimat yang cocok dengan kisah tadi dan penyesalan biasanya datang menyusul di belakang itu. Begitu banyak masalah dan problem di dunia ini muncul karena prasangka negatif maka butuh kedewasaan dalam mengendalikan
pikiran agar kebiasaan berprasangka tidak kita layani begitu saja dan sedapat mungkin kita hilangkan. Kita ganti dengan berfikir positif sekaligus hati-hati dengan demikian memungkinkan hubungan kita dengan orang lain akan menjadi harmonis dan membahagiakan.

Jumat, 23 Januari 2009

STACK

Dalam Ilmu komputer Stack atau tumpukan merupakan sebuah koleksi objek yang menggunakan prinsip LIFO (Last In First Out), yaitu data yang terakhr kali dimasukkan akan pertama kali keluar dari stack tersebut. Stack dapat diimplementasikan sebagai representasi berkait atau kontigu (dengan tabel fix). Ciri Stack :
  • Elemen TOP (puncak) diketahui
  • penisipan dan penghapusan elemen selalu dilakukan di TOP
  • LIFO

Pemanfaatan Stack :

  • Perhitungan ekspresi aritmatika (posfix)
  • algoritma backtraking (runut balik)
  • algoritma rekursif

Operasi Stack yang biasanya :

  1. Push (input E : typeelmt, input/output data : stack): menambahkan sebuah elemen ke stack
  2. Pop (input/output data : stack, output E : typeelmt ) : menghapus sebuah elemen stack
  3. IsEmpty ()
  4. IsFull ()
  5. dan beberapas selektor yang lain.
Disini saya akan memberikan Contoh coding stack di Java
/**
* @(#)Text1.java
*
*
* @author Siswoko
* @version 1.00 2009/1/23
*/


import java.io.*;
import java.util.Hashtable;
import java.util.Enumeration;

public class Stack {
public static void main(String args[]) {
System.out.println("Contoh STACK \nby : Siswoko ");
BufferedReader entry=new BufferedReader(new InputStreamReader(System.in));
Hashtable myHashtable=new Hashtable();
Enumeration enum1;
try {
int data=0,urutan=0,temp=0,pilihan=0;
do{
System.out.print("\nMasukkan data (0 - selesai) : ");
data=Integer.parseInt(entry.readLine());
if (data!=0) {
urutan++;
myHashtable.put(new Integer(urutan),new Integer(data));
System.out.print(data);
}
}while(data!=0);
do{
System.out.print("\n\n MENU OPERASI STACK"+
"\n 1 - put() --> menambahkan Stack"+
"\n 2 - insert --> menyisipkan Stack"+
"\n 3 - remove() --> mengurangi Stack"+
"\n 4 - select removed--> mengurangi sesuai indeks"+
"\n 5 - isEmpty() --> mengecek apakah Stack kosong?"+
"\n 6 - clear() --> mengosongkan STACK"+
"\n 7 - size() --> mengetahui banyak data di Stack"+
"\n (0 - selesai)"+
"\n\nPilihan Anda : ");
pilihan=Integer.parseInt(entry.readLine());

//operasi pada variabel STACK
switch (pilihan){
case 0 : break;
case 1 :{System.out.print("\nMasukkan data baru (0 - cancel) : ");
data=Integer.parseInt(entry.readLine());
if (data!=0) {
System.out.print(data);
urutan++;
myHashtable.put(new Integer(urutan),new Integer(data));
}break;
}
case 2 :{ System.out.print("\nMasukkan data baru (0 - cancel) : ");
data=Integer.parseInt(entry.readLine());
if (data!=0) {
System.out.print(data);
System.out.print("\nMasukkan lokasi data : ");
temp=Integer.parseInt(entry.readLine());
if (temp<0||temp>urutan) {
System.out.println("\nSalah input lokasi!");
temp=0;
break;
}
else{
System.out.print(temp);
myHashtable.put(new Integer(temp),new Integer(data));
temp=0;
}
}break;
}
case 3 :{ if (myHashtable.isEmpty())
System.out.println("\nData telah habis!");
else{
System.out.print("\nData teratas dihapus : "+
myHashtable.remove(new Integer(urutan)));
urutan--;
}
break;
}
case 4 :{ System.out.print("\nMasukkan lokasi data (1-"+urutan+") yang akan dihapus (0 - cancel) : ");
temp=Integer.parseInt(entry.readLine());
if (temp==0)
break;
else{
System.out.print(temp);
myHashtable.remove(new Integer(temp));
}break;
}
case 5 :{ if (myHashtable.isEmpty())
System.out.println("\nData telah habis!");
else
System.out.println("\nData tersedia.");
break;
}
case 6 :{ System.out.println("\nAnda telah mengosongkan varibel Stack!");
myHashtable.clear();
break;
}
case 7 :{ System.out.println("\nData di varibel Stack adalah "+myHashtable.size());
break;
}
default : System.out.println("Pilihan tidak tersedia!\n");
}
}while (pilihan!=0);
//menampilkan seluruh data Stack
System.out.print("\n PILIHAN TAMPILAN"+
"\n 1 - LIFO (Last In Fist Out)"+
"\n 2 - FIFO (First In First Out)"+
"\n\nPilihan Anda : ");
pilihan=0;
pilihan=Integer.parseInt(entry.readLine());
System.out.print("\nData di variabel Stack : ");

if (!myHashtable.isEmpty()){
switch (pilihan) {
//LIFO
case 1 :{

enum1=myHashtable.elements();
while (enum1.hasMoreElements())
System.out.print("\n\t"+enum1.nextElement());

/* while (urutan>0) {
Object object=myHashtable.get(new Integer(urutan));
System.out.print("\n\t"+object);
urutan--;
}
*/ break;
}
//FIFO
case 2 :{
for (int i=1;i<=urutan;i++) {
Object object=myHashtable.get(new Integer(i));
System.out.print("\n\t"+object);
}
break;
}
default : System.out.print("Pilihan tidak tersedia!\n");
}
}else
System.out.print("kosong\n");
System.out.println();
} catch (Exception e) {
System.out.println("\nSalah Input data!");
}
}
}


Rabu, 21 Januari 2009

Filosofi aturan Permainan Catur



“Jangan pernah meremehkan orang meski orang tersebut tak berarti"
ini ibarat pion,meski kdg cm dipandang sebelah mata & sering diremehkan perannya dalam permainan--tapi pada saatnya-- pion bisa berubah menjadi apa saja jika selamat melangkah dibatas akhir pertahanan lawan.
Permainan catur adalah permainan yang cukup rumit. Kerumitan ini meliputi beberapa hal. Pertama si pemain harus mengerti aturan gerak langkah masing-masing buah catur. Benteng gerakannya lurus. Luncur atau 'knight' gerakannya diagonal , Kuda gerakannya berbentuk hurul L, dst. Kedua, aturan permainan, misal bagaimana cara "makan, teknik skak dan skak mat". Saya yakin banyak yg sudah mahir bermain catur, namun taukah anda bahwa di permainan catur itu ada filosofi kehidupan?? dan inilah sebenernya yang ingin saya bahas disini.

Dalam catur sudah diatur bagimana pergerakan dari bidak-bidaknya, Dalam kehidupan…..setiap orang mempunyai peran dan cara hidup masing-masing yang terikat dalam aturan-aturan, baik yg dibuat Tuhan maupun oleh manusia sendiri. So….ikuti aturan dan pahami benar-benar apa peran yang sedang kita mainkan serta seyogyanya kita tahu apa yang seharusnya kita kerjakan.

Dalam catur kita sudah menentukan cara bermain….. bertahan atau menyerang. Dalam kehidupan, kita bisa melihat bagaimana seseorang menjalani kehidupannya, ada yang bertahan dengan hidup yang ia jalani , ada yang berusaha dengan sekuat tenaga mengalahkan takdir hidup yang ia jalani. Mana yang lebih baik? semua tentu baik asal tujuannya bukan untuk menyerah tapi untuk menang.

Dalam catur posisi skak adalah posisi dimana kita terjepit untuk melangkah, Dalam kehidupan kita sering mengalami hal-hal yang membuat kita terjepit, dihadapkan pada pilihan2 yang sama2 sulit, maka disinilah letak kejelian kita untuk menentukan sikap dalam masa2 sulit, satu sikap yang benar2 bagus. Sikap dan keputusan yang bijak dan bermanfaat untuk langkah selanjutnya, menentukan solusi jitu untuk keluar dari masa sulit dalam hidup ini ibarat permainan catur dalam posisi skak.

Dalam catur posisi skak matt adalah akhir dari permainan, Sang Raja mati langkah lalu biasanya dimulailah permainan baru dari awal, dengan semangat baru bagi yang menang dan bagi yang kalah adalah awal untuk menyusun strategi baru guna mengalahkan si lawan, begitupun dalam kehidupan, kadang kita dihadapkan pada takdir yang tidak kita inginkan, membuat kita mati langkah dan harus menerima kenyataan gagal/kalah dalam hidup ini. namun sepahit apapun takdir hidup kita, segeralah bangkit untuk menyusun permainan baru, dengan semangat baru dan strategi baru untuk mengalahkan! untuk menang!

"Filosofi hidup itu layaknya bermain catur, meski pada kenyatannya lebih rumit dan lebih kompleks aturannya dari sekedar permainan catur."

Kamis, 15 Januari 2009

Load Balancing Dual ADSL di Satu Router

Akhir nya kelar juga deh nyobak dua koneksi ADSl spedy yang akhir akhir ini koneksi yang kayak gini,ambil belajar waktu luang iseng iseng buat load balance di Router Openbsd.Berikut ini contoh load balance yang saya terapkan pada mesin OpenBSD sebagai NAT router, interface ethernet yang digunakan yaitu fxp0 dan fxp1 dengan dua koneksi ADSL Telkom Speedy.

Aktifkan tcp forwarding di mesin BSD anda dengan command :

sysctl -w net.inet.ip.forwarding=1

dan edit di /etc/sysctl.conf agar tetap tereksekusi pada saat router reboot

net.inet.ip.forwarding=1

Pastikan konfigurasi interface ethernet dan default routingnya kosong, hanya filename saja

# /etc/hosts.fxp0

# /etc/hosts.fxp1

# /etc/hostname.fxp0

# /etc/hostnamefxp1

# /etc/mygate

Berikut ini contoh script koneksi ADSL Telkom Speedy pada PPP, pppoe0 untuk koneksi pertama dan pppoe1 untuk koneksi kedua. Sesuaikan interface, username dan passwordnya.

# /etc/ppp/ppp.conf

default:

set log Phase Chat LCP IPCP CCP tun command

set redial 15 0

set reconnect 15 10000

pppoe0:

set device “!/usr/sbin/pppoe -i fxp0″

disable acfcomp protocomp

deny acfcomp

set mtu max 1492

set mru max 1492

set crtscts off

set speed sync

enable lqr

set lqrperiod 5

set cd 5

set dial

set login

set timeout 0

set authname usernamespeedy1@telkom.net

set authkey passwordspeedy1

add! default HISADDR

enable dns

enable mssfixup

pppoe1:

set device “!/usr/sbin/pppoe -i fxp1″

disable acfcomp protocomp

deny acfcomp

set mtu max 1492

set mru max 1492

set crtscts off

set speed sync

enable lqr

set lqrperiod 5

set cd 5

set dial

set login

set timeout 0

set authname usernamespeedy2@telkom.net

set authkey passwordspeedy2

add! default HISADDR

enable dns

enable mssfixup

Aktifkan interface fxp0 dan fxp1 pada mesin router

# ifconfig fxp0 up

# ifconfig fxp1 up

Jalankan PPPoE, Point to Point Protocol over Ethernet.

# ppp -ddial pppoe0

# ppp -ddial pppoe1

Jika dial koneksi ADSL Telkom Speedy berhasil, maka IP Address dari ADSL Telkom Speedy akan di Binding di dalam interface tunneling tun0 dan tun1

# ifconfig

tun0: flags=8051 mtu 1492

groups: tun egress

inet 125.xxx.xxx.234 -> 125.163.72.1 netmask 0xffffffff

tun1: flags=8051 mtu 1492

groups: tun

inet 125.xxx.xxx.235 -> 125.163.72.1 netmask 0xffffffff

Default gateway akan otomatis aktif dan terisi

# netstat -nr

Routing tables

Internet:

Destination Gateway Flags Refs Use Mtu Interface

default 125.163.72.1 UGS 5 18347 - tun0

Konfigurasi DNS server pada file /etc/resolv.conf akan otomatis terisi

# cat /etc/resolv.conf

nameserver 202.134.2.5

nameserver 203.130.196.5

Untuk load balancing nya saya menggunakan OpenBSD Packet Filter (pf). Aktifkan PacketFirewall pf.

# /etc/rc.conf

pf=”YES”

Script Packet Firewall NAT dan balancing menggunakan round-robin (atau bisa diganti dengan loadbalance jika lebih sesuai dengan kebutuhan).

# /etc/pf.conf

lan_net = “192.168.0.0/24″

int_if = “em0″

ext_if1 = “tun0″

ext_if2 = “tun1″

ext_gw1 = “125.163.72.1″

ext_gw2 = “125.163.72.1″

# scrub all

scrub in all

# nat outgoing connections on each internet interface

nat on $ext_if1 from $lan_net to any -> ($ext_if1)

nat on $ext_if2 from $lan_net to any -> ($ext_if2)

# pass all outgoing packets on internal interface

pass out on $int_if from any to $lan_net

# pass in quick any packets destined for the gateway itself

pass in quick on $int_if from $lan_net to $int_if

# load balance outgoing tcp traffic from internal network.

pass in on $int_if route-to { ($ext_if1 $ext_gw1), ($ext_if2 \ $ext_gw2) } \ round-robin proto tcp from $lan_net to any flags S/SA \ modulate state

# load balance outgoing udp and icmp traffic from internal network

pass in on $int_if route-to { ($ext_if1 $ext_gw1), ($ext_if2 \ ext_gw2) } \ round-robin proto { udp, icmp } from $lan_net to any keep state

# general “pass out” rules for external interfaces

pass out on $ext_if1 proto tcp from any to any flags S/SA modulate state

pass out on $ext_if1 proto { udp, icmp } from any to any keep state

pass out on $ext_if2 proto tcp from any to any flags S/SA modulate state

pass out on $ext_if2 proto { udp, icmp } from any to any keep state

Setelah itu restart pf rules dengan perintah

# pfctl -f /etc/pf.conf

Masukkan baris berikut ke dalam /etc/rc.local agar setiap router restart / reboot akan otomatis menjalankan PPPoE.

# /etc/rc.local

ppp -ddial pppoe0

ppp -ddial pppoe1

Untuk membunuh / merestart koneksi ADSL, PPPoE harus dimatikan terlebih dahulu

# pkill ppp

Fungsi NAT Pool round-robin dapat dipantau menggunakan pftop yang dapat diambil di sini.

Konfigurasi Mikrotik Router dengan Firewall

Untuk mengamankan router mikrotik dari serangan orang orang yang tidak bertanggung jawab, traffic virus dan excess ping, berikut ini langkah-langkah yang harus dilakukan :

Pertama kita buat address-list “trusted-network” yang berisi alamat IP yang berhak mengakses router dan masuk dalam kategori “Trusted Network”.

Dalam contoh berikut ini, saya menggunakan IP lokal network / LAN 192.168.1.0/24. Dan IP public 202.152.x.x dari akses internet rumah saya. Anda bisa menambahkan list IP tersebut agar dapat mengakses routernya.

/ip firewall address-list add list=trusted-network address=192.168.1.0/24 comment=”Trusted Network” disabled=no

/ip firewall address-list add list=trusted-network address=202.152.x.x/24 comment=”Trusted Network” disabled=no

Selanjutnya buat chain virus agar port-port yang sering dimanfaatkan virus di blok sehingga traffic virus tidak dapat dilewatkan, tetapi perlu diperhatikan jika ada user yang kesulitan mengakses service tertentu apakah port yang dibutuhkan user tersebut terblok oleh firewall.

/ip firewall filter add chain=forward connection-state=established action=accept comment=”Allow Established Connections” disabled=no

/ip firewall filter add chain=forward connection-state=related action=accept comment=”Allow Related Connections” disabled=no

/ip firewall filter add chain=virus protocol=udp dst-port=135-139 action=drop comment=”Drop Messenger Worm” disabled=no

/ip firewall filter add chain=forward connection-state=invalid action=drop comment=”Drop Invalid Connections” disabled=no

/ip firewall filter add chain=virus protocol=tcp dst-port=135-139 action=drop comment=”Drop Blaster Worm” disabled=no

/ip firewall filter add chain=virus protocol=tcp dst-port=1433-1434 action=drop comment=”Worm” disabled=no

/ip firewall filter add chain=virus protocol=tcp dst-port=445 action=drop comment=”Drop Blaster Worm” disabled=no

/ip firewall filter add chain=virus protocol=udp dst-port=445 action=drop comment=”Drop Blaster Worm” disabled=no

/ip firewall filter add chain=virus protocol=tcp dst-port=593 action=drop comment=”________” disabled=no

/ip firewall filter add chain=virus protocol=tcp dst-port=1024-1030 action=drop comment=”________” disabled=no

/ip firewall filter add chain=virus protocol=tcp dst-port=1080 action=drop comment=”Drop MyDoom” disabled=no

/ip firewall filter add chain=virus protocol=tcp dst-port=1214 action=drop comment=”________” disabled=no

/ip firewall filter add chain=virus protocol=tcp dst-port=1363 action=drop comment=”NDM Requester” disabled=no

/ip firewall filter add chain=virus protocol=tcp dst-port=1364 action=drop comment=”NDM Server” disabled=no

/ip firewall filter add chain=virus protocol=tcp dst-port=1368 action=drop comment=”Screen Cast” disabled=no

/ip firewall filter add chain=virus protocol=tcp dst-port=1373 action=drop comment=”Hromgrafx” disabled=no

/ip firewall filter add chain=virus protocol=tcp dst-port=1377 action=drop comment=”Cichlid” disabled=no

/ip firewall filter add chain=virus protocol=tcp dst-port=2745 action=drop comment=”Bagle Virus” disabled=no

/ip firewall filter add chain=virus protocol=tcp dst-port=2283 action=drop comment=”Drop Dumaru.Y” disabled=no

/ip firewall filter add chain=virus protocol=tcp dst-port=2535 action=drop comment=”Drop Beagle” disabled=no

/ip firewall filter add chain=virus protocol=tcp dst-port=2745 action=drop comment=”Drop Beagle.C-K” disabled=no

/ip firewall filter add chain=virus protocol=tcp dst-port=3127 action=drop comment=”Drop MyDoom” disabled=no

/ip firewall filter add chain=virus protocol=tcp dst-port=3410 action=drop comment=”Drop Backdoor OptixPro” disabled=no

/ip firewall filter add chain=virus protocol=tcp dst-port=4444 action=drop comment=”Worm” disabled=no

/ip firewall filter add chain=virus protocol=udp dst-port=4444 action=drop comment=”Worm” disabled=no

/ip firewall filter add chain=virus protocol=tcp dst-port=5554 action=drop comment=”Drop Sasser” disabled=no

/ip firewall filter add chain=virus protocol=tcp dst-port=8866 action=drop comment=”Drop Beagle.B” disabled=no

/ip firewall filter add chain=virus protocol=tcp dst-port=9898 action=drop comment=”Drop Dabber.A-B” disabled=no

/ip firewall filter add chain=virus protocol=tcp dst-port=10000 action=drop comment=”Drop Dumaru.Y, sebaiknya disable karena juga sering digunakan utk vpn / webmin” disabled=yes

/ip firewall filter add chain=virus protocol=tcp dst-port=10080 action=drop comment=”Drop MyDoom.B” disabled=no

/ip firewall filter add chain=virus protocol=tcp dst-port=12345 action=drop comment=”Drop NetBus” disabled=no

/ip firewall filter add chain=virus protocol=tcp dst-port=17300 action=drop comment=”Drop Kuang2″ disabled=no

/ip firewall filter add chain=virus protocol=tcp dst-port=27374 action=drop comment=”Drop SubSeven” disabled=no

/ip firewall filter add chain=virus protocol=tcp dst-port=65506 action=drop comment=”Drop PhatBot, Agobot, Gaobot” disabled=no

Jump semua paket yang melewati router ke dalam virus chain

/ip firewall filter add chain=forward action=jump jump-target=virus comment=”Jump to The Virus Chain” disabled=no

Accept Established and Related Connection

/ip firewall filter add chain=input connection-state=established action=accept comment=”Accept Established Connections” disabled=no

/ip firewall filter add chain=input connection-state=related action=accept comment=”Accept Related Connections” disabled=no

Drop Invalid Connection

/ip firewall filter add chain=input connection-state=invalid action=drop comment=”Drop Invalid Connections” disabled=no

Accept UDP Connection, Limited Pings and Drop Excess Ping

/ip firewall filter add chain=input protocol=udp action=accept comment=”UDP” disabled=no

/ip firewall filter add chain=input protocol=icmp limit=50/5s,2 action=accept comment=”Allow Limited Pings” disabled=no

/ip firewall filter add chain=input protocol=icmp action=drop comment=”Drop Excess Pings” disabled=no

Allow Input Connection From Trusted Networks

/ip firewall filter add chain=input protocol=tcp dst-port=21 src-address-list=trusted-network action=accept comment=”FTP” disabled=no

/ip firewall filter add chain=input protocol=tcp dst-port=22 src-address-list=trusted-network action=accept comment=”SSH for Secure Shell” disabled=no

/ip firewall filter add chain=input protocol=tcp dst-port=23 src-address-list=trusted-network action=accept comment=”Telnet” disabled=no

/ip firewall filter add chain=input protocol=tcp dst-port=80 src-address-list=trusted-network action=accept comment=”Web” disabled=no

/ip firewall filter add chain=input protocol=tcp dst-port=8291 src-address-list=trusted-network action=accept comment=”Winbox” disabled=no

/ip firewall filter add chain=input protocol=tcp dst-port=1723 action=accept comment=”pptp-server” disabled=no

/ip firewall filter add chain=input src-address-list=trusted-network action=accept comment=”From Trusted Network” disabled=no

Log All and Drop Everything Else

/ip firewall filter add chain=input action=log log-prefix=”DROP INPUT” comment=”Log Everything Else” disabled=no

/ip firewall filter add chain=input action=drop comment=”Drop Everything Else” disabled=no

Dengan Firewall diatas maka :

1. Router hanya dapat diakses service FTP, SSH, Web dan Winbox dari IP yang telah didefinisikan dalam address-list “trusted-network”.
2. Port-port yang sering dimanfaatkan oleh virus di blok oleh Router sehingga traffic virus tidak dapat melewati Router, tetapi perlu diperhatikan jika ada user yang mengakses service tertentu harus dicek pada chain=”virus” apakah port yang dibutuhkan user tersebut terblok oleh firewall atau tidak.
3. Ping Request dibatasi untuk menghindari excess ping.

NB : Perlu diperhatikan bahwa default user dari mikrotik ini adalah admin. Untuk lebih safe nya, buat user baru dan password dengan group full kemudian disable user admin, hal ini untuk meminimasi resiko router mikrotik di hack orang.

Rabu, 14 Januari 2009

Setting Mikrotik Wireless Bridge

Sering kali, kita ingin menggunakan Wireless untuk solusi point to point dengan mode jaringan bridge (bukan routing). Namun, RouterOS sendiri didesain bekerja dengan sangat baik pada mode routing. Kita perlu melakukan beberapa hal supaya link wireless kita bisa bekerja untuk mode bridge.

Mode bridge memungkinkan network yang satu tergabung dengan network di sisi satunya secara transparan, tanpa perlu melalui routing, sehingga mesin yang ada di network yang satu bisa memiliki IP Address yang berada dalam 1 subnet yang sama dengan sisi lainnya.

Namun, jika jaringan wireless kita sudah cukup besar, mode bridge ini akan membuat traffic wireless meningkat, mengingat akan ada banyak traffic broadcast dari network yang satu ke network lainnya. Untuk jaringan yang sudah cukup besar, saya menyarankan penggunaan mode routing.

Berikut ini adalah diagram network yang akan kita set.

Konfigurasi Pada Access Point

1. Buatlah sebuah interface bridge yang baru, berilah nama bridge1

2. Masukkan ethernet ke dalam interface bridge

3. Masukkan IP Address pada interface bridge1

4. Selanjutnya adalah setting wireless interface. Kliklah pada menu Wireless (1), pilihlah tab interface (2) lalu double click pada nama interface wireless yang akan digunakan (3). Pilihlah mode AP-bridge (4), tentukanlah ssid (5), band 2.4GHz-B/G (6), dan frekuensi yang akan digunakan (7). Jangan lupa mengaktifkan default authenticated (8) dan default forward (9). Lalu aktifkankanlah interface wireless (10) dan klik OK (11).

5. Berikutnya adalah konfigurasi WDS pada wireless interface yang digunakan. Bukalah kembali konfigurasi wireless seperti langkah di atas, pilihlah tab WDS (1). Tentukanlah WDS Mode dynamic (2) dan pilihlah bridge interface untuk WDS ini (3). Lalu tekan tombol OK.

6. Langkah selanjutnya adalah menambahkan virtual interface WDS. Tambahkan interface WDS baru seperti pada gambar, lalu pilihlah interface wireless yang kita gunakan untuk WDS ini. Lalu tekan OK.

7. Jika WDS telah ditambahkan, maka akan tampak interface WDS baru seperti pada gambar di bawah.

Konfigurasi pada Wireless Station

Konfigurasi pada wireless station hampir sama dengan langkah-langkah di atas, kecuali pada langkah memasukkan IP Address dan konfigurasi wirelessnya. Pada konfigurasi station, mode yang digunakan adalah station-wds, frekuensi tidak perlu ditentukan, namun harus menentukan scan-list di mana frekuensi pada access point masuk dalam scan list ini. Misalnya pada access point kita menentukan frekuensi 2412, maka tuliskanlah scan-list 2400-2500.


Pengecekan link

Jika link wireless yang kita buat sudah bekerja dengan baik, maka pada menu wireless, akan muncul status R (lihat gambar di bawah).

Selain itu, mac-address dari wireless yang terkoneksi juga bisa dilihat pada jendela registration (lihat gambar di bawah).


Konfigurasi keamanan jaringan wireless

Pada Mikrotik, cara paling mudah untuk menjaga keamanan jaringan adalah dengan mendaftarkan mac-address wireless pasangan pada access list. Hal ini harus dilakukan pada sisi access point maupun pada sisi client. Jika penginputan access-list telah dilakukan, maka matikanlah fitur default authenticated pada wireless, maka wireless lain yang mac addressnya tidak terdaftar tidak akan bisa terkoneksi ke jaringan kita.

Jika kita menginginkan fitur keamanan yang lebih baik, kita juga bisa menggunakan enkripsi baik WEP maupun WPA.

Sumber : http://www.mikrotik.co.id/

Senin, 12 Januari 2009

Tekanan-tekanan hidup

Perubahan situasi dan kondisi krisis global saat ini, membawa perasaan banyak jiwa menjadi gundah, khawatir, takut, emosi tinggi, dan tidak sedikit yang menjadi kebingungan akan kelanjutan kehidupannya di masa depan.

Banyak orang yang kemudian sulit menggambarkan perasaan yang sesungguhnya sedang dialaminya, sehingga hanya semakin menambah banyaknya pribadi yang mengalami tekanan-tekanan dalam hidupnya.

Namun, tidak sedikit pribadi yang mengalami perubahan dari tidak serius menjadi lebih serius dalam bekerja, lebih rajin dalam berjuang menjalankan usaha dan bisnis.

Sebetulnya, ada dua pola tekanan – yang satu demikian cantiknya sehingga tidak dirasakan sebagai tekanan; dan yang satu lagi demikian menyiksanya sehingga merenggut seseorang keluar dari kenyamanan rumah tangganya dan menjadikan jalanan sebagai tempat tinggalnya.

Berikut adalah beberapa tekanan yang mungkin sedang menghimpit kita dari kebebasan yang semestinya

1. Tekanan Persepsi

Pelajaran dan tuntunan itu tampil dan ada se-nyata batu yang tergigit dalam kunyahan nasi, dan tidak untuk dipersepsikan selain sebagai yang telah terbuktikan.

Tetapi persepsi kita – cara pandang yang dihasilkan oleh pendapat dan pengertian kita, sering membuat kita menerapkan pendekatan pada hidup, yang membuat kita berpacu kencang terbentur-bentur di jalan-jalan lingkar yang rumit, hanya untuk dipaksa masuk kembali ke jalan yang paling mendekatkan.

Dalam kondisi seperti saat ini, banyak di antara kita yang memajukan persepsi masing-masing yang pada akhirnya menjadi sebuah ajang peperangan yang saling menjelekkan persepsi orang lain.

2. Tekanan Kebutuhan

Bila seseorang bisa sampai pada keadaan di mana dia tidak dapat memenuhi kebutuhan dasarnya, pasti ada hal-hal yang harus diperbaiki pada persepsi-persepsi, keputusan-keputusan, dan cara-caranya.

Karena, kita sering membutuhkan yang tidak kita butuhkan, dan dengan keyakinan yang tidak mengerti, menafikan yang paling kita butuhkan.

Dalam suasana krisis global seperti ini, banyak orang yang merasa berada dalam tekanan kebutuhan yang terjadi sebagai akibat tidak tegasnya terhadap pilihan-pilihan keputusan yang baik.

3. Tekanan Keinginan

Ada anggapan bahwa semakin banyak keinginan kita, akan semakin tinggi tingkat tekanan hidup kita. Itu tidak sepenuhnya benar.

Karena tidak semua keinginan memberikan beban yang berat.

Hanya keinginan-keinginan yang tidak didasari oleh nilai-nilai yang baik, yang akan menghasilkan pemaksaan-pemaksaan diri yang berat.

Dalam perasaan dan kondisi yang menghimpit ini, kita sering meminta kepada Beliau Yang Maha Memiliki agar memenuhi seluruh keinginan kita dengan cara-cara yang tidak mendekatkan kita bagi terbagikannya izin dari-Nya untuk memenuhi.

4. Tekanan Kewajiban

Kewajiban minimal kita hanya sebanding dengan kebutuhan dasar kita.

Tetapi kita semua terdorong untuk mencapai tingkat-tingkat yang lebih tinggi dari tingkat di mana kita berada sekarang, yang menghasilkan pembengkakan dari kewajiban-kewajiban kita.

Sehingga kita membuat lebih banyak perjanjian. Kita terlibat dalam lebih banyak kesibukan dan keharusan.

Berbagai tekanan yang melanda kita,mengkomposisikan perasan dan pikiran yang penuh sesak dengan kewajiban-kewajiban yang harus dilaksanakan untuk memenuhi seluruh kebutuhan.

5. Tekanan Umur

Ini adalah tekanan yang paling sering tidak kita rasakan, sampai saat di mana batasan-batasan umur menjadi aktif dalam mempermalukan keinginan-keinginan kita.

Itu sebabnya kita membutuhkan pengingatan yang terus menerus mengenai keharusan untuk memaksimalkan upaya agar kita menjadi apa pun yang bisa kita capai, selama umur masih ramah membagi tenaga-nya kepada kita.

Tekanan-tekanan itu begitu menghimpit kehidupan kita, yang membuat di antara kita yang merasa tak bebas lagi melangkah dalam menjadikan diri ini sebagaimana seharusnya menjadi.

Langkah-langkah yang sebelumnya gagah, menjadi tertahan seakan-akan tidak ada lagi jalan dan cara lain untuk menuju pencapaian-pencapaian yang lebih baik di masa depan.

Jika kita ikhlas dalam menjalani dan menerima semua yang terjadi dalam kehidupan ini,maka sebetulnya banyak hikmah dan pelajaran yang dapat kita petik untuk kita lebih berani berjalan.

Mudah-mudahan pengertian ini dapat menjadikan kita menjadi pribadi yang lebih berbahagia dalam kedamaian yang penuh kesyukuran.

Rabu, 07 Januari 2009

Coding Contoh Kalkulator di java


ya sekedar mencobah belajar java dengan membuat projek Kalkulator agak berbeda dengan kalkulator di delphi dulu,baik codingnya dan tataletaknya langsung aja ni :
coding ini simpan/Save aja dengan nama CobaCalculator. setelah itu compile jadi deh. ni cuma kalkulator sedehana banget untuk lebih bagus silahkan modifikasi


/**
* @(#)Text1.java
*
*
* @author
* @version 1.00 2009/1/8
*/


import javax.swing.*;
import java.io.*;
import java.awt.*;
import java.awt.event.*;
import javax.swing.UIManager;

class MiniCalculator extends JFrame implements ActionListener {
private JPanel panelAtas = new JPanel();
private JPanel panelTengah = new JPanel();
private JPanel panelBawah = new JPanel();

private JTextField tampilan = new JTextField("");
private JCheckBox pemisahRibuan = new JCheckBox("Pemisah Ribuan", true);

private JButton[] tombolFungsi =
{
new JButton("Hapus"), new JButton("Batal"),
new JButton("Ulang"), new JButton("^"),
new JButton("7"), new JButton("8"),
new JButton("9"), new JButton("*"),
new JButton("4"), new JButton("5"),
new JButton("6"), new JButton("/"),
new JButton("1"), new JButton("2"),
new JButton("3"), new JButton("-"),
new JButton("0"), new JButton("."),
new JButton("="), new JButton("+"),
};

private JLabel informasi = new JLabel("(c)2008");
private JButton tombolExit = new JButton("Exit");

private char operator = ' ';
private double dataPertama = 0.0;
private double dataKedua = 0.0;
private double dataHasil = 0.0;
private boolean awalKetikan = true;
private boolean entryPertama = true;
private boolean entryDesimal = true;

//----------------------------
//Constructor class
//----------------------------
public MiniCalculator() {
super("Kalkulator Sederhana");

setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setLocationRelativeTo(null);
setSize(350,300);
setResizable(false);

//Procedure
setPanelAtas();
setPanelTengah();
setPanelBawah();
resetNilai();

getContentPane().setLayout(new BorderLayout());
getContentPane().add(panelAtas, BorderLayout.NORTH);
getContentPane().add(panelTengah, BorderLayout.CENTER);
getContentPane().add(panelBawah, BorderLayout.SOUTH);

show();
}

//----------------------
//Mereset seluruh nilai
//----------------------
private void resetNilai()
{
operator = ' ';

dataPertama = 0.0;
dataKedua = 0.0;
dataHasil = 0.0;

awalKetikan = true;
entryPertama = true;
entryDesimal = false;
}

//-------------------
//Mengatur Panel Atas
//-------------------
private void setPanelAtas()
{
pemisahRibuan.setForeground(new Color (0,0,0));
pemisahRibuan.setFont(new Font ("arial", Font.PLAIN, 14));

tampilan.setEnabled(false);
tampilan.setHorizontalAlignment(JTextField.RIGHT);
tampilan.setFont(new Font("arial", Font.BOLD, 15));

panelAtas.setLayout(new BorderLayout());
panelAtas.add(tampilan, BorderLayout.CENTER);
panelAtas.add(pemisahRibuan, BorderLayout.SOUTH);
}

//---------------------
//Mengatur Panel Tengah
//---------------------
private void setPanelTengah()
{
panelTengah.setLayout(new GridLayout (5,4));

for (int i=0; i<5*4; temp =" data.toString();"> 3)
{
temp = data.substring(data.length() - 3);
data.delete(data.length() - 3, data.length());

temp = pisahkan(data) + ',' + temp.toString();
}
return(temp);
}

//---------------------------
//Pemisah Ribuan
//---------------------------
private String pisahkanRibuan(double data)
{
String string = Double.toString(data);
int titik = string.indexOf('.');
String pecahan = string.substring(titik);
long bulat = new Double(dataHasil).longValue();

string = Long.toString(bulat);
string = pisahkan(new StringBuffer (string));

return(string);
}

//---------------------------
//Menghapus karakter terakhir
//---------------------------
private void hapusKarakter()
{
if (tampilan.getText().length() > 0)
{
StringBuffer data = new StringBuffer(tampilan.getText());
char terakhir = data.charAt(data.length()-1);

if (terakhir == '.')
entryDesimal = false;

data.deleteCharAt(data.length()-1);
tampilan.setText(data.toString());
}
}

//---------------------------
//Membatalkan data Terakhir
//---------------------------
private void batalkanData()
{
if (entryPertama)
dataPertama = 0.0;
else
dataKedua = 0.0;

tampilan.setText("");
}

//---------------------------
//Mengupdate data angka
//---------------------------
private void updateData(int index)
{
if (awalKetikan)
tampilan.setText("");

String label = tombolFungsi[index].getLabel();
char karakter = label.charAt(0);
StringBuffer data = new StringBuffer(tampilan.getText());
tampilan.setText(data.toString() + karakter);

awalKetikan = false;
}

//---------------------------
//Mengupdate Data Operator
//---------------------------
private void updateOperator(int index)
{
if (entryPertama)
{
StringBuffer data = new StringBuffer(tampilan.getText());
dataPertama = Double.parseDouble(data.toString());
}

String label = tombolFungsi[index].getLabel();
operator = label.charAt(0);
entryPertama = false;
awalKetikan = true;
}

//----------------------------
//Melakukan proses perhitungan
//----------------------------
private void prosesPerhitungan()
{
StringBuffer data = new StringBuffer(tampilan.getText());
dataKedua = Double.parseDouble(data.toString());

switch(operator)
{
case '+': dataHasil = dataPertama + dataKedua;
break;
case '-': dataHasil = dataPertama - dataKedua;
break;
case '*': dataHasil = dataPertama * dataKedua;
break;
case '/': dataHasil = dataPertama / dataKedua;
break;
case '^': dataHasil = Math.pow(dataPertama, dataKedua);
break;
}

if (pemisahRibuan.isSelected())
tampilan.setText(pisahkanRibuan(dataHasil));
else
tampilan.setText(Double.toString(dataHasil));

entryPertama = true;
awalKetikan = true;
}

//--------------------------
//Menambahkan tanda desimal
//--------------------------
private void tambahTandaDesimal()
{
if(!entryDesimal && !awalKetikan)
{
entryDesimal = true;

StringBuffer data = new StringBuffer(tampilan.getText());
tampilan.setText(data.toString() + '.');
}
}

//---------------------------
//Action terhadap respon user
//---------------------------
public void actionPerformed(ActionEvent event)
{
Object objek = event.getSource();
int lokasi = 0;

if (objek == tombolExit)
System.exit(0);
else
{
for (; lokasi<20; lokasi++)
if (objek == tombolFungsi[lokasi])
break;

switch(lokasi)
{
case 0 : hapusKarakter();
break;
case 1 : batalkanData();
break;
case 2 : resetNilai();
tampilan.setText("");
break;
case 16 : ;
case 12 : ;
case 13 : ;
case 14 : ;
case 8 : ;
case 9 : ;
case 10 : ;
case 4 : ;
case 5 : ;
case 6 : updateData(lokasi);
break;
case 3 : ;
case 7 : ;
case 11 : ;
case 15 : ;
case 19 : updateOperator(lokasi);
break;
case 18 : prosesPerhitungan();
break;
case 17 : tambahTandaDesimal();
break;
}
}
}
}

//-----------
//Class Utama
//-----------
public class CobaCalculator
{
public static void main(String[] args) {
java.awt.EventQueue.invokeLater(new Runnable() {
public void run() {
try {
UIManager.setLookAndFeel("com.sun.java.swing.plaf.gtk.GTKLookAndFeel");
} catch (Exception e) {
System.out.println("Look And Feel Not Supported, Ignored !!!");
}
new MiniCalculator();
} // end run method
}); // end thread safe
}
}

INFORMASI PENERBANGAN GRATIS AL-JENAZAH AIRLINES LAYANAN PENUH 24 JAM

Bila kita akan ‘berangkat” dari alam ini ia ibarat penerbangan ke sebuah
tempat, dimana informasi tentangnya tidak terdapat dalam brosur
penerbangan, tetapi melalui Al-Qur’an dan Al-Hadist.

Di mana penerbangan bukan dengan Garuda Airlines, Singapore Airlines,
atau US Airlines, tetapi Al-Jenazah Airlines.

Di mana bekal kita bukan lagi tas seberat 23Kg,Emas 1 Kg 24 Karat, tetapi amalan kita didunia,
tak lebih, tak kurang.

Di mana bajunya bukan lagi Pierre Cardin, atau setaraf dengannya, akan
tetapi kain kafan putih.

Di mana pewanginya bukan Channel atau Polo,Malboro, tetapi air biasa yang suci.
Di mana passport kita bukan Indonesia,German,Jepang, Malaysia, British atau American, tetapi Al-Islam.
Di mana visa kita bukan lagi sekedar 6 bulan, 1 Tahun, tetapi ‘Laailaahaillallah’
Di mana pelayannya bukan pramugari jelita,Cantik, tetapi Izrail dan lain-lain.
Di mana servisnya bukan lagi kelas business atau ekonomi, tetapi sekedar
kain yang diwangikan

Di mana tujuan mendarat bukannya Bandara Cengkareng, Juanda, Heathrow Airport atau
Jeddah International, Terminal, Stasiun, Akan tetapi tanah pekuburan.

Di mana ruang menunggunya bukan lagi ruangan ber AC dan permadani, tetapi
ruang 2×1 meter, gelap gulita.

Di mana pegawai imigrasi adalah Munkar dan Nakir, mereka hanya memeriksa
apakah kita layak ke tujuan yang diidamkan.

Di mana tidak perlu satpam dan alat detector.
Di mana lapangan terbang transitnya adalah Al Barzah
Di mana tujuan KIta ke Suarabaya, kediri, malang, jakarta,Malaysia, singapura, london, akan terakhir apakah Syurga yang mengalir sungai di bawahnya
atau Neraka Jahannam.

Penerbangan ini tidak akan diTembak atau dibom, karena itu tak perlu
bimbang.
Sajian tidak akan disediakan, oleh karena itu tidak perlu merisaukan
masalah alergi atau halal haram makanan.

Jangan risaukan cancel pembatalan, penerbangan ini senantiasa tepat
waktunya, ia berangkat dan tiba tepat pada masanya.
Jangan pikirkan tentang hiburan dalam penerbangan, anda telah hilang
selera bersuka ria.
Jangan bimbang tentang pembelian tiket, ia telah siap di booking sejak
ruh anda ditiupkan di dalam rahim ibu.

YA…BERITA BAIK !!! Jangan bimbangkan siapa yang duduk di sebelah anda.
Anda adalah satu-satunya penumpang penerbangan ini.
Oleh karena itu bergembiralah selagi bisa! Dan sekiranya anda bisa!

Hanya ingat! Penerbangan ini datang tanpa ‘Pemberitahuan’ .
Cuma perlu ingat!! Nama anda telah tertulis dalam tiket untuk
Penerbangan. …
Saat penerbangan anda berangkat… tanpa doa Bismillahi Tawakkaltu ‘Alallah,
atau ungkapan selamat jalan.
Tetapi Inalillahi Wa Inna ilaihi Rajiuun….
Anda berangkat pulang ke Rahmatullah. Mati.
ADAKAH KITA TELAH SIAP UNTUK BERANGKAT?

Template by : Kowsi