Bahan Ajar
description
Transcript of Bahan Ajar
Bahan Ajar
Pemrograman Jaringan
dan Piranti BergerakDaftar IsiTinjauan Mata Kuliah5Status dan
Prasyarat5Status5Prasyarat5Tujuan Pembelajaran / Tujuan MK5Susunan
Bahan Ajar5Petunjuk penggunaan Bahan Ajar6BAB 1 Pemrograman
Jaringan71.1Pendahuluan7Deskripsi7Manfaat7relevansi7Learning
Outcomes71.2Materi7Internet7Identitas Simpul81.3PENUTUP8Tes
formatif8Petunjuk penilaian dan umpan balik9Tindak lanjut9BAB 2
Server dan
Client102.1Pendahuluan10Deskripsi10Manfaat10Relevansi10Learning
Outcomes102.2Materi10SSH login10Membuat website
pribadi112.3PENUTUP12Tes formatif dan kunci tes formatif12Petunjuk
penilaian dan umpan balik12Tindak lanjut12BAB 3 Pemrograman
Socket133.1Pendahuluan13Deskripsi13Manfaat13Relevansi13Learning
Outcomes133.2Materi133.3PENUTUP15Tes formatif dan kunci tes
formatif15Petunjuk penilaian dan umpan balik16Tindak lanjut16BAB 4
PENGEMBANGAN CLIENT
SERVER174.1Pendahuluan17Deskripsi17Manfaat17relevansi17Learning
Outcomes174.2Materi174.3PENUTUP18Tes formatif dan kunci tes
formatif18Petunjuk penilaian dan umpan balik19Tindak lanjut19BAB 5
PEMROGRAMAN
CLIENT205.1Pendahuluan20Deskripsi20Manfaat20Relevansi20Learning
Outcomes205.2 Materi205.3PENUTUP22Tes formatif dan kunci tes
formatif22Petunjuk penilaian dan umpan balik23Tindak lanjut23BAB 6
Ekspresi
Regular246.1Pendahuluan24Deskripsi24Manfaat24relevansi24Learning
Outcomes246.2Materi246.3PENUTUP25Tes formatif dan kunci tes
formatif25Petunjuk penilaian dan umpan balik25Tindak lanjut25BAB 7
Piranti
Bergerak267.1Pendahuluan26Deskripsi26Manfaat26Relevansi26Learning
Outcomes267.2Materi26Jaringan Nirkabel26Piranti Luaran27Piranti
Masukan28Permasalahan Piranti Bergerak29Ukuran layar29Biaya
Koneksi29Orientasi29Tipe30Sistem Operasi30Pemrograman User
Interface30Prinsip Pengembang Aplikasi di Piranti
Bergerak307.3PENUTUP30Tes formatif dan kunci tes formatif30Petunjuk
penilaian dan umpan balik31Tindak lanjut31BAB 8 Lingkungan
Pemrograman328.1Pendahuluan32Deskripsi32Manfaat32Relevansi32Learning
Outcomes328.2PENYAJIAN32Eclipse33AppInventor338.3PENUTUP34Tes
Formatif dan KunciTes Formatif34Petunjuk penilaian dan umpan
balik34Tindak lanjut35BAB 9
Basisdata369.1Pendahuluan36Deskripsi36Manfaat36Relevansi36Learning
Outcomes369.2Materi36MySQL37Database37Data Definition
Languange38Data Manipulation Language39Join429.3PENUTUP45Tes
formatif dan kunci tes formatif45Petunjuk penilaian dan umpan
balik45Tindak lanjut45BAB 10 Perancangan Tata
Letak4610.1Pendahuluan46Deskripsi46Manfaat46Relevansi46Learning
Outcomes4610.2Materi46Kolom46Ukuran Font4710.3PENUTUP47Tes formatif
dan kunci tes formatif47Petunjuk penilaian dan umpan balik48Tindak
lanjut48BAB 11 Pemrograman dengan
HTTP4911.1Pendahuluan49Deskripsi49Manfaat49Relevansi49Learning
Outcomes4911.2Materi49Tampilan Elemen Dokumen49Style
Sheet5011.3PENUTUP51BAB 12 Aplikasi
Web5212.1Pendahuluan52Deskripsi52Manfaat52Relevansi52Learning
Outcomes5212.2Materi52WAMP dan LAMP53Akses Data dalam Tabel dari
Web Browser53Memasukkan Data ke Sistem5412.3PENUTUP56Tes formatif
dan kunci tes formatif56Petunjuk penilaian dan umpan balik56Tindak
lanjut56
Tinjauan Mata KuliahKuliah Pemrograman Jaringan dan Piranti Bergerak mendiskusikan infrastruktur jaringan komunikasi data sebagai sarana komunikasi pengembangan sistem informasi. Diskusi ditekankan pada pemrograman sistem yang memanfaatkan protokol internet difokuskan pada sisi aplikasi program komputer pada piranti bergerak (mobile).Status dan PrasyaratStatusPilihanPrasyaratdiutamakan untuk mahasiswa yang telah mengikuti kuliah Basisdata, Jaringan Komputer serta Algoritma dan Struktur Data.Tujuan Pembelajaran / Tujuan MKKuliah PemrogramanJaringan dan Piranti Bergerak akan memberikan pengalaman, pengetahuan dan ketrampilan pada mahasiswa untuk mengembangkan sistem software aplikasi jaringan komunikasi data yang meliputi pengembangan protokol, pemrograman server serta pemrograman client dengan model web maupun aplikasi desktop dan piranti bergerak.Susunan Bahan AjarBab 1 Pemrograman JaringanBab 2 ServerdanClientBab 3 Pemrograman SoketBab 4 Pengembangan Client ServerBab 5 Pemrograman ClientBab 6 Ekspresi RegularBab 7 Piranti BergerakBab 8 Lingkungan Pemrograman Aplikasi Piranti BergerakBab 9 BasisdataBab 10 Perancangan Tata LetakBab 11 Pemrograman dengan Protokol HypertextBab 12 Aplikasi Web di Piranti Bergerak
Petunjuk penggunaan Bahan AjarBahan ajar ini disusun sebagai tutorial yang bisa dipelajari mendiri dengan kecepatan satu bab per minggu. Pada setiap bab disediakan contoh untuk dicoba langsung. Pembaca diharapkan menyelesaikan percobaan yang disajikan suatu bab sebelum memulai mempelajari materi pada bab berikutnya. Pada sistem pembelajaran di kelas, dosen dan mahasiswa dapatmendiskusikan variasi pemrograman untuk meningkatkan tingkat efisiensi, efektifitas serta keamanan yang lebih tinggi.Pemrograman JaringanSaat ini, Internet adalah satu-satunya jaringan komputer global yang didukung oleh semua penyedia jasa layanan komunikasi data dengan jangkauan akses terluas di dunia. Siapa saja bisa memanfaatkan Internet melalui penyedia jasa komunikasi data yang beroperasi di tempat di berada.PendahuluanDeskripsiBab ini membahas dasar-dasar jaringan komputer dengan protokol internet.ManfaatMemberi prinsip komunikasi data berbasis protokol internet.relevansiProtokol internet merupakan salah satu materi pokok kuliah PJPB.Learning OutcomesSetelah menyelesaikan bab ini, siswa memahami proses pemindahan data dari satu komputer ke komputer lain melalui sistem jaringan komunikasi data berbasis protokol internet.MateriJaringan komunikasi data telah menjadi bagian dari kehidupan masyarakat era informasi baik untuk keperluan pengiriman pesan teks pendek maupun untuk interaksi komunikasi sosial dan transaksi keuangan yang kompleks. Jaringan komunikasi data telah dimanfaatkan luas untuk hiburan, pendidikan, bisnis dan korespondensi birokrasi. Saat ini akses ke jaringan komunikasi data dapat dilakukan baik melalui piranti komputer yang terhubung tetap melalui kabel jaringan di lokasi tertentu maupun piranti bergerak yang terhubung ke jaringan melalui mekanisme komunikasi tanpa kabel.InternetSalah satu sifat umum dari Internet adalah adanya keterbatasan penguasaan institusi tertentu pada seluruh komponen sistem yang terlibat dalam aplikasi yang digunakannya. Sebagai contoh, pengguna sistem telpon hanya menguasai perangkat yagn dipegangnya. Selebihnya, sistem komunikasi, BTS, sentral telpon, dan lain-lain dikuasai oleh banyak penyedia jasa. Masing-masing penyedia jasa menguasai sebagian dari sistem telepon yang menjadi fokus bisnisnya.Data terkirim dari satu simpul ke simpul lain secara beranting. Gambar Sebagai contoh, pengguna komputer di lingkunganugm.ac.idmengirim data ke komputer di dikti.go.id melalui beberapa router di Internet yang bisa dimiliki oleh berbagai perusahaan jasa komunikasi data.
Gambar 1: Dariugm.ac.idkedikti.go.idada 3 ternatif jalur data, ABCD, ACD, ABD
Identitas SimpulDengan internet, data dari suatu komputer yang
terhubung dapat disalin ke komputer lain tanpa memindahkan media
fisik jaringan komunikasi. Pokok pemrograman aplikasi Internet
adalah mengidentifikasi proses dalam komputer yang
berkomunikasi.Setiap simpul dalam jaringan protokol Internet versi
4 diberi identitas 32 bit angka biner. Teorinya, dengan 32 bit kita
bisa membedakan 4 miliar simpul berbeda. Dalam praktek, alokasi
nomor IP tidak merata sehingga selain memang sudah banyak terpakai
banyak pula yang nganggur namun teralokasikan. Saat ini sebagian
besar pengguna Internet menggunakan protokol versi 4. Protokol
versi 6 yang dalam tahap awal impementasinya menggunakan identitas
simpul dengan 128 bit angka binar.Untuk kepentingan pengguna
jaringan, simpul internet yang terpasang untuk dikenali masyarakat
luas (disebut dikenal dengan fungsi server) diberi identitas nama
domain yang merupakan gabugan kata-kata yang mencerminkan hirarhi
fungsionaldari simpul yang bersangkutan.PENUTUPTes formatifSoal:
Jelaskan cara komputer di Internet mendapatkan nomor IP dari server
yang diketahuinya dengan nama domain.Jawab:Setiap komputer yang
terhubung di Internet memerlukan setup nomor IP dari DNSserver.
Nama domain yang akan dicari nomor IP-nya dikirim ke DNS Server.
Selanjutnya DNS server akan menentukan top level server yang
menangani nama domain yang bersangkutan. Query nama domain
dilakukan ke server-server DNS secara berurutan sesuai
levelnya.Soal: Jelaskan mekanisme efisiensi NS query.Jawab: setiap
kali mendapatkan mendapatkan jawaban, selain diteruskan ke komputer
yang merequestnya, DNS server menyimpan jawaban itu di databasenya
sendiri. NS query berikutnya yang sama akan dilayani
denganmengambil dari database sendiri. Mengingat entry NS
sewaktu-waktu bisa berubah, entry di local database akan dihapus
setelah waktu berlakukan data expired. Expiration date ditentukan
oleh pengeloma domain yang bersangkutan.Petunjuk penilaian dan
umpan balikBab ini dibatasi pada materi jaringan komputer pada sisi
penggunaan jaringan Internet sebatas setup IP dan akses ke
client-server.Tindak lanjutPemahaman tentang setup IP dan akses
resource di Internet perlu dipastikan telah dikuasai mahasiswa
sebelumlanjut ke pembelajaran bab berikutnya.Server dan ClientAda 2
pola komunikasi piranti dalam jaringan: client-server dan peer to
peer (p2p). Koneksi p2p melibatkan 2 komputer yang bisa saling
memberi fasilitas penyimpanan dan akses resource. Apabila
dalamjaringan tersedia sebuah komputer yang memiliki resource yang
terbuka untuk diakses dari semua komputer lain maka komputer
tersebut disebut server. Komputer lain yang mengakses resource di
komputer itu disebut client. Server menjalankan proses dengan
portterbuka yang siap menerima permintaan koneksi. Client digunakan
untuk memanfaatkan resource yang disediakan
server.PendahuluanDeskripsiDi bab ini didiskusikan proses dalam
komputer yang digunakan untuk memanfaatkan jaringan, utamanya dari
kelompok server.ManfaatMahasiswa mengenal fungsi-fungsi pemanfaatan
jaringan komunikasi data dari sisi.RelevansiServer adalah sarana
menjalan proses yang memanfaatkan aplikasi jaringan
komputer.Learning OutcomesSetelah mengikuti kuliah ini, mahasiswa
dapatmengeloka komputer sebagai server serta mendapatkan pengalaman
pengamatan dan menjalankan dasar-dasar program utilitas untuk
mengontrol server.MateriSistem operasi komputer dalam jaringan
komputer pada umumnya menjalankan fungsi multi tasking atau
multiproses. Task atau proses adalah program yang sedang berjalan
di komputer. Banyak proses dijalankan untuk manajemen internal
sistem komputer yang bersangkutan seperti pengelolaan memory,
interna/external storage dan sebagainya.Untuk mempelajari bab ini,
setiap mahasiswa diberi account akses ke server berbasis Unix
System V. Account tersebut adalah account shell yang dapat diakses
dengan berbagai cara. Berikut ini adalah petunjuk awal menggunakan
account di lumpia.SSH loginLogin adalah prosedur awal seseorang
mencatatkan diri sebagai pengguna komputer. Salah satu sistem yang
memungkinkan pengguna mengelola suatu komputer server adalah
melalui akses ke shell. Shell adalah program bantu yang menjebatani
pengguna komputer ke program-program utilitas pengelolaan suatu
komputer. Salah satu fasilitas Login ke suatu server adalah ssh
yang merupakan fasilitas akses ke shell yang terenkripsi. (atau
putty kalau di Windows). Dari Linux/FreeBSD/Unix, silakan buka
console/terminal window. Dalam contoh, mahasiswa diberiaccount
shell di server dengan namalumpia.lab.jike.fmipa.ugm.ac.id. Dari
shell prompt, kirim perintah:ssh -l username
lumpia.lab.jike.fmipa.ugm.ac.idganti kata username dengan nama user
masing-masing yang telah dibagikan. Pada prompt password,
masukkanpassword default yang telah dibagikan. Setelah mendapatkan
shell prompt dari server, kirim perintah ganti passwordpasswdIkuti
perintah seperti mengetikkan password lama (default) dan kemudian
dua kali mengetikkan password baru. Perhatikan bahwa di unix kita
tidak mendapatkan feedback apa-apa di layar saat mengetikan baik
password lama atau pun baru. Bila berhasil, shell akan memberitahu
kita bahwa password telah berhasil diganti.Membuat website
pribadiSebagai pemilik account di server lumpia tersebut, mahasiswa
bisa membuat website pribadi dengan
urlhttp://username.lumpia.lab.jike.fmipa.ugm.ac.iddengan
menempatkannya di directory/folderpublic_html. Untuk itu, ikuti
petunjuk berikutmkdir public_html
cd public_html
nano index.phpmkdiradalah perintahuntuk membuari directory atau
dengan kata lain folder;cdadalah perintah untuk mendefaultkan nama
file dengan prefix directory tertentu. Perintahnanoadalah untuk
mengaktifkan text editor yang ada di sistem. Saya sendiri lebih
sukavi, mungkin ada maucobaemacs, tapi nano sepertinya sudah
menjadi default text editor untuk pemula.Dalam editor nano, isikan
teks berikut ini.
Setelah diisikan program php satu baris tersebut, pencetcontrol-x. Nano akan minta kita save file. Ketikkan Y untuk yes. Ikuti petunjuk yang muncul. Cek web saudara dengan mengisikan di web browser komputer masing-masing urlhttp://username.lumpia.lab.jike.fmipa.ugm.ac.idjangan lupa ganti username dengan username masing-masing.PENUTUPTes formatif dan kunci tes formatifSoal: apa untuk ruginya transfer data dengan pola peer to peer dibanding client server?Jawab:Komunikasi peer to peer bersifat distributed pada komputer yang digunakan user yang berpartisipasi secara langsung sehingga beban komputasi dan komunikasi data tidak ditanggung secara terpusat. Sistem client-server mendedikasikan salah satu komputer sebagai server yang dihubungi oleh komputer-komputer lain yang memerlukan layanannya. Sebagai server, komputer harus memiliki kemampuan komputasi yang tinggi serta koneksi jaringanyang kuat. Bagi client, keberadaan server yang terjaga kehidupannya memudahkan akses sewaktu-waktu.Petunjuk penilaian dan umpan balikPembelajaran dalam bab ini mengutamakan pemahaman pada pola pergerakan data di jaringan komputer. Detail pemrograman port akan dibahas pada bab berikutnya.Tindak lanjutApabila penggunaan server tidak dimungkinkan, peserta bisa memanfaatkan PC sendiri untuk difungsikan sebagai client dan server sekaligus.Pemrograman SocketKomputer dalam jaringan dengan protokol internet diidentifikasi dengan nama domain apabika telah teregister di suatu name server atau nomor IP yang diasosiasikandengan network interfacenya. Karena pada umumnya komputer menjalankan sistem operasi multitasking, diperlukan mekanisme identifikasi task di dalam suatu komputer yang menjalankannya. Task di satu komputer yang berhubungan dengan task di komputer lain akandikenali melalui identitas komputer induk semangnya serta identitas port yang digunakan berkomunikasi oleh task yang bersangkutan.PendahuluanDeskripsiKuliah pemrograman socket memberikan pemahaman dasar mekanisme pengiriman data dari satu piranti ke piranti lainnya. Kuliah protokol layer aplikasi memberi pemahaman cara menyusun kesepakatan suatu sistem aplikasi jaringan dalam penggunaan kode-kode dalam data yang dikirim dan diterima piranti komunikasi.ManfaatMahasiswa dapat memahami dan menerapkan pemrograman socket untuk memindahkan data dari satu komputer ke komputer yang lain.RelevansiSocket merupakan pintu komunikasi data pada level program aplikasi client dan server.Learning OutcomesMahasiswa dapat membuat program komputer yang memanfaatkan komunikasi data melalui mekanisme unix socket.MateriPada protokol Internet, komunikasi data antar komputer dilakukan melalui saluran yang dikenal dengan istilahsocket. Peserta kuliah disarankan untuk menjelajah Internet untuk mendapatkan bahan-bahan dengan kata kunci 'tutorial socket programming' dengan berbagai bahasa pemrograman.Pengampu akan menggunakan lingkungan pemrograman berbasis Perl 5 dan Java untuk menuliskan contoh-contohnya yang biasanya sudah terinstall default di sistem Unix/Linux dan bisa diperoleh free untuk sistem Windows. Contoh-contoh pemrograman socket di berbagai bahasa pemrograman bisa didapat dengan browsing tutorial socket programming di Internet.Client-server adalah konsep aplikasi jaringan komunikasi data dimana satu atau lebih piranti diprogram untuk menerima permintaan layanan tertentu dari piranti-piranti lain yang terhubung. Web adalah salah satu model generalisasi dari konsep client-server melalui abstraksi tampilan data yang berfokus pada sifat komponen-komponennya, bukan pada susunan dan bentuk tampilan data di user interface.Untuk memahami cara kerja unix socket, kita akan langsung mencobanya sendiri. Untuk itu silakan edit file di server lumpia dengan nama server.pl dengan perintahnano server.plAnda bisa gunakantext editor apa saja yang tersedia di server. Saya lebih suka menggunakan vi namun sepertinya nano lebih cocok untuk pemula. Isikan teks program perl sebagai berikut:use IO::Socket;my $sock = new IO::Socket::INET (LocalPort =>'2001',Proto => 'tcp',Listen => 1,Reuse => 1,) or die "Gagal create socket: $!\n";
my $client = $sock->accept();print $client "siapa dikau?\n";$dariclient = ;#buang new line bila ada$dariclient =~ s/[\r\n]*//g;print $client "Selamat datang '$dariclient'!\n";print $client "Silakan ketikkan apa saja, tekan enter.\n";print $client "Jika bosan, ketikkan quit.\n";
while($dariclient = ) {$dariclient =~ s/[\r\n]*//g;print $client "Anda menulis: '$dariclient'\n";last if $dariclient =~ /quit/;}close($sock);
Tekan tombol control-x untuk save dan exit di editor teks nano. Bila menggunakan editor lain, gunakan perintah save yang sesuai. Setelah selesai diedit, jalankan program server sederhana kita dengan perintah:perl server.plProgram ini tidak memberi outpun apa pun ke user namun dia standby siap menerima koneksi dari client. Kita bisa test server dengan menghubunginya dari terminal lain. Untuk itu kita bisa aksesdengan open terminal/console yang lain. Pada shell promptnya ketikkan perintahtelnet lumpia.lab.jike.fmipa.ugm.ac.id 2001Angka 2001 disesuaikan dengan nomor port yang dituliskan di program (lihat baris ke tiga). Tiap server yang berjalan di komputer yang sama harus menggunakan nomor port yang berbeda. Bila sama, program yang dijalankan berikutnya akan gagal eksekusi.Agar tidak bertumbukan satu sama lain, gunalan nomor ID anda ditambah angka 1000, 2000 dst. Untuk mengetahui nomor saudara, silakan gunakan perintah unix grep user id andasendiri ke file /etc/passwd. Contoh, bila anda login dengan nama roy, ketikkan perintah berikut ini:grep roy /etc/passwdSistem akan menjawabroy:x:1028:1028:Roy Maniar Pangabean:/home/roy:/bin/bashNomor 1028 itu lah iduser roy. Untuk roy silakan bereksperimen dengan nomor port 2028, 3028, 4028 dst. Kembali ke telnet, setelah perintah telnet dijalankan, mestinya di sisi client, akan tertampang jawaban server:Trying 175.111.91.227...Connected to lumpia.lab.jike.fmipa.ugm.ac.id.Escape character is '^]'.siapa dikau?Ketikkan nama anda dikkuti enterBambang PrastowoServer akan menjawab:Selamat datang 'bambang prastowo'!Silakan ketikkan apa saja, tekan enter.Jika bosan, ketikkan quit.
Setelah itu silakan coba-cobamengetikkan apa saja diikuti enter. Terakhir, untuk menghentikan sesi, ketikkan quit diikuti tombol enter.PENUTUPTes formatif dan kunci tes formatifSoal: Jelaskan perbedaan pokok dari protokol UDP dan TCP yang penting untuk diperhatikan berkaitan denganpemilihannya pada aplikasi tertentu.Jawab:Protokol TCP mengutamakan keutuhan data yang dikirim. Kesalahan pengiriman potongan paket data harus ditindaklanjuti dengan pengiriman ulang. UDP mengutamakan kecepatan pengiriman data, tidak ada tidak lanjut tertentu yang harus dilakukan di sisi pengirim data. Pada aplikasinya, TCP digunakan untuk aplikasi pengiriman data yang tidak boleh salah seperti file program atau data informasi operasional. UDP digunakan untuk pengiriman data yang lebih toleran terhadap kerusakan data seperti streaming video.Petunjuk penilaian dan umpan balikPemahanan diskusi bab ini ditekankan pada pemahaman tentang fungsi masing-masing parameter yang diberikan pada bagian open socket. Perlu juga ditekankan pemahaman pentingnyasingkronisasi perintah send dan receive dari kedua sisi yang berkomunikasi.Tindak lanjutContoh-contoh pemrograman perlu dicoba dengan seksama. Peserta kuliah didorong untuk melakukan modifikasi isi data yang dikomunikasikan.PENGEMBANGAN CLIENT SERVERContoh transfer data dari client ke server dan sebaliknya dapat dikembangkan untuk membuat sistem komputasi di sisi server yang diakses dari komputer-komputer lain yang dioperasikan sebagai client.PendahuluanDeskripsiBab ini membahas pemanfaatkan transferdata dari client ke server dan sebaliknya untuk mengembangkan sistem pemanfaatan komputasi yang ada diserver dari komputer lain yang difungsikan sebagai client.ManfaatMahasiswa dapat mengembangkan sistem akses komputasi jarak jauh.relevansiContoh yangdibahas di bab ini dapat digunakan sebagai template pengembangan sistem client server lebih jauh.Learning OutcomesMahasiswa dapat memrogram sistem untuk memanfaatkan fasilitas komputasi termasuk kekuatan prosesor dan data storage dari komputer lain dengan kekuatan komputasi dan kapasitas penyimpanan data yang terbatas.MateriKita akan kembangkan sedikitserver.plyang telah dibuat untuk memberi layanan sederhana yakni melakukan kalkulasi tambah, kurang, kali dan bagi. Program socket dasar tetap sama namun pada loop interaksi bagian akhir program server ditambahkan variasi parsing masukkan dari client yang berupa string perintah kalkulasi seperti 23+5, 13/7, 45*5 dan seterusnya. Saat menerima string seperti itu, server memisahkannya menjadi 3 bagian: bilangan pertama, operator dan bilangan kedua. Edit file kalkulator.plnano kalkulator.plIsikan teks berikut ini:
use IO::Socket;
use Switch;my $sock = new IO::Socket::INET (
LocalPort => '7070',
Proto => 'tcp',
Listen => 1,
Reuse => 1,
)or die "Could not create socket: $!\n";
my $client = $sock->accept();
print $client "siapa dikau?\n";
$dariclient = ;#buang new line bila ada
$dariclient =~ s/[\r\n]*//g;print $client "Selamat datang
'$dariclient'!\n";
print $client "Silakanketikkan angka operator angka \n";
print $client "Jika bosan, ketikkan quit.\n";while($dariclient = )
{
$dariclient =~ s/[\r\n]*//g;
last if $dariclient =~ /quit/;
$dariclient =~ /(\d+)\s*([-\+\/\*])\s*(\d+)/;switch($2){
case '-'{$hasil = $1 - $3;}
case '+' {$hasil = $1 + $3;}
case '/' {$hasil = $1 / $3;}
case '*' {$hasil = $1 * $3;}}print $client "$dariclient =
$hasil\n";
}close($sock);
Setelah exit and save (dengan control-x), jalankan server
kalkulator dengan perintahperl kalkulator.plHubungi server tersebut
dari terminal/console lain dengan perintahtelnet
lumpia.lab.jika.fmipa.ugm.ac.id 7070Ingat, 7070 ada nomor port yang
kita spesifikasikan di program. Ikuti petunjuk yang muncul.
Petunjuk itu datang dari program yang kita buat sendiri
tersebut.PENUTUPTes formatif dan kunci tes formatifSoal: Dalam
contoh di atas, terjadi singkronisasi ambil data dan tulis data
secara bergentian dari client dan server. Bagaimana mengatur agar
server bisa mengirimkan data keclient meskipun dari client belum
memasukkan datanya?Jawab:Bila diperlukan, pengiriman data dari
server dan dari client diprogram menggunakan socket yang berbeda.
Dalam hal ini, dari sisi penerima diatur dengan loop pengambilan
data dari buffer jaringandan melakukan action bila ada data masuk.
Proses pengiriman dan penerimaan data dilakukan dengan thread atau
proses yang terpisah.Petunjuk penilaian dan umpan balikEvaluasi
diutamakan untuk mengukur ketrampilan peserta dalam menerjemahkan
persoalan transfer data ke sistem pemrogramannya. Detail penggunaan
regular expression akan diberikan pada bab berikutnya.Tindak
lanjutPeserta didik didorong untuk membaca materi regular
expression yang didiskusikan di bab berikutnya untuk memperkaya
pengembangan contoh program yang diberikan di bab ini.PEMROGRAMAN
CLIENTPada bab sebelumnya, akses ke server menggunakan telnet yang
merupakan program generik untuk akses ke layanan server yang
berinteraksi dengan terminal shell.PendahuluanDeskripsiBab ini
membahas pemrograman client sebagai contoh untuk pengembangan
program aplikasi jaringan komputer untuk memanfaatkan resource yang
disediakan server.ManfaatDengan mempelajari bab ini, mahasiswa
dapat mengembangkan program aplikasi client dengan menggabungkan
teknik pemrograman jaringan dengan teknik pemrograman aplikasi
komputer pada umumnya.RelevansiPemrograman client menjadi dasar
pengembangan program aplikasi jaringan komputer yang berjalan di
piranti bergerak.Learning OutcomesMahasiswa dapat memasukkan
modulpemrograman jaringan dalam aplikasi komputer yang memanfaatkan
komunikasi data.MateriServer kalkulator yang dicontohkan di bab
sebelumnya dimodifikasi sedemikian hingga siap diakses melalu
sistem software yang dikembangkan secara khusus tanpa menggunakan
program generik telnet.Serverkalkukator-server.plseperti berikut
ini:use IO::Socket;
use Switch;my $sock = new IO::Socket::INET (LocalHost =>
'prastowo-vps',
LocalPort => '4000',
Proto => 'tcp',
Listen => 1,
Reuse => 1,
) or die "Gagal create socket: $!\n";my $client =
$sock->accept();
print "dapat client: $client\n";print $client
"SOAL\n";while($dariclient = ) {
$dariclient =~ s/[\r\n]*//g;
last if $dariclient =~ /QUIT/;$dariclient =~
/(\d+)\s*([-\+\/\*])\s*(\d+)/;switch($2){
case '-' {$hasil = $1 - $3;}
case '+' {$hasil = $1 + $3;}
case '/' {$hasil = $1 / $3;}
case '*' {$hasil = $1 * $3;}
else {$hasil = "SYNTAX ERROR";}
}print $client "$dariclient = $hasil\n";
}close($sock);
Tidak ada perubahan signifikan kecualikeyword quit saya buat QUIT dan dialog siapa anda saya buang, kemudian saya tambahkan klausul else pada switch parsing inputnya dengan teks SYNTAX ERROR. Sebagai pembuka, saya buat server langsung kirim string SOAL ke client saat ada yang menghubunginya.Seperti biasa server saya jalankan dengan perintahperl kalkulator-server.plPerhatikan, pada socket saya tambahkan parameter LocalHost => 'prastowo-vps' yang menspesifikasikan nama host yang menjalankan layanan. Ini ada kaitannya dengan IP penerima layanan. Jangan lupa aturan main kita untuk penomoran portnya. Untuk sementara, mohon client dan server dijalankan di server. Jadi teman-teman membuka 2 window ssh ke server. Satu untuk menjalankan server, satu lagi untuk clientnya.Sekarang sudah saatnya membuat program client sendiri dengan perl pula, tidak lagi menggunakan telnet. Edit program kalkulator-client.pl dengan isi:use IO::Socket;my $server = new IO::Socket::INET (PeerAddr =>'prastowo-vps',PeerPort => 4000,Proto => 'tcp',) or die "gagal konek server: $!\n";
print "Server:$server\n";
while($dariserver = ){print $dariserver;$dariuser = ;print $server "$dariuser";}close($sock);
Perhatikan bahwa untuk client, spesifikai socket langsung
menunjuk nama server dan portnya. Socket yang dibuat ini langsung
digunakan untuk mengkomunikasikan input output ke server, tidak
perlu ada accept karena memang posisinya sebagai caller langung
menyambungkan soketnya ke server. Tidak ada yang ditunggu. Silakan
coba jalankan client denganperl kalkulator-client.plSilakan
coba-coba dulu. Untuk sementara, kita menjalankan client dan server
ini di komputer yang sama. Kelak setelah konsep-konsepnya telah
matang kita fahami, baru kita coba bikin client di PC masing-masing
dengan server yang ada di host prastowo-vps
(lumpia.lab.jike.fmipa.ugm.ac.id).PENUTUPTes formatif dan kunci tes
formatifSoal: Jelaskan perbedaan parameter-parameter socket yang
dibuat pertamakali oleh server dan yang dibuat oleh
client.Jawab:Server membuat port untuk diakses dari luar. LocalHost
=> 'prastowo-vps',
LocalPort => '4000',
Proto => 'tcp',
Listen => 1,
Reuse => 1,Sebagai Server, socket harus standby dengan yang
dinyatakan dengan parameter Listen serta bisa digunakan kembali
apabila permintaan koneksi telah terhandle yang dinyatakan dengan
parameter Reuse. Pada client, Listen dan Reuse bernilai 0 yang
tidak perlu dispesifikasikan.Petunjukpenilaian dan umpan
balikDiskusi pada bab ini mengutamakan kemampuan siswa menulis
program dan memahami variabel dan parameter-parameter yang
digunakan pada sistem pemrograman jaringan komputer.Tindak
lanjutPengayaan pemrograman dilakukan denganmempelajari materi di
bab Regular Expression.Ekspresi RegularPada umumnya komunikasi
client-server pada level aplikasi menggunakan format data teks
dengan kode ASCII. Karena pada dasarnya data yang dikomunikasikan
adalah data yang dibuat dengan programkomputer maka data itu
sedikit banyak membawa keseragaman format yang terbentuk oleh modul
pengirim data itu sendiri. Ekspresi Regular digunakan untuk
mengenali format data baik yang tersimpan maupun yang
terkirim.PendahuluanDeskripsiBab ini mempelajariregular
ekspression, suatu sistem yang digunakan untuk mengenali pola data
yang dapat terumuskan dalam template regular
expression.ManfaatRegular ekspression dapat digunakan untuk
memisahkan komponen-komponen teks dengan keteraturan
tertentu.relevansiPola teks seperti alamat email, url dan
sebagainya banyak dikomunikasikan melalui piranti bergerak. Sistem
pengenalan regular expression memudahkan pemrograman sistem
informasi pada aera pengenalan teks dengan pola tertentu.Learning
OutcomesMahasiswa dapat memanfaatkan modul regular expression yang
tersedia hampir disetiap sistem pemrograman komputer untuk
mempersingkan proses pembuatan sistem informasi.MateriSalah satu
aspek penting dari pemrogaman jaringan adalah perancangan protokol.
Pada layer aplikasi, protokol komunikasi biasanya diselenggarakan
dengan pertukaran teks ASCII. Client dan server saling berkirim
teks, baris per baris. Setiap kali menerima satu baris teks, client
(atau server) menganalisa isi teks tersebut dan bereaksi/mengambil
tindakan berdasarkan baris yang diterima. Sebagai contoh, kita akan
membuat protokol sederhana client server di mana server menerima
teks dari client dalam bentuk string operasi aritmatika sederhana
(penjumlahan, pengurangan, perkalian atau pembagian antara 2
angka). Selanjutnya server akan memilah angka, dan operator,
melakukan kalkulasi, dan mengirimkan string ke client dalam bentuk
hasil kalkulasinya.Dalam rancangan ini, server mengirimkan string
SOAL ke client. Setelah menerima string SOAL, client
mengirimkanstring soal kalkulasi ke server dan kemudian server
mengirimkan balik hasil kalkukasinya. Untuk menganalisa soal dari
client, server harus bisa mengenali pola dari string yang
dikirimkan. Seperti apa polanya?Regular expression mendefinisikan
pola stringkelas tertentu yang disebut kelas regular expression
serta memilah komponen-komponen dari expression itu. Perhatikan
baris contoh program di bab sebelumnya yang memuat regular
expression.$dariclient =~ /(\d+)\s*([-\+\/\*])\s*(\d+)/;Kode \d
mewakili karakter angka. Kode \s mewakili white space yakni spasi
atau tab. Pola itu mengenali komponen digit diikuti oleh operator
yang bisa berupa +, -, * dan / dengan atautanpa batas beberapa
spasi atau tab. Tanda kurung digunakan untuk mengambil komponen
ekspresinya untuk dimasukkan ke dalam variabel.PENUTUPTes formatif
dan kunci tes formatifSoal: Tuliskan ekspresi regular untuk
menangkap format tanggal 12 Agustus 2611Jawab:\d\d [A-Za-z]+
\d\d\d\dPetunjuk penilaian dan umpan balikPenggunaan ekspresi
regulartidak hanya menganali pola namun juga menangkap
komponen-komponen yang membentuk pola tersebut. Hampir semua teks
yang dikeluarkan oleh sistem bisa dikenali polanya dengan ekspresi
regular. Gunakan teks-teks log sistem sebagai bahan mengolah data
pada sisiekstrasi informasi dari input semi random.Tindak
lanjutPola yang tidak bisa dikenali dengan ekspresi regular
biasanya bisa ditangkap dengan grammar parser. Pola yang lebih luas
dari regular ekspression adalah context free grammar. Mahasiswa
didorong agar menindaklanjuti diskusi materi ini dengan mencari
berbagai sistem pengenal context free grammar.Piranti
BergerakPendahuluanDeskripsiBab ini membahas permasalahan diseputar
variasi ukuran dan kapasitas piranti bergerak.ManfaatMahasiswa
dapatmementukan sistem pemrograman berdasarkan target pemakaian
aplikasi komputer yang dibuat berdasarkan karakteristik fisik dan
kapasitasnya.RelevansiPengenalan piranti bergerak merupakan materi
pokok kedua pada program aplikasi jaringan komputer di
pirantibergerak.Learning OutcomesMahasiswa dapat mengantisipasi
cepatnya perubahan bentuk, ukuran fisik dan kemampuan piranti
bergerak yang cepat berubah dalam jangka waktu yang relatif
pendek.MateriSaat ini banyak sekali piranti pengguna jaringan
komunikasidijual dalam berbagai ukuran layar tampilan data.
Generalisasi pemrograman aplikasinya menjadi sangat berbeda
dibanding pemrograman komputer yang pada awalnya didominasi layar
80x24 karakter ASCII.Salah satu ciri piranti bergerak, selain
bentuknya yangringkas adalah ketersediaan fasilitas jaringan
komunikasi data nir kabel. Ada 3 fungsi koneksi nirkabel: jaringan
koneksi peralatan external, fasilitas copy data nirkabel dengan
piranti yang berdekatan dan jaringan komputer luas. Saat ini ada 2
jalur modeljaringan komputer yang banyak digunakan di piranti
bergerak: jaringan telpon selular dan jaringan wifi.Jaringan
NirkabelJaringan selular seperti CDMA, GSM, memberi cakupan koneksi
nirkabel yang luas. Biasanya layanan koneksi selular
diselenggarakan olehperusahaan yang beroperasi secara nasional atau
setidaknya dalam jangkauan luas di kota-kota besar. Meskipun sudah
ada perushaan yang menyediakan wifi dalam jangkauan luas namun pada
umumnya kita bisa dapatkan koneksi wifi dari unit organisasi kecil
seperti kampus, kantor, atau kedai makan.Bluetooth adalah teknologi
paling poluler saat ini untuk koneksi nirkabel ke peralatan
eksternal jarak dekat seperti music/voice headset, keyboard dan
mouse. Dalam perkembangannya bluetooth juga digunakan untuk
komunikasi data peralatan lain seperti sepatu (untuk memantau
langkah) dan speedometer sepeda kayuh.Kapasitas koneksi jaringan
nirkabel terus berkembang. Pembaca dipersilakan mencari informasi
di Internet dengan kata kunci network speed atau wireless speed dan
semacamnya.
Gambar 2: Ketersediaan jaringan selular di seputar Jogja-Solo
(opensignal.com)
Piranti LuaranDua piranti luaran utama dari peralatan bergerak
adalah layar tampilan teks/gambar. Piranti luaran standar yang lain
adalah speaker untuk mengeluarkan suara seperti musik, ucapan, dan
berbagai sinyal suara. Dengan paduan layar dan speaker, kita bisa
gunakan komputer untuk melihat movie atau berkomunikasi video.
Selain layar dan speaker, pada umumnya piranti bergerak, terutama
yang berukuran relatifkecil dilengkapi dengan luaran getar.Ada 2
parameter utama yang digunakan sebagai indikator kapasitas layar
komputer, termasuk piranti bergerak, yakni ukuran fisik (biasanya
dalam inci diagonalnya) serta resolusi. Untuk detailnya pembaca
dipersilakan
akseshttp://developer.android.com/reference/android/util/DisplayMetrics.htmlyang
memuat berbagai parameter yang berkaitan dengan ukuran tampilan dan
densitas pikselnyatermasuk rasio lebar dan tinggi layar.Gambar 3:
Variasi ukuran smartphone
(http://androidnexus.com/wp-content/uploads/2012/09/iphone5-size-comparison.png)
Piranti MasukanSebagaimana komputer pada umumnya, alat masukan utama pada piranti bergerakadalah keyboard dan mouse yang menyerupai keyboard dan mouse pada personal computer dengan ukuran kecil menyesuaiakan dengan ukuran piranti secara keseluruhan. Dalam perkembangannya, fungsi mouse digantikan oleh layar sentuh. Untuk menghemat ruang fisik,fungsi keyboard didapat dengan menggabungkan penampilan gambar keyboard dan sentuhan pada gambar tombol keyboard di layar tersebut.Beberapa perangkat bergerak saat ini dilengkapi dengan stylus, yakni alat semacam pen tanpa tinta untuk menggantikan jari pada operasi yang memerkukan pemposisian sentuah secara lebih presisi. Stylus modern dilengkapi dengan sensor tekanan sehingga bisa digunakan untuk emulasi sentuhan kuas atau pensil yang menghasilkan ketebalan jejak berbeda untuk tekanan yang berbeda.Sifat gerak suatu peralatan bisa mengambil manfaat sensor-sensor yang berkaitan dengan pengurusan gerak seperti GPS, accelerometer dan kompas. Beberapa piranti bergerak dilengkapi dengan sensor tekanan dan suhu untuk memperluas kemanfaatannya.Permasalahan Piranti BergerakKemudahan yang banyak dijanjikan pada sisi pemakaian membawa konsekuensi kerumitan pada sisi pemrogramannya. Ukuran layar yang sangat bervariasi harus diantisipasi oleh sistem softwarenya. Biaya koneksi yang kompleks juga harus diperhatikanuntuk meminimalisir tagihan yang ditanggung pengguna aplikasi yang kita tawarkan itu.Ukuran layarPada awal perkembangannya, tidak terlalu banyak dijumpai variasi densitas piksel. Ukuran fisik layar pada umumnya komputer berkorelasi dengan resolusi. Semakin besar resolusinya, semakin besar ukuran fisik layarnya. Dengan demikian, kita bisa mendeteksi ukuran tampilan suatu huruf dari jumlah piksel yang ditempatinya. Saat ini, densitas piksel semakin tinggi. Huruf yang dispesifikasikan dengan 20 point (ukuran besar di layar PC) akan tampil sangat kecil di smartphone kelas atas.Biaya KoneksiSkema pembiayaan koneksi piranti bergerak sangat bervariasi. Selain variasi kapasitas, volume dan kecepatannya, juga fungsi waktu siang-malam dari penggunaanya. Perbedaan skema harga satuan berbasis waktu penggunaan atau total byte yang tertransfer sering harus diperhatikan oleh programmer aplikasi.OrientasiBerbeda dengan layar PC dan laptop yang pada umumnya terpaku pada orientasi landscape, piranti bergerak mudah diposisikan untuk dilihat dalam posisi landscape maupun potrait. Perubahan orientasi ini juga harus diperhitungkan saat kita menulis program untuk piranti berberak.TipeAda 4 tipe piranti bergerak: mobile phone, smart phone, tablet dan PDA. Pembagian ini semata-mata hanya berkaitan dengan sejarah perkembangannya saja. PDA berkembang dari personal informastion system seperti phonebook, note dan calendar menjadi piranti yang bisa menerima banyak tambahan program-program aplikasi. Mobile phone, atau sekarang disebut feature phone karena banyaknya feature terpasang berawal dari perangkat telpon dan komunikasi data sederhana berbasis sms yang kemudian berkembang sedemikian hingga bisa menerima pasangan program aplikasi komputer berbasis Java. Ukuran tablet yang awalnya sekitar 12 inci sekarang diproduksi dengan ukuran yang lebih kecil seiiring dengan kecenderungan perubahan ke arah yang lebih lebar dari layar smartphone yang diproduksi belakangan hari.Sistem OperasiSistem operasi komputer pada piranti bergerak saat ini berkembang dari variasi unix menjadi iOS dari Apple, Windows dari Microsoft dan Android dari Google. Sebelum itu telah dikeluarkan berbagai piranti dengan sistem operasi PalmOS, WebOS, Symbian, Bada, Tizen,Maemo, dan MeeGo. Dengan model opensource,sistem-sistem baru mulai bermunculan an telah diujicobakan seperti Ubuntu, Firefox dan ChromeOS.Pemrograman User InterfaceUntuk melakukan pemrograman piranti bergerak, ada arah yang bisa ditempuh. Pertama, rancang userinterface berbasis aplikasi web untuk mobile device sebagaimana bisa kita temui pada sistem-sistem di Internet yang diakses dengan nama domain berprefix m semisal m.facebook.com. Kedua, kita rancang aplikasi 100% berbasis komponen dari library yang dirancang khusus untuk mobile device.Prinsip Pengembang Aplikasi di Piranti BergerakProgram aplikasi di piranti bergerak harus dikembangkan dengan 3 prinsip katering yakni enak, murah dan bergizi. Enak artinya sistem mudah digunakan dengan tampilan yang menawan. Murah artinya sistem harus sesedikit mungkin menggunakan sumberdaya seperti memori, prosesor dan jalur komunikasi data. Bergizi maknanya sistem harus bermanfaat.PENUTUPTes formatif dan kunci tes formatifSoal: mengapa program perlu mengenali posisi pembacaan piranti bergerak? Bagaimana reaksinya terhadap posisi potrait dan landscape itu? Bagaimana sebaiknya penggunaan kolom-kolom di tampilan piranti bergerak?Jawab:Piranti bergerak kadang dilihat pengguna pada posisi potrait, kada landscape. Untuk piranti yang relatif kecil, posisi potrait maupun landscape hanya memperlihatkan dokumen satu kolom saja. Pada posisi landscape, piranti besar ukuran 8 tidak bagus menampilkan naskah dalam satu kolom. Kolom informasi utama sebaiknya satu saja. Selebihnya bisa dimanfaatkan untuk meletakkan menuatau icon-icon informasi lain.Petunjuk penilaian dan umpan balikPenentuan tataletak pemrograman tampilan piranti bergerak memerlukan ketrampilan seni. Karnena itu penilaian soal-soal pada bab ini lebih pada seberapa jauh pemahaman siswa pada aturan dasartata letak tampilan komputer seperti kolom, kedalaman menu, jumlah item per menu dan sebagainya.Tindak lanjutMahasiswa diminta lebih banyak berlatih menata tampilan dokumen, menu dan sebagainya pada layar piranti bergerak. Latihan-latihan denganfeedback dari rekan-rekan kelas kuliah akan sangat membantu meningkatkan rasa seni merancang tampilan komputer.Lingkungan PemrogramanSebagaimana program aplikasi komputer pada umumnya, sistem pada piranti bergerak bisa dibuat melalui sistem pemrogramantradisionil dengan teks editor dan command line compiler dapat pula dikembangkan pada suatu lingkungan pemrograman yang terintegrasi.PendahuluanDeskripsiBab ini mendiskusikan berbagai lingkungan pemrograman yang bisa digunakan untuk membangun sistem aplikasi piranti bergerak dalam hal ini piranti berbasis sistem operasi Android.ManfaatDengan mempelajari materi ini, mahasiswa bisa memasang sistem software serta lingkungan pemrograman aplikasi Android di komputer masing-masing dan memulai merancang dan memproduksi aplikasi Android sederhana.RelevansiLingkungan pemrograman Android merupakan sarana mempraktekkan teori pemrograman jaringan dan piranti bergerak.Learning OutcomesSetelah mempelajari dan mempraktekan materi di bab ini, mahasiswa dapat menginstalasi sistem lingkungan pemrograman aplikasi piranti bergerak serta merancang dan membangun aplikasi sederhana untuk piranti bergerak bersistem operasi Android.PENYAJIANPemrograman aplikasi piranti bergerak memerlukan SDK yang dipersiapkan untuk masing-masing platform. Dari banyak platform, saat ini berkompetisi 2 terbesar yakni Android dan iOS. Memperhatikan kemudahan instalasi dan pelaksanaannya, kita fokuskan pada aplikasi di Android.Ada 2 programming environment yang tersedia untuk pemrograman aplikasi Android:1. AppInventor dari Google2. Mengintegrasikan Android API ke EclipseAppInventor tersedia di website appinventor.org dan untuk menjalankannya kita memerlukan koneksi Internet yang relatif cepat mengingat sistemnya dibuat dengan Java Applet dengan ukuran relatif besar. Android Sistem Development Kit bisa didownload untuk diinstall di PC bersistem operasi Windows atau Linux.EclipsePada dasarnya Eclipse adalah lingkungan pemrograman terpadu yang menyatukan teks editor, compiler, emulator dansegala yang berhubungan dengan pemrograman pada satu sistem software.Gambar 4: Lingkungan pemrograman terpadu Eclipse
Pada dasarnya Eclipse banyak digunakan untuk mengembangkan program-program aplikasi berbasis Java. Karena Android menggunakan teknologi Java maka relatif mudah untuk menyatukan Android Development Kit ke Eclipse.AppInventorAppInventor adalah lingkungan pemrograman aplikasi Android yang dikembangkan Google bersama dengan MIT dengan model sistem pemrograman visual. Komponen-komponen program seperti sensor, tampilan dan sebagainya divisualiasaikan sebagai komponen jigsaw puzzle yang dapat dirangkai dalam satu gambaran program bersama dengan kontrol pemrograman, variabel dan berbagai konstanta.AppInventor tidak memperkenalkan model pemrograman aplikasi baru. Sistem visual program editor dibuat menggantikan teks editor. Selebihnya proses compile dan linking dengan library yang tersedia tidak berbeda dengan lingkungan pemrograman yang lain. Di satu sisi, model visual editing menarik untuk dipelajari, di sisi lain, kurangnya modularitas mengakibatkan terbatasnya kompleksitas pemrograman yang bisa dilakukan di AppInventor. Pembaca diharapkan mencoba sendiri semua demo pemrograman AppInventor yang videonya bisa dilihat di http://www.appinventor.org.Gambar 5: Lingkungan Pemrograman Visual AppInventor
PENUTUPTes Formatif dan Kunci Tes FormatifSoal: Apa keuntungan pemrograman dengan teks editor dibanding visual editor?Jawab:Teks editor memberi keleluasaan ruang dalam memasukkanelemen-elemen program. Semua program/modul diatur dengan tata letak memanjang. Dengan teks editor, pencarian posisi bagian dari program mudah dilakukan dengan fasilitas search baik search pada nama modul maupun search pada isi dari suatu modul. Pemrogramanvisual memberi kemudahan dalam menggambarkan struktur program. Secara umum tampilan program dengan visual programming bisa dipandang sebagai flow chart sehingga aktivitas visual programming bisa dipandang sebagai editing flowchart.Petunjuk penilaian danumpan balikBab ini lebih banyak membahasa lingkungan pemrograman. Ketrampilan instalasi dan mengenali fitur-fitur yang ada di sistem pemrograman merupakan fokus dari diskusi di bab ini. Mahasiswa diminra mencoba 2 model programming untuk memperdalam pemahaman keunggulan dan kelemahan masing-masing sistem.Tindak lanjutUntuk keperluan mencoba program-program yang dicontohkan, mahasiswa diminta menggunakan lingkungan pemrograman Eclipse mengingat program yang dicontohkan relatif terlalu kompleks untuk diedit dengan visual.BasisdataBasisdata ada sistem untuk menyimpan data secara sistematis dengan maksud untuk memudahkan pencarian, pembacaan serta penyajian data dalam bentuk yang sesuai dengan kebutuhan tertentu.PendahuluanDeskripsiBab ini mendiskusikan sistem basisdata dengan model relasional pada umumnya dengan menggunakan MySQL sebagai sarana praktikum dan mencoba contoh-contohnya.ManfaatMateri ini merupakan pelengkap materi pemrograman jaringan dan piranti bergerak yang memudahkan siswa untuk membuat sistem informasi pada sisi servernya.RelevansiPada dasarnya materi basisdata tidak terkait langsung dengan pemrograman jaringan pada piranti bergerak. Namun demikian pemahanan dasar tentang basisdata sangat membantu mahasiswa untuk merancang suatu sistem informasi.Learning OutcomesSetelah menyelesaikan materi di bab ini, mahasiswa dapat merancang struktur data pendukung suatu sistem informasi yang melibatkan manipulasi data yang terstruktur.MateriBasisdata adalah sarana penyimpanan data dalambentuk terstruktur. Dikenal 3 macam struktur basisdata: network, hirarhikal dan relasional. Berikut penjelasan singkat 3 macam tersebut. Selanjutnya dalam bab ini hanya akan dibicarakan sistem basisdata relasional saja yang relevan dalam bagian penting dari contoh sistem yang dibangun.Struktur network digunakan untuk menyimpan data dari berbagai informasi yang tidak memiliki bentuk keterkaitan yang reguler. World Wide Web merupakan salah satu contoh 'basisdata'dengan struktur network. Setiap elemen informasi yang tersaji sebagai webpage mengandung pointer ke page yang lain yang bisa dikaitkan ke bagian mana pun di page yang mengaitnya. Contoh lain dalam lingkup terbatas adalah wikipedia yang memuat koleksi dariartikel yang menjelaskan kata atau istilah tertentu. Setiap kata atau istilah yang termuat dalam suatu artikel akan dikaitkan dengan artikel lain yang menjelaskan kata yang bersangkutan bila artikel itu sudah ada.Struktur hirarhikal digunakan untuk menyimpan data dari koleksi informasi yang bisa diatur dalam susunan hirarhis. Contoh database hirarhikal adalah susukan directory atau folder pada sistem berkas. Setiap direktory bisa berisi daftar berkas atau daftar direktory lain. Contoh informasi hirarhikaladalah penggolongan mahluk hidup. Kita bisa menyimpan artikel tentang binatang dalam sistem direktory semisal mamalia yang memuat dua folder bertulang-belakang dan tidak-bertulang-belakang dan seterusnya.Struktur relasional digunakan untuk menyimpan informasi yang dapat sajikan dalam bentuk tabel. Hampir dalam segala aspek, dalam lingkup relasional database, kata relasi berarti tabel.MySQLMySQL adalah salah satu sistem basis data yang menerapkan konsep relasional utamanya yang bisa dirumuskan dengan bahasa spesifikasi SQL yang merupakan kependekan dari Structured Query Language. SQL terdiri dari DDL (Data Definition Language), DML (Data Manipulation Language) dan DCL (Data Control Language). DDL digunakan untuk mendefinisikan struktur dari tabel-tabel yang ada di suatu basisdata. DML digunakan untuk mendeskripsikan operasi pada tabel-tabel yang ada dan DCL digunakan untuk mengatur hak akses masing-masing pengguna.Untuk selanjutnya, sistem basisdata akan dijelaskan dengan contoh yang langsung bisa dicoba menggunaan sistem RDBMS (Relational Database Management System) MySQL.DatabaseDatabase adalah koleksi data yang merupakan rekaman catatan informasi dan aktivitas suatu lingkungan kerja tertentu. Relasional database adalah database yang tersusun dari koleksi tabel. Dalam contoh berikut diasumsikan telah terinstall dan aktif server basisdata mysql. Akses ke basis data menggunakan mysql client yang dijalankan di shell command line.Program mysql client yang dijalankan akan memberi promptmysql>Pada prompt ini kita bsai menjalankan perintah-perintah yang terdapat dalam DDL, DML maupun DCL. Basisdata baru dibuat dengan perintahcreatemysql> create database cemplon;Query OK, 1 row affected (0.00 sec)
Untuk selanjutnya, database bisa diakses dengan perintah use.mysql> use cemplon;Database changed
Teks di sebelah kanan promptmysql>ada lah perintah yang kita masukkan ke sistem diakhir dengan enter. Selebihnya adalah jawaban dari sistem atas perintah yang kita berikan tersebut. Keterangandatabasechange mengindikasikan suksesnya kita memasang basisdata yang akan diakses. Untuk melihat daftar tabel yang ada di database, gunakan perintah show tablesmysql> show tables;Empty set (0.00 sec)Empty set mengindikasikan kalau dalam database belum terisitabel sama sekali.Data Definition LanguangeData Definition Language digunakan untuk mendefinisikan tabel-tabel yang tersimpan di basisdata. Selain struktur masing-masing tabel, DDL juga digunakan untuk menspesifikasikan keterkaitan satu tabel dengan tabel yang lain.Untuk membuat tabel, gunakan perintahcreate tablemysql> create table orang (nama text, alamat text, profesi text, umur integer);Query OK, 0 rows affected (0.42 sec)Query OK menunjukkan kalau perintah create table sukses. Kita telah membuat tabel dengan nama orang yang strukturnya terdiri dari 4 kolom (field):nama, alamat, profesidanumuryang semuanya dibuat dengan tipe teks kecualiumuryang bertipe integer. Sekarang perintah show tables menghasilkan informasi keberadaan tabel orang tersebut.mysql> show tables;+-------------------+| Tables_in_cemplon |+-------------------+| orang |+-------------------+1 row in set (0.00 sec)
Kadangkita lupa struktur suatu tabel. Untuk melihat kembali struktur tabel yang telah dibuat, gunakan perintah explain.mysql> explain orang;+---------+---------+------+-----+---------+-------+| Field | Type | Null | Key | Default | Extra |+---------+---------+------+-----+---------+-------+| nama | text | YES | | NULL | || alamat | text | YES | | NULL | || profesi | text | YES | | NULL | || umur | int(11) | YES | | NULL | |+---------+---------+------+-----+---------+-------+4 rows in set (0.50 sec)
Untuk sementara, konsentrasikan perhatian pada nama field dan tipenya. Penjelasan tentangNull, Key, DefaultdanExtradapat dibaca di manual MySQL. Untuk melihat isi tabel, gunakan perintah select. Contoh berikut adalah perintah memperlihatkan kolom nama di tabel orang.mysql> select nama from orang;Empty set (0.00 sec)
Jawaban Empty set mengindikasikan kalau tabel tersebut masih kosong. Kita bisa tampilkanbeberapa kolo sekaligus semisal nama dan umur:mysql> select nama,umur from orang;Empty set (0.00 sec)
Data Manipulation LanguageTentu saja jawabnya tetap kosong karena memang belum ada isinya. Mari kita isikan satu record data. Gunakan perintah insert into nama tabel diikuti dengan nilai record yang akan diisikan. Perhatikan untuk field text, nilai yang diisikan adalah string yang diberi quote, sedangkan field umur yang bertipe integer diisi dengan angka bulat tanpa quote.mysql> insert into orang values('Bambang','Jogja', 'dosen', 52);Query OK, 1 row affected (0.09 sec)
Perintah insert mempengaruhi 1 baris (atau record) data yang diindikasikan dengan keterangan 1 row affected. Sekarang perintah select nama, umur akan memberi hasil sebarisnama dan umur sesuai yang kita entrykan tadi.mysql> select nama,umur from orang;+---------+------+| nama | umur |+---------+------+| Bambang | 52 |+---------+------+1 row in set (0.00 sec)
Coba kita tambahkan beberapa baris lagi.mysql> insert into orang values('Budi','Bantul','mahasiswa',20);Query OK, 1 row affected (0.07 sec)mysql> insert into orang values('Ani','Solo','mahasiswa',18);Query OK, 1 row affected (0.05 sec)mysql> insert into orang values('Muntu','Solo','mahasiswa',25);Query OK, 1 row affected (0.05 sec)mysql> insert into orang values('Amir','Bantul','dosen',25);Query OK, 1 row affected (0.04 sec)
Sekarang kita coba melihat seluruh field tanpa menyebutkan nama-namanya. Untuk itu kita bisa gunakan karakter bintang (*). Perhatikan perintah sql di bawah ini berikut hasil yang diberikan oleh sistem stelah kita masukkan beberapa baris data sekaligus.mysql> select * from orang;+---------+--------+-----------+------+| nama | alamat | profesi | umur|+---------+--------+-----------+------+| Bambang | Jogja | dosen | 52 || Budi | Bantul | mahasiswa | 20 || Ani | Solo | mahasiswa | 18 || Muntu | Solo | mahasiswa | 25 || Amir | Bantul | dosen | 25 |+---------+--------+-----------+------+5 rows in set (0.00 sec)
Dengan menyebut nama kolomnya, kita bisa dapatkan hasil data satu kolom saja.mysql>select profesi from orang;+-----------+| profesi |+-----------+| dosen || mahasiswa || mahasiswa || mahasiswa || dosen |+-----------+
Pada hasil select profesi, kita menemui hasil query yang dobel baik dosen maupun mahasiswa.Bila tidak ingin melihat isian yang dobel, maksudnya hanya menampulkan hasil yang berbeda saja, kita bisa gunakan tambahan kualifikasi distinct di depan nama field yang dikehendaki.mysql> select distinct profesi from orang;+-----------+| profesi |+-----------+| dosen || mahasiswa |+-----------+2 rows in set (0.04 sec)
Coba lagi untuk field alamat.mysql> select alamat from orang;+--------+| alamat |+--------+| Jogja || Bantul || Solo || Solo || Bantul |+--------+5 rows in set (0.00 sec)
mysql>select distinct alamat from orang;+--------+| alamat |+--------+| Jogja || Bantul || Solo |+--------+3 rows in set (0.00 sec)
Kita bisa saring hasil dengan membuat persyaratan dengan pernyataan logika. Record yang diberikan adalah record yang menghasilkan nilai true pada pernyataan logika yang dituliskan setelah kata kunci where. Untuk mencari data orang yang berumur 50 tahun ke atas gunakan query dengan batasan umur lebih besar atau sama dengan 50 misalnya.mysql> select * from orang where umur >= 50;+---------+--------+---------+------+| nama | alamat | profesi | umur |+---------+--------+---------+------+| Bambang | Jogja | dosen | 52 |+---------+--------+---------+------+1 row in set (0.05 sec)
Kalau dicariyang beralamatkan solo, ketemu 2 orang.mysql>select * from orang where alamat = 'Solo';+-------+--------+-----------+------+| nama | alamat | profesi | umur |+-------+--------+-----------+------+| Ani | Solo | mahasiswa | 18 || Muntu | Solo | mahasiswa | 25 |+-------+--------+-----------+------+2 rows in set (0.00 sec)
Bila dicari orang solo yang masih muda (usia di bawah 20 tahun) ketemu 1 orang saja.mysql> select * from orang where alamat = 'Solo' and umur < 20;+------+--------+-----------+------+| nama | alamat| profesi | umur |+------+--------+-----------+------+| Ani | Solo | mahasiswa | 18 |+------+--------+-----------+------+1 row in set (0.00 sec)
JoinJoin adalah operasi penggabungan dua atau lebih tabel menjadi satu tabel besar dengan baris yang merupakan kombinasi dari baris-baris dari tabel-tabel yang dijoinkan. Jumlah baris dalam tabel hasil operasi join adalah sama dengan hasil perkalian dari jumlah baris di masing-masing tabel yang dijoinkan. Untuk menjelaskan operasi join, disiapkan tabel kedua yang berisi informasi tentang berbagai profesi.mysql> create table profesi(namaprofesi text, keterangan text, penghasilan integer);Query OK, 0 rows affected (0.42 sec)
mysql> show tables;+-------------------+| Tables_in_cemplon |+-------------------+| orang || profesi |+-------------------+2 rows in set (0.03 sec)
Kita isikan dua baris informasi tentang informasi profesi mahasiswa dan dosen. Dua profesi ini digunakan dalam kolom profesi di tabel orang yang sudah kita lihat sebelumnya.mysql> insert into profesi values('mahasiswa', 'profesi belum jelas', 2000000);Query OK, 1 row affected (0.07 sec)mysql> insert into profesi values('dosen', 'profesi sudah jelas', 8000000);Query OK, 1 row affected (0.05 sec)
Sekarang kita lihat lagi isi isi tabel orang.mysql> select * from orang;+---------+--------+-----------+------+| nama | alamat | profesi | umur |+---------+--------+-----------+------+| Bambang | Jogja | dosen | 52 || Budi | Bantul | mahasiswa | 20 || Ani | Solo | mahasiswa | 18 || Muntu | Solo | mahasiswa | 25 || Amir | Bantul | dosen | 25 |+---------+--------+-----------+------+
Kita lihat isi tabel profesi.mysql>select * from profesi;+-------------+---------------------+-------------+| namaprofesi | keterangan | penghasilan |+-------------+---------------------+-------------+| mahasiswa | profesi belum jelas | 2000000 || dosen | profesi sudah jelas | 8000000 |+-------------+---------------------+-------------+2 rows in set (0.00 sec)
Untuk melihat penghasilan masing-masing orang berdasarkan profesinya, kita bisa lakukan operasi join. Perhatikan dalam query berikut ini kitahanya menampilkan kolom nama dan penghasilan dari hasil join yang telah difilter hanya menampilkan baris hasil join dimana isi kolom profesi dari tabel orang sama dengan isi kolom nama profesi dari tabel profesi.mysql> select nama, penghasilan from orang,profesi where profesi=namaprofesi;+---------+-------------+| nama | penghasilan |+---------+-------------+| Bambang | 8000000 || Budi | 2000000 || Ani | 2000000 || Muntu | 2000000 || Amir | 8000000 |+---------+-------------+
Dengan klausul where yang lebih kompleks, kita bisa filter lebih khusus lagi semisal yang umurnya lebih atau samadengan 50.mysql>select nama, penghasilan from orang,profesi where profesi=namaprofesi and umur >=50;+---------+-------------+| nama | penghasilan |+---------+-------------+| Bambang | 8000000 |+---------+-------------+
PENUTUPTes formatif dan kuncites formatifSoal: Perintah pengisian tabel bisa dilakukan tanpa menyebutkan nama fieled di belakang nama tabelnya demilian pula perintah query cukup menyebut * untuk mewakili semua field yang ada di tabel yang bersangkutan. Sebutkan mengapa sebaiknya semua query baik pengisian tabel maupun select harus menyebutkan nama fieldnya?Jawab:Pengisian tabel dan query select tanpa menyebutkan nama field bisa menimbulkan masalah karena dalam jangka yang panjang, programmer bisa lupa dan harus menengok dokumentasisebelum melakukan programming yang menyangkut field suatu tabel. Ke depan, apabila diperlukan manipulasi data dalam tabel, perubahan struktur tabel bisa memaksa kita untuk mengubah source code program aplikasi secara keseluruhan.Petunjuk penilaian dan umpan balikPengampu bisa memngembangkan banyak soal disekitar operasi select dan join antar tabel.Tindak lanjutPenguasaan query pada sisrem basisdata relasional merupakan aset seseorang yang bercita-cita menjadi pengembang sistem informasi berbasis pamekaian jejaring komputer.Perancangan Tata LetakDengan ukuran, rasio lebar-tinggi, dan densitas pikses yang sangat bervariasi, kita perlu merancang tampilan aplikasi di piranti bergerak yang bisa beradaptasi dengan jenis dan posisi pemakaiannya.PendahuluanDeskripsiBab ini membahas tata letak tampilan interface pada piranti bergerak.ManfaatPemahaman tentang tata letak merupakan dasar pengembangan antar muka aplikasi piranti bergerak yang adaptif terhadap ukuran dan posisi pemakaian pirantinya.RelevansiPemahaman tata letak tampilan aplikai piranti bergerak mendukung materi pemrogramannya.Learning OutcomesPemahaman materi di bab ini akan memperluas wawasan pembaca dalam perancangan sistem software yang beroperasi di piranti bergerak.MateriUntukpenyederhanaan, ukuran layar piranti bergerak kita bagi 3:Ukuran A Sekitar 4
Ukuran B Sekitar 7
Ukuran C Sekitar 10
Kita sebut sekitar karena variasinya banyak sekali. Ukuran A pada dasarnya untuk yang disebut smart phone. Kelompok C untuk yang pada umumnya dikategorikan sebagai tabelet dan kelompok B untuk yang terlalu besar sebagai smart phone namun terlalu kecil untuk dibilang tablet. Kada orang menyebutnya dengan phablet.Apa pengaruhnya ketiga ukuran itu untuk pemrograman? Ukuran itu akan berpengaruh pada pengaturan tampilan di layar. Selain ukuran inci diagonal layar, kita perlu memperhatikan bagaimana pengguna memegang pirantinya, pada orientasi potrait atau landscape.KolomKita membaca buku dengan model tulisan dari kiri ke kanan sampai batasmargin kemudian kembali mulai dari kiri pada baris berikutnya. Dengan model pembacaan naskah seperti ini, scrool vertikal terasa lebih natural. Bila panjang baris melebihi batas layar sehingga memaksa kita melakukan scrool horizontal maka proses pembacaanakan menjadi sulit. Dengan demikian, kita perlu mencari ukuran kolom yang tepat menyesuakan dengan kenyamanan posisi pembacaan serta ukuran layar. Tabel berikut merukapan panduan kasar menentukan layar:No.Jenis PirantiPotraitLandscape
1.A. SmartPhone1 kolom1 kolom
2.B. Phablet1 kolom2 kolom
3.C. Tablet1 2 kolom2-3 kolom
Ukuran FontUntuk pencetakan di kertas, kita menggunakan angka
10-12 point sebagai patokan dasar ukuran font untuk huruf normal.
Di luar itu kita menyebutkansebagai font kecil, semisal untuk
subscript atau font besar untuk heading. Pada waktu layar dibuat
dengan teknologi CRT, LCD, atau LED, point font kurang lebih
mewakili jumlah piksel. Pada waktu itu kita bisa mmperkirakan
ukuran piranti bergerak dari resolusi pikselnya. Sebagai contoh,
lebar layar ponsel dengan layar 300x480 piksel pada posisi potrait
kurang lebih lebar layar komputer dengan resolusi
1024x786.Teknologi AMO LED, dan Retina display memberi jumlah
piksel yang jauh lebih banyak per inci perseginya. Dengan demikian,
kita tidak bisa mengontrol ukuran tampilan huruf dengan menyebutkan
pointnya saja. Untuk itu sudah banyak web browser yang sudah bisa
diatur sensitif terhadap densitas layar yang digunakan.PENUTUPTes
formatif dan kunci tes formatifSoal: Pada saat pertama kali Apple
mengeluarkan iPad, banyak yang skeptis karena orang masih akan
tetap menggunakan PC masing-masing. Dalam perkembangannya,
popularitas iPad mendorong produksi tablet dari
perusahaan-perusahaan hardware IT lain. Jelaskanperbedaan pokoka.
mouse dan touch screenb. on screen keyboard dan physical
keyboardyang membawa konsekuensi perancangan user interface yang
berbeda.Jawab:a. Mouse pointer tidak pernah meninggalkan layar
sehingga perpindahan posisi selalu melewati jalur yang ada di
layar. Perpindahan posisi pointer touch screen melompat-lompat.
Mouse membawa button yang bisa diprogram dengan fungsi
bermacam-macam. Jari sebagai penggerak pointer touch screen tidak
memiliki button. Klik, long press dan semacamnya harus diemulasikan
dengan pemrograman gesture touch screen tertentu.b. OnScreen
keyboard menutup sebagaian dari layar dan untuk piranti kecil akan
menutup layar seluruhnya. Kombinasi pergerakan kursor tidak lagi
natural pada penggunaan onscreen keyboard mengingat kursor, mouse
pointer menyatur dengan button.Petunjuk penilaian dan umpan
balikKetrampilan dan pengetahuan mahasiswa dinilai dengan pemahanan
atas permasalahan yang dihadapi. Kualitas rancangan tata letak
tidak menjadi fokus penilaian hasil diskusi babini mengingat
perancangan tata letak memerkukan latihan khusus dalam waktu yang
relatif lama.Tindak lanjutMahasiswa diminta fokus pada merancang
tata letak berbasis fungsionalitas piranti dengan mengambil
keputusan antara berbagi layar antara penampilaninformasi dan
button-button dengan memilih penggunaan layer tabbing.Pemrograman
dengan HTTPWorld Wide Web atau W3 adalah konsep aplikasi jaringan
komunikasi data yang dirancang untuk mengitegrasikan sistem-sistem
publikasi informasi yang tersediadari berbagai sumber yang tersedia
bebas di Internet. Konsep W3 diimplementasikan dengan hypertext
transfer protocol (http). Dalam perkembangannya, sumber informasi
yang dikembangkan langsung dengan http mendominasi kontributor W3
secara keseluruhan.PendahuluanDeskripsiKuliah ini mendiskusikan
pengembangan sistem informasi yang menggunakan hypertext transfer
protocol.ManfaatPengetahuan http merupakan bagian dasar untuk
memahami konsep pertukaran data dengan data teks
bermarkup.RelevansiSemua piranti bergerak yang dilengkapi dengan
fasilitas jaringan komunikasi data dilengkapi dengan aplikasi
browsing informasi berbasis http.Learning OutcomesSetelah mengikuti
kuliah ini mahasiswa bisa memahami cara kerja serta merancang
sistem informasi berbasis protokolhttpMateriTampilan Elemen
DokumenFungsi pendefinisian penampilan dokumen berbasis semantik
dari elemen dokumennya. Dokumen http adalah dokumen teks yang
memuat kode-kode yang digunakan untuk mendefinisikan elemen dokumen
seperti judul bab, sub-bab, tabel dan sebagainya. Beberapa fungsi
kosmetik tampilan dokumen seperti cetak tebal, miring, serta jenis
dan ukuran font berbeda secara terbatas difasilitasi di HTML.Gambar
7 menunjukkan contoh teks yang mengandung kode-kode atau tag html.
Tag menandaiteks judul bab. Tag menandai judul sub bab level 2.
Elemen data dalam tabel diberi tag . Masing-masing baris ditandai
dengan tab . Data di masing-masing kolom pada tiap-tiap baris
diberi tag . Perhatikan bahwa akhir teks yang mendapatkan tag
tertentu ditutup tag yang sama dengan awalan garis miring sebagai
tanda penutup tag.Ini JudulApa yang kita ketikkan di teks akan
muncul
begitu saja di tampilan web saat diakses.Ini juga judul babini
paragraph pendahuluanIni level duaini isi bab level 2
Kolom1Kolom2Kolom3BambangDosenJogjaBudiMahasiswaSolo
Gambar 6: Contoh tagginghtml
Dokumen html yang dibaca dengan web-browser akan tampil dengan format sesuai dengan interpretasi web browser terhadap tag yang dibubuhkan. Sebagai contoh, web browser biasanya menampilkan teks dalam tag dengan font bold berukuran besar. Tampilan juga bold tapi lebih kecil dari .Ketebalan garis yang melingkupi tabel bisa di kontrol dengan parameter border pada tag . Gambar 7 memuat penampilan dari teks html yang ada di Gambar 7 sesuai interpretasi default dari web browser (FireFox). Dalam perlembangannya, penampilan tiap elemen dalam tag tertentu bisa dikontrol dengan menggunakan cascade style Sheet, suatau mfasilitas menspesifikasikan teks dengan kontrol tertentu.Gambar 7: Contoh tampikan wer browser dari teks html dalam Gambar 6
Style SheetPemrogram sistem dapat mengontrol penampilan teks yang dikirim ke web-browser dengan menambahkah spesifikasi style penampilan teks yang dimasukkan dalam suatu tag. Untuk mengatur tata letak tampilan yang beraturan dalam baris dan kolom,kita bisa menggunakan table. Untuk tata letak yang lebih kompleks, kita bisa atur menggunakan tag dengan memberi spesifikasi ukuran dan letak secara relatif satu sama lain atau absolut terhadap rangka koordinat window tempat dia ditampilkan.contoh
ilustrasi,
aktivitas,
tugas,
latihan
Rangkuman
PENUTUPTes formatif dan kunci tes formatif
Petunjuk penilaian dan umpan balik
Tindak lanjut
Aplikasi WebDalam perkembangannya, sistem informasi berbasis teknologi web banyak digunakan untuk membangun sisteminformasi manajemen. Antar muka berbasis web banyak diminati karena kemudahan instalasinya untuk sistem yang dirancang untuk diakses oleh banyak orang yang berada di lokasi yang berlainan.PendahuluanDeskripsiBab ini membahas teknik pemrograman aplikasijaringan komputer menggunakan bahasa pemrograman PHP dengan fokus pembuatan antar muka web untuk data entry dan reporting serta interkoneksi ke sistem basisdata relasional MySQL.ManfaatMengetahui bahasa pemrograman server website terpopuler.RelevansiMenurut catatan w3techs.com, 80% lebih website di dunia menggunakan sistem pemrograman server PHP.Learning OutcomesDengan mempelajari PHP, mahasiswa dapat merancang dan mengimplementasikan sistem informasi yang memanfaatkan Internet sebagai basis komunikasi client dan server.MateriGambar 8: http://w3techs.com/technologies/overview/programming_language/all
Gambar 8 menununjukkan bahwa sampai saat ini PHP masih merupakan bahasa pemrograman yang digunakan lebih dari 80% website di dunia. Selain sebagaisistem manamejen situs publikasi informasi, PHP juga populer digunakan untuk mengembangkan sistem informasi manajemen, terutama yang berpotensi untuk digunakan oleh orang yang di lokasi yang berjauhan dari lokasi fisik servernya.
WAMP dan LAMPKita dapatmengakases data yang tersimpan pada sistem basisdata relasional melalui web. Pada prinsipnya kita melakukan akses data dari web browser ke web server yang mewakili kita akses data ke basisdata servernya.
Gambar 9: Akses Server Basisdata melalui Server Web
Untuk mencoba pemrograman server web untuk akses basis data, kita memerlukan server web dan server basisdata. Setup populer saat ini adalah menggunakan lingkungan pemrograman PHP di server web Apache dan basis data MySQL sehingga kita sering mendengar paket program aplikasi dengan singkatan LAMP yang merupakan kependekan dari Linux, Apache, MySQL dan PHP. Dalam perkembangannya, telah dibuat pula paket WAMP untuk lingkungan server Windows. Selanjutnya telah diedarkan XAMPP, yakni program aplikasi jaringan komputer serupa WAMP atau LAMP telah dipaket lebih maju oleh apachefriend.org.Akses Data dalam Tabel dari Web BrowserDalam contoh berikut diasumsikan peserta kuliah telah menyiapkan komputer yang dilengkapi dengan web server Apache yang dilengkapilingkungan pemrograman PHP dan server basisdata MySQL baik dari paket dasar server yang dipasang secara terpisah langsung dari sumber paket data masing-masing maupun dalam paket XAMPP. Dalam contoh berikut, diasumsikan file program php ditempatkan di Document Root /pjpb. Content diakses dari komputer yang dengan server sehingga bisa menggunakan nama domain localhost.Edit program php dengan nama orang.php untuk melihat isi tabel orang yang telah dibuat sebagai contoh diBAB 9 .Daftar Orang
Pada dasarnya program PHP merupakan file html biasa yang bisa disisipi script program yang dieksekusi saat file tersebut diakses melalui web server. Sisipan script php dimasukkan dalam tag khusus yang dibuka denganyang biasanya ditempatkan di baris tersendiri untuk mengapit script yang terdiri dari beberapa baris bisa juga dituliskan bersama isinya dibaris yang sama untuk kondisi script yang sangat pendek semisal memperlihatkan isi sebuah variabel saja.Apa bila dua baris pertama pada script php berisi parameter yang benar untuk akses ke basisdata MySQL yang digunakan dalam contoh di bab sebelumnya, maka laman php itu akan memberi tampilan web seperti pada gambar berikut.Gambar 10: Hasil Render Program PHP diGambar 9
Memasukkan Data ke SistemHTML menyediakan fasilitas tag untuk membangun form yang bisa digunakan untuk memasukkan data ke sistem. Data yang dimasukkan ini bisa merupakan rekaman informasi yang akan dibasisdatakan atau menangkap suatu keinginanpengakses untuk mendapatkan data tertentu.Gambar 11 memuat contoh program formulir sederhana untuk memasukkan data ke tabel yang ada di basisdata. Dalam contoh, program dapat dipandang terdiri dari 2 bagian. Bagian atas berisi kode HTML yang berisi tag form yang diatur tata letaknya dengan tabel. Bagian bawah berisi program PHP yang mengambil nilai dari parameter dari form yang diisi pengguna. Test sederhana dilakukan untuk memastikan form sudah terisi sebelum dilakukan perintah insert ke database servernya.Perhatikan pada elemen form input terdapat definisi nama inputan yang digunakan sebagai pegangan program php mengambil nilainya melalui array $_GET dari sistem yang telah diperjanjikan di protokol http. HTTP, protokol yang menggunakan HTML menyediakan 2jalur masukan dari program aplikasi yang berjalan di user. Jalur pertama adalah jalur GET seperti yang dicontohkan itu. Pada dasarnya kita bisa langsung memasukkan input dengan membentuk url yang memuat parameter-parameter yang dientrkan semisal:
NamaAlamatProfesiUmur