Anda di halaman 1dari 33

BAB I

PENDAHULUAN

1.1 Rasionalisasi Pentingnya CBR

Sering kali kita bingung memilih buku referensi untuk kita baca dan pahami.Terkadang
kita memilih satu buku,namun kurang memuaskan hati kita.Misalnya dari segi analisis
bahasa, pembahasan tentang pemrograman web. Oleh karena itu, penulis membuat Critical
Book Report ini untuk mempermudah pembaca dalam memilih buku referensi,terkhusus pada
pokok bahasa tentang pemrograman web.

1.2 Tujuan Penulisan CBR

Mengkritisi/membandingkan topik materi kuliah pemrograman web dalam dua buku


yang berbeda.

1.3 Manfaat CBR


 Mengetahui tentang pengertian Elm.
 Mengetahui tentang pengertian PHP.
 Memahami penggunaan kode pada koding dengan menggunakan PHP.
 Memenuhi tugas mata kuliah pemrograman web.

1
1.4 Identitas Buku
1.4.1 Buku Review
 Judul Buku : Web Applications with Elm Functional Programming for the
Web
 Penulis : Wolfgang Loder
 Penerbit : Apress
 Kota terbit : Vienna, Austria
 Jumlah halaman : 213 Halaman
 Tahun Terbit : 2018
 ISBN : 978-1-4842-2609-4
1.4.2 Buku Pembanding
 Judul Buku : PHP and MySQL Programming Guide for Web Programmers
and Hackers.
 Penulis : Robert Scott
 Jumlah halaman : 33 Halaman.
 Tahun Terbit : 2015

2
BAB II

RINGKASAN ISI BUKU

2.1 Buku Review

BAB 1

Pengantar

Pada 2012, versi pertama dari bahasa fungsional baru diterbitkan. Itu didasarkan pada
Haskell dan disebut Elm; itu disebutkan sebagai salah satu bahasa pemrograman yang akan
datang untuk web. Beberapa tahun kemudian, ditemukan istilah pemrograman reaktif. Pada
saat itu kerangka kerja Facebook React menjadi hype terbaru, dan kerangka kerja serupa
bermunculan di ruang pengembangan antarmuka pengguna. Antarmuka pengguna reaktif
bukanlah hal yang baru — mereka diteliti sebelum antarmuka grafis menjadi arus utama.

Perkembangan yang cepat terjadi ke 2018, Evan Czaplicki telah mengubah arsitektur
Elm untuk membuatnya "lebih mudah dipelajari dan digunakan" 3 dan juga untuk lebih
menekankan concurrency.Ini adalah perubahan dalam versi 0.17.Pada saat penulisan buku
ini, versi 0.18 adalah implementasi terbaru Elm.Elm tidak lengkap, tetapi digunakan dalam
produksi, dan komunitas semakin besar.Apakah Elm bisa masuk ke arus utama belum jelas,
tetapi tentu saja bisa mengukir ceruk di dunia yang sangat kompetitif dari pengembangan
front-end. Bab ini akan memberi Anda rasa Elm. Ini bukan presentasi dari sintaks atau alat,
yang akan kita bahas dalam bab-bab berikutnya. Ini lebih menggambarkan dari mana bahasa
itu berasal dan menunjukkan apa yang bisa dilakukan dengannya. Di akhir bab ini, Anda —
pembaca — akan memiliki gagasan dasar tentang Elm sebagai platform pemrograman, dan
mudah-mudahan Anda akan bersemangat untuk menyelami lebih dalam rinciannya.

Teori

Sekalipun pencipta Elm mengatakan bahwa ini bukan tentang pemrograman reaktif
fungsional lagi, tetapi lebih pada konkurensi, patut untuk melihat sekilas sejarah ide reaktif
yang berasal dari tahun 1980-an. Semua program perangkat lunak berkaitan dengan skenario
berikut:

 Program komputer harus memproses aliran data.


 Data bergerak secara asinkron.

3
 Acara ditentukan oleh waktu dan data.
 Program komputer harus bereaksi terhadap peristiwa.

Apa Yang Dapat Kita Gunakan dariElm?

Ketika Anda melihat Elm dan kerangka kerja dan platform lainnya bersaing di ruang
yang sama, Anda dapat bertanya pada diri sendiri hal berikut:

• Mengapa menggunakan Elm?

• Mengapa mempelajari Elm dan kemudian membuat JavaScript?

• Mengapa menggunakan pemrograman fungsional murni?

• Apakah ada manfaat menggunakan Elm?

Jawaban untuk ini dan pertanyaan serupa tergantung pada keadaan dan persyaratan
Anda sendiri.Paragraf berikut dan faktanya keseluruhan buku didasarkan pada pendapat saya,
dibentuk setelah mengalami Elm. Saya yakin Elm berguna, tetapi saya tidak begitu bias
sehingga saya tidak melihat masalah dengan bahasa dan platform seperti pada saat menulis
buku ini. Jadi, apa manfaatnya Elm? Jawaban singkat: Ini bagus untuk aplikasi web apa pun
yang berinteraksi dengan penggunanya. Ini adalah definisi yang sangat luas yang
menempatkan hampir semua aplikasi web ke dalam domain Elm. Perhatikan bahwa saya
berbicara tentang aplikasi web — situs web dengan konten statis tidak ada dalam ember itu.
Tentu saja, dimungkinkan juga untuk menggunakan platform Elm, tetapi bahasa dan
kerangka kerja lain mungkin lebih bermanfaat.

Diagaram yang menunjukkan beberapa jenis aplikasi yang digunakan pengembang


untuk Elm :

4
Aplikasi Satu Halaman (SPA)

Aplikasi satu halaman mungkin merupakan jenis aplikasi yang paling umum
digunakan untuk Elm, meskipun tidak terlalu banyak aplikasi yang dikenal dalam produksi -
penekanan pada "diketahui," karena mungkin ada banyak aplikasi yang kami gunakan. hanya
tidak tahu tentang itu menggunakan Elm. Aplikasi saya sendiri adalah contoh aplikasi "tidak
dikenal". Mereka diimplementasikan untuk pelanggan tertentu dan kemungkinan tidak akan
pernah tersedia di ruang publik. Namun demikian, arsitektur dan bahasa Elm membantu
dalam mengimplementasikan aplikasi yang lebih sedikit kesalahan daripada implementasi
JavaScript murni.dalam mengimplementasikan aplikasi yang lebih sedikit kesalahan daripada
implementasi JavaScript murni.

Grafik

Platform Elm menyediakan perpustakaan grafik yang kuat. Salah satu contoh
kemampuan mereka adalah game Mario. Contoh lain adalah logo Elm yang digambarkan
dalam Gambar dibawah ini :

Untuk Siapa Buku Ini?

Buku ini adalah pengantar pemrograman aplikasi Elm.Ini memberikan gambaran


umum tentang bahasa dan menunjukkan bagaimana Elm dapat digunakan untuk aplikasi web
dan lainnya.Kami berasumsi bahwa sebagian besar pembaca buku ini adalah pengembang

5
dan tahu satu atau lebih bahasa pemrograman tetapi tidak tahu lebih banyak tentang Elm
daripada contoh-contoh di situs web Elm. Ini membantu jika Anda mengetahui dasar-dasar
JavaScript, terutama jika Anda ingin antarmuka dengan perpustakaan JavaScript yang ada.
Namun, Anda tidak perlu tahu pemrograman fungsional.Setelah membaca buku itu, Anda
harus memiliki pengetahuan yang diperlukan untuk menyelam lebih dalam ke platform Elm
dengan materi pembelajaran yang lebih maju.Beberapa pengembang bahkan mulai
mempelajari Haskell dan menggunakan pembelajaran Elm sebagai pengantar Haskell.
Perangkat Lunak yang Diperlukan

BAB 2

Mulai

Dalam bab ini, kita akan melihat topik-topik berikut:

 Menginstal platform Elm


 Menentukan editor dan menginstal plugin untuk bahasa Elm
 Mendapatkan tampilan pertama pada bahasa Elm
 Memutuskan bagaimana menggunakan aplikasi Elm
 Mengatur kode sumber aplikasi untuk pengembangan yang lebih mudah

 Instalasi

Kita harus menginstal platform Elm untuk memulai. Ini tidak berarti bahwa kita harus
menginstal runtime seperti pada sistem lain seperti Java atau .Net. Platform Elm mandiri
tanpa ketergantungan runtime.

 InstalasiGlobal

Instalasi global platform Elm dapat dilakukan dengan installer yang disebutkan
sebelumnya, yang dapat Anda unduh dari situs web Elm, tetapi seperti yang disebutkan
sebelumnya kami berfokus pada npm.

 Instalasi Lokal

Instalasi global dari platform Elm memiliki kelebihan, tetapi tidak selalu merupakan
solusi yang diinginkan.Seringkali, ada kebutuhan untuk menginstal platform Elm secara lokal
dalam suatu proyek.Platform ini berkembang dengan cepat, dan perubahan dari satu versi ke

6
versi berikutnya dapat memecahkan kode aplikasi yang ada.Pengaturan saya sendiri adalah
menginstal versi terbaru secara global; misalnya, versi pengembangan terbaru.Untuk
beberapa proyek, saya bisa menggunakan versi lokal dari platform Elm atau wadah Docker.

Editor dan IDE

Apa pun opsi yang kita pilih untuk menginstal platform Elm, kita akan memerlukan
editor atau IDE untuk menulis kode. Pengembang yang bekerja dengan Java Virtual Machine
atau .Net bahasa digunakan untuk IDE dengan dukungan luas untuk berbagai tugas
pengembangan, seperti berikut ini:

 Intellisense
 Pelengkapan otomatis
 Refactoring, seperti mengubah nama symbol
 Melompat ke definisi dan symbol
 Memformat kode
 Dukungan debugging
 Integrasi alat

LightTable

LightTable adalah editor yang tidak digunakan sesering orang lain dalam daftar ini,
tetapi plugin yang dijelaskan di sini adalah salah satu yang terbaik yang pernah saya alami.

 Nama Plugin: elm-light


 Tautan: github.com/rundis/elm-light
 Fitur: penyorotan sintaksis, pelengkapan otomatis, linting dan untuk beberapa
kesalahan, inline docs, cari penggunaan, browser modul, masuk ke (definisi), integrasi
dengan elm-repo, elm-reactor, dan elm-format
 Komentar: Manual ekstensif tersedia di rundis.gitbooks.io/elm- panduan-cahaya /
konten /.

Apa Perlu diketahui dari Pelajaran ini :

Bab ini membuat kami mengatur hal-hal berikut:

 Kami memiliki platform Elm yang diinstal, baik di komputer kami atau dijalankan
sebagai wadah Docker.

7
 Editor pilihan kami memiliki plugin untuk mempermudah pengodean dengan bahasa
Elm.
 Kami melihat program Hello World yang sederhana dan belajar bagaimana
mengompilasinya dan mengujinya di browser dengan server bawaan.
 Pada akhir bab ini, kami melihat berbagai cara untuk mengintegrasikan proyek Elm
yang dikompilasi ke dalam aplikasi web. Pada bab selanjutnya, kita akhirnya akan
belajar bahasa Elm.

BAB 3

Elm Primer

Elm Platform

Elm tidak hanya bahasa, tetapi juga platform yang digunakan untuk membuat aplikasi
web.Ini memiliki alat dan runtime yang diperlukan untuk menjalankan aplikasi Elm yang
berasal dari kode Elm. Ketika kita mengkompilasi bahkan aplikasi kecil seperti contoh Hello
World dari Bab 2, kompiler Elm membuat file JavaScript dengan kode aplikasi, dan itu juga
mengintegrasikan fungsi runtime yang diperlukan dan kode perpustakaan lain yang
digunakan. Misalnya, ini termasuk paket Html yang, antara lain, memiliki teks fungsi untuk
menampilkan teks pada halaman web.

Bahasa Elm

Elm sebagai bahasa dapat dilihat dari berbagai sudut.Tujuan utama dari bahasa dan
platform adalah untuk membuat aplikasi web.Elm bukan bahasa tujuan umum, dan sulit dan
kadang-kadang mustahil untuk keluar dari kendala web. Secara umum, kita dapat
mendefinisikan Elm seperti yang ditunjukkan pada Gambar dibawah ini :

Elm adalah bahasa fungsional, diketik, dan modular.Selain poin-poin ini, Elm
memiliki fitur dasar, seperti bahasa lain, yang memungkinkan untuk menulis ekspresi atau
mengontrol alur program.Beberapa bagian bahasa seperti yang dibahas di sini didefinisikan
dalam kode Haskell untuk menentukan struktur bahasa.Bagian-bagian lain ditulis dalam Elm

8
sendiri dan dapat ditemukan di perpustakaan inti.6 Jenis dan fungsi tambahan ditemukan
dalam modul perpustakaan yang dapat diimpor sesuai kebutuhan.Pustaka inti secara otomatis
dimuat dan merupakan bagian dari runtime JavaScript yang dibuat saat kompilasi.

Fitur Bahasa Dasar

Fitur bahasa dasar di Elm menyediakan cara untuk mengekspresikan operasi pada
nilai menggunakan operator dan mengontrol bagaimana ekspresi ini diintegrasikan dalam
aliran pernyataan implementasi. Untuk menggunakan fungsi dan tipe dalam file itu,
navigasikan ke lokasi, jalankan elm repl, dan kemudian di ketik rEpl, impor AllBasics
exposing (..). pustaka yang hilang akan diunduh, dan kemudian kode Elm akan dikompilasi
menjadi file JavaScript sementara.

Operator

Bahasa Elm menyediakan operator yang biasa kami gunakan dari bahasa lain. Ini juga
memiliki beberapa operator yang lebih tidak konvensional, setidaknya jika Anda tidak
terbiasa dengan Haskell.

Operator Aritmatika

Operator aritmatika bekerja dengan nilai numerik dan mengembalikan nilai


numerik.Mereka semua biner dan mengambil dua operan. Operator aritmatika mengambil
integer atau float, kecuali untuk operator divisi khusus untuk float dan integer dan operator
modulo, yang hanya masuk akal dengan nilai integer.

Operator Bitwise

Operator bitwise mengambil dua nilai integer dan mengembalikan nilai


integer.Panggilan operator bitwise berbeda dari yang kita lihat dengan contoh operator
aritmatika.Keduanya adalah fungsi, tetapi satu disebut infiks, yang lainnya awalan.

Operator yang logis

Operator logis mengambil dua argumen Boolean dan mengembalikan hasil Boolean.
Operator ini tidak boleh dicampuradukkan dengan operator bitwise, terutama yang berasal
dari bahasa lain, di mana, misalnya, kata dan digunakan untuk perbandingan logis.

Operator Perbandingan

9
Operator perbandingan mengambil dua jenis yang sebanding dan mengembalikan
nilai Boolean. Kami akan membahas jenis yang sebanding nanti di bab ini. Pada dasarnya,
mereka adalah nomor standar dan tipe string sendiri atau dalam daftar dan
tupel.Perbandingan berfungsi seperti dalam bahasa lain.

Operator Fungsional

Operator fungsional akan menjadi relevan ketika kita membahas fungsi. Mereka
digunakan untuk fungsi pipa atau menulis.

Operator Komposisi

Jenis anotasi memberikan petunjuk tentang apa yang terjadi. Fungsi asli addNumbers
mengambil daftar angka dan mengembalikan angka.Fungsi asli multiplyNumber mengambil
dua angka dan mengembalikan hasilnya sebagai angka. Ketika kami menggunakan operator
komposisi >> atau << kami membuat fungsi baru yang mengambil daftar angka dan angka
lain sebagai pengali dan memberikan hasilnya sebagai angka. Sekali lagi, kita dapat
mengarang dari kiri atau dari kanan; fungsi yang dihasilkan memiliki tanda tangan yang
sama.

Operator Khusus

Operator lain adalah operator gabungan ::. Tujuannya adalah untuk menambahkan
elemen ke daftar.

Fungsi If

Pernyataan if mengambil ekspresi yang mengembalikan nilai Boolean dan bercabang


menjadi pernyataan tergantung pada nilai itu. Ungkapan-ungkapan ini hanya dapat
mengevaluasi ke Benar atau Salah; Elm tidak memiliki gagasan "kebenaran."

Elm sebagai Bahasa Fungsional

Definisi bahasa fungsional sulit dijabarkan. Sering kali, diskusi tentang ini akan
melibatkan argumen tentang murni dan tidak murni. Seringkali, bahasa fungsional mungkin
memiliki fitur paradigma lain yang tertanam. Sebagai contoh, Scala dan F # tentu dianggap
bahasa fungsional, tetapi mereka juga memungkinkan konstruksi imperatif atau berorientasi
objek.

10
Fungsi

Dasar aplikasi Elm adalah fungsi, dan hampir semuanya adalah fungsi. Kita akan
melihat bahwa tipe yang sama mendefinisikan fungsi — dalam hal ini, konstruktor. Kami
telah melihat definisi fungsi sederhana dan telah menggunakan fungsi ketika kami melihat
operator.Secara kasar, fungsi dapat dibagi menjadi tipe yang dinamai dan anonim.

Fungsi Bernama

Fungsi yang dinamai didefinisikan dengan nama yang dapat digunakan untuk
memanggilnya nanti

Fungsi Anonim

Fungsi anonim didefinisikan sebaris tanpa nama. Dalam bahasa lain mereka bisa
disebut lambda atau delegasi. Kasus penggunaan paling penting untuk fungsi anonim adalah
meneruskannya sebagai argumen ke fungsi lain atau mengembalikannya sebagai hasil dari
pemanggilan fungsi.

Komposisi fungsi

Biasanya, fungsi dalam Elm disebut dengan nama diikuti oleh argumen, tanpa tanda
kurung atau koma untuk memisahkan argumen. Kadang-kadang perlu untuk menyatukan
panggilan fungsi, di mana argumen dari satu fungsi adalah nilai balik dari fungsi
lainnya.Pikiran awal adalah menuliskan panggilan saat muncul.

Platform

Platform Elm dibuat untuk aplikasi web.HTTP, protokol yang mendasarinya, tidak
memiliki kewarganegaraan, dan seharusnya itu adalah aplikasi web. Di sisi lain, munculnya
aplikasi khusus klien di browser menyebabkan permintaan untuk keadaan. Elm — sebagai
bahasa fungsional dengan data yang tidak dapat diubah — tidak mendukung negara global,
tetapi mirip dengan model aktor, yang menyampaikan pesan, suatu negara dapat dibungkus
dengan model pesan.Model yang dilewatkan dalam aplikasi Elm harus memenuhi keadaan
modul dan juga untuk keadaan global yang tidak melekat pada satu modul saja.

Apa yang kita Pelajari dari bab ini ?

Bab ini memiliki banyak informasi di dalamnya, sebagai berikut:

11
• Kami melihat apa yang ditawarkan platform Elm kepada kami.

• Kami melihat kode yang mengikuti panduan gaya Elm.

• Kami mempelajari dasar-dasar bahasa Elm dari berbagai sudut pandang: fungsional, diketik,
dan modular.

BAB 4

Peralatan dan Perpustakaan

Bab ini akan membahas topik-topik berikut:

• Cara menguji cuplikan kode kecil dengan REPL

• Cara untuk memulai proyek dengan perancah

• Bagaimana kita dapat membangun proyek kita

• Tinjauan umum perpustakaan standar yang datang dengan platform Elm

REPL

Tampaknya platform apa pun perlu memiliki REPL (read-eval-print-loop) saat ini,
atau tidak dianggap serius. Tentunya masalah preferensi apakah pengembang menggunakan
REPL atau tidak.Alat ini sangat berguna untuk menjelajahi perpustakaan bahasa dan standar
atau pihak ketiga. Kami sudah menggunakan Elm REPL untuk mempelajari aspek-aspek
bahasa dalam dua bab sebelumnya. Sekarang, kami ingin menjelajahi lebih banyak opsi dan
menggunakan case.Kita dapat memulai elm-repl dengan perintah elm.

Proses pengembangan

Mengembangkan aplikasi Elm melibatkan beberapa alat dari platform Elm dan
seterusnya (Gambar 4-1).

12
Gambar 4-1. Proses pengembangan Elm

Di tengah proses adalah file kode Elm. Dalam diagram, kami hanya menampilkan
satu file, tetapi setiap aplikasi non-sepele akan memiliki lebih dari satu file. Kita akan
menyentuh organisasi kode di Bab 5. File-file kode dikompilasi dengan elm-make dan diuji
secara manual dalam elm-repl dan elm-reactor.Kami memformat kode dengan elm-format
dan menjalankan unit test dengan elm-test.Output dari kompilasi adalah file JavaScript yang
dapat dijalankan di server web. Di sisi kiri diagram kita melihat daftar alat yang mendukung
proses ini. Yang banyak dari mereka — dan semuanya dalam diagram — miliki adalah
bahwa mereka adalah alat Node.js, yang menekankan integrasi platform Elm ke dalam
ekosistem itu.Dua bagian berikutnya memiliki informasi lebih lanjut tentang alat-alat itu.

Apa yang Kami Pelajari

Bab ini memperkenalkan kami pada REPL bawaan, dan kami melihat proses
pengembangan dan alat-alat di platform Elm yang mendukung kami. Gambaran umum paket
perpustakaan hanya itu, gambaran umum, tapi mudah-mudahan itu memberi Anda gambaran
tentang kekuatan platform Elm. Dalam bab selanjutnya, kita akan belajar tentang arsitektur
Elm dan lebih banyak perpustakaan standar yang mendukung arsitektur ini.

13
BAB 5

Arsitektur Elm

Arsitektur Elm terletak di jantung dari platform Elm. Ini adalah arsitektur sederhana yang
hampir mirip dengan konsep MVC yang digunakan dalam kerangka kerja lainnya dan platform.
Keuntungan dari arsitektur Elm adalah bahwa kabel penting dilakukan di latar belakang. Hal ini
membuat sedikit sulit pada awalnya untuk memahami apa yang sedang terjadi, tetapi sekali konsep ini
jelas kita melihat bahwa itu mengurangi kode dalam aplikasi kita secara signifikan.

ArsitekturElm

Model

Sebuah model mewakili bagaimana kita membentuk keadaaan tampilan dalam aplikasi kita.
Model ini diturunkan dari fungsi ke fungsi, dan nilai-nilai yang diperbarui dalam koding.

Init

Fungsi init yaitu menginisialisasi model dengan fungsi sebelumnya, dan juga dapat meminta
perintah. Ini juga yang menunjukkan bahwa ada banyak hal yang terjadi di runtime Elm ketika kita
menjalankan init.

Command / Perintah merupakan bagian dari kelompok yang lebih besar yang disebut dengan
efek. Hal yang untuk diingat bahwa efek sebenarnya adalah data yang memberitahu runtime Elm apa
yang ingin kita lakukan dengan cara deklaratif. Data lain dalam kelompok ini adalah deklarasi HTML
dan langganan. Ketika Elmruntime menerima deklarasi, efek akan bekerja di atasnya untuk membuat
efek nyata; misalnya, dengan rendering markup atau memanggil fungsi lain dalam aplikasi kita.

14
Update

Di jantung arsitektur Elm terletak fungsi update. Dengan model yang kita buat, ini berlaku
tidak hanya data ke fungsi aplikasi kita, tetapi juga untuk messages.pesan. Pesan itu juga disebut
tindakan atau perintah yang diimplementasikan dalam fungsi yang dilewatkan ke tombol update
dalam init, dan semua pesan yang mungkin dinyatakan sebagai jenis serikat.

View

Fungsi View adalah tempat di mana kita menyatakan semua markup yang sudah kita buat.
Fungsi ini mengambil model sebagai parameter dan mengembalikan DOM elemen-atau node-yang
dapat memiliki elemen lain bersarang / elements nested.

Subscriptions

Subsciptions adalah bagian dari penanganan event di Elm. Ini tidak diperlukan untuk aplikasi
kecil, meskipun hampir setiap aplikasi yang lebih kompleks harus menggunakannya.

Bagaimana arsitektur Elm mengatur hal koding kita, dapat dilihat langkahnya sebagai berikut :

 Rendering,Seperti yang dijelaskan sebelumnya, Elm adalah platform untuk membuat aplikasi
web. Oleh karena itu paket yang mendukung membangun HTML yang sangat menarik untuk
setiap pengembang menggunakan platform Elm. Bagian ini memperkenalkan paket Html.
Kita ingat bahwa fungsi Html digunakan dalam tampilan fungsi aplikasi kita, tetapi juga di
semua fungsi pembantu kita membangun untuk membuat fungsi tampilan lebih mudah
dibaca.
 styling, Umumnya, kita memiliki tiga pilihan styling untuk gaya aplikasi Elm: gaya Inline,
file CSS eksternal, dan menggunakan kerangka CSS
 User Input, yaitu dimana Ketika user/pengguna menekan tombol menggunakan mouse, maka
akan ada reaksi, dan kode kita dapat menangani peristiwa eksternal ini jika berlangganan
untuk itu. peristiwa tersebut bukan satu-satunya cara untuk user berinteraksi dengan aplikasi
Elm. Pengguna dapat mengklik tombol, baris tabel, dan sebagainya.
 interfacing JavaScript. diSetiap aplikasi Elm, cepat atau lambat akan perlu untuk
berinteraksi dengan kode JavaScript eksternal application.Direkomendasikan untuk
menggunakan Bootstrap untuk styling, dan bisa juga menggunakan komponen JavaScript.
 Komunikasi Server, Aplikasi Elm tidak hidup secara tunggal, tetapi perlu untuk bertukar
data dengan sumber yang tinggal di luar Elm. Bagian ini membahas cara-cara untuk bertukar
data dengan server eksternal. Seperti fungsi dalam lingkungan serverless melalui HTTP atau
pertukaran atas protokol lain seperti WebSocket.

15
BAB 6

Menggabungkan Seluruhnya

Bab ini membahas beberapa aspek dari aplikasi Elm secara penuh, Spesifikasi dan desain
dalam aspek pelaksanaan seperti berikut:

• Setup / Mempersiapkan.Pertama, Jika kita ingin mengatur proyek. Kita akan mulai dengan
megatur file elm-package dan menentukan dependensi.
• Membuat model.Model ini memiliki dua sisi, yaitu sisi klien di Elm dan sisi backend. di
backend di Elixir. Yaitu berkomunikasi langsung ke database, dalam hal ini digunakan
database PostgeSQL. Implementasi database backend adalah skema relasional sedangkan
model klien Elm disimpan dengan relatif datar. Disini memutuskan untuk memiliki satu set
DTOs (objek transfer data) di Elm untuk mencegah ketidaksesuaian sisi antara klien dan
backend.
• Navigasi,Aplikasi ini menggunakan tab, jadi kita perlu cara untuk memfungsikan tab
tersebut. Di Elm kita dapat menggunakan paket elm-lang / navigasi untuk menangani
“halaman” dalam satu aplikasi-halaman
• Views / pandangan,View di aplikasi kita tidak sangat kompleks, tetapi masih sulit untuk
mengikuti kodingnya ketika semua ditulis dalam satu fungsi. Oleh karena itu fungsi utama
direkomendasikan dibuat dengan sangat singkat.
• JavaScript interfacing,dimana tugas penurunan dari elemen yang telah dijelaskan ini
dilakukan dalam JavaScript.
• Tes / Pengujian, Tes merupakan bagian dari pengembangan aplikasi, dan platform Elm
menyediakan kerangka kerja untuk itu. Telah dijelaskan dalam buku ini bahwa debug
aplikasi Elm tidak selalu mudah. Karena itulah unit test dan tes regresi perlu dimasukkan
wajib dalam hal pengembangan.
Komunitas elm telah menyediakan paket uji dan juga tes running. Semua tes berada di folder
mereka sendiri dan memiliki konfigurasi mereka sendiri dengan dependensi khusus.

BAB 7

Tujuan dari sini

Kapankah Bahasa Pemrograman platform dikatakan Sukses?

Berdasarkan diskusi dengan pengembang lain selama bertahun-tahun, tampaknya bahwa ada
beberapa kriteria untuk membuat bahasa pemrograman yang populer dan dengan demikian berhasil,
sebagai berikut:

16
• Lebih banyak Keuntungan
• Meningkatkan produktivitas pengembang
• Mudah untuk dipelajari
• Glamour dan daya tarik dengan menawarkan pendekatan yang berbeda untuk bahasa yang
ada
• mengurangi kompleksitas

Tentu platform Elm memiliki hal ini ini, seperti: meningkatkan produktivitas, daya tarik, dan
mengurangi kompleksitas.

Progresi bahasa

Bahasa Elm berubah secara teratur. Seiring dengan bahasa, Library dan konsep nya juga
berubah. Sudah dijelaskan dalam buku ini bahwa arsitektur Elm pergi melalui proses pembangunan.
Hal yang sama berlaku untuk Library standar.

Community

Setiap bahasa pemrograman tergantung pada komunitas pengembang yang menggunakan


bahasanya yang sering mengembangkan konsep baru yang tidak dibayangkan oleh pencipta bahasa.
Komunitas Elm sangat aktif dan tertarik untuk membawa platform ini ke depan. Kepentingan yang
berbeda akan datang bersama-sama untuk kebaikan platform

Penggunaan komersial

Platform Elm siap untuk dipakai untuk penggunaan komersial. Terdapat beberapa perusahaan
yang menggunakannya untuk aplikasi mereka. Ada juga jumlah yang tidak diketahui secara pasti dari
perusahaan lain yang menggunakan Elm untuk aplikasi internal atau pelanggan juga.

Cara yang lebih disukai untuk memperkenalkan Elm menjadi sebuah proyek secara perlahan
adalah dengan hanya menggunakannya untuk membuat bagian-bagian kecil dari sebuah situs web. Ini
mungkin salah satu cara untuk mengintegrasikan Elm ke aplikasi dan memiliki manajemen setuju,
karena risiko kegagalan dapat diminimalkan.

Masa depan

Platform Elm memiliki potensi besar. Meskipun lebih baik bahwa hype-nya dibatasi, Elm
perlu memiliki jalan yang jelas dan setidaknya memiliki beberapa tenggat waktu untuk fitur yang
akan datang. Jika tidak, pengembang akan menggunakan Elm untuk proyek-proyek akan rentan,
karena tanpa perencanaan yang jelas mereka tidak akan dapat berkomitmen untuk proyek-proyek
besar.

17
2.2 Buku Pembanding
Bab 1
Pendahuluan

Ada banyak bahasa pemograman yang digunakan untuk mengembangkan situs web
dan bahasa pemograman yang paling banyak digunakan adalah PHP. Bahasa ini sangat
populer di kalangan pengembang karena menyediakan fungsionalitas tambahan yang tidak
tersedia dalam bahasa pemograman lainnya. Bahasa ini disebut juga sebagai bahasa utama
yang digunakan untuk membuat skrip. PHP bersifat open source yang berarti kode skrip bisa
untuk nantinya dikembangkan kembali tanpa harus membayar uang sepeserpun. Awalnya
ketika PHP diperkenalkan, singkatannya adalah Personal home page. Namun kemudian
diubah menjadi pre-processor hypertext.

Scripting languange adalah bahasa yang digunakan dan ditulis untuk run time
operation. Script ini hanya ditulis dan tidak dikompilasi. Skrip ini digunakan dalam aplikasi
software dan embedded system . Ada banyak paket yang ditawarkan seperti Ruby,
Drupal, Wordpress, dll. Dimana MySQL ini dapat berfungsi untuk membuat halaman web
menjadi lebih dinamis. Halaman web yang dinamis berarti output pada halaman webnya
tergantung pada data yang diberikan oleh si pengguna. PHP dapat melakukan operasi
matematika dan Boolean dengan mudah. PHP memiliki keseimbangan sempurna untuk para
pemula dan coders tingkat lanjut karena tampilannya yang sederhana sehingga para pemula
akan memiliki cara yang mudah untuk menggunakannya dan untuk coders tingkat lanjut,
PHP akan menyediakan berbagai fungsionalitas kelas atas yang dapat mereka coba dengan
berbagai cara.

1. Bagian 1 : Pengenalan MySQL.

MySQL juga merupakan database yang bersifat open source yang bergantung pada
hubungan antara tabel. Oleh karenanya hal ini disebut juga dengan Relational Database atau
Relational Database Management System. MySQL juga memiliki beberapa karakteristik
penting yang tercantum di antaranya:

1. Desain Arsitektur: MySQL memiliki arsitektur klien / server itu berarti server
MySQL bertindak sebagai media tempat klien dan server melakukan interaksi
2. Kecepatan : Karena sebagian besar tabel dalam database terhubung dengan
penggabungan yang benar, data dapat diambil cukup cepat

18
3. Independen: Seperti PHP, bahkan server MySQL pun bisa berjalan di beberapa
sistem operasi seperti Linux, MAC, UNIX, Windows, dll.
4. Kompatibilitasnya yang tinggi antara SQL dan MySQL: SQL adalah singkatan
Structure Query Languange. Hal ini merupakan bahasa pemrograman yang
Mendukung database di MySQL. Melalui Structure Query Languange kita dapat
membuat database, membuat tabel di database, membuat hubungan antara keduanya
dan dengan menggunakan bahasa inui kita juga dapat memanipulasikan datanya
5. Mendukung Open Database Connectivity (ODBC): MySQL melalui Open
Database Connectivity (ODBC) menyediakan koneksi dari database untuk digunakan
oleh bahasa pemrograman yang sistem operasi gunakan dikomputer itu.
6. Adanya data dua dimensi: Ada banyak sistem seperti geographic information
system yang juga menggunakan data dua dimensi seperti halnya yang digunakan oleh
MySQL.
7. Penggunaan beberapa API: API adalah singkatan dari Application Program
Interfaces.

Bab 2
Menghubungkan Database MySQL menggunakan PHP
1. Menulis PHP

Menulis di PHP sebenarnya cukup sederhana karena Anda tidak memerlukan


perangkat lunak apa pun untuk itu, kecuali editor teks (seperti Notepad di Windows).
Jika Anda menjalankannya, Anda dapat menulis skrip PHP pertama Anda sendiri.

2. Mendeklarasikan PHP

Bentuk kode pernyataan adalah sebagai berikut:

<?

PHP Code in Here

?>

<?php

PHP Code in Here

19
php?>

<script language="php">

PHP Code in Here

</script>

Untuk memulai dan mengakhiri kode Anda dengan tag yang sama (Anda bisa
mulai dengan <? dan diakhiri dengan </script>).

3. Membuka dan Menutup Koneksi


1. Membuka Koneksi

Koneksi ke MySQL dapat dibuka dari PHP dengan cara sebagai berikut:

<?php

$dbhost = 'localhost';

$dbuser = 'root';

$dbpass = 'password';

$conn = mysqli_connect($dbhost, $dbuser, $dbpass) or die ('Error connecting to

mySQL');

$dbname = 'Our_Customers';

mysqli_select_db()

($dbname);

?>

2. Menutup Koneksi

Segera setelah skrip dijalankan, koneksi yang dibuka akan ditutup. Tetapi
disarankan agar Anda memanggil fungsi mysql_close () sedemikian rupa sehingga
koneksi ditutup secara eksplisit. Panggilan fungsi ini juga dapat ditempatkan dalam
file closedb.php. Source code: closedb.phps

20
<?php

// All a closedb.php does is

// it closes the MySQL database connection

mysqli_close($conn);

?>

Bab 3

Membuat Database dan Tabel di MySQL menggunakan PHP

1. Membuat MySQL Database menggunakan PHP

Dalam MySQL, untuk membuat database, kita dapat menggunakan pernyataan


CREATE DATABASE. Berikut ini adalah contoh di mana kami membuat database
bernama 'Our_Customers':

Example: Using object oriented MySQLi to create a database

<?php

$servername = "localhost";

$username = "username";

$password = "password";

// create connection

$conn = new mysqli($servername, $username, $password);

//Check connection

if ($conn->connect_error) {

die("Connection failed: " . $conn->connect_error);

// Create database

21
$sql = "CREATE DATABASE Our_Customers";

if ($conn->query($sql) === TRUE) {

echo "Database successfully created ";

} else {

echo "Error creating database: " . $conn->error;

$conn->close();

?>

2. Membuat tabel MySQL menggunakan PHP

Setiap tabel terdiri dari baris dan kolom. Dalam database, setiap tabel
seharusnya punya nama sendiri yang unik. Kami menggunakan pernyataan CREATE
TABLE di MySQL untuk membuat tabel.

CREATE TABLE Customers (

customer_id INT(7) UNSIGNEDAUTO_INCREMENT PRIMARY KEY,

first_name VARCHAR(20) NOT NULL,

last_name VARCHAR(20) NOT NULL,

email_id VARCHAR(60)

);

Apa itu Type Data?

Tipe data adalah kelompok data berdasarkan jenis jenis tertentu.sebagai contoh semua
karakter huruf merupakan sebuah karakter tipe data. Angka '200' adalah bilangan bulat dan
itu milik datatype bilangan bulat. Tipe data penting yang digunakan dalam mySQL diberikan
di bawah ini.

22
Type data Fungsi
Menyimpan karakter dengan panjang 'y'. Panjang 'y' adalah
tetap. dengan menggunakan tipe data ini, seseorang tidak dapat
CHAR(y)
membuat karakter string yang memiliki karakter kurang dari
'y'.
Menyimpan karakter dalam panjang variabel maksimum
VARCHAR(y)
sebesar 'y'.
TEXT Menyimpan nilai string hingga 65.535 karakter
Menyimpan Binary Large Object. Sebanyak 65.535 byte bisa
BLOB
disimpan.
Daftar nilai dapat dimasukkan menggunakan type data ini.
ENUM(a,b,c,…)
Sebanyak 65.535 nilai dapat dilistkan.
Dapat menyimpan nilai numerik antara 128 hingga 127 untuk
TINYINT(y) bilangan bulat dengan tanda dan 0 hingga 255 untuk Bilangan
bulat tak bertanda. Di sini, y adalah digit yang tertinggi.
Dapat menyimpan nilai numerik antara -32.768 dan 32.767. Di
SMALLINT(y)
sini, y adalah digit yang tertinggi.
Dapat menyimpan nilai numerik di antara -2,147.483.648 dan
INT(y)
2.147.483.647. Di sini, y adalah digit yang tertinggi.
Bisa menyimpan angka numerik antara
BIGINT(y) 9.223.372.036.854.775.808 dan 9.223.372.036.854.775.807. Di
sini, y adalah digit yang tertinggi.
Type data ini dapat menyimpan nilai desimal yang besar.
angka yang dapat disimpan dinamakan dengan precision.
DECIMAL(precision,scale) sedangkan scale adalah jumlah digit yang bisa ditempatkan
setelah titik. contoh: 654.123 adalah angka dengan 3 digit
sebelum titik desimal dan 3 digit setelah titik desimal.
Dapat menyimpan nilai fraksional kecil. Precision berarti
FLOAT(precision,scale) jumlah total digit yang bisa disimpan. Scale berarti jumlah
digit setelah titik desimal
Tipe data ini berfungsi untuk menyimpan format tahun, bulan,
DATE()
dan hari
TIME() Menyimpan waktu dalam format jam, menit, dan detik

23
TIMESTAMP() Dapat menyimpan nilai tanggal dan waktu bersama
Batasan integritas untuk kolom dapat ditentukan setelah menentukan tipe data.

 PRIMARY KEY : Primary Key adalah nilai yang unik untuk setiap catatan dalam
tabel. Primary Key ditetapkan sebagai identitas unik. Hal ini membuat tidak
memungkinkan nilai nol atau duplikat yang ada dalam satu kolom.Hal ini hanya dapat
terjadi sekali dalam sebuah tabel.
 NOT NULL :Null Values tidak dapat ditambahkan ke kolom.
 DEFAULT :Batasan standar akan menentukan nilai default yang harus muncul di
kolom. Nilai default diatur ketika ada atau tidak adanya nilai yang sudah ditentukan
akan diberikan.
 UNSIGNED : Batasan ini hanya akan membatasi penyimpanan data bilangan bulat
positif dan nol.
 AUTO INCREMENT : Ini akan menambah catatan baru dan memulai nilai bidang 1
secara otomatis.
3. Memasukkan data ke dalam tabel MySQL menggunakan PHP

Masukkan ke dalam pernyataan:

Untuk memasukkan data ke dalam tabel MySQL, ada seperangkat aturan yang
harus diikuti. yaitu

1. Permintaan SQL harus dikutip dalam PHP.

2. Nilai-nilai String yang ada di dalam kueri harus dikutip.

3. Nilai numerik tidak boleh dikutip.

Kita dapat memasukkan data ke dalam tabel menggunakan contoh-contoh berikut

<?php

$servername = "localhost";

$username = "username";

$password = "password";

$dbname = "Our_Customers";

24
// create connection

$conn = new mysqli($servername, $username, $password, $dbname);

// Check connection

if ($conn->connect_error) {

die("Connection failed: " . $conn->connect_error);

$sql = "INSERT INTO Customers (first_name, last_name, email_id)

VALUES ('pete', 'henry', 'petehenry@gmail.com')";

$sql = "INSERT INTO Customers (first_name, last_name, email_id)

VALUES ('shanks', 'Watson', 'shanksWatson@gmail.com')";

$sql = "INSERT INTO Customers (first_name, last_name, email_id)

VALUES ('luffy', 'Abrol', 'luffyAbrol@gmail.com')";

if ($conn->multi_query($sql) === TRUE) {

echo "New record successfully created";

} else {

echo "Error: " . $sql . "<br>" . $conn->error;

$conn->close();

?>

Bab 4

Menampilkan dan Memanipulasi Data dari Database MySQL

1. Menampilkan data dari database MySQL menggunakan PHP

Berikut contoh untuk menampilkan data dari MySQL menggunakan PHP.

25
<?php

$servername = "localhost";

$username = "username";

$password = "password";

$dbname = "Our_Customers";

// Create connection

$conn = new mysqli($servername, $username, $password, $dbname);

// Check connection

if ($conn->connect_error) {

die("Connection failed: " . $conn->connect_error);

$sql = "SELECT customer_id, first_name FROMCustomers";

$result = $conn->query($sql);

if ($result->num_rows > 0) {

// output data of each row

while($row = $result->fetch_assoc()) {

echo "Customer_id: " . $row["customer_id"]. " - First_Name: " .

$row["first_name"]. "<br>";

} else {

echo "0 results";

$conn->close();

26
?>

2. Menghapus Data dari Tabel MySQL menggunakan PHP

DELETE STATEMENT:

Untuk menghapus catatan dari tabel, Anda bisa menggunakan tabel DELETE.
Untuk menggunakan DELETE, pernyataan sintaksnya adalah sebagai berikut.

DELETE FROM table_name

WHERE some_column = some_value;

Customer_id First_name Last_name Email_d


1 Pete Hendrik Petehendry@gmail.com
2 Betis Watson shanksWatson@gmail.com
3 Luffy Abrol luffyAbrol@gmail.com
Contoh: Menggunakan MySQLi berorientasi objek untuk menghapus catatan dari
tabel: Contoh berikut catatan dengan customer_id = 2 akan dihapus

<?php

$servername = "localhost";

$username = "username";

$password = "password";

$dbname = "Our_Customers";

// Create connection

$conn = new mysqli($servername, $username, $password, $dbname);

// Check connection

if ($conn->connect_error) {

die("Connection failed: " . $conn->connect_error);

} // sql to delete a

record

27
$sql = "DELETE FROM Customers WHERE customer_id=32

if ($conn->query($sql) === TRUE) {

echo "Record successfully deleted ";

} else {

echo "Error deleting record: " . $conn->error;

$conn->close();

?>

3. Memperbarui Catatan dalam Tabel MySQL menggunakan PHP

Pernyataan UPDATE:

Sintaks untuk menggunakan pernyataan UPDATE untuk memperbarui data


dari tabel diberikan di bawah ini

UPDATE table_name

SET column1=value, column2=value2,...

WHERE some_column=some_value;

Contoh: Menggunakan MySQLi berorientasi objek untuk memperbarui catatan dalam


tabel: Contoh berikut memperbarui nama Pete Henry ke Pete Ellison dan email id ke
peteEllison@gmail.com dari tabel asli:

<?php

$servername = "localhost";

$username = "username";

$password = "password";

$dbname = "Our_Customers";

// Create connection

28
$conn = new mysqli($servername, $username, $password, $dbname);

// Check connection

if ($conn->connect_error) {

die("Connection failed: " . $conn->connect_error);

$sql = "UPDATE Customers SET

last_name='Ellison',email_id=’peteEllison@gmail.com’ WHERE

customer_id=1";

if ($conn->query($sql) === TRUE) {

echo "Record successfully updated";

} else {

echo "Error updating record: " . $conn->error;

$conn->close();

?>

Bab 5

Meretas Situs Web Menggunakan SQL dan PHP Scripting

Apa itu SQL Injection?

SQL Injection adalah metode peretasan yang terkenal dan banyak digunakan. Metode
ini memungkinkan orang yang tidak berwenang bisa mengakses database suatu situs web.
Dengan ini, si penyerang mendapat akses ke semua data dari database situs web.

Dengan SQL injection, penyerang bisa :

- Mengabaikan login
- Mengubah konten situs web

29
- Mengakses data rahasia

1. Dapat mematikan server MySQL

Di sini, untuk menemukan situs web yang rentan, kami akan menggunakan
perintah "inurl:". Di bawah ini disebutkan beberapa contoh:

inurl:index.php?id=

inurl:gallery.php?id=

inurl:article.php?id=

inurl:pageid=

2. Bagaimana cara menggunakannya?

Anda akan mendapatkan daftar situs web ketika Anda mencopy salah satu dari
perintah di atas dan pastekan di Google. Maka Anda harus memeriksa kerentanan
masing-masing situs web dengan mengunjungi mereka satu per satu.

1) Periksa kerentanannya
2) Menemukan jumlah kolom
3) Memeriksa fungsi UNION
4) Periksa versi MySQL
5) Mendapatkan nama tabel dan kolom
6) MySQL versi 5 ke atas
7) Proses di atas hanya berlaku untuk versi mySQL yang lebih lama dari 5.
3. Menghancurkan System Web
Anda diizinkan masuk sebagai admin situs dengan menggunakan kata sandi.
Untuk menemukan panel admin ada dua metode yang tersedia berikut ini:
1. Anda dapat menggunakan situs web admin finder
Kode: http: //4dm1n.houbysoft.com/
2. Perangkat lunak pencari admin dapat digunakan untuk menemukan admin.
Kode: http: //rapidshare.com/files/248020485/adminfinder.rar

30
BAB III

PEMBAHASAN

KELEBIHAN DAN KELEMAHAN BUKU :

3.1 Buku Review


3.1.1 Kelebihan
 Covernya lumayan menarik
 Pembahasan bab dalam buku dibuat dari dasar, dan juga bab disusun secara beruntun
sehingga lebih memudahkan kita untuk mengikuti dan memahami materinya.
 Pada tiab bap, buku ini selalu menyertakan note dan ringkasan di akhir bab untuk
saling menghubungkan bab dan lebih menambah pemahaman kita mengenai materi.
 Di dalam buku terdapat banyak koding program web yang disediakan dan bisa kita
coba sendiri.
 Banyak ilustrasi berupa bagan di tiap pembahasan.
 Margin buku rapi, ukuran dan jenis font yang digunakan nyaman untuk dibaca.
3.1.2 Kelemahan
 Ada beberapa kata kata yang sulit dipahami.
3.2 Buku Pembanding
3.2.1 Kelebihan
 Cover cukup menarik
 Memiliki contoh eksperimen
 Pada pembahasannya tertata rapi, dari dasar hingga akhir.
3.2.2 Kelemahan
 Penyusunan per bab kurang rapi
 Ada beberapa materi dan kata yang sulit dipahami

31
BAB IV

PENUTUP

4.1 Kesimpulan

Kesimpulan yang dapat penyusun berikan adalah bahwa tidak ada buku yang
sempurna secara keseluruhan karena seperti kita lihat contohnya dari buku tersebut, buku
tersebut memuat materi yang sedikit namun contoh yang banyak, sehingga pembaca
lebih susah memahami apa yang diajarkan dari buku tersebut.
Jika kita lihat dari isinya, selain memiliki kelebihan, buku ini juga memiliki
kelemahan/ kekurangan seperti kurangnya materi/teori pengantar tentang topik-topik
yang dibahas sehingga menyulitkan pembaca dalam menyelesaikan soal tanpa refrensi
buku lain., gambar maupun simbol-simbol sehingga membuat pembaca lebih cepat bosan
dan sulit membayangkan gambar yang sebenarnya secara lebih detail terkecuali pada
sampulnya saja.

4.2 Saran

Saran dari penyusun supaya sampul dari buku tersebut sebaiknya diperbarui lagi
agar tampak lebih menarik dan sebaiknya memuat warna setidaknya pada gambar
sehingga pembaca lebih mudah memahami isi yang ingin disampaikan pada buku
tersebut. Juga mungkin akan jauh lebih baik apabila isi buku mengunakan bahasa yang
baik, sederhana dan mudah dimengerti oleh semua kalangan guna mencapai pemahaman
yang lebih baik.

32
DAFTAR PUSTAKA

Loder,Wolfgang.2018.Web Applications with Elm Functional Programming for the


Web.Apress:Austria.

Scott,Robert.2015.PHP: PHP and MySQL Programming Guide for Web Programmers and
Hackers.

33

Anda mungkin juga menyukai