Bahan Ajar

download Bahan Ajar

If you can't read please download the document

description

sistem paralel

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