Konsep Bahasa Pemrograman. Pemrograman Haskell

Ukuran: px
Mulai penontonan dengan halaman:

Download "Konsep Bahasa Pemrograman. Pemrograman Haskell"

Transkripsi

1 Konsep Bahasa Pemrograman Pemrograman Haskell Disusun Oleh : Musofa Danang Kurniawan Program Studi Teknik Informatika Faktultas Teknologi Informasi Universitas Kristen Satya Wacana Salatiga 2013

2 Pemrograman Haskell Haskell merupakan bahasa pemrograman yang fungsional, malas dan murni. Ia disebut malas karena tidak mengevaluasi ekspresi-ekspresi yang digunakannya yang sebenarnya memang tidak diperlukan untuk menentukan jawaban bagi suatu masalah. Kebalikan dari malas adalah teliti yang merupakan strategi pengevaluasian bagi kebanyakan bahasa pemrograman (C, C++, Java, bahkan ML). Salah satu ciri dari bahasa yang teliti adalah setiap ekspresi diteliti apakah hasil dari perhitungan tersebut penting atau tidak.(hal ini mungkin tidak mutlak benar seluruhnya karena adanya pengoptimalan compiler yang sering disebut dengan eleminasi kode mati yang akan menghilangkan ekspresi yang tidak digunakan di program yang sering dilakukan oleh bahasa-bahasa tersebut). Haskell disebut murni karena bahasa ini tidak memperbolehkan adanya efek samping (Efek samping adalah sesuatu yang mempengaruhi bagian di program. Misalnya suatu fungsi yang mencetak sesuatu ke layar yang mempengaruhi nilai dari variabel global. Tentu saja, suatu bahasa pemrograman yang tanpa efek samping akan menjadi sangat tidak berguna; Haskell menggunakan sebuah system monads untuk mengisolasi semua komputasi kotor dari program dan menampilkannya dengan cara yang aman. Haskell disebut bahasa fungsional karena evaluasi dari programnya sama dengan mengevaluasi sebuah fungsi dalam bahasa matematika murni. Hal ini juga yang membedakannya dari bahasa standard (seperti C dan Java) yang mengevaluasi sederetan pernyataan secara urut (inilah pola dari bahasa terstruktur ) Yang termasuk dalam bahasa pemrograman fungsional antara lain Lisp, Scheme, Erlang, Clean, Mercury, ML, OCaml, SQL, XSL dan lain-lain. Di antara bahasa fungsional tersebut, Haskell merupakan bahasa yang ideal dalam banyak hal. Bahasa fungsional seperti juga bahasa logika seperti Prolog adalah deklaratif. Kebalikannya yaitu bahasa procedural dan bahasa yang berorientasi pada obyek adalah terstruktur. Haskell memiliki sintak yang lebih mudah untuk dipahami daripada Lisp--bahasa turunan--(terutama bagi pemrogram yang pernah menggunakan bahasa yang menggunakan tanda baca yang sederhana/ringan seperti Python, TCL and REXX). Kebanyakan operatornya bersifat infix, tapi ada juga yang prefix. Pengaturan indentasi dan modulnya sangatlah familiar dan mungkin sangat menarik, misalnya tanda kurung bersarang yang terlalu dalam (seperti yang terlihat dalam Lisp) dihindari.

3 Sejarah Pemrograman Haskell Pada bulan September tahun 1987 diadakan pertemuan dalam konferensi Bahasa Pemrograman Fungsional dan Arsitektur Komputer atau Functional Programming Languages and Computer Architecture (FPCA 87) di Portland, Oregon, untuk membicarakan keadaan yang kurang menguntungkan di komunitas pemrograman fungsional yaitu adanya selusin bahasa pemrograman fungsional yang murni, kesemuanya mirip dalam hal bentuk ekspresi dan sintaknya. Telah dihasilkan suatu konsensus yang kuat dalam pertemuan itu yaitu bahwa penyebarluasan kegunaan dari kelas bahasa fungsional ini telah dihalangi oleh kekurangan dari kebanyakan bahasa. Telah diputuskan juga bahwa harus ada sebuah komite yang dibentuk untuk merancang suatu bahasa yang menyediakan komunikasi gagasan baru yang lebih cepat, suatu dasar yang stabil bagi pengembangan aplikasi nyata dan sebuah cara untuk membuat orang tertarik menggunakan bahasa fungsional. Kemudian diciptakanlah sebuah bahasa pemrograman fungsional yang murni yang dinamai Haskell. Nama tersebut diambil dari nama seorang ahli logika yaitu Haskell B. Curry yang telah menciptakan banyak dasar-dasar logika bagi kita. Tujuan utama dari komite tersebut adalah untuk merancang bahasa yang memenuhi syarat sebagai berikut : 1. Harus cocok untuk pengajaran, penelitian dan aplikasi termasuk untuk membuat sistem yang besar. 2. Harus seluruhnya dijelaskan melalui sintak dan semantik yang formal. 3. Harus tersedia secara bebas. Semua orang boleh mengimplementasikan bahasa tersebut dan menyebarkannya ke siapa saja yang mereka sukai. 4. Harus didasarkan pada gagasan yang sesuai dengan konsensus umum. 5. Harus mengurangi perubahan yang tidak diperlukan dalam bahasa pemrograman fungsional. Komite tersebut menganggap bahwa Haskell dapat dijadikan sebagai bahan penelitian masa depan dalam bidang rancangan bahasa dan berharap bahwa variasi bahasa akan muncul sesuai dengan hasil percobaan. Haskell kemudian terus berkembang sejak dipublikasikan. Pada pertengahan tahun 1997, telah ada empat rancangan bahasa yang dihasilkan (yang terbaru pada saat itu adalah Haskell 1.4). Pada saat workshop Haskell tahun 1997 di Amsterdam, diputuskan bahwa diperlukan varian yang stabil dari Haskell. Bahasa yang stabil ini disebut Haskell 98.

4 Haskell 98 mirip dengan Haskell 1.4, tapi ia menawarkan beberapa penyederhanaan dan penghilangan lubang-lubang jebakan karena ketidakhati-hatian. Setelah Haskell 98 stabil, kelihatan jelas sekali bahwa banyak program memerlukan akses ke suatu set pustaka fungsi yang lebih banyak (yakni berhubungan dengan input/output dan interaksi ringan dengan sistem operasi). Jika program ini menjadi fleksibel, sekumpulan pustaka harus distandarkan juga. Sejumlah usaha dilakukan oleh komite untuk memperbaiki pustaka Haskell 98. Haskell Haskell merupakan salah satu dari banyak bahasa pemrograman fungsional, seperti Lisp, Scheme, Erlang, Clean, Mercury, ML, Ocaml, SQL, XSL, dll. Mirip dengan bahasa pemrograman fungsional, bahasa pemrograman logical seperti Prolog merupakan bahasa pemrograman deklaratif. Berlawanan dengan kedua kategori di atas, bahasa pemrograman prosedural dan object-oriented masuk dalam kategori bahasa pemrograman terstruktur. Dikatakan terstruktur, karena mengandung urutan perintah yang dieksekusi satu demi satu secara strict (keras). Beberapa bahasa pemrograman seperti Python, Perl, dan Ruby melewati batasan-batasan paradigma di atas. Di antara bahasa pemrograman fungsional, Haskell dalam banyak hal merupakan yang paling ideal. Haskell merupakan bahasa pemrograman fungsional murni, yang berarti jauh dari efek samping. Bahasa pemrograman fungsional merupakan ekspresi tunggal, yang dieksekusi dengan mengevaluasi ekspresi tersebut. Bahasa pemrograman fungsional mirip dengan spreadsheet, di mana nilai dari tiap cell ditetapkan yang berpengaruh pada nilai dari cell lainnya. Fokusnya adalah pada apa yang akan dihitung, bukan bagaimana proses penghitungannya. Adapun kelebihan dari bahasa pemrograman fungsional antara lain: 1. Singkat. Program fungsional cenderung lebih ringkas dibanding program terstruktur (2 sampai 10 kali). 2. Mudah dimengerti.

5 Program fungsional seringjali lebih mudah untuk dimengerti. Dalam kasus Quicksort, tidak terlalu diperlukan pengetahuan mengenai Haskell maupun quicksort. Hal tersebut tidak dapat terjadi pada program C, yang membutuhkan waktu untuk dimengerti, dan sangat mudah untuk melakukan kesalahn kecil yang mengakibatkan program tidak dapat dieksekusi. 3. Tidak ada tumpukan pada memori. Tidak ada kemungkinan memperlakukan integer sebagai pointer, atau dilanjutkan dengan pointer null. 4. Kode dapat digunakan kembali. Bahasa pemrograman fungsional menggunakan polymorphism, yang akan meningkatkan penggunaan kembali kode. 5. Pelekatan yang kuat. Bahasa fungsional non-strict memliki fitur kuat lainnya: hanya mengevaluasi program seperti yang diperlukan untuk menghasilkan jawaban, yang sering disebut dengan lazy evaluation. Struktur data dievaluasi secukupnya untuk menghasilkan jawaban, dan sebagian mungkin tidak dievaluasi sama sekali. Hal ini memungkinkan pelekatan untuk menyusun bersama program yang sudah ada. Hal ini memungkinkan penggunaan kembali program, atau potongan program lebih sering dari yang dapat dilakukan oleh pengaturan terstruktur. 6. Abstraksi yang kuat. Secara umum bahasa fungsional menawarkan cara-cara baru yang kuat untuk mengenkapsulasi abstraksi. Abstraksi mengizinkan kita untuk menentukan objek yang pekerjaan internalnya tersembunyi. Abstraksi merupakan kunci untuk membangun program modular yang dapat dipelihara. Satu mekanisme abstraksi yang kuat yang terdapat dalam bahasa fungsional adalah higher-order function. 7. Manajemen memori yang terintegrasi. Kebanyakan program rumit perlu mengalokasikan memori dinamis dari tumpukan (heap). Setiap bahasa fungsional memudahkan pemrogram dari beban manajemen penyimpanan

6 tersebut. Penyimpanan dialokasikan dan diinisialisaikan secara implisit, dan diselamatkan secara otomatis oleh kolektor sampah. Mengapa Menggunakan Haskell Menulis system software yang besar sangatlah sulit dan mahal. Dan bahkan untuk mengelola system itu bisa lebih sulit dan lebih mahal. Bahasa pemrograman fungsional semacam Haskell dapat membuatnya lebih mudah dan lebih murah. Haskell sebagai bahasa pemrograman fungsional murni dapat : 1. Meningkatkan produktifitas programmer (Ericsson banyak memanfaatkan hasil percobaan Haskell dalam software telephony) 2. Lebih singkat, lebih jelas dan kode-kodenya mudah dibaca 3. Errornya semakin sedikit dan reabilitynya lebih tinggi 4. Membuat jarak antara programmer dengan bahasa itu lebih pendek 5. Waktu untuk membuat program menjadi lebih singkat Banyak alasan untuk menggunakan Haskell diantaranya adalah kita bisa menulis kode bebas atau bugs-free code dalam waktu yang lebih singkat dibanding bahasa lainnya. Bahasa ini terusmenerus berkembang dan kian hari makin banyak kelebihannya. Selain itu, Haskell cocok untuk berbagai macam aplikasi. Sebagai contoh: Quicksort dalam Haskell: qsort[] = [] qsort(x:xs)= qsort elts_lt_x ++ [x] ++ qsort elts_lt_greq_x where elts_lt_x = [y y<-xs, y<x] elts_greq_x = [y y<-xs, y>= x] Quicksort dalam C: qsort(a, lo, hl) int a[], hi, lo;

7 { int h, l, p, t; if (lo<hi) { l=lo; h=hi; p=a[hi]; do while ((l<h) && (a[l]<=p)) l=l+1; while ((h>l) && (a[h]>=p)) h=h-1; if (l<h) { t=a[l]; a[l]=a[h]; a[h]=t; } } while (l<h); t=a[l]; a[l]=a[hi]; a[hi]=t; qsort(a, lo, l-1); qsort(a, l+1, hi); } }

8 Di samping itu yang paling penting adalah komunitas pengguna Haskell yang sangat membantu dalam memecahkan permasalahan seputar pemrograman menggunakan Haskell. Bahasa pemrograman ini secara konstan berkembang (bukan berarti bahasa pemrograman ini tidak stabil, tetapi banyak perluasan yang telah ditambahkan pada beberapa compiler yang sangat membantu pengguna) dan seringkali usul pengguna diperhatikan saat perluasan akan diimplementasikan. Mengapa Tidak Menggunakan Haskell Ada dua kelemahan dari Haskell yaitu : 1. kode programnya cenderung agak lambat berkembang dibanding program yang sama yang ditulis dalam bahasa seperti C 2. Haskell cenderung sulit untuk didebug. Kelemahan kedua bukanlah masalah yang terlalu besar tetapi yang pertama agak mengganggu, namun walaupun demikian CPU time selalu lebih murah daripada programmer time dan tidak apalah jika harus menunggu sedikit lebih lama untuk melihat outputnya setelah menyimpannya beberapa hari terhitung dari saat diprogram dan didebug. Namun Haskell sekarang telah memiliki standard interface fungsi asing atau foreign-function interface yang memperbolehkan kita untuk berhubungan dengan kode program yang ditulis dalam bahasa lain. Keuntungan Haskell Tidak ada variabel yang berubah Salah satu dari kebiasaan pemrograman paling umum dalam pemrograman terstruktur adalah untuk memberikan suatu nilai ke suatu variabel, kemudian memberinya suatu nilai berbeda seperti contoh dalam bahasa C berikut ini if (myvar==37) {...} myvar += 2 for (myvar=0; myvar<37; myvar++) {...}

9 Namun dalam Haskell sangalah berbeda variabel untuk jenis ini tidak ada sama sekali. Suatu nama bisa berupa nilai, tetapi sekali diberikan nilai, nama tersebut mewakili nilai itu di seluruh program. Tidak boleh ada pengubahan. Dalam Haskell, " variabel" adalah kurang lebih seperti variabel dalam persamaan matematika. Sebagai inspirasi, lihat contoh dalam persamaan matematika di bawah ini: 10x + 5y - 7z + 1 = 0 17x + 5y - 10z + 3 = 0 5x - 4y + 3z - 6 = 0 Terlihat bahwa ada beberapa nama yang tidak diketahui nilainya berapa, akan tetapi yang tidak diketahui tersebut tidak akan berubah samapai kita berhasil menemukan jawabannya. Meniadakan efek samping Dalam Haskell, perhitungan fungsi tidak bisa mempunyai efek samping di dalam program itu. Kebanyakan efek samping di dalam program terstruktur mungkin jenis variabel yang didefinisikan kembali dalam panel akhir ( baik variabel global, atau lokal, atau kamus, daftar, atau struktur penyimpanan lain), tetapi tiap-tiap Peristiwa I/O adalah juga merupakan efek samping. Disain baik mungkin memerlukan keluaran dan masukan itu hanya terjadi di dalam suatu kesatuan terbatas dinamai fungsi. Sedikit pemrograman tersusun ditujukan untuk membaca dan menulis ke STDIO, file, alat grafis, dll., disemua tempat dan dengan cara yang sukar untuk diperkirakan. pemrograman fungsional mengandung lingkungan skrip tingkat yang lebih tinggi. Tidak ada perulangan Corak menarik Haskell yang lain adalah meniadakan segala konstruksi perulangan. Tidak ada for dan tidak ada while. Tidak Ada GOTO atau branch atau jmp atau break. Orang akan berpikir bahwa mustahil untuk mengendalikan pekerjaan suatu program tanpa konstruksi (terstruktur) dasar seperti; tetapi membuang hal-hal ini benar-benar sungguh melegakan. Ketiadaan perulangan sungguh sama halnya perihal tidak ada efek samping. Ketika masuk dalam suatu perulangan maka tidak bisa mendefinisikan variabel-variabel dengan nilai yan berbeda, tak

10 ada yang membedakannya. Kebutuhan untuk percabangan adalah digunakan unutk membedakan aktivitas program. Sedangkan pemrograman fungsional tidak memiliki aktivitas, hanya definisidefinisi fungsi sehingga tidak memerlukan percabangan.tetapi tetap ada kemungkinan untuk mensimulasikan hampir semua konstruksi perulangan umum, yang sering menggunakan kata kunci sama seperti di bahasa yang lain, dan dalam suatu gaya yang sepertinya serupa ke konstruksi terstruktur. Tidak ada program order Yang lain yang tidak dibutuhkan olah Haskell adalah program order. Satuan definisi yang membenahi suatu program dapat terjadi dalam order manapun dan apapun juga. Untuk contoh, ini mungkin nampak seperti suatu masalah: Kutipan program : -- Program excerpt j = 1+i i = 5 -- Hugs session after loading above program -- Main> i -- 5 :: Integer -- Main> j -- 6 :: Integer Yang perlu dipahami dalam program seperti di atas adalah bahwa i dan j tidak diberikan nilai-nilai, tetapi diberikan dari apa yang proses berikan. Sesungguhnya, i dan j adalah fungsi, dan contoh di atas adalah definisi fungsi. Pada banyak bahasa pemprograman terstruktur, tidak boleh mendefinisikan suatu fungsi lebih dari satu kali (setidaknya dalam lingkup yang sama). Tipe Data

11 Sebelumnya akan dibahas dulu tipe-tipe data yang akan digunakan, yaitu Integer, Char, dan Double, Bool, dan list. Integer menyatakan bilangan bulat. Contoh Integer adalah -1, 0, dan 20. Char menyatakan karakter (simbol-simbol yang digunakan untuk penulisan), yang contohnya adalah a,?, dan 4. Double menyatakan bilangan floating point, yaitu tipe data bilangan yang bisa melambangkan pecahan. Contohnya adalah 3.14, 0.0, dan Perhatikan bahwa 0 adalah Integer sedangkan 0.0 merupakan floating point. 2.0, 5.0, dan 11.0 juga merupakan floating point. Tipe data Integer tidak akan pernah dituliskan menggunakan tanda desimal (titik), sedangkan tipe data floating point selalu dituliskan menggunakan tanda desimal. Bool dapat bernilai True atau False (tidak keduanya). List sendiri secara mudahnya adalah deretan dari data-data yang tipenya sama. Contohnya adalah [1,2,3] yang merupakan list Integer. Karena Haskell merupakan bahasa fungsional murni, semua perhitungan dilakukan melalui evaluasi dari ekspresi (terminologi sintaks) untuk menghasilkan nilai-nilai (entitas abstrak yang dianggap sebagai jawaban). Setiap nilai berasosiasi dengan satu tipe (secara intuisi tipe dapat dianalogikan sebagai himpunan nilai-nilai). Ekspresi termasuk nilai-nilai atomik seperti integer 5, karakter a, dan fungsi \x -> x+1, seperti halnya juga nilai-nilai terstruktur seperti list [1,2,3] dan pasangan ( b,4). Seperti halnya ekspresi menandai nilai, ekspresi tipe merupakan terminologi sintaks yang menandai tipe nilai. Ekspresi tipe termasuk tipe atomik Integer (integer dengan ketepatan tanpa batas), Char (karakter), Integer->Integer (fungsi pemetaan Integer ke Integer), juga tipe terstruktur [Integer] (list integer homogen) dan (Char,Integer) (pasangan integer dan karakter). Semua nilai dalam Haskell adalah first-class - dapat dilewatkan sebagai argumen ke fungsi, dikembalikan sebagai hasil, diletakkan dalam struktur data, dll. Tipe dalam Haskell, pada sisi lain, bukan merupakan first class. Tipe dalam hal mendeskripsikan nilai, dan asosiasi dari nilai dengan tipenya dinamakan typing. Typing dapat ditulis sebagai berikut:

12 5 :: Integer a :: Char inc :: Integer -> Integer [1,2,3] :: [Integer] ( b,4) :: (Char,Integer) :: dibaca bertipe. Fungsi dalam Haskell biasanya digambarkan sebagai rangkaian persamaan. Sebagai contoh fungsi inc dapat digambarkan sebagai persamaan tunggal: inc n = n+1 Sebuah persamaan merupakan contoh dari sebuah deklarasi. Jenis lain dari deklarasi adalah type signature declaration, di mana dapat dideklarasikan typing secara eksplisit untuk inc: inc :: Integer -> Integer Untuk tujuan pendidikan, jika akan diindikasikan sebuah ekspresi c 1 menghasilkan atau menurunkan ekspresi atau nilai c 2, maka ditulis: c 1 c 2 Sebagai contoh: inc(inc 3) 5 Sistem tipe statis pada Haskell menggambarkan hubungan formal antara tipe dan nilai. Sistem tipe statis meyakinkan program Haskell type safe; yaitu pemrogram aman dari kesalahan pemilihan tipe. Sebagai contoh tidak dapat dilakukan penjumlahan 2 karakter, sehingga ekspresi a + b merupakan penulisan yang salah. Keuntungan utama dari bahasa bertipe statis adalah semua kesalahan/error tipe terdeteksi saat program di-compile. Tidak semua kesalahan ditangkap oleh sistem tipe; ekspresi seperti 1/0 dapat bertipe, tetapi akan menghasilkan kesalahan pada waktu eksekusi. Tetapi sistem tipe masih menemukan kesalahan program pada waktu compile, yang mengizinkan compiler untuk menghasilkan kode yang lebih efisien.

13 Sistem tipe juga memastikan bahwa user-supplied type signature adalah benar. Dalam kenyataannya sistem tipe pada Haskell cukup kuat untuk mengizinkan pengguna untuk menghindari menulis type signature sama sekali; dengan kata lain sistem tipe menyimpulkan tipe yang benar untuk pengguna. Tipe Polymorfism Haskell juga menyertakan tipe polimorfis tipe yang dalam beberapa cara terukur di atas semua tipe. Ekspresi tipe polimorfis menguraikan keluarga dari tipe-tipe. Sebagai contoh, ( a )[a] adalah keluarga dari tipe di mana untuk setiap tipe a berisi tipe list dari a. List dari integer (seperti [1,2,3]), list dari karakter ([ a, b, c ]), sekalipun list dari list integer, dll, adalah anggota dari keluarga ini. (Sebagai catatan [2, b ] bukan contoh yang valid karena tidak ada tipe tunggal yang berisi 2 dan b ). List merupakan struktur data yang umum digunakan dalam bahasa fungsional, dan merupakan sarana yang baik untuk menerangkan prinsip-prinsip dari polimorfisme. List [1,2,3] dalam Haskell merupakan kependekan dari list 1:(2:(3:[])), di mana [] merupakan list kosong dan : merupakan operator infix yang meletakkan argumen pertama di depan argumen kedua (dalam hal ini list), atau dapat juga ditulis 1:2:3:[]. Sebagai contoh dari fungsi user-defined yang beroperasi pada list, pertimbangkan masalah menghitung jumlah elemen dalam list berikut: length :: [a] -> Integer length [] = 0 length (x:xs) = 1 + length xs Dari persamaan di atas terbaca: Panjang dari list kosong adalah 0, dan panjang dari list di mana elemen pertamanya x dan sisanya xs adalah 1 ditambah panjang dari xs. (sebagai catatan xs merupakan jamak dari x, dan harus dibaca demikian).

14 Walaupun secara intuitif, contoh di atas menyorot sebuah aspek penting dari Haskell, yaitu pattern matching (pencocokan pola). Ruas kiri persamaan mengandung pola seperti [] dan x:xs. Dalam sebuah fungsi aplikasi, pola-pola seperti ini dibandingkan dengan parameter aktual (nyata) dengan cara intuitif ([] hanya cocok dengan list kosong, dan x:xs akan cocok dengan list apa saja dengan minimal satu elemen, x dihubungkan dengan elemen pertama dan xs dengan sisanya dalam list). Jika pencocokan sukses, ruas kanan dievaluasi dan dikembalikan sebagai hasil dari aplikasi. Jika gagal, persamaan berikutnya akan dicoba, dan jika semua persamaan gagal, maka hasilnya error. Fungsi length di atas juga merupakan contoh dari sebuah fungsi polimorfis. Fungsi tersebut dapat diterapkan pada list yang berisi elemen bertipe apa saja, sebagai contoh [Integer], [Char], atau [[Integer]]. length [1,2,3] 3 length [ a, b, c ] 3 length [[1],[2],[3]] 3 Berikut adalah 2 contoh fungsi polimorfis dalam list. fungsi head mengembalikan elemen pertama dari list, fungsi tail mengembalikan semua elemen kecuali elemen pertama. head head (x:xs) tail tail (x:xs) :: [a] -> a = x :: [a] -> [a] = xs

15 Tidak seperti fungsi length, fungsi-fungsi di atas tidak didefinisikan untuk semua nilai yang mungkin dari argumen mereka. Runtime error (kesalahan saat program dijalankan) akan muncul saat fungsi-fungsi tersebut diterapkan pada list kosong. Dengan tipe polimorfis beberapa tipe lebih umum dibanding lainnya dalam hal himpunan nilai yang didefinisikan lebih besar. Sebagai contoh tipe [a] adalah lebih umum dari [Char]. Dengan kata lain, tipe terakhir dapat diturunkan dari sebelumnya dengan substitusi yang cocok untuk a. Dibandingkan dengan bahasa bertipe monomorfis seperti C, polimorfisme meningkatkan ke-ekspresif-an, dan tipe inferensi meringankan beban tipe dari pemrogram. Tipe prinsipal (utama) dari ekspresi atau fungsi adalah tipe yang paling tidak umum, secara intuitif, berisi semua instan dari ekspresi. Sebagai contoh, tipe prinsipal dari fungsi head adalah [a] -> a; [b] -> a, a -> a. Tipe User-Defind Kita dapat menentukan tipe data sendiri dalam Haskell menggunakan deklarasi data. Tipe penting yang sudah dikenal oleh Haskell adalah nilai kebenaran: data Bool = False True Tipe yang didefinisikan di sini adalah Bool yang mempunyai dua nilai, yaitu True dan False. Tipe Bool adalah sebuah contoh dari tipe konstruktor, dan True dan False adalah data konstruktor (atau konstruktor saja). Dengan cara yang sama kita dapat mendefinisikan tipe warna: data Color = Red Green Blue Indigo Violet

16 Bool dan Color dalam contoh di atas merupakan tipe enumerasi. Berikut contoh dari tipe dengan hanya satu data konstruktor: data Point a = Pt a a Karena merupakan konstruktor tunggal, tipe seperti Point sering disebut tipe tuple, karena merupakan produk kartesian (dalam hal ini biner) dari tipe lain. Berlawanan dengan itu, tipe multi-konstruktor seperti Bool dan Color disebut union dari tipe sum. Point merupakan contoh dari tipe polimorfis: untuk semua tipe t, ia mendefinisikan tipe dari titik-titik kartesian yang menggunakan t sebagai tipe koordinat. Dalam contoh sebelumnya [] juga merupakan tipe konstruktor. Pada tipe t (bertipe apa saja) dapat diterapkan [] untuk menghasilkan tipe baru [t]. sintaks Haskell mengizinkan [] t ditulis sebagai [t]. -> juga merupakan tipe konstruktor; diberikan 2 tipe t dan u, t -> u merupakan tipe dari fungsi pemetaan elemen dari tipe t ke elemen dari tipe u. Catatlah bahwa tipe dari konstruktor data biner Pt adalah a -> a -> Point a, sehingga yang berikut adalah valid: Pt Pt a b :: Point Float :: Point Char Pt True False :: Point Bool Pada sisi lain, ekspresi seperti Pt a 1 tidak valid karena a dan 1 berbeda tipe. Penting untuk membedakan antara menerapkan data konstruktor untuk menghasilkan nilai, dan menerapkan tipe konstruktor untuk menghasilkan tipe; yang pertama terjadi saat run-

17 time dan bagaimana kita menghitung dalam Haskell, di mana yang terakhir terjadi saat compiletime. Tipe konstruktor seperti Point dan data konstruktor seperti Pt adalah dalam namespaces terpisah. Ini memungkinkan nama yang sama untuk digunakan oleh tipe konstruktor dan data konstruktor, seperti berikut: Tipe Rekursif data Point a = Point a a Tipe dapat juga rekursif, seperti tipe dalam pohon biner: data Tree a = Leaf a Branch (Tree a) (Tree a) Di sini didefinisikan tipe polimorfis pohon biner yang mana elemen-elemennya adalah node Leaf berisi nilai dari tipe a, atau node internal ( branch ) berisi dua sub-tree (rekursif). Saat membaca deklarasi data seperti ini, ingat bahwa Tree adalah tipe konstruktor, di mana Branch dan Leaf adalah data konstruktor. Di samping menciptakan koneksi antara konstruktor-konstruktor ini, deklarasi di atas mendefinisikan tipe berikut untuk Branch dan Leaf: Branch :: Tree a -> Tree a -> Tree a Leaf :: a -> Tree a Dengan contoh di atas telah didefinisikan suatu tipe yang cukup kaya untuk mendefinisikan beberapa fungsi (rekursif) yang menggunakannya. Sebagai contoh akan didefinisikan sebuah fungsi fringe yang mengembalikan sebuah list dari semua elemen dalam

18 daun dari sebuah pohon dari kiri ke kanan. Biasanya akan sangat membantu jika dituliskan terlebih dulu tipe dari fungsi baru; dalam kasus ini tipe seharusnya Tree a -> [a]. fringe merupakan fungsi polimorfis di mana untuk semua tipe a, memetakan pohon dari a ke list dari a. Definisi yang tepat sebagai berikut: fringe fringe (Leaf x) fringe (Branch left right) :: Tree a -> [a] = [x] = fringe left ++ fringe right Di sini ++ merupakan operator infix yang menggabungkan dua list. Tipe Sinonim Untuk kenyamanan, Haskell menyediakan cara untuk mendefinisikan tipe sinonim, yaitu nama untuk tipe yang sering dipakai. Tipe sinonim dibuat menggunakan deklarasi type. Berikut beberapa contoh: type String type Person type Name = [Char] = (Name,Address) = String data Address = None Addr String Tipe sinonim tidak mendefinisikan tipe baru, tetapi memberi nama baru kepada tipe-tipe yang sudah ada. Sebagai contoh tipe Person -> Name setara dengan (String,Address) -> String. Nama yang baru seringkali lebih pendek dari tipe sinonimnya, tetapi itu bukan satusatunya tujuan dari tipe sinonim: tipe sinonim meningkatkan kemudahan membaca sebuah program dengan menjadi lebih mnemonik. Bahkan tipe polimorfis sekalipun dapat diberi nama baru:

19 type AssocList a b = [(a,b)] Ini merupakan tipe asosiasi yang mengasosiasikan nilai dari tipe a dengan nilai dari tipe b. Operator Untuk tipe data angka, terdapat operator aritmatika untuk penjumlahan, pengurangan, perkalian, dan pembagian. Dengan operator-operator tersebut, kita bisa menggunakan interpreter Haskell sebagaimana menggunakan kalkulator. Inilah beberapa contohnya:? > 2? 5 3 > 2? 7 * 7 > 49? 4 / 2 > 2.0? (2 * 2) - (4 * 1 * 3) > -8? 3.14 * 2.1 * 2.1 >

20 Dalam contoh-contoh di atas, tanda tanya (?) mengawali input yang kita tuliskan dan tanda lebih besar (>) mengawali outputnya. Salah satu hal yang menarik adalah bahwa pembagian Integer dengan Integer menghasilkan bilangan floating point. Hal ini seperti di Pascal, dan berbeda dengan LISP (nenek moyang Haskell) dan C/C++/C#/Java. Di Haskell, list merupakan tipe data yang fundamental. Seperti yang telah disebutkan, list hanya bisa berisi satu tipe data (misalnya integer). Membuat list sangatlah mudah, yaitu dengan syntax berikut:? [1, 2, 3, 4] > [1,2,3,4]? [ a, b, c ] > [1,2,3,4]? [3.14, 2.72] > [3.14,2.72]? [] > [] Kita bisa membuat deret aritmatika dengan mudah, misalnya:? [1..10] > [1,2,3,4,5,6,7,8,9,10]

21 ? [2,4..20] > [2,4,6,8,10,12,14,16,18,20] Kita juga dapat membuat deret tak hingga misalnya [1,3,..], tetapi kalau itu kita lakukan maka interpreter tidak akan pernah selesesai menuliskan anggota deret tersebut (kecuali kalau kita hentikan). Salah satu operasi list yang sederhana adalah penjumlahan list, contohnya:? [1..10] ++ [21..30] > [1,2,3,4,5,6,7,8,9,10,21,22,23,24,25,26,27,28,29,30] Fungsi Fungsi dapat dibuat dengan menuliskan tipenya, lalu mendefinisikannya. Misalnya: tambahsatu :: Integer -> Integer tambahsatu x = x + 1 Jika kita gunakan fungsinya, inilah outputnya:? tambahsatu 5 > 6? tambahsatu 999 > 1000

22 Baris yang pertama: tambahsatu :: Integer -> Integer berarti bahwa fungsi yang kita buat bernama tambahsatu, lalu dia menerima input sebuat Integer dan akan mengembalikan nilai Integer. Sebetulnya jika kita tidak menentukan tipe fungsi, interpreter akan menganalisa fungsinya untuk ditentukan tipenya. Walaupun begitu akan lebih jelas bagi pembaca (dan juga meringankan tuga interpreter) jika tipe fungsinya dituliskan oleh kita. Kita bisa lihat bahwa definisi fungsinya sangat mirip dengan notasi matematika untuk fungsi yang sama, yaitu f(x) = x + 1. Catatan: Dalam interpreter Hugs 98, definisi fungsi harus berada di sebuah file teks dan untuk menggunakannya kita harus meload file yang bersangkutan dari Hugs 98. File harus diberi awalan yang menunjukkan nama modul. Sebagai contoh, untuk menggunakan fungsi tambahsatu kita harus memiliki file teks dengan isi sebagai berikut: module Test where tambahsatu :: Integer -> Integer tambahsatu x = x + 1 Jika fungsi tersebut kita save sebagai Test.hs di folder d:\haskell, maka untuk meloadnya dari Hugs 98 kita harus memasukkan perintah berikut:

23 ? :load "D:\Haskell\Test.hs" Jika filenya kita ubah lalu kita ingin meload ulang dari Hugs 98, maka kita cukup mengetikkan perintah berikut:? :reload Grafik Dalam Haskell, kita juga dapat menggambarkan objek 3 dimensi. Penggambaran objek 3 dimensi ini dimungkinkan karena dalam Haskell kita dapat menuliskan pemrograman

Konsep Bahasa Pemrograman Pertemuan 6

Konsep Bahasa Pemrograman Pertemuan 6 Konsep Bahasa Pemrograman Pertemuan 6 Evangs Mailoa HASKELL What is Haskell? Haskell merupakan bahasa pemrograman yang; fungsional, malas dan murni. fungsional evaluasi dari programnya sama dengan mengevaluasi

Lebih terperinci

BAHASA PEMROGRAMAN. Merupakan prosedur/tata cara penulisan program.

BAHASA PEMROGRAMAN. Merupakan prosedur/tata cara penulisan program. BAHASA PEMROGRAMAN PROGRAM Kata, ekspresi, pernyataan atau kombinasinya yang disusun dan dirangkai menjadi satu kesatuan prosedur yang berupa urutan langkah untuk menyelesaikan masalah yang diimplementasikan

Lebih terperinci

ALGORITMA PEMROGRAMAN 1C PEMROGRAMAN FUNGSIONAL

ALGORITMA PEMROGRAMAN 1C PEMROGRAMAN FUNGSIONAL ALGORITMA PEMROGRAMAN 1C PEMROGRAMAN FUNGSIONAL Indah Wahyuni PEMROGRAMAN FUNGSIONAL Disebut aplikatif karena fungsi yang diaplikasikan ke dalam argumentasi menjadi deklaratif dan non prosedural Merupakan

Lebih terperinci

ALGORITMA PEMROGRAMAN 1C PENDAHULUAN KONSEP BAHASA PEMROGRAMAN

ALGORITMA PEMROGRAMAN 1C PENDAHULUAN KONSEP BAHASA PEMROGRAMAN ALGORITMA PEMROGRAMAN 1C PENDAHULUAN KONSEP BAHASA PEMROGRAMAN Indah Wahyuni KONSEP DASAR PEMROGRAMAN Program merupakan himpunan atau kumpulan instruksi tertulis yang dibuat oleh programer atau suatu bagian

Lebih terperinci

SUMBER BELAJAR PENUNJANG PLPG

SUMBER BELAJAR PENUNJANG PLPG SUMBER BELAJAR PENUNJANG PLPG 2017 [TIK] BAB VIII PEMROGRAMAN BERORIENTASI OBJEK [Alfa Faridh Suni] KEMENTERIAN PENDIDIKAN DAN KEBUDAYAAN DIREKTORAT JENDERAL GURU DAN TENAGA KEPENDIDIKAN 2017 BAB VIII

Lebih terperinci

Pengenalan Pemrograman

Pengenalan Pemrograman Pengenalan Pemrograman 1 Pemrograman Suatu kumpulan urutan perintah ke komputer untuk mengerjakan sesuatu, dimana instruksi tersebut menggunakan bahasa yang dimengerti oleh komputer atau dikenal dengan

Lebih terperinci

Fungsi Bahasa pemrograman adalah sebagai media untuk menyusun dan memahami serta sebagai alat komunikasi antara pemrogram dengan computer.

Fungsi Bahasa pemrograman adalah sebagai media untuk menyusun dan memahami serta sebagai alat komunikasi antara pemrogram dengan computer. Pertemuan II Bahasa Pemrograman Program Kata, ekspresi, pernyataan atau kombinasinya yang disusun dan dirangkai menjadi satu kesatuan prosedur yang berupa urutan langkah untuk menyelesaikan masalah yang

Lebih terperinci

Kualitas bahasa pemrograman: Ekspresivitas : secara jelas menggambarkan algoritma yang dibuat oleh programmer

Kualitas bahasa pemrograman: Ekspresivitas : secara jelas menggambarkan algoritma yang dibuat oleh programmer Program Kata, ekspresi, pernyataan atau kombinasinya yang disusun dan dirangkai menjadi satu kesatuan prosedur yang berupa urutan langkah untuk menyelesaikan masalah yang diimplementasikan dengan menggunakan

Lebih terperinci

Bab VI Value, Domain dan Type

Bab VI Value, Domain dan Type Bab VI Value, Domain dan Type Value Suatu nilai (value) adalah hal apapun yang mungkin dapat dievaluasi, disimpan dalam suatu struktur data, dikirimkan sebagai suatu argumentasi atau dikembalikan lagi

Lebih terperinci

Integer (Bilangan Bulat) Yang dimaksud bilangan bulat adalah, -1, -2, -3, 0, 1, 2, 3, 4 dan lain lain yang bukan merupakan bilangan pecahan.

Integer (Bilangan Bulat) Yang dimaksud bilangan bulat adalah, -1, -2, -3, 0, 1, 2, 3, 4 dan lain lain yang bukan merupakan bilangan pecahan. Struktur Data Struktur Data Setiap data memiliki tipe data, apakah merupakan angka bulat, angka pecahan, atau berupa karakter, dan sebagainya. Jadi, tipe data adalah pengelompokan data berdasarkan isi

Lebih terperinci

Implementasi OOP Pada Perangkat Lunak Pemrograman

Implementasi OOP Pada Perangkat Lunak Pemrograman Silabus Pertemuan ke- Pokok Bahasan Keterangan 1 Pengenalan Dasar Pemrograman 2 Konsep Dasar Pemrograman 3 Tahapan Pembuatan Program 4 Elemen-Elemen Bahasa Pemrograman 5 Analisa Struktur Program 6 Analisa

Lebih terperinci

TIPE DATA, VARIABLE, dan OPERATOR DELPHI

TIPE DATA, VARIABLE, dan OPERATOR DELPHI TIPE DATA, VARIABLE, dan OPERATOR DELPHI A. TIPE DATA Delphi merupakan bahasa pemrograman tingkat tinggi yang mendukung perancangan terstruktur dan berorientasi Object. Bahasa pemrograman ini berdasarkan

Lebih terperinci

SILABUS MATA KULIAH PEMROGRAMAN JAVA

SILABUS MATA KULIAH PEMROGRAMAN JAVA A. IDENTITAS MATA KULIAH Program Studi : Teknik Informatika Mata Kuliah : Pemrograman Java Kode : SP331 Bobot : 4 (empat) sks Kelas : MI Semester : 4 (empat) Mata kuliah prasyarat : Tidak ada Deskripsi

Lebih terperinci

PSEUDOCODE TIPE DATA, VARIABEL, DAN OPERATOR

PSEUDOCODE TIPE DATA, VARIABEL, DAN OPERATOR 1 PSEUDOCODE TIPE DATA, VARIABEL, DAN OPERATOR Siti Mukaromah, S.Kom TEKNIK PENYAJIAN ALGORITMA Teknik Tulisan Structure English Pseudocode Teknik Gambar Structure Chart HIPO Flowchart 2 PSEUDOCODE Kode

Lebih terperinci

PENGANTAR KOMPUTER & SOFTWARE I REPRESENTASI DATA

PENGANTAR KOMPUTER & SOFTWARE I REPRESENTASI DATA PENGANTAR KOMPUTER & SOFTWARE I REPRESENTASI DATA Tim Pengajar KU1102 - Institut Teknologi Sumatera Data Data adalah sesuatu yang belum mempunyai arti bagi penerimanya dan masih memerlukan adanya suatu

Lebih terperinci

PENGANTAR KOMPUTER & SOFTWARE I REPRESENTASI DATA

PENGANTAR KOMPUTER & SOFTWARE I REPRESENTASI DATA PENGANTAR KOMPUTER & SOFTWARE I REPRESENTASI DATA Tim Pengajar KU1102 - Institut Teknologi Sumatera Data Data adalah sesuatu yang belum mempunyai arti bagi penerimanya dan masih memerlukan adanya suatu

Lebih terperinci

Pemrograman Dasar C. Minggu 6

Pemrograman Dasar C. Minggu 6 Pemrograman Dasar C Minggu 6 Latihan Soal Buatlah program yang meminta seseorang untuk memasukkan angka bilangan riil sebanyak 3 kali, dan program akan menampilkan jumlah total dan rata-ratanya. Bilangan

Lebih terperinci

Struktur Program. Rinta Kridalukmana

Struktur Program. Rinta Kridalukmana Struktur Program Rinta Kridalukmana Struktur Program Struktur program merupakan suatu bentuk susunan dari suatu program yang dibuat. Secara umum, struktur program dibagi 3 bagian : Judul (header) Kamus

Lebih terperinci

ANALISIS DAN PERANCANGAN PERANGKAT LUNAK

ANALISIS DAN PERANCANGAN PERANGKAT LUNAK BAB IV ANALISIS DAN PERANCANGAN PERANGKAT LUNAK Bab ini membahas analisis perancangan perangkat lunak (diberi nama c2p) dari segi struktur data dan analisis aliran data. Hal-hal yang dibahas diantaranya

Lebih terperinci

BAB I KONSEP DASAR PEMROGRAMAN

BAB I KONSEP DASAR PEMROGRAMAN BAB I KONSEP DASAR PEMROGRAMAN I.1. Program dan Pemrograman Kata program dapat diartikan: a. Untuk mendeskripsikan instruksi-instruksi tersendiri, yang biasanya disebut source code, yang dibuat oleh programmer.

Lebih terperinci

Algoritma Euclidean dan Struktur Data Pohon dalam Bahasa Pemrograman LISP

Algoritma Euclidean dan Struktur Data Pohon dalam Bahasa Pemrograman LISP Algoritma Euclidean dan Struktur Data Pohon dalam Bahasa Pemrograman LISP Ahmad Ayyub Mustofa Jurusan Teknik Informatika ITB, Bandung 40132, email: [email protected] Abstraksi Bahasa pemrograman

Lebih terperinci

Dasar Pemrograman Java

Dasar Pemrograman Java Dasar Pemrograman Java Tessy Badriyah, SKom. MT. http://lecturer.eepis-its.edu/~tessy Tujuan Pembelajaran Penggunaan Komentar dalam program Memahami perbedaan identifier yang valid dan yang tidak valid

Lebih terperinci

>>> type ("5") <'type string'> >>> a= Belajar Python >>> type a <'type string'> AP2B Dini Triasanti Struktur Pemrograman Python (Bagian 2)

>>> type (5) <'type string'> >>> a= Belajar Python >>> type a <'type string'> AP2B Dini Triasanti Struktur Pemrograman Python (Bagian 2) Struktur Pemrograman Python (Bagian 2) 1. Nilai dan Tipe data Sebuah nilai adalah hal yang paling mendasar seperti sebuah huruf atau sebuah angka yang akan di manipulasi oleh program. Nilai 2 (hasil ini

Lebih terperinci

Pengenalan Algoritma & Pemrograman

Pengenalan Algoritma & Pemrograman Pengenalan Algoritma & Pemrograman I Gusti Agung Made Wirautama, S.Kom Agenda ALGORITMA PEMROGRAMAN BAHASA PEMROGRAMAN Definisi Algoritma Algoritma adalah urutan langkahlangkah logis penyeselaian masalah

Lebih terperinci

KOM204 : BAHASA PEMROGRAMAN

KOM204 : BAHASA PEMROGRAMAN KOM204 : BAHASA PEMROGRAMAN Bahasa Pemrograman Pertemuan 1 Learning Outcomes Mahasiswa dapat mengetahui sejarah dan prinsip bahasa pemrograman Mahasiswa dapat mengelompokkan berbagai bahasa pemrograman

Lebih terperinci

MODUL DUA VARIABEL DAN TIPE VARIABEL

MODUL DUA VARIABEL DAN TIPE VARIABEL MODUL DUA VARIABEL DAN TIPE VARIABEL Tujuan : Mahasiswa memahami tentang operator dan penggunaannya dalam bahasa pemrograman java, mengetahui macam-macam kategori operator dan mengetahui perbedaan operator

Lebih terperinci

BAB 4 PENGENALAN BAHASA C

BAB 4 PENGENALAN BAHASA C Bab 4 Pengenalan Bahasa C 35 BAB 4 PENGENALAN BAHASA C TUJUAN PRAKTIKUM 1. Mengetahui sejarah perkembangan bahasa C. 2. Mengerti struktur program bahasa C. 3. Mengerti konsep tipe data, variabel, & operator

Lebih terperinci

Pemrograman Fungsional FAJAR SAPTONO, ST

Pemrograman Fungsional FAJAR SAPTONO, ST Pemrograman Fungsional FAJAR SAPTONO, ST Pendahuluan Paradigma pemrograman fungsional didasari oleh konsep pemetaan dan fungsi pada matematika Fungsi : asosiasi (pemetaan) antara 2 type yaitu domain dan

Lebih terperinci

Pertemuan2 Percabangan & Perulangan pada Python

Pertemuan2 Percabangan & Perulangan pada Python Pertemuan2 Percabangan & Perulangan pada Python Objektif: 1. Mahasiswa mengetahui percabangan dan perulangan pada Python. 2. Mahasiswa mengetahui bentuk umum dari percabangan dan perulangan pada Python.

Lebih terperinci

LAPORAN PRAKTIKUM RESMI TIPE DATA, KONSTANTA DAN VARIABEL

LAPORAN PRAKTIKUM RESMI TIPE DATA, KONSTANTA DAN VARIABEL LAPORAN PRAKTIKUM RESMI TIPE DATA, KONSTANTA DAN VARIABEL Disusun oleh : Nama : Trins Astriani Br Sidauruk NIM : 201302011 Dosen pengampu : Yosef Murya Kusuma Ardhana.S.T., M.Kom JURUSAN KOMPTERISASI AKUNTANSI

Lebih terperinci

UNIVERSITAS SAM RATULANGI MANADO FAKULTAS TEKNIK, JURUSAN TEKNIK ELEKTRO Program Studi S-1 Teknik Informatika. Data & Ekspresi

UNIVERSITAS SAM RATULANGI MANADO FAKULTAS TEKNIK, JURUSAN TEKNIK ELEKTRO Program Studi S-1 Teknik Informatika. Data & Ekspresi UNIVERSITAS SAM RATULANGI MANADO FAKULTAS TEKNIK, JURUSAN TEKNIK ELEKTRO Program Studi S-1 Teknik Informatika Data & Ekspresi Mata Kuliah: Algoritma & Logika Informatika (IFC3504) Alwin M. Sambul, S.T.,

Lebih terperinci

Bahasa Pemrograman :: Pemrograman List

Bahasa Pemrograman :: Pemrograman List Bahasa Pemrograman :: Pemrograman Julio Adisantoso ILKOM IPB 2 Maret 2011 Scheme dituliskan dengan menggunakan notasi Cambridge-prefix. Seluruh instruksi dalam Scheme membentuk pola list, dimana data dan

Lebih terperinci

Chapter 1 KONSEP DASAR C

Chapter 1 KONSEP DASAR C Chapter 1 KONSEP DASAR C Sejarah Dan Standar C Akar dari bahasa C adalah BCPL (dikembangkan oleh Martin Richard tahun 1967). Kemudian Tahun 1970, Ken Thompson mengembangkan bahasa tersebut yang di kenal

Lebih terperinci

BAB 5 PERULANGAN DAN ARRAY

BAB 5 PERULANGAN DAN ARRAY Bab 5 Perulangan dan Array 66 BAB 5 PERULANGAN DAN ARRAY TUJUAN PRAKTIKUM 1. Praktikan mengerti apa yang dimaksud dengan perulangan 2. Praktikan mengerti apa yang dimaksud dengan seleksi kondisi 3. Praktikan

Lebih terperinci

Aplikasi Rekursif dalam Analisis Sintaks Program

Aplikasi Rekursif dalam Analisis Sintaks Program Aplikasi Rekursif dalam Analisis Sintaks Program Albertus Kelvin / 13514100 Program Studi Teknik Informatika Sekolah Teknik Elektro dan Informatika Institut Teknologi Bandung, Jl. Ganesha 10 Bandung 40132,

Lebih terperinci

Dasar Komputer dan Pemrograman. Konsep Tipe Data dan Operator Nama dan Nilai Data

Dasar Komputer dan Pemrograman. Konsep Tipe Data dan Operator Nama dan Nilai Data Dasar Komputer dan Pemrograman Konsep Tipe Data dan Operator Nama dan Nilai Data Mahasiswa memahami penggunaan tipe data dan operator serta translasinya ke dalam pseudocode. Mahasiswa memahami aturan penamaan

Lebih terperinci

OPERASI LOGIKA PADA GENERAL TREE MENGGUNAKAN FUNGSI REKURSIF

OPERASI LOGIKA PADA GENERAL TREE MENGGUNAKAN FUNGSI REKURSIF OPERASI LOGIKA PADA GENERAL TREE MENGGUNAKAN FUNGSI REKURSIF Lutfi Hakim (1), Eko Mulyanto Yuniarno (2) Mahasiswa Jurusan Teknik Elektro (1), Dosen Pembimbing (2) Institut Teknologi Sepuluh Nopember (ITS)

Lebih terperinci

11/18/2009. Julio Adisantoso 1. Bahasa Pemrograman Kuliah #1 18 November Tucker & Noonan Chapter 1

11/18/2009. Julio Adisantoso 1. Bahasa Pemrograman Kuliah #1 18 November Tucker & Noonan Chapter 1 Silabus PENDAHULUAN Bahasa Pemrograman Kuliah #1 18 November 2009 Konsep bahasa pemrograman (functional ming, logic ming, concurent ming, imperative ming, object oriented ming), jenis dan ciri; aturan

Lebih terperinci

Algoritma dan Pemrograman

Algoritma dan Pemrograman Algoritma dan Pemrograman bagian 2 2009 Modul ini menjelaskan tentang bahasa C dan apa saja yang dibutuhkan bila kita akan menulis suatu program dengan bahasa C. Editor yang dipakai adalah Turbo C++ 4.5.

Lebih terperinci

VARIABEL, TIPE DATA, KONSTANTA, OPERATOR DAN EKSPRESI. Pemrograman Dasar Kelas X Semester 2

VARIABEL, TIPE DATA, KONSTANTA, OPERATOR DAN EKSPRESI. Pemrograman Dasar Kelas X Semester 2 VARIABEL, TIPE DATA, KONSTANTA, OPERATOR DAN EKSPRESI Tujuan Pembelajaran 1. Siswa mampu memahami penulisan Tipe data, variabel dan konstanta dalam pascal 2. Siswa mampu menerapkan penggunaan Tipe data,

Lebih terperinci

C / C++ / JAVA / C# / Python?

C / C++ / JAVA / C# / Python? C / C++ / JAVA / C# / Python? C / C++, Python, dan Java merupakan bahasa pemrograman yang umum digunakan sebagai penunjang mata kuliah pemrograman. Lalu apa yang membedakan bahasa pemrograman satu dengan

Lebih terperinci

Dasar-dasar C/C++ Ekohariadi FT Unesa

Dasar-dasar C/C++ Ekohariadi FT Unesa Dasar-dasar C/C++ Ekohariadi FT Unesa Program Modular Program yang baik dibuat dengan filosofi rancangan seperti membuat bangunan yang baik. Ia bergantung pada perencaaan yang cermat. Program yang terstruktur

Lebih terperinci

Satuan Acara Perkuliahan (SAP) UNIVERSITAS GUNADARMA

Satuan Acara Perkuliahan (SAP) UNIVERSITAS GUNADARMA Mata Kuliah : Teknik Pemrograman Terstruktur 2 Fakultas/Jurusan : Ilmu Komputer/Manajemen Informatika Satuan Acara Perkuliahan (SAP) UNIVERSITAS GUNADARMA Minggu Pokok Bahasan/Materi 1 Pokok Bahasan :

Lebih terperinci

Teori Algoritma Pertemuan 2 (11 Maret 2014) Object Oriented Programming (OOP) Functionally Terstruktur Modular Visual & Even Driven Programming

Teori Algoritma Pertemuan 2 (11 Maret 2014) Object Oriented Programming (OOP) Functionally Terstruktur Modular Visual & Even Driven Programming Teori Algoritma Pertemuan 2 (11 Maret 2014) Object Oriented Programming (OOP) Functionally Terstruktur Modular Visual & Even Driven Programming Hana Pertiwi S.T 3/11/2014 Object Oriented Programming (OOP)

Lebih terperinci

Algoritma dan Struktur Data

Algoritma dan Struktur Data Algoritma dan Struktur Data Program Program: sederetan perintah-perintah yang harus dikerjakan oleh komputer untuk menyelesaikan masalah. 3 level bahasa pemrograman: 1. Bahasa tingkat rendah 2. Bahasa

Lebih terperinci

1. Integer Interger adalah data numerik yang tidak mengandung pecahan, dan disajikan dalam memori komputer sebagai angka bulat. Mengacu pada obyek

1. Integer Interger adalah data numerik yang tidak mengandung pecahan, dan disajikan dalam memori komputer sebagai angka bulat. Mengacu pada obyek Pada CPU ARITMATICH 1. Integer Interger adalah data numerik yang tidak mengandung pecahan, dan disajikan dalam memori komputer sebagai angka bulat. Mengacu pada obyek data dengan range -32768 s/d 32767.

Lebih terperinci

KU-1072 PENGENALAN TEKNOLOGI INFORMASI B (PTI B)

KU-1072 PENGENALAN TEKNOLOGI INFORMASI B (PTI B) KU-1072 PENGENALAN TEKNOLOGI INFORMASI B (PTI B) 2008 MATERI I PENGENALAN BAHASA C++ Materi Praktikum Durasi TIU/TIK Referensi Pengenalan Bahasa C++ 180 menit 1. Pendahuluan 2. Instruksi Output Sederhana

Lebih terperinci

Pemrograman. Fery Updi,M.Kom

Pemrograman. Fery Updi,M.Kom Pemrograman Fery Updi,M.Kom 1 Pemrograman Java Praktik Pemrograman Java SKS : 3 SKS Dosen : Fery Updi,M.Kom Email : [email protected] WA : 0822-9961-8593 Jadwal Kuliah : Sesi 1 : Selasa, 18.00 20.00

Lebih terperinci

PERTEMUAN 2 PEMOGRAMAN BERORIENTASI OBJEK L/O/G/O

PERTEMUAN 2 PEMOGRAMAN BERORIENTASI OBJEK L/O/G/O PERTEMUAN 2 PEMOGRAMAN BERORIENTASI OBJEK L/O/G/O PENGERTIAN Secara logika kelas dalam dunia pemrograman dapat kita bayangkan seperti halnya kelas-kelas yang ada pada sekolah dasar. Kelas digunakan untuk

Lebih terperinci

Instalasi Code::Blocks, Tipe Data, Variabel, Konstanta, Operator, Input-Output dan Flowchart

Instalasi Code::Blocks, Tipe Data, Variabel, Konstanta, Operator, Input-Output dan Flowchart Instalasi Code::Blocks, Tipe Data, Variabel, Konstanta, Operator, Input-Output dan Flowchart Pertemuan ke-1 Praktikum Algoritma dan Pemrograman Laboratorium Pemrograman dan Informatika Teori Pengumuman

Lebih terperinci

MATERI KULIAH ALGORITMA DAN PEMROGRAMAN I (2 SKS)

MATERI KULIAH ALGORITMA DAN PEMROGRAMAN I (2 SKS) MATERI KULIAH ALGORITMA DAN PEMROGRAMAN I (2 SKS) DOSEN PENGAMPU: TATI HARIHAYATI M.,M.T. JURUSAN TEKNIK INFORMATIKA UNIKOM PERTEMUAN 1 PENGANTAR ALGORITMA Algoritma dan Pemrograman I Teknik Informatika

Lebih terperinci

BAB III ANALISIS DAN PERANCANGAN APLIKASI 3.1 ANALISIS

BAB III ANALISIS DAN PERANCANGAN APLIKASI 3.1 ANALISIS 29 BAB III ANALISIS DAN PERANCANGAN APLIKASI 3.1 ANALISIS Dengan menggunakan Visual Basic 6.0 aplikasi perangkat ajar pengelolaan dan perhitungan ekspresi matematika yang akan dibangun dalam penelitian

Lebih terperinci

Struktur Dasar Program Prosedural dan Disain Bagan Sederhana

Struktur Dasar Program Prosedural dan Disain Bagan Sederhana Struktur Dasar Program Prosedural dan Disain Bagan Sederhana Subtopik Input Proses Output dalam program Mendisain flowchart pada suatu algoritma Deklarasi dan penggunaan variabel, type (dasar dan bentukan),konstanta,

Lebih terperinci

PENGANTAR KOMPUTER DAN TEKNOLOGI INFORMASI 1A

PENGANTAR KOMPUTER DAN TEKNOLOGI INFORMASI 1A PENGANTAR KOMPUTER DAN TEKNOLOGI INFORMASI 1A REPRESENTASI DATA ALUR PEMROSESAN DATA SISTEM BILANGAN TEORI BILANGAN KOVERSI BILANGAN OPERASI ARITMATIKA Representasi Data Data adalah sesuatu yang belum

Lebih terperinci

Kesalahan Umum dalam Pemrograman C#

Kesalahan Umum dalam Pemrograman C# Kesalahan Umum dalam Pemrograman C# Reza Pahlava [email protected] :: http://blog.rezapahlava.com Abstrak Pada saat seseorang memulai mempelajari sebuah bahasa pemrograman, umumnya akan melakukan

Lebih terperinci

Turbo C adalah tool yang dipakai untuk membuat code program dalam bahasa C ataupun C++. Berikut adalah jendela utama Turbo C

Turbo C adalah tool yang dipakai untuk membuat code program dalam bahasa C ataupun C++. Berikut adalah jendela utama Turbo C 1. Pendahuluan Lingkungan Turbo C++ 4.5 Turbo C++ 4.5 adalah tool yang dipakai untuk membuat code program dalam bahasa C ataupun C++. Berikut adalah jendela utama Turbo C++ 4.5. 1 2 3 4 1 : Menu Utama

Lebih terperinci

Elemen Bahasa Pemrograman. Aditya Rizki Yudiantika, M.Eng.

Elemen Bahasa Pemrograman. Aditya Rizki Yudiantika, M.Eng. Elemen Bahasa Pemrograman Aditya Rizki Yudiantika, M.Eng. Algoritma dan Struktur Data (SI063) Ganjil 2017/2018 Outline Pengenalan bahasa C++ Struktur penulisan kode dan elemen Tipe data Konstanta Operator

Lebih terperinci

SEMANTIK. Sintak mendifinisikan suatu bentuk program yang benar dari suatu bahasa.

SEMANTIK. Sintak mendifinisikan suatu bentuk program yang benar dari suatu bahasa. SEMANTIK Sintak mendifinisikan suatu bentuk program yang benar dari suatu bahasa. Semantic mendefinisikan arti dari program yang benar secara sintak dari bahasa tersebut. Semantic suatu bahasa membutuhkan

Lebih terperinci

MODUL. Variabel. Workshop Programming

MODUL. Variabel. Workshop Programming W o r P r o 1 Variabel MODUL Workshop Programming Digunakan untuk menyimpan sebuah value, data atau informasi Nama variabel diawali dengan tanda $ Setelah tanda $ diawali oleh huruf atau under---scrore

Lebih terperinci

JAVA BASIC PROGRAMMING Joobshet

JAVA BASIC PROGRAMMING Joobshet JAVA BASIC PROGRAMMING Joobshet 1. KOMPETENSI Mahasiswa dapat memahami jenis jenis tipe data Mahasiswa dapat memahami jenis jenis variable Mahasiswa dapat memahami jenis jenis seleksi kondisi Mahasiswa

Lebih terperinci

Program pendek dan simple = mudah dihandle. Program besar, banyak dan kompleks = tidak

Program pendek dan simple = mudah dihandle. Program besar, banyak dan kompleks = tidak Modular Programming Program pendek dan simple = mudah dihandle. Program besar, banyak dan kompleks = tidak mudah dihandle. dl Kesulitan: sulit mencari dan mengingat variabel-variabel aiabel yang sudah

Lebih terperinci

JAVA FUNDAMENTAL ATURAN PERKULIAHAN SILABUS

JAVA FUNDAMENTAL ATURAN PERKULIAHAN SILABUS JAVA FUNDAMENTAL Nama : Julian Chandra W Telp : 085647155605 Email : [email protected] Referensi : 1. Benny Hermawan. 2004. Menguasai Java 2 & Object Oriented Programming. Andi. 2. Bambang Hariyanto.

Lebih terperinci

BAB 3 TYPE DATA, VARIABLE DAN OPERATOR

BAB 3 TYPE DATA, VARIABLE DAN OPERATOR BAB 3 TYPE DATA, VARIABLE DAN OPERATOR Bahasa pemrograman pada umumnya, mengenal adanya variabel yang digunakan untuk menyimpan nilai atau data. Sedangkan Java sendiri dikenal sebagai bahasa pemrograman

Lebih terperinci

DASAR PEMROGRAMAN. PENGANTAR BAHASA C ( Sejarah, Struktur Pemrograman, Tipe Data, Operator ) Djoko Soerjanto, M.Kom

DASAR PEMROGRAMAN. PENGANTAR BAHASA C ( Sejarah, Struktur Pemrograman, Tipe Data, Operator ) Djoko Soerjanto, M.Kom DASAR PEMROGRAMAN PENGANTAR BAHASA C ( Sejarah, Struktur Pemrograman, Tipe Data, Operator ) Djoko Soerjanto, M.Kom https://www.facebook.com/groups/dasarpemrogramanc TUJUAN Mengenal sejarah, struktur, sintaks

Lebih terperinci

SEMANTIK Syntax mendefinisikan suatu bentuk program yang benar dari suatu bahasa.

SEMANTIK Syntax mendefinisikan suatu bentuk program yang benar dari suatu bahasa. SEMANTIK Syntax mendefinisikan suatu bentuk program yang benar dari suatu bahasa. Semantik mendefinisikan arti dari program yang benar secara syntax dari bahasa tersebut. Semantik suatu bahasa membutuhkan

Lebih terperinci

Variabel, Tipe Data, dan Operator. Oleh : Edi Sugiarto, S.Kom, M.Kom

Variabel, Tipe Data, dan Operator. Oleh : Edi Sugiarto, S.Kom, M.Kom Variabel, Tipe Data, dan Operator Oleh : Edi Sugiarto, S.Kom, M.Kom 1 Pendahuluan Program merupakan kumpulan instruksi yg akan dikerjakan oleh komputer. Program yg kita tulis merupakan urutan perintah

Lebih terperinci

PHP mendukung komentar yang digunakan pada C, C++ dan Shell Unix. Sebagai contoh:

PHP mendukung komentar yang digunakan pada C, C++ dan Shell Unix. Sebagai contoh: Perintah Dasar Tag PHP Ketika PHP membaca suatu file, proses akan berlangsung hingga ditemukan tag khusus yang berfungsi sebagai tanda dimulainya interpretasi teks tersebut sebagai kode PHP. PHP akan menjalankan

Lebih terperinci

Modul PVB-POLINEMA V1.0

Modul PVB-POLINEMA V1.0 BAB V TIPE DATA, VARIABEL DAN KONSTANTA MATERI 1. Tipe Data 2. Variabel 3. Konstanta STANDAR KOMPETENSI 1. Mampu memahami konteks pemakaian variabel dan konstanta 2. Mampu membuat variabel dengan tipe

Lebih terperinci

Teknik Kompiler 12. oleh: antonius rachmat c, s.kom

Teknik Kompiler 12. oleh: antonius rachmat c, s.kom Teknik Kompiler 12 oleh: antonius rachmat c, s.kom Code Generator Source code Front End Intermedate Code Code Optimizer Intermedate Code Code Generator Target Program Symbol Table Code Generation Persyaratan

Lebih terperinci

Pengantar dalam Bahasa Pemrograman Turbo Pascal Tonny Hidayat, S.Kom

Pengantar dalam Bahasa Pemrograman Turbo Pascal Tonny Hidayat, S.Kom Pengantar dalam Bahasa Pemrograman Turbo Pascal Tonny Hidayat, S.Kom Pengantar Bahasa Pemrograman Pascal Page 1 / 11 Pengenalan Pascal Pascal merupakan salah satu bahasa pemrograman tingkat tinggi. Pemrograman

Lebih terperinci

MATERI 2 JENIS-JENIS DATA SEDERHANA & INPUT/OUTPUT DATA

MATERI 2 JENIS-JENIS DATA SEDERHANA & INPUT/OUTPUT DATA MATERI 2 JENIS-JENIS DATA SEDERHANA & INPUT/OUTPUT DATA Kata-Kata Cadangan Kata-kata cadangan (reserved words) adalah kata-kata yang sudah didefinisikan oleh Pascal yang mempunyai maksud tertentu. Kata-kata

Lebih terperinci

PENGERTIAN VARIABEL, KONSTANTA DAN TIPE DATA

PENGERTIAN VARIABEL, KONSTANTA DAN TIPE DATA PENGERTIAN VARIABEL, KONSTANTA DAN TIPE DATA Haida Dafitri, ST, M.Kom Ta. 2016 2017 T. Informatika STT Harapan Medan TUJUAN PEMBELAJARAN Setelah menyelesaikan bab ini, anda diharapkan : Mengenal dan Mengetahui

Lebih terperinci

Program pendek dan simple = mudah dihandle. Program besar, banyak dan kompleks = tidak

Program pendek dan simple = mudah dihandle. Program besar, banyak dan kompleks = tidak Modular Programming Program pendek dan simple = mudah dihandle. Program besar, banyak dan kompleks = tidak mudah dihandle. dl Kesulitan: sulit mencari dan mengingat variabel-variabel aiabel yang sudah

Lebih terperinci

MODUL PEMOGRAMAN WEB II STMIK IM BANDUNG MODUL PEMOGRAMAN WEB II. Oleh: CHALIFA CHAZAR. Chalifa Chazar edu.script.id

MODUL PEMOGRAMAN WEB II STMIK IM BANDUNG MODUL PEMOGRAMAN WEB II. Oleh: CHALIFA CHAZAR. Chalifa Chazar edu.script.id 1 MODUL PEMOGRAMAN WEB II Oleh: CHALIFA CHAZAR 2 MODUL 3 Tipe Data, Variable, dan Konstanta Tujuan: Mahasiswa mengenal tipe data dan mendeklarasikan variable di dalam pemrograman PHP sebagai pondasi dalam

Lebih terperinci

Algoritma dan Pemrograman. Pertemuan Ke-1 Pengantar Algoritma

Algoritma dan Pemrograman. Pertemuan Ke-1 Pengantar Algoritma Algoritma dan Pemrograman Bab I Pengantar Algoritma Pertemuan Ke-1 Pengantar Algoritma Disusun Oleh : Wilis Kaswidjanti, S.Si., M.Kom. Jurusan Teknik Informatika Fakultas Teknologi Industri Universitas

Lebih terperinci

Materi Pelajaran : Algoritma Pemrograman. Siswa memahami tentang dasar dasar Algoritma Pemrograman

Materi Pelajaran : Algoritma Pemrograman. Siswa memahami tentang dasar dasar Algoritma Pemrograman Materi Pelajaran : Algoritma Pemrograman 1. Tujuan : Siswa memahami tentang dasar dasar Algoritma Pemrograman 2. Teori Singkat A. Algoritma Sejarah Algoritma Ditinjau dari asal usul katanya, kata Algoritma

Lebih terperinci

TIPE DATA PADA JAVA. Pertemuan (K-04/L-04)

TIPE DATA PADA JAVA. Pertemuan (K-04/L-04) TIPE DATA PADA JAVA Pertemuan (K-04/L-04) Alangkah baiknya kita mempelajari terlebih dahulu tentang apa itu tipe data dan mengenal ada berapa tipe data yang digunakan dalam Bahasa Pemrograman Java. Sudah

Lebih terperinci

MODUL 2 Review Pemograman Web Teknik Informatika Universitas Pasundan Bandung 2016/2017

MODUL 2 Review Pemograman Web Teknik Informatika Universitas Pasundan Bandung 2016/2017 MODUL 2 Review Pemograman Web Teknik Informatika Universitas Pasundan Bandung 2016/2017 Variabel Maret, 2017 [MODUL 2 - Review] Digunakan untuk menyimpan sebuah value, data atau informasi Nama variabel

Lebih terperinci

TUTORIAL DASAR C++ BELAJAR C++ DARI NOL. Nor Kandir. Lab B201 - Teknik Elektro ITS Surabaya

TUTORIAL DASAR C++ BELAJAR C++ DARI NOL. Nor Kandir. Lab B201 - Teknik Elektro ITS Surabaya TUTORIAL DASAR C++ BELAJAR C++ DARI NOL Nor Kandir Lab B201 - Teknik Elektro ITS Surabaya Daftar Isi Daftar Isi... 1 Pendahuluan... 2 Kegunaan... 2 Persiapan... 3 Mulai Belajar... 3 Tipe Data... 6 Ekpresi

Lebih terperinci

@copyright by Emy PENGANTAR ALGORITMA & PROGRAM & PROGRAM PENGERTIAN ALGORITMA NOTASI UNTUK ALGORITMA

@copyright by Emy PENGANTAR ALGORITMA & PROGRAM & PROGRAM PENGERTIAN ALGORITMA NOTASI UNTUK ALGORITMA PENGANTAR ALGORITMA & PROGRAM PENGERTIAN ALGORITMA & PROGRAM NOTASI UNTUK ALGORITMA 1 Kompetensi Mampu menerapkan prinsip algoritma dan program sesuai dengan permasalahan, sistematis dan terstruktur. Mampu

Lebih terperinci

Pemrograman Dasar M E T H O D / F U N G S I

Pemrograman Dasar M E T H O D / F U N G S I Pemrograman Dasar M E T H O D / F U N G S I Pemrograman Modular 2 Program dibagi menjadi modul-modul Modul sering disebut juga dengan Sub-Program Modul dalam bahasa pemrograman diimplementasikan dengan

Lebih terperinci

STRUKTUR DASAR PEMROGRAMAN

STRUKTUR DASAR PEMROGRAMAN STRUKTUR DASAR PEMROGRAMAN P E N G E N A L A N P R O G R A M S T U D I Institut Teknologi Sumatera 15/09/2017 PENGANTAR PROGRAM STUDI 1 TUJUAN KULIAH Subtopik Input Proses Output dalam program Deklarasi

Lebih terperinci

Pertemuan 2 Bahasa Visual Basic Aplication

Pertemuan 2 Bahasa Visual Basic Aplication Pertemuan 2 Bahasa Visual Basic Aplication Dasar dari pemrograman pada Visual Basic adalah VBA yang menggunakan dialek Basic. Bagi anda yang pernah belajar bahasa Basic, tidak akan sulit untuk belajar

Lebih terperinci

PERTEMUAN 2 ARRAY, PERCABANGAN, DAN PERULANGAN

PERTEMUAN 2 ARRAY, PERCABANGAN, DAN PERULANGAN PERTEMUAN 2 ARRAY, PERCABANGAN, DAN PERULANGAN PERTEMUAN 2 ARRAY, PERCABANGAN, DAN PERULANGAN Obektif: Praktikan mengetahui arra, percabangan, dan perulangan pada Java. Praktikan mengetahui bentuk umum

Lebih terperinci

Pengenalan JavaScript

Pengenalan JavaScript Pengenalan JavaScript Tujuan - Mahasiswa memahami konsep dasar Javascript - Mahasiswa mampu memahami cara menggunakan Javascript - Mahasiswa mampu memahami dasar variabel di Javascript - Mahasiswa mampu

Lebih terperinci

Kurikulum Qt. Chapter 4 Function. Fungsi

Kurikulum Qt. Chapter 4 Function. Fungsi Chapter 4 Function Fungsi Fungsi (Function) adalah sekumpulan program yang diberi nama, sehingga dengan demikain jika program itu diperlukan dapat dipanggil kembali. Walaupun Pemrograman Berorientasi Objek

Lebih terperinci

SEMANTIK. Int vector[10];

SEMANTIK. Int vector[10]; SEMANTIK Sintaks mendefinisikan suatu bentuk program yang benar dari suatu bahasa. Semantik mendefinisikan arti dari program yang benar secara sintaks dari bahasan tersebut. Sebagai contoh adalah deklarasi

Lebih terperinci

Universitas Komputer Indonesia. Pemrograman dengan C++ Builder 2004 Taryana S.

Universitas Komputer Indonesia. Pemrograman dengan C++ Builder 2004 Taryana S. 3.1. Statement Aspek awal yang perlu anda ketahui dalam bahasa pemograman adalah Reserved Word dan statement. Reserved word harus kita kenal bahkan harus dihapalkan, layaknya menghapal kata-kata baru apabila

Lebih terperinci

Algoritme dan Pemrograman

Algoritme dan Pemrograman Kuliah #2 Struktur program C Tipe data Input / Output Algoritme dan Pemrograman Beberapa Catatan Lakukan KRS B jika: Belum mendaftar di KRS A Mendaftar di KRS A, tapi nama tidak muncul di absen Pindah

Lebih terperinci

Struktur Data. PDE - Struktur Data 1

Struktur Data. PDE - Struktur Data 1 Struktur Data Copyright@Ihsan Jatnika PDE - Struktur Data 1 Objektif Mengetahui maksud struktur data dan menjelaskan penggunaannya dalam pemrograman Mengetahui operasi yang terkait dengan struktur data

Lebih terperinci

MODUL 5 JAVA SCRIPT. Sub : PENGENALAN

MODUL 5 JAVA SCRIPT. Sub : PENGENALAN MODUL 5 JAVA SCRIPT Sub : PENGENALAN Laboratorium Komputer STIMIK PPKIA Pradnya Paramita Malang Pertemuan 5 5.1 Tujuan : 1. Mahasiswa dapat memahami dan mengenai perintah perintah javascript 2. Mahasiswa

Lebih terperinci

Bahasa Pemrograman 2.

Bahasa Pemrograman 2. Bahasa Pemrograman 2 Pengenalan JAVA 1 [email protected] Instalasi JDK Download JDK for free Instalasi biasa Set PATH dan JAVA_HOME set PATH=%PATH%; set JAVA_HOME=

Lebih terperinci

PEMROGRAMAN WEB 1 Variabel, tipe data, operator Aritmatika. Rio Andriyat Krisdiawan, M.Kom

PEMROGRAMAN WEB 1 Variabel, tipe data, operator Aritmatika. Rio Andriyat Krisdiawan, M.Kom PEMROGRAMAN WEB 1 Variabel, tipe data, operator Aritmatika Variabel Variabel digunakan untuk menyimpan nilai dan nilainya dapat berubah-ubah. Bentuk umum variabel : $nama_variabel. Dalam membuat suatu

Lebih terperinci

Konsep Dasar Pemrograman Berorientasi Obyek I JAVA. Anugrah Kusuma Seno Adi Putra

Konsep Dasar Pemrograman Berorientasi Obyek I JAVA. Anugrah Kusuma Seno Adi Putra Konsep Dasar Pemrograman Berorientasi Obyek I JAVA Anugrah Kusuma Seno Adi Putra Konsep Dasar Pemrograman Berorientasi Obyek I JAVA @2007 Java Competency Center - Institut Teknologi Bandung Penulis : Anugrah

Lebih terperinci

Modul Praktikum Bahasa Pemrograman 1

Modul Praktikum Bahasa Pemrograman 1 Modul Praktikum Tahun Ajaran 2009/2010 Revisi : Eko Andriyanto Wicaksono, S.Kom Materi 6 Array Pengenalan Array Pada Bab sebelumnya, kita telah mendiskusikan bagaimana cara pendeklarasian berbagai macam

Lebih terperinci

BAB VII DASAR-DASAR PHP

BAB VII DASAR-DASAR PHP BAB VII DASAR-DASAR PHP A. KOMPETENSI DASAR Memahami struktur dasar dokumen PHP. Mampu membuat dokumen PHP yang baik dan benar. Mampu memanfaatkan elemen-elemen dasar untuk mengolah dan menampilkan informasi.

Lebih terperinci

Algoritma Brute Force dalam Pattern Matching pada Aplikasi Pendeteksian Potongan Citra

Algoritma Brute Force dalam Pattern Matching pada Aplikasi Pendeteksian Potongan Citra Algoritma Brute Force dalam Pattern Matching pada Aplikasi Pendeteksian Potongan Citra Ananta Pandu Wicaksana 13510077 Program Studi Teknik Informatika Sekolah Teknik Elektro dan Informatika Institut Teknologi

Lebih terperinci

ALGORITMA DAN STRUKTUR DATA POINTER DAN FUNCTION

ALGORITMA DAN STRUKTUR DATA POINTER DAN FUNCTION ALGORITMA DAN STRUKTUR DATA POINTER DAN FUNCTION POINTER POINTER ADALAH SUATU VARIABEL PENUNJUK, BERISI NILAI YANG MENUNJUK ALAMAT SUATU LOKASI MEMORI TERTENTU. JADI POINTER TIDAK BERISI NILAI DATA, MELAINKAN

Lebih terperinci

BAHASA PEMROGRAMAN. Untuk SMK. Kadarisman Tejo Yuwono Totok Sukardiyono Adi Dewanto. : Ratu Amilia Avianti. Perancang Kulit

BAHASA PEMROGRAMAN. Untuk SMK. Kadarisman Tejo Yuwono Totok Sukardiyono Adi Dewanto. : Ratu Amilia Avianti. Perancang Kulit BAHASA PEMROGRAMAN Untuk SMK Penulis Editor Perancang Kulit Ukuran Buku : Suprapto Kadarisman Tejo Yuwono Totok Sukardiyono Adi Dewanto : Ratu Amilia Avianti : Tim : 18,2 x 15,7 cm Direktorat Pembinaan

Lebih terperinci