rekursif(2)

March 28, 2008 at 12:03 pm (programming & algorithm)

oke guys… saatnya happy coding lagi..
kalian taukan bagaimana biasanya membuat fungsi untuk memjumlahkan dua bilangan..
nah… sekarang aku menemukan cara melakukan operasi-operasi sederhana (penambahan,
pengurangan, perkalian) dengan metode rekursif yang biasanya kita lakukan secara explicit
ex. a+b, a-b, a*b
okey.. here we go…

Penambahan:

int add(int a, int b){
if (b==0) {
return a;
}else {
return add(a, b-1)+1;
}
}

Pengurangan:

int sub(int a, int b){
if (b==0) {
return a;
}else {
return sub(a, b-1)-1;
}
}

Perkalian:

int multiple(int a, int b){
if (b==0) {
return 0;
}else if(b==1){
return a;
}else {
return multiple(a, b-1)+ a;
}
}

nah sekarang aku ngasi tantangan buat kamu sekalian… untuk membuat fungsi rekursif untuk pembagian gimana merasa tertantang ga???(soalnya udah pening kepalaku dibuatnya) ;-)
oya method2 tersebut kubuat dari bahasa pemograman java jadi silahkan disesuaikan ke bahasa yang dipakai masing2 :-D en validasinya masih cemen jadi bisa dibilang ini untuk semua bilangan positif…so kalo mau nambahi validasiny silahkan menambahkan masing2 aja y… ;-)

oya klo ada masukan atau pencerahan jangan sungkan untuk meninggalkan komentar dibawah..
dan kalo ada kesalahan harap maklum lagi-lagi masih pemula… ;-)

Permalink 11 Comments

just a little that i wanna say

March 26, 2008 at 10:32 pm (mine...)

ah… hari ini aku baru siap wawancara sama ujian psikotest buat job training di PT.i4te, lumayan juga capeknya, pokoknya satu hari ini aku hidup buat i4te itulh…”loja de…“  ya mungkin inilh yang harus dilakukan untuk menggapai masa depan yg lebih baik(ciee puitis amat y..)

eh.. mengenai interview-nya keren bo…interviewernya agak “cool” setelah kubilang aku pengen en berhasrat kerja di i4te dia malah bilang “klo hasrat untuk cewek gimana???” sialan tuh orang en yg buat kaget ne  masa interviewernya bilang gini “jadi cemana.. kita kerjain proyek ini…, tertariknya kau sama proyek ini…” he macamnya ga yakin aku dengar kata “kita” yang dibilangnya itu kirain aku udah mau dikontraknya hehehe.. :-) eh.. ternyata bilangi proyek yg bakaln dikerjain selama KP… :-D

trus ne lanjutannya yg lebih mantap…!!! psikotest yang buat otakku tekor abizz.., sialan cepat amat waktunya… !!! errrgh… salah liat waktu kali tuh pengawasnya atau sengaja dicepatkanny soalnya udah suntuk kali dia kuliat ngawas sampe 6 jam lebih dalam satu hari… rasain lo… heheheh…. :-)

oya  hampir lupa.., waktu aku jalan2 di websitenya angkolit ternyata udah banyak juga tuh yang punya blog tahun ini.. btw kok mulainy baru tahun ini y bukannya tahun ini tuh harusnya tahun sibuk2nya tingkat 3??? oke lupakanlah masalah kesibukan ank2 kelas 3 itu karena yg mau kubahas bukan itu…, melainkan tentang jalan2ku di websitenya angkolit itu…, lagi enk2 liatin blog orang.. eh… kok tiba-tiba blogku ada di 11105068??? bukannya harusnya ada di 11105027??? oooo ternyata si novella make theme yang sama denganku.. liat ne he.. kirain web-nya dia nge-redirect ke blogku.. ;-) oya katanya emang aku sama itoku itu emang satu selera.. hahaha… :-D oke mantap to… lanjotttttt ;-)

ywdalh kayany  hari ini aku cuma bisa tulis ini aja.. y karna itu tadi otakku udah tekor…

jadi perlu istirahat ne biar sel2 otak yang baru tumbuh lagi… ;-) see ya….

Permalink 4 Comments

DIFFERENCES

March 25, 2008 at 8:35 am (Happiness)

Is the world more like a fruit salad or a bag of mixed nuts?

Yes. We are like a fruit salad and a bag of mixed nuts. Every one of
us does dozens maybe hundreds of things that might seem crazy to
someone else. And each of us does a different mix of things in different
ways. It’s OK to be different, as long as different does not mean being
rude of inconsiderate to others. :-)

So stir in whatever extra ingredients you like; no two recipes are the
same.

Permalink 4 Comments

Algoritma Brute Force

March 24, 2008 at 6:49 pm (programming & algorithm)

Oke sekarang kita coba bahas tentang salah satu teknik algoritma yang sangat banyak dipakai banyak orang terutama untuk persoalan yang tidak memperdulikan masalah efisiensi…, yaitu algoritma brute force.

Sebenarnya secara sadar atau tidak…, kita juga sering berpikir dengan teknik ini, nah sekarang siapkan otak eh… maksudku simak neh ceritanya…

Algoritma Brute Force ???

  • Brute force adalah sebuah pendekatan yang sangat jelas(straightforward) untuk memecahkan suatu persoalan, biasanya didasarkan pada problem statement dan definisi konsep yang dilibatkan.
  • Algoritma brute force memecahkan masalah dengan sangat sederhana, langsung dan dengan cara yang jelas .

Cara kerja Algoritma Brute Force

  1. Enumerasi (list) setiap solusi yang mungkin dengan cara yang sistematis.
  2. Evaluasi setiap kemungkinan solusi “satu per satu” dan simpan solusi terbaik yang ditemukan sampai sejauh ini (the best solusi found so far).
  3. Bila pencarian solusi berakhir, umumkan solusi terbaik (the winner)

Karakteristik Algoritma Brute Force

  • Algoritma brute force sebenarnya bukanlah algoritma yang “cerdas” dan mangkus(efisien), karena ia membutuhkan jumlah langkah yang besar/banyak dalam penyelesaiannya dan tentu saja membutuhkan waktu yang berbanding lurus dengan jumlah langkah penyelesaiannya. Kadang-kadang algoritma brute force disebut juga algoritma naif (naïve algorithm).
  • Algoritma brute force seringkali merupakan pilihan yang kurang disukai karena ketidakmangkusannya itu, tapi kalau mencari pola2 dasar, keteraturan, atau trik-trik khusus, biasanya dapat membantu membantu untuk menemukan algoritma yang lebih cerdas dan lebih mangkus lagi.
  • Untuk persoalan2 yang kecil, kesederhanaan brute force lebih diperhitungkan daripada ketidakmangkusannya. Algoritma brute force sering digunakan sebagai basis bila membandingkan beberapa alternatif algoritma yang mangkus.
  • Meskipun brute force bukan merupakan teknik pemecahan masalah yang mangkus, namun teknik brute force dapat diterapkan pada sebagian besar persoalan. Bayangkan..,sangat sulit menemukan masalah yang tidak dapat dipecahkan dengan teknik brute force, tapi ada masalah yang hanya dapat dipecahkan secara brute force.

Algoritma bubble sort mengimplementasikan teknik brute force dengan jelas sekali. Berikut contoh persoalan sorting yang dipecahkan dengan algoritma bubble sort:

procedure BubbleSort (input/output L : arrayOfInt, input n : integer)
{ Mengurutkan array L[1..N] sehingga terurut menaik dengan metode pengurutan bubble sort.
Masukan : Array L yang sudah terdefenisi nilai-nilainya.
Keluaran: Array L yang terurut menaik sedemikian sehingga
L[1]  L[2]  …  L[N].
}
Deklarasi
i : integer { variabel untuk jumlah langkah }
k : integer { variabel,untuk pengapungan pada setiap langkah }
temp : integer { variabel untuk pertukaran }
Algoritma:
for i <- 1 to n – 1 do
   for j <- n downto i + 1 do {looping menurun}
      if (L[j] < L[j-1]) then
         {tukar L[j] dengan L[j-1]}
         temp <- L[j]
         L[j] <- L[j-1]
         L[j-1] <- temp
      endif
   endfor
endfor

Setelah kita lihat2 lagi algoritma diatas.., sangat mudah dimengerti. Dengan melooping sebanyak isi array lalu menukarkan nilainya, jika ada nilai yang lebih kecil berada di bawah nilai yang lebih besar, lalu melooping lagi untuk sebanyak jumlah isi array untuk memastikan seluruh kondisi di-cek satu per satu dan menukarkan nilainya kembali jika masih terdapat kondisi seperti diatas dan seterusnya sampai selesai.huh… capek juga ya, coba bayangkan jika banyaknya nilai yang disorting itu mencapai ratusan ribu sampai jutaan jumlahnya hmm… bisa jenggotan juga tuh nunggunya… ;-)

Nah sekarang yang menjadi pertanyaan adalah…
Adakah algoritma sorting yang lebih mangkus daripada brute force?? :-D

“Ken Thompson (salah seorang penemu Unix) mengatakan: “When in doubt, use brute force“, faktanya kernel Unix yang asli lebih menyukai algoritma yang sederhana dan kuat (robust) daripada algoritma yang cerdas tapi rapuh.

oh iya… hampir lupa teknik lain yang terkait erat dengan brute force adalah exhaustive search. Brute force maupun exhaustive search sering dianggap dua metode yang sama, padahal dari jenis masalah yang dipecahkan ada sedikit perbedaan(walopun bisa aja dianggap sama…).
Dimana perbedaannya??? ya udah.. kita liat aja entar.. hehehe… ;-)

Permalink 2 Comments

Hello world!

March 24, 2008 at 2:17 pm (Uncategorized)

Welcome to WordPress.com. This is your first post. Edit or delete it and start blogging!

Permalink 1 Comment

MLTR – you took my heart away

March 19, 2008 at 10:38 pm (entertaiment)

Staring at the moon so blue
Turning all my thoughts to you
I was without hopes or dreams
I tried to dull an inner scream but you
saw me through

Walking on a path of air
See your faces everywhere
As you melt this heart of stone
you take my hand to guide me home and now
I’m in love

[Chorus:] You took my heart away
when my whole world was gray
You gave me everything
and a little bit more
And when it’s cold at night
and you sleep by my side
you become the meaning of my life

Living in a world so cold
you are there to warm my soul
You came to mend a broken heart
You gave my life a brand new start and now
I’m in love

[Chorus:]
You took…

Holding your hand
I won’t fear tomorrow
Here were we stand
we’ll never be alone

Permalink 3 Comments

imagination

March 19, 2008 at 10:14 pm (Happiness, do yoU know???)

It’s time to build yourself a little cabin. Not a real one like the
pioneers made out of wood and Velcro, but an imaginary one you can build
out of whatever fears and hopes you might have. This is your
confidence room. Or your gratitude room. Or your self-esteem room. Or your
self-control room. Or whatever room you most need to have. This is a
place you can place yourself when you need to remove yourself from a
situation where you lack confidence. Or gratitude. Or whatever you feel
you lack.

Now place this room in your pocket. It is important to bring it with
you wherever you go, because you never know when you will need to pop in
and stock up on confidence or gratitude or self-control. When you
have challenges you find difficult to overcome, it helps to use your
imagination.

Permalink Leave a Comment

misteri bilangan NOL

March 19, 2008 at 10:05 pm (do yoU know???)

Waktu jalan2 di dunia maya.., tadinya sih nyari bahan paper buat tugas komas eh… malah dapat artikel yang lumayan menarik lho buat diketahui… selama ini kita cuma tau bilangan nol(0) itu hanya bagian dari bilangan lain 1, 2, 3 … dst, tapi dibalik itu ternyata ada sesuatu yang mungkin patut buat kita perhatikan…
neh simak bae-bae…

katanya ratusan tahun yang lalu , manusia hanya mengenal 9 lambang bilangan yakni 1, 2, 2, 3, 5, 6, 7, 8, dan 9. Kemudian, datang angka 0, sehingga jumlah lambang bilangan menjadi 10 buah. Tidak diketahui siapa pencipta bilangan 0, bukti sejarah hanya memperlihatkan bahwa bilangan 0 ditemukan pertama kali dalam zaman Mesir kuno. Waktu itu bilangan nol hanya sebagai lambang. Dalam zaman modern, angka nol digunakan tidak saja sebagai lambang, tetapi juga sebagai bilangan yang turut serta dalam operasi matematika. Kini, penggunaan bilangan nol telah menyusup jauh ke dalam sendi kehidupan manusia. Sistem berhitung tidak mungkin lagi mengabaikan kehadiran bilangan nol, sekalipun bilangan nol itu membuat kekacauan logika. Let’s see…

Nol, penyebab komputer macet???

Pelajaran tentang bilangan nol, dari sejak zaman dahulu sampai sekarang selalu menimbulkan kebingungan bagi para pelajar, bahkan masyarakat pengguna. Lho kok bias??
Bukankah bilangan nol itu mewakili sesuatu yang tidak ada dan yang tidak ada itu ada, yakni nol. Siapa yang tidak bingung? Tiap kali bilangan nol muncul dalam pelajaran Matematika selalu ada ide yang aneh. Seperti ide jika sesuatu yang ada dikalikan dengan 0 maka menjadi tidak ada. Mungkinkah 5*0 menjadi tidak ada? (* adalah perkalian). Ide ini membuat orang frustrasi. Nol ahli sulap kale y…?
Lebih parah lagi-tentu menambah bingung-mengapa 5+0=5 dan 5*0=5 juga? Memang demikian aturannya, karena nol dalam perkalian merupakan bilangan identitas yang sama dengan 1. Jadi 5*0=5*1. Tetapi, yang benar bahwa 5*0=0. Waw. Bagaimana dengan 5o=1(pangkat), tetapi 50o=1 juga? Ya, sudahlah. Aturan lain tentang nol yang juga misterius adalah bahwa suatu bilangan jika dibagi nol tidak didefinisikan (capee dee..). Maksudnya, bilangan berapa pun yang tidak bisa dibagi dengan nol. Komputer yang canggih bagaimana pun akan mati mendadak jika tiba-tiba bertemu dengan pembagi angka nol. Komputer memang diperintahkan berhenti berpikir jika bertemu sang divisor nol. Hmm…

Bilangan nol: tunawisma!!

Kalian tau kan kalo bilangan itu disusun berdasarkan hierarki menurut satu garis lurus. Pada titik awal adalah bilangan nol, kemudian bilangan 1, 2, dan seterusnya. Bilangan yang lebih besar di sebelah kanan dan bilangan yang lebih kecil di sebelah kiri. Semakin jauh ke kanan akan semakin besar bilangan itu. Berdasarkan derajat hierarki (dan birokrasi bilangan), seseorang jika berjalan dari titik 0 terus-menerus menuju angka yang lebih besar ke kanan akan sampai pada bilangan yang tidak terhingga. Tetapi, mungkin juga orang itu sampai pada titik 0 kembali. Bukankah dunia ini bulat? Mungkinkah? Bukankah Columbus mengatakan bahwa kalau ia berlayar terus-menerus ia akan sampai kembali ke Eropa?

Lain lagi…, jika seseorang berangkat dari nol, ia tidak mungkin sampai ke bilangan 4 tanpa melewati terlebih dahulu bilangan 1, 2, dan 3. Tetapi, yang lebih aneh adalah pertanyaan mungkinkan seseorang bisa berangkat dari titik nol? Jelas tidak bisa, karena bukankah titik nol sesuatu titik yang tidak ada? Aneh dan sulit dipercaya? Mari kita lihat lebih jauh.

Jika di antara dua bilangan atau antara dua buah titik terdapat sebuah ruas. Setiap bilangan mempunyai sebuah ruas. Jika ruas ini dipotong-potong kemudian titik lingkaran hitam dipindahkan ke tengah-tengah ruas, ternyata bilangan 0 tidak mempunyai ruas. Jadi, bilangan nol berada di awang-awang. Bilangan nol tidak mempunyai tempat tinggal alias tunawisma. Itulah sebabnya, mengapa bilangan nol harus menempel pada bilangan lain, misalnya, pada angka 1 membentuk bilangan 10, 100, 109, 10.403 dan sebagainya. Jadi, seseorang tidak pernah bisa berangkat dari angka nol menuju angka 4. Kita harus berangkat dari angka 1!!!

Mudah, tetapi salah

Guru meminta Ani menggambarkan sebuah garis geometrik dari persamaan 3x+7y = 25. Ani berpikir bahwa untuk mendapatkan garis itu diperlukan dua buah titik dari ujung ke ujung. Tetapi, setelah berhitung-hitung, ternyata cuma ada satu titik yang dilewati garis itu, yakni titik A(6, 1), untuk x=6 dan y=1. Sehingga Ani tidak bisa membuat garis itu. Sang guru mengingatkan supaya menggunakan bilangan nol. Ya, itulah jalan keluarnya. Pertama, berikan y=0 diperoleh x=(25-0)/3=8 (dibulatkan), merupakan titik pertama, B(8,0). Selanjutnya berikan x=0 diperoleh y=(25-3.0)/7=4 (dibulatkan), merupakan titik kedua C(0,4). Garis BC, adalah garis yang dicari. Namun, betapa kecewanya sang guru, karena garis itu tidak melalui titik A. Jadi, garis BC itu salah.

Ani membela diri bahwa kesalahan itu sangat kecil dan bisa diabaikan. Guru menyatakan bahwa bukan kecil besarnya kesalahan, tetapi manakah yang benar? Bukankah garis BC itu dapat dibuat melalui titik A? Kata guru, gunakan bilangan nol dengan cara yang benar. Bagaimana kita harus membantu Ani membuat garis yang benar itu? Mudah, kata konsultan Matematika. Mula-mula nilai 25 dalam 3x+7y harus diganti dengan hasil perkalian 3 dan 7 sehingga diperoleh 3x+7y=21.

Selanjutnya, dalam persamaan yang baru, berikan y=0 diperoleh x=21/3=7 (tanpa pembulatan) itulah titik pertama P(6,1). Kemudian berikan nilai x=0 diperoleh y=21/7 = 3 (tanpa pembulatan), itulah titik kedua Q(0, 3). Garis PQ adalah garis yang sejajar dengan garis yang dicari, yakni 3x+7y=25. Melalui titik A tarik garis sejajar dengan PQ diperoleh garis P1Q1. Nah, begitulah. Sang murid telah menemukan garis yang benar berkat bantuan bilangan nol.

Akan tetapi, sang guru masih sangat kecewa karena sebenarnya tidak ada satu garis pun yang benar. Bukankah dalam persamaan 3×1+7×2=25 hanya ada satu titik penyelesaian yakni titik A, yang berarti persamaan 3×1+7×2 itu hanya berbentuk sebuah titik? Bahkan pada persamaan 3×1+7×2=21 tidak ada sebuah titik pun yang berada dalam garis PQ. Oleh karena itu, garis PQ dalam sistem bilangan bulat, sebenarnya tidak ada. Aneh, bilangan nol telah menipu kita. Begitulah kenyataannya, sebuah persamaan tidak selalu berbentuk sebuah garis.

Bergerak, tetapi diam

Bilangan tidak hanya terdiri atas bilangan bulat, tetapi juga ada bilangan desimal antara lain dari 0,1; 0,01; 0,001; dan seterusnya sekuat-kuat kita bisa menyebutnya sampai sedemikian kecilnya. Karena sangat kecil tidak bisa lagi disebut atau tidak terhingga dan pada akhirnya dianggap nol saja. Tetapi, ide ini ternyata sempat membingungkan karena jika bilangan tidak terhingga kecilnya dianggap nol maka berarti nol adalah bilangan terkecil? Padahal, nol mewakili sesuatu yang tidak ada? Waw. Begitulah.

Berdasarkan konsep bilangan desimal dan kontinu, maka garis bilangan yang kita pakai ternyata tidak sesederhana itu karena antara dua bilangan selalu ada bilangan ke tiga. Jika seseorang melompat dari bilangan 1 ke bilangan 2, tetapi dengan syarat harus melompati terlebih dahulu ke bilangan desimal yang terdekat, bisakah? Berapakah bilangan desimal terdekat sebelum sampai ke bilangan 2? Bisa saja angka 1/2. Tetapi, anda tidak boleh melompati ke angka 1/2 karena masih ada bilangan yang lebih kecil, yakni 1/4. Seterusnya selalu ada bilangan yang lebih dekat… yakni 0,1 lalu ada 0,01, 0,001, …, 0,000001. demikian seterusnya, sehingga pada akhirnya bilangan yang paling dekat dengan angka 1 adalah bilangan yang demikian kecilnya sehingga dianggap saja nol. Karena bilangan terdekat adalah nol alias tidak ada, maka Anda tidak pernah bisa melompat ke bilangan 2?

Permalink Leave a Comment

VARIETY

March 19, 2008 at 9:55 am (Happiness)

If variety is the spice of life, we live in positively seasoned times.  Not only does our ice cream come in dozens of flavours and our cars in a choice of colors, but even our shampoo comes in multiple flavours (watermelon, anyone?  Or perhaps bubblegum?).  And have there every been so many fruits and vegetables available in one place at the same time since the beginning of the world? We can choose what music our phones will play when they “ring”.  It won’t be long until we choose what color house we want…this week.  And what color we want to change it to next week.

If variety is the spice of life, we are living in the tastiest of times!

Permalink Leave a Comment

Kelly Clarkson – To Make You Feel My Love

March 18, 2008 at 6:00 pm (entertaiment)

i love this song…
it’s felt comfortable when you listen it…

i fully dedicated this song to someone who will always be my friend ;-)

When the rain is blowing in your face
And the whole world is on your case
I would offer you a warm embrace
To make you feel my love

When evening shadows and the stars appear
And there is no one to dry your tears
I could hold you for a million years
To make you feel my love

I know you haven’t made your mind up yet
I would never do you wrong
I’ve known it from the moment that we met
There’s no doubt in my mind where you belong

I’d go hungry, I’d go black and blue
I’d go crawling down the avenue
There ain’t nothing that I wouldn’t do
To make you feel my love

Oohhhh ohhohh

The storms of rage are rolling wild and free
Down that highway of regret
The wind of change is blowing wild and free
But you aint seen nothing like me yet

There aint nothing that I wouldn’t do
Go to the end of the earth for you
Make you happy make your dreams come true
To make you feel my love

To make you feel my love

Permalink 1 Comment

Next page »