Wirawan Winarto

Microsoft Student Partner
See also: Other Geeks@INDC

February 2008 - Posts

Gila! Software MCA Diobral Murah!

Bangsa ini nampaknya memang butuh edukasi untuk menghargai hak cipta.

Microsoft memberikan software murah untuk para insan akademis di seluruh dunia, termasuk Indonesia, dalam bentuk paket Campus Agreement dan MSDNAA (Academic Alliance). Pemberian itu dimaksudkan untuk menunjang proses belajar mengajar dan untuk kebutuhan pendidikan mahasiswa. Bahkan di dalam MSDNAA tiap mahasiswa berhak menggunakan software tersebut setelah dia lulus.

Namun ada saja oknum yang memanfaatkannya untuk kepentingan bisnis.

Kalau mau tahu yang saya maksud, coba numpang lewat di sini

Saya tidak tahu apakah Campus Agreement dari kampus yang bersangkutan sudah distop oleh Microsoft Indonesia atau belum. Kita berharap solusi yang terbaik saja buat mereka.

Share this post: | | | |
Antara Nilai dan Fungsi di dalam F#

Xi Nian Kuai Le! Gong Xi Fa Cai!

Nah. Ini posting pertama saya dalam Bahasa Indonesia. Ini adalah permintaan beberapa orang teman supaya tulisan saya lebih mudah dicerna. Kali ini saya mau membahas materi yang sederhana dulu, yaitu tentang dasar-dasar nilai dan fungsi pada F#.

Di dalam bahasa F#, fungsi dan nilai sebenarnya tidak terbedakan. Hal ini disebabkan bagi F# fungsi merupakan nilai. Untuk lebih jelasnya, perhatikan kesamaan sintaks pada kode berikut :

#light

let angka = 20

let jumlah a b = a + b

Dari contoh di atas terlihat bahwa nilai dan fungsi mendapat perlakuan yang sama. Identifier angka mendapat nilai 20 dan demikian pula dengan fungsi jumlah secara otomatis mendapatkan nilai dari a + b. Karena fungsi sama dengan nilai, maka hal ini memungkinkan kita : membuat suatu fungsi yang menerima parameter berupa fungsi lain, membuat fungsi yang return value-nya berupa fungsi juga, memasukkan fungsi di dalam struktur data, dan lain-lain.

Hal lain yang perlu dicatat adalah pada pendeklarasian suatu fungsi di F# anda tidak perlu mendeklarasikan return layaknya bahasa pemrograman imperatif umumnya.

Fitur lain dari F# adalah kita tidak harus memberikan seluruh argumen sekaligus. Contohnya :

#light

let hitung a b = a + b

let tambahSatu = hitung 1

let hasil = tambahSatu 10

Meskipun nampak jelas bahwa fungsi hitung meminta dua argumen, namun kita bisa memberi nilai tidak secara sekaligus. Pada waktu saya mendeklarasikan tambahSatu, maka nilai 1 akan mengisi parameter pertama atau a. Pada saat itu, fungsi akan menunggu nilai berikutnya untuk mengisi parameter kedua. Ini disebut currying, diambil dari nama Haskell Curry.

Namun bagaimana jika saya mengharuskan dua argumen dipenuhi sekaligus? F# mengenal suatu konsep yang disebut dengan  tuple. Tuple mungkin dapat didefinisikan sebagai gabungan beberapa data dalam satu paket. Mirip anonymous type pada C# namun tanpa perlu mendeklarasikan ID variabelnya. Contoh pendeklarasian-nya :

#light

let koordinat (a,b) = a + b

let hasil = koordinat (2,3)

Dengan demikian pemanggilan fungsi koordinat harus diikuti dengan nilai tuple (a,b). Suatu tuple dapat menampung berbagai data yang berbeda tipe. Namun tuple tidak mampu menerima nilai dari tuple dengan struktur yang berbeda. Misalnya tuple (a,b) tidak dapat menerima tuple yang bernilai (1,4,"Halo",5) karena struktur-nya berbeda.

Itu saja sedikit gambaran sederhana tentang nilai dan fungsi di dalam F#.

Share this post: | | | |
No STT Telkom at Imagine Cup 2008

I inform this early for all of you.

Following this post, I hope that in the forthcoming Microsoft Imagine Cup no one will ask "Hey, where are the guys from STT Telkom?". Of course, there will be no STT Telkom representatives this year.

It is because...

Yes. This year we will participate under the name Institut Teknologi Telkom or IT Telkom.

Our new institute is now preparing for her debut. Watch out!

Share this post: | | | |