C# Func, Teori dan Kegunaannya

Apa yang diperlukan oleh software developer untuk menjadi seseorang yang ahli di bidangnya?. Salah satu jawbannya menurut saya adalah memperoleh kesempatan untuk terlibat dalam suatu proyek yang menarik. Memang kata menarik sendiri bisa berbeda-beda tiap individu, tetapi saya kira pembaca paham maksudnya bagaimana πŸ˜€

Func

Salah satu manfaat terlibat project yang kita anggap menarik adalah kita mendapatkan hal-hal baru yang belum pernah kita tahu sebelumnya atau sudah tahu tapi belum pernah mengimplementasikan dalam real project dan lain sebagainya.

Setelah selama 2 bulan kemarin saya terlibat project yang membosankan, alhamdulillah sekarang saya masuk ke project yang Insya Allah menarik. Belum juga project berjalan saya sudah menemukan hal yang menarik yang saya jadikan judul dari tulisan ini, C# Func.

Apa itu Func

Secara sederhana Func adalah delegate bawaan dari .NET framework yang digunakan untuk method yang memiliki nilai kembalian T. Dalam bahasa lain, Func digunakan untuk menyimpan method yang ber-return value T. Kalau masih bingung maka contoh kode berikut akan menjelaskannya.

Sintaks dasarnya adalah

dimana T adalah nilai kembalian.

Pada contoh di atas digunakan

yang berarti method yang akan disimpan memiliki nilai kembalian berupa string, kembalian dari GetMessage() adalah string jadi klop lah mereka.

Di atas saya menyebut delegate. Delegate juga digunakan untuk menyimpan method layaknya kita menyimpan nilai dalam suatu variabel.

Func ini sebenarnya adalah delegate juga tetapi dia generic. Ada baiknya memahami delegate terlebih dahulu untuk bisa memahami Func, tetapi jika langsung ke Func pun saya rasa tidak ada masalah.

Contoh Lain

Karena method bisa memiliki parameter maka Func pun sudah pasti bisa juga menerima parameter. Berikut adalah contohnya

Sintaks dasar dari Func-nya adalah

Nilai kembalian selalu diletakkan pada bagian paling akhir, untuk parameter bisa banyak sampai 16, jangan lupa bahwa yang paling akhir adalah nilai kembalian bukan parameter.

Func dan lambda

Kalau kamu merasa dengan menggunakan Func kode yang kamu buat terlihat keren maka lambda akan membuat Func yang sudah keren menjadi lebih keren lagi. Perhatikan contoh yang saya berikan ini.

Gimana? keren kan πŸ˜€

Penggunaan Func yang Lebih Nyata

Untuk bisa memahami manfaat dari Func maka kita harus melihat penggunaan Func yang menyelesaikan suatu permasalahan.

Permasalahan

Misal kita mempunyai sebuah collection dalam bentuk List yang isinya adalah angka

Kita ingin bisa memilih angka yang hanya lebih dari 5, maka kita buat methodnya, seperti di bawah ini

Kita ingin lagi, kali ini hanya mengambil angka genap, kita buat lagi methodnya

Perhatikan baik-baik kedua method di atas. Keduanya hampir mirip, cuma berbeda di kondisi yang ada di dalam if. Func bisa kita gunakan di sini.

Solusi

Method di atas memanfaatkan Func untuk membuat kondisi yang diinginkan untuk memilih data. Kita gunakan kembali kriteria pemilihan di atas yakni angka lebih dari 5 dan angka genap maka berikut ini adalah jadinya

Dengan begitu ketika kita ingin menyeleksi data dengan kondisi yang lain kita tidak perlu membuat method baru, cukup gunakan method GetNumber dengan parameter keduanya berupa lambda yang menyatakan kondisi pemilihan data.

Penutup

Func ini saya lihat banyak digunakan untuk kode-kode yang bersifat generic. Tidak akan rugilah pokoknya mempelajari penggunaan Func. Memahaminyapun tidak sulit. Yang sulit menurut saya adalah pada kondisi kapan Func ini bisa digunakan. Saya rasa memang membutuhkan jam terbang untuk bisa mendesain kode yang bersifat generic.

Facebook Comments
 

Agung Setiawan

Agung Setiawan adalah software engineer di BukaLapak.com, penulis sekaligus pecinta sastra, dan pembaca buku

 
Halo, perkenalkan saya Agung Setiawan.
Saya Software Engineer di BukaLapak.
Simak pemikian saya soal dunia Software Engineering via Twitter di @agungsetiawanmu dan facebook
Blog ini saya update seminggu sekali jadi sering-sering saja mampir
Mau belajar Vim bareng saya?
Belajar ngoding dari nol menggunakan PHP

One thought on “C# Func, Teori dan Kegunaannya

Leave a Reply

Your email address will not be published. Required fields are marked *