• Tidak ada hasil yang ditemukan

Bahasa Pemrograman Fungsional F#

N/A
N/A
Protected

Academic year: 2021

Membagikan "Bahasa Pemrograman Fungsional F#"

Copied!
11
0
0

Teks penuh

(1)

Bahasa Pemrograman Fungsional F#

Oleh:

Yabert Yanuar Santoso

NIM : 612005023

Skripsi

Untuk melengkapi syarat-syarat memperoleh Ijasah Sarjana Teknik Elektro

FAKULTAS TEKNIK PROGRAM STUDI TEKNIK ELEKTRO UNIVERSITAS KRISTEN SATYA WACANA

SALATIGA 2011

(2)

Bahasa Pemrograman Fungsional F#

Oleh:

Yabert Yanuar Santoso

NIM : 612005023

Skripsi ini telah diterima dan disahkan Sebagai salah satu persyaratan guna mencapai

SARJANA TEKNIK ELEKTRO

dalam

Konsentrasi Teknik Elektronika

FAKULTAS TEKNIK PROGRAM STUDI TEKNIK ELEKTRO UNIVERSITAS KRISTEN SATYA WACANA

SALATIGA Disahkan oleh : Pembimbing I Pembimbing II Handoko, M. Eng Tgl : ……… Hartanto K. Wardana, S.T, M.T Tgl : ………

(3)

i

INTISARI

Skripsi ini bertujuan menghasilkan pedoman pembelajaran yang dapat digunakan untuk mempelajari bahasa pemrograman fungsional F#. Selain itu juga dibuat pedoman untuk praktikum Artificial Intelligence (AI) sebagai contoh penerapan algoritma AI dengan menggunakan bahasa pemrograman F# (Pada saat skripsi ini dibuat, tidak terdapat buku maupun bahan pembelajaran mengenai bahasa pemrograman fungsional F# yang berbahasa Indonesia.)

Pedoman praktikum pembelajaran F# terdiri dari delapan topik dan untuk praktikum AI dibuat enam topik. Untuk pedoman pembelajaran F#, masing-masing topik saling terkait dan terdiri dari tujuan, dasar teori, contoh dan tugas. Tujuan, dasar teori, dan contoh digunakan untuk menjelaskan hasil yang hendak dicapai oleh mahasiswa, membantu memahami dasar materi dan membantu dalam pengerjaan tugas yang diberikan.. Tugas diberikan untuk membantu dalam me-review pengetahuan yang sudah didapat dalam mempelajari pedoman dengan cara praktek.

Pengujian dilakukan secara tatap muka dan secara online (lewat internet). Pengujian untuk peserta dengan tatap muka dilakukan untuk delapan topik pedoman pembelajaran F#, sementara untuk pengujian untuk peserta secara online hanya dua topik saja (terkait masalah waktu dari peserta). Dari analisis kuisioner dengan menggunakan metode chi-square didapatkan nilai χ2 (nilai chi-square) dimana χ2 tabel < χ2

hitung yaitu 21,02 < 115,93 sehingga Ha (pernyataan bahwa responden puas) diterima yang artinya responden merasa puas terhadap kualitas pedoman. Dari hasil pengujian peserta praktikum, baik peserta dengan pengajaran tatap muka atau peserta dengan sistem pengajaran online, didapat hasil 85,57 dan 90.

(4)

ii

KATA PENGANTAR

Segala puji dan syukur penulis berikan kepada Tuhan Yesus yang telah memberikan anugrah-NYA dalam menyelesaikan skripsi ini sebagai syarat kelulusan dari Fakultas Teknik Elektro dan Komputer Universitas Kristen Satya Wacana Salatiga.

Penyusunan skripsi ini diharapkan dapat berguna bagi siapa saja yang ingin mempelajari bahasa pemrograman F# maupun yang ingin mengembangkan skripsi ini.

Dalam menulis skripsi ini, penulis mendapatkan bantuan dan bimbingan dari berbagai macam pihak. Karena itu penulis mengucapkan terima kasih kepada :

1. Tuhan Yesus Kristus atas hikmat dan pertolongan-NYA sehingga penulis mampu menyelesaikan skripsi ini

2. Keluarga, yang secara tidak langsung telah memberikan dorongan untuk segera menyelesaikan skripsi ini

3. Bapak Handoko M.Eng yang telah memberi topik ini dan membimbing baik dalam penulisan, memberi ide-ide untuk pengujian dan penulisan dan memberikan dorongan moral bagi penulis untuk segera menyelesaikan skripsi ini 4. Bapak Hartanto Kusuma Wardana M.T yang telah membimbing baik dalam penulisan, memberikan pemahaman kepada penulis mengenai Artificial

Intelligence dan memberikan dorongan moral bagi penulis untuk mampu

menyelesaikan skripsi ini.

5. Teman-teman peserta pengujian tatap muka : Albert, Samuel, Luis, Michael, Boby, Black, Patria, Wawan, BH, Widji, Roby, Yansen dan Arif yang sudah mau meluangkan waktunya dibalik kesibukan masing-masing untuk hadir di lab dan mengikuti pembelajaran F#

(5)

iii

6. Tjiong bersaudara yang sudah membantu dan memberi masukan dalam membuat pedoman sekaligus salah satu peserta pengujian online

7. Bapak Darmawan Utomo M.Eng yang sudah mengijinkan penulis untuk meminjam penulisan milik Stefanus Hermawan Susanto untuk menjadi bahan referensi penulisan skripsi ini

8. Stefanus Hermawan Susanto yang sudah memberi banyak masukan dan menceritakan pengalamannya pada penulis

9. Patria dan Samuel yang sudah meminjamkan printernya untuk mencetak prototipe dan bahan referensi untuk skripsi ini. Thanks brothers! 

10.Michael A.S, yang sudah sangat membantu dalam menyelesaikan AI . Tx berat!

11.Om sentral yang sudah membantu mem-fotokopi prototipe skripsi ini dengan cepat sehingga lebih hemat dan tidak merepotkan Patria 

12.Teman-teman Living Soul yang membuat penulis dapat melepas stress dalam mengerjakan skripsi ini sekaligus menambah pekerjaan selain skripsi 

13.Semua pihak yang berperan dalam kesuksesan skripsi ini yang tidak dapat disebutkan namanya satu per satu.

Skripsi ini tentunya masih jauh dari sempurna, maka segala kritik dan saran terhadap skripsi ini akan sangat berharga demi pencapaian yang lebih baik di masa mendatang. Akhir kata, semoga skripsi ini dapat bermanfaat bagi pembaca.

Salatiga, November 2011 Penulis

(6)

iv

DAFTAR ISI

Halaman INTISARI ... i KATA PENGANTAR ... ii DAFTAR ISI ... iv

DAFTAR GAMBAR ... viii

DAFTAR TABEL ... ix

BAB I PENDAHULUAN 1.1 Tujuan ... 1

1.2 Latar Belakang Masalah ... 1

1.3 Batasan Masalah ... 3

1.4 Sistematika Penulisan ... 4

BAB II DASAR TEORI 2.1 Bahasa Pemrograman Fungsional ... 5

2.2 Sejarah F# ... 6

2.3 Konsep Utama pada Bahasa Pemrograman Fungsional yang Ada Pada F# 2.3.1 Bekerja dengan nilai yang tidak termutasi ... 7

2.3.2 Bekerja dengan struktur data yang tidak dapat termutasi 9

2.3.3 λ – Calculus ... 10

2.4 Struktur Bahasa F# 2.4.1 Mengaktifkan lightweight syntax ... 13

2.4.2 Mengenal scope dan menggunakan let ... 14

(7)

v

2.4.4 F# Interactive ... 16

2.4.5 Mengenal type pada F# ... 16

2.4.6 Menggunakan Visual Studio 2010 untuk membuat kode F# 17 2.5 Pengolahan dan Analisis Data 2.5.1 Pengumpulan Data ... 21 a. Uji Validitas ... 22 b. Uji Reliabilitas ... 22 2.5.2 Editing Data ... 23 2.5.3 Koding Data ... 23 2.5.4 Pengolahan Data ... 23

2.5.5 Analisa dan Interpretasi Data ... 24

BAB III PERANCANGAN MODUL PRAKTIKUM 3.1 Perancangan modul praktikum ... 26

3.2 Pembahasan modul praktikum F# dasar ... 27

3.2.1 Topik 1 – Pengenalan F# ... 27

3.2.2 Topik 2 – Struktur Data pada F#, Pattern Matching dan Rekursi ... 27

3.2.3 Topik 3 – Record, Discriminated Union dan Pemrograman Imperatif F# ... 28

3.2.4 Topik 4 – Memproses Data ... 29

3.2.5 Topik 5 – Pemrograman Berorientasi Objek .. 30

3.2.6 Topik 6 – Pemrograman .NET pada F# .. 30

3.2.7 Topik 7 – Pengolahan Database SQL Server dengan F# 31

3.2.8 Topik 8 – Parallel Programming ... 31

(8)

vi

3.3.1 Topik 1 – Breadth First Search ... 32

3.3.2 Topik 2 – Depth First Search ... 32

3.3.3 Topik 3 – Greedy-Best First Search ... 32

3.3.4 Topik 4 – Hill Climbing Search ... 33

3.3.5 Topik 5 – The Wumpus World ... 33

3.3.6 Topik 6 – Dynamic Programming ... 33

BAB IV PENGUJIAN PEDOMAN 4.1 Pelaksanaan Praktikum ... 34

4.2 Pengujian kepada mahasiswa ... 35

4.3 Pengujian Validitas dan Reliabilitas ... 37

4.4 Uji Hipotesis ... 41

4.5 Analisa Hasil Penilaian ... 43

BAB V KESIMPULAN DAN SARAN 5.1 Kesimpulan ... 44

5.2 Saran Pengembangan ... 45

DAFTAR PUSTAKA ... 46

LAMPIRAN A. PEDOMAN F# 1 : PENGENALAN F# ... 48

LAMPIRAN B. PEDOMAN F# 2 : STRUKTUR DATA PADA F#, PATTERN MATCHING DAN REKURSI ... 60

LAMPIRAN C. PEDOMAN F# 3 : RECORD, DISCRIMINATED UNION DAN PEMROGRAMAN IMPERATIF F# ... 71

LAMPIRAN D. PEDOMAN F# 4 : MEMPROSES DATA ... 80

LAMPIRAN E. PEDOMAN F# 5 : PEMROGRAMAN BERORIENTASI OBJEK DENGAN F# ... 98

LAMPIRAN F. PEDOMAN F# 6 : PEMROGRAMAN .NET PADA F# 109

LAMPIRAN G. PEDOMAN F# 7 : PEMROGRAMAN DATABASE SQL SERVER DENGAN F# ... 116

(9)

vii

LAMPIRAN H. PEDOMAN F# 8 : PARALLEL PROGRAMMING ... 131

LAMPIRAN I. PEDOMAN AI 1 : BREADTH FIRST SEARCH ... 156

LAMPIRAN J. PEDOMAN AI 2 : DEPTH FIRST SEARCH ... 161

LAMPIRAN K. PEDOMAN AI 3 : GREEDY BEST-FIRST SEARCH 165 LAMPIRAN L. PEDOMAN AI 4 : HILL CLIMBING SEARCH ... 169

LAMPIRAN M. PEDOMAN AI 5 : THE WUMPUS WORLD ... 173

LAMPIRAN N. PEDOMAN AI 6 : DYNAMIC PROGRAMMING ... 201

LAMPIRAN O. HASIL PENILAIAN ... 205

LAMPIRAN P. TABEL STATISTIK ... 206

(10)

viii

DAFTAR GAMBAR

Halaman

Gambar 2.1. Tampilan awal Visual Studio 2010 ... 18

Gambar 2.2. Tampilan layar create new project ... 18

Gambar 2.3. Tampilan lembar kerja Visual Studio 2010 ... 19

Gambar 2.4. Gambar solution explorer ... 20

Gambar 2.5. Gambar jendela pemilihan library ... 20

Gambar 2.6. Gambar alur kerja pengumpulan data sampai kepada interpretasi data ... 21

Gambar 4.1. Pelaksanaan praktikum di ruang BS-10 ... 34

(11)

ix

DAFTAR TABEL

Halaman

Tabel 2.1. Tabel Tipe dalam F# ... 17

Tabel 4.1. Pernyataan kuisioner ... 36

Tabel 4.2. Perhitungan korelasi product moment ... 37

Tabel 4.3. Perhitungan korelasi product moment item no. 2 ... 38

Tabel 4.4. Total nilai skor ganjil dan genap ... 40

Tabel 4.5. Tingkat kesetujuan responden ... 41

Tabel 4.6. Test Chi-Square ... 42

Referensi

Dokumen terkait

Berdasarkan hasil penelitian yang telah dilakukan, diperoleh hasil bahwa arakteristik pasir besi yang terdapat di pantai Marina kabupaten Bantaeng berdasarkan tingkat kedalaman

Untuk mengetahui apakah kadar parasetamol pada sediaan tablet parasetamol 500 mg yang terkandung di dalam tablet memenuhi syarat seperti yang tertera pada Farmakope Indonesia

pelaksanaan pelayanan teknis administrasi kepada Bupati dan semua unit kerja/perangkat kerja pemerintah pusat dan daerah dibidang Pengadaan, Pemberhentian, Pembinaan

merevisi program tersebut sesuai dengan masukan para ahli hingga akhirnya tersusunlah “program peningkatan kompetensi guru Sekolah Luar Biasa dalam menyusun Program

(1) Bidang Aset Daerah dipimpin oleh seorang Kepala Bidang yang mempunyai tugas mengkoordinasikan, merumuskan, dan mengatur dan mengendalikan tugas badan yang meliputi

• Penyakit siomegalovirus dengan awitan gejala pada usia &gt; satu bulan (pada tempat selain hati, limpa, atau kelenjar limfe) • Ensefalopati (paling tidak satu dari adanya

Untuk tahun yang berakhir pada tanggal 31 Desember 2014, beban bunga obligasi adalah sebesar Rp53.958 dan disajikan sebagai bagian dari akun biaya keuangan pada

Keluarga merupakan bagian yang paling utama ada dalam kehidupan seorang anak, keluarga yang membesarkan anak menjadi seseorang yang dapat tumbuh dan berkembang