Rekayasa
Perangkat Lunak
Buku Teks Sekolah Menengah
Kejuruan
Aunur R. Mulyarto
REKAYASA
PERANGKAT LUNAK
Untuk SMK
REKAYASA
PERANGKAT
LUNAK
Untuk SMK
Ukuran Buku : …. x …. cm
……
ANR Aunur R. Mulyarto
R Rekayasa Perangkat Lunak : untuk SMK/oleh Aunur R. Mulyarto.
Jakarta Pusat, Direktorat Pembinaan Sekolah Menengah Kejuruan, Direktorat
Jenderal Manajemen Pendidikan Dasar dan Menengah, Departemen
Pendidikan Nasional, 2008.
vi. 439 hlm
ISBN - - -
Diperbanyak oleh….
KATA SAMBUTAN
Puji syukur kami panjatkan kehadirat Allah SWT, berkat rahmat dan karunia
Nya, Pemerintah, dalam hal ini, Direktorat Pembinaan Sekolah Menengah
Kejuruan Direktorat Jenderal Manajemen Pendidikan Dasar dan Menengah
Departemen Pendidikan Nasional, pada tahun 2008, telah melaksanakan
penulisan pembelian hak cipta buku teks pelajaran ini dari penulis untuk
disebarluaskan kepada masyarakat melalui website bagi siswa SMK.
Buku teks pelajaran ini telah melalui proses penilaian oleh Badan Standar
Nasional Pendidikan sebagai buku teks pelajaran untuk SMK yang
memenuhi syarat kelayakan untuk digunakan dalam proses pembelajaran
melalui Peraturan Menteri Pendidikan Nasional Nomor 12 tahun 2008.
Buku teks pelajaran yang telah dialihkan hak ciptanya kepada Departemen
Pendidikan Nasional tersebut, dapat diunduh (download), digandakan,
dicetak, dialihmediakan, atau difotokopi oleh masyarakat. Namun untuk
penggandaan yang bersifat komersial harga penjualannya harus memenuhi
ketentuan yang ditetapkan oleh Pemerintah. Dengan ditayangkannya soft
copy ini akan lebih memudahkan bagi masyarakat untuk mengaksesnya
sehingga peserta didik dan pendidik di seluruh Indonesia maupun sekolah
Indonesia yang berada di luar negeri dapat memanfaatkan sumber belajar
ini.
Jakarta,
Direktur Pembinaan SMK
Dengan segala kerendahan hati, kami mengucapkan syukur kepada Allah
SWT. Karena hanya dengan lindungan, rahmat dan karuniaNya-lah maka buku ini
dapat diselesaikan.
Buku yang berjudul ’Rekayasa Perangkat Lunak’ merupakan buku yang
disusun untuk memenuhi kebutuhan buku pegangan bagi siswa Sekolah Menengah
Kejuruan. Khususnya pada program keahlian Rekayasa Perangkat Lunak. Buku ini
memuat uraian yang mengacu pada standar kompetensi dan kompetensi dasar
Rekayasa Perangkat Lunak untuk siswa SMK mulai dari kelas X, XI sampai dengan
kelas XII.
Tiap bab berisi teori yang harus dipahami secara benar oleh peserta didik dan
disertai dengan contoh-contoh soal yang relevan dengan teori tersebut. Selain itu
terdapat juga soal-soal yang didasarkan pada konsep dan teori yang dibahas sebagai
alat uji untuk mengukur kemampuan peserta didik dalam penguasaan materi tersebut.
Dalam mengembangkan buku ini, penulis berupaya agar materi yang disajikan
sesuai dengan kebutuhan kompetensi yang harus dicapai. Oleh karenanya, selain dari
hasil pemikiran dan pengalaman penulis sebagai pengajar dan praktisi Rekayasa
Perangkat Lunak, materi yang dikembangkan juga diperkaya dengan referensi-
referensi lain yang sesuai.
Pada kesempatan ini penulis ingin menyampaikan rasa terima kasih kepada
semua pihak yang mendukung buku ini dapat diterbitkan. Mudah-mudahan buku ini
dapat bermanfaat bagi peserta didik dalam mengembangkan kemampuannya. Penulis
menyadari bahwa buku ini masih perlu dikembangkan terus menerus, sehingga saran
dari berbagai pihak pengguna buku ini sangat diharapkan.
Penulis
iii
iv
Halaman
1 PENDAHULUAN 1
1.1. Pengertian Rekayasa Perangkat Lunak 2
1.2. Tujuan Rekayasa Perangkat Lunak 2
1.3. Ruang Lingkup 3
1.4. Rekayasa Perangkat Lunak dan Disiplin Ilmu Komputer 4
1.5. Rekayasa Perangkat Lunak dan Disiplin Ilmu Lain 8
1.6. Perkembangan Rekayasa Perangkat Lunak 8
1.7. Profesi dan Sertifikasi 9
1.8. Rekayasa Perangkat Lunak dan Pemecahan Masalah 10
1.8.1. Masalah dan Gejala 10
1.8.2. Tipe-tipe Masalah 11
1.8.3. Pemecahan Masalah 12
1.9. Ringkasan 14
1.10. Soal-soal Latihan 15
v
3.1.2. Komponen-Komponen Elektronika 37
3.2. Elektronika Digital 38
3.2.1. Pengertian Elektronika Digital 38
3.2.2. Gerbang Logika 39
3.2.3. Rangkaian Digital 41
3.3. Sistem Komputer 41
3.3.1. Perangkat Keras 42
3.3.2. Perangkat Lunak 50
3.4. Ringkasan 54
3.5. Soal-Soal Latihan 54
4. SISTEM OPERASI 55
4.1. Pengertian Sistem Operasi 56
4.1.1. Fungsi 56
4.1.2. BIOS 61
4.2. Jenis-Jenis Sistem Operasi 62
4.2.1. DOS 62
4.2.2. UNIX 63
4.2.3. Microsoft Windows 66
4.2.4. Apple Mac OS 68
4.2.5. Linux 69
4.3. Menyiapkan dan Menjalankan Sistem Operasi 70
4.3.1. Instalasi 70
4.3.2. Booting 73
4.3.3. Perintah berbasis teks 75
4.3.4. Bekerja dengan GUI 87
4.4. Bekerja dalam Jaringan Komputer 88
4.4.1. Persiapan 88
4.4.2. Konfigurasi koneksi jaringan 91
4.4.3. Berbagi file, printer, dan sumber daya lain 92
4.5. Ringkasan 95
4.6. Soal-Soal Latihan 95
x
DAFTAR PUSTAKA 425
LAMPIRAN 427
BIODATA PENULIS 439
xi
Judul Gambar Halaman
xii
3.12. Motherboard sebuah komputer 45
3.13. Central Processing Unit (CPU) 46
3.14. Berbagai jenis main memory 46
3.15. Pemasangan expansion card 47
3.16. Power Supply Unit 47
3,17. CD-RW Drive, salah satu contoh Optical Disc Drive 48
3.18. Hard Disk 49
3.19. Skema umum sebuah keyboard 49
3.20. Berbagai jenis mouse 50
3.21. Tampilan desktop sistem operasi Windows XP 51
3.22. Application software Microsoft Word (Software pengolah 52
kota).
3.23. Application software Winrar (Software kompresi dan ekstraksi 52
file).
3.24. Application software PowerSim (Software untuk simulasi 53
sistem)
3.25. Application software Hysis (Software untuk perancangan 53
pabrik).
xx
No. Judul Tabel Halaman
xxi
No. Judul Lampiran Halaman
xxii
A. Deskripsi Umum
Buku ini diberi judul “Rekayasa Perangkat Lunak”,sama dengan salah satu
program keahlian pada Sekolah Menengah Kejuruan (SMK). Meskipun demikian,
sebenarnya isi dari buku ini tidak secara khusus membahas tentang Rekayasa
Perangkat Lunak. Dari sisi pandang bidang Ilmu Komputer ada lima sub-bidang yang
tercakup dalam dalam buku ini, yaitu sub-bidang Rekayasa Perangkat Lunak, Sistem
Operasi, Algoritma dan Struktur Data, Bahasa Pemrograman dan Basis Data. Hal ini
disesuaikan dengan kurikulum tingkat SMK untuk Program Keahlian Rekayasa
Perangkat Lunak.
Pokok bahasan tentang Rekayasa Perangkat Lunak secara umum membahas
dasar-dasar pengertian Rekayasa Perangkat Lunak, masalah dan pemecahan masalah,
dan metode-metode pengembangan perangkat lunak. Pembahasan tentang sub-
bidang Sistem Operasi berisi sistem computer, sistem operasi dan bekerja dalam
jaringan computer. Cakupan materi algoritma meliputi algoritma dasar dan algoritma
lanjutan. Sub bidang Bahasa Pemrograman mengambil porsi yang cukup besar,
meliputi pemrograman GUI dengan VB & VB.Net, pemrograman Java, pemrograman
C++, pemrograman berorientasi obyek dan Pemrograman berbasis web. Sub-bidang
terakhir yang menjadi bagian dari buku ini adalah Basis Data dengan cakupan tentang
system basis data, pemodelan konseptual, basis data relasional, Microsoft Access dan
SQL.
B. Peta Kompetensi
Secara umum, buku ini mengacu pada Standar Kompetensi dan Kompetensi
Dasar (SKKD) bagi SMK seperti berikut.
1. Menggunakan algoritma pemrograman tingkat dasar
2. Menggunakan algoritma pemrograman tingkat lanjut
3. Mengoperasikan aplikasi basis data
4. Membuat aplikasi berbasis Microsoft Access
5. Menguasai teknik elektronika dasar
6. Menguasai teknik elektronika digital
7. Membuat file dengan HTML sesuai spesifikasi
8. Menerapkan dasar-dasar pembuatan web statis tingkat dasar
9. Membuat program aplikasi menggunakan VB dan VB.NET
10. Membuat paket software aplikasi
11. Melakukan pemrograman data deskripsi (SQL – Stuctured Query Language)
tingkat dasar
12. Mengoperasikan bahasa pemrograman data deskripsi (SQL) tingkat lanjut
13. Membuat halaman web dinamis tingkat dasar
xxiii
14. Membuat halaman web dinamis tingkat lanjut
15. Membuat program aplikasi web menggunakan JSP
16. Membuat program aplikasi basis data menggunakan XML
17. Membuat program basis data menggunakan Microsoft (SQL Server)
18. Membuat program basis data menggunakan PL/SQL (Oracle)
19. Membuat program aplikasi menggunakan C++
20. Menjelaskan sistem peripheral
21. Membuat program dalam bahasa pemrograman berorientasi obyek
22. Membuat program aplikasi menggunakan Java
23. Mengoperasikan sistem operasi komputer berbasis teks dan GUI
Dalam penyajian buku ini, bab-bab tidak disusun berdasarkan SKKD, akan
tetapi disusun berdasarkan urutan materi pokok bahasan. Sehingga di beberapa bab
berisi gabungan dari beberapa standar kompetensi. Atau satu kompetensi dasar
mungkin berada tidak pada kelompok standar kompetensi seperti pada daftar SKKD,
tetapi berada pada sub bab yang lain.
Kesesuaian SKKD dan isi bab dapat dilihat pada table berikut ini.
Kode Kompetensi Kompetensi Bab Terkait
ELKA-MR.UM.001.A Menguasai Teknik Dasar Elektronika 3
Menguasai Dasar Elektronika Digital dan 3
ELKA.MR.UM.004.A
Komputer
Menggunakan algoritma pemograman tingkat 5
TIK.PR02.001.01
dasar
Menggunakan algoritma pemograman tingkat 6
TIK.PR02.002.01
lanjut
Mengoperasikan sistem operasi jaringan 4
HDW.OPR.103.(1).A
komputer berbasis teks
Mengoperasikan sistem operasi jaringan 4
HDW.OPR.104.(1).A
komputer berbasis GUI
TIK.PR02.020.01 Mengoperasikan aplikasi basis Data 10 dan 11
TIK.PR08.004.01 Membuat aplikasi Berbasis Microsoft Acces 11
Membuat dokumen dengan HTML sesuai 13
TIK.PR08.024.01
spesifikasi
Menerapkan dasar-dasar pembuatan web 13
TIK.PR08.027.01
statis tingkat dasar.
Membuat program aplikasi menggunakan VB 7
TIK.PR08.003.01
& VB.NET
TIK.PR02.016.01 Membuat paket software Aplikasi 7
Mengoperasikan bahasa pemrograman data 12
TIK.PR03.001.01
deskripsi (SQL) tingkat dasar
Mengoperasikan bahasa pemrograman data 12
TIK.PR03.002.01
deskripsi (SQL) tingkat Lanjut
Membuat Halaman Web dinamis tingkat 13
TIK.PR04.002.01
dasar
xxiv
Kode Kompetensi Kompetensi Bab Terkait
Membuat Halaman Web dinamis tingkat 13
TIK.PR04.003.01
Lanjut.
Mengoperasikan bahasa pemograman 8
TIK.PR02.009.01
berorientasi obyek
Membuat program aplikasi menggunakan 8
TIK.PR08.012.01
Java
Membuat program aplikasi menggunakan 9
TIK.PR08.001.01
C++
TIK.PR06.003.01 Menjelaskan sistem Peripheral 3
Membuat program basis data menggunakan 10 dan 12
TIK.PR08.005.01
PL/SQL
Membuat program basis data menggunakan 12
TIK.PR08.006.01
SQL Server
TIK.PR08.008.01 Membuat program aplikasi web berbasis JSP 14
xxv
Gambar 1.1. Tampilan desktop Microsoft Windows.
Coba kita perhatikan Gambar 1.1. di atas. Bagi pengguna komputer, gambar di
atas merupakan tampilan yang sangat dikenal. Gambar ini merupakan tampilan
desktop Sistem Operasi Microsoft Windows. Pada gambar tersebut, kita melihat
sejumlah ikon-ikon tertentu. Apabila kita klik ganda pada satu ikon maka suatu
perangkat lunak (software) tertentu akan terbuka dan dapat kita gunakan untuk
menyelesaikan suatu tugas tertentu.
Pada masa sekarang, rasanya hampir semua bidang kehidupan tersentuh
penggunaan perangkat lunak atau software. Beberapa perangkat lunak mungkin
sudah terbiasa kita gunakan atau kita lihat seperti perangkat lunak untuk memainkan
atau membuat musik, perangkat lunak untuk membantu kasir dalam penjualan
barang, perangkat lunak untuk mengetik dokumen, dan lain-lain. Perangkat lunak ini
merupakan hasil dari serangkaian proses atau kegiatan yang dikenal sebagai
Rekayasa Perangkat Lunak. Apakah sebenarnya Rekayasa Perangkat Lunak itu? Bab
ini akan memberi jawaban atas pertanyaan ini.
2 Pendahuluan
Kinerja
Biaya Waktu
Dari Gambar 1.2 dapat diartikan bahwa bidang rekayasa akan selalu berusaha
menghasilkan output yang kinerjanya tinggi, biaya rendah dan waktu penyelesaian
yang tepat. Secara lebih khusus kita dapat menyatakan tujuan RPL adalah :
a. Memperoleh biaya produksi perangkat lunak yang rendah.
b. Menghasilkan perangkat lunak yang kinerjanya tinggi, andal dan tepat waktu.
c. Menghasilkan perangkat lunak yang dapat bekerja pada berbagai jenis
platform.
d. Menghasilkan perangkat lunak yang biaya perawatannya rendah.
Software
Process
Testing
Software
Engineering
Software Software
Quality Maintenance
4 Pendahuluan
Computer
Science
Section A Section B
Komputasi Perangkat
Umum Keras
Section C Section D
Organisasi Sistem Perangkat
Komputer Lunak
Section E Section F
Data Teori
Komputasi
Section G Section H
Matematika Sistem
Komputasi Informasi
Section I Section J
Metodologi Aplikasi Komputer
Komputasi di Bidang Lain
Section K
Aspek Lain
Pengorganisasian Bio-Informatics
Informatika
6 Pendahuluan
Computer
Science
Dasar Teori
Matematika Komputasi
Komputasi
Algoritma Bahasa
dan Pemrograman
Struktur Data dan Compilers
Concurrent, Rekayasa
Parallel dan Perangkat
Sistem Terdistribusi Lunak
Intelijensia Komputer
Buatan Grafis dan
Visual
Interaksi Komputasi
Manusia - Untuk
Komputer Ilmu Pengetahuan
Rekayasa
Perangkat Lunak
8 Pendahuluan
Software Development, Experimental Software Development, Model-Driven Software
Development dan Software Product Lines.
Tahun Kejadian
10 Pendahuluan
Gambar 1.10. Gejala dan masalah.
Mungkin kita bertanya-tanya apa hubungan masalah dan gejala dengan RPL.
Seperti telah disampaikan di awal bab, perangkat lunak yang merupakan hasil dari
RPL merupakan alat bantu yang digunakan untuk menyelesaikan tugas / masalah
tertentu. Apabila kita tidak mengetahui dengan benar masalahnya mustahil kita dapat
menentukan bagaimana menyelesaikannya. Dan, untuk mengetahui dengan baik
masalah, maka pengetahuan tentang gejala dari masalah menjadi sangat penting.
12 Pendahuluan
Gambar 1.12. Proses pemecahan masalah (diadopsi dari Deek et al, 2005)
1.9. RINGKASAN
• Perangkat lunak adalah seluruh perintah yang digunakan untuk
memproses informasi
o Program adalah kumpulan perintah yang dimengerti oleh
komputer
o Prosedur adalah perintah yang dibutuhkan oleh pengguna dalam
memproses informasi
• RPL adalah suatu disiplin ilmu yang membahas semua aspek produksi
perangkat lunak, mulai dari tahap awal yaitu analisa kebutuhan
pengguna, menentukan spesifikasi dari kebutuhan pengguna, disain,
pengkodean, pengujian sampai pemeliharaan sistem setelah digunakan.
• Tujuan RPL adalah menghasilkan perangkat lunak dengan kinerja tinggi,
tepat waktu, berbiaya rendah, dan multiplatform.
• RPL merupakan sub bidang ilmu komputer yang dalam penerapannya
membutuhkan dukungan baik dari sub bidang ilmu komputer lainnya
maupun bidang-bidang ilmu lain.
• Sertifikasi untuk bidang RPL belum tersedia, namun mengacu pada
bidang Programmer
• Masalah (problem) adalah perbedaan antara kondisi yang terjadi dan
kondisi yang diharapkan dan Gejala adalah tanda/petunjuk terjadinya
suatu masalah.
• Tipe-tipe masalah :
o Masalah pemenuhan standar
o Masalah pemilihan alternatif
o Masalah pemenuhan kepuasan konsumen
o Masalah pencapaian tujuan
14 Pendahuluan
• Pemecahan masalah adalah sebuah proses dimana suatu situasi
diamati kemudian bila ditemukan ada masalah dibuat penyelesaiannya
dengan cara menentukan masalah, mengurangi atau menghilangkan
masalah atau mencegah masalah tersebut terjadi.
• Tahapan utama pemecahan masalah :
o Memahami dan mendefinisikan masalah
o Membuat rencana untuk pemecahan masalah
o Merancang dan menerapkan rencana untuk memperoleh cara
penyelesaian
o Memeriksa dan menyampaikan hasil dari pemecahan masalah
• Reusable prototype :
Prototype yang akan ditransformasikan menjadi produk final.
• Throwaway prototype :
Prototype yang akan dibuang begitu selesai menjalankan maksudnya.
• Input/output prototype :
Prototype yang terbatas pada antar muka pengguna (user interface).
• Processing prototype :
Prototype yang meliputi perawatan file dasar dan proses-proses transaksi.
• System prototype :
Prototype yang berupa model lengkap dari perangkat lunak.
Tahap-tahap dalam prototyping boleh dikata merupakan tahap-tahap yang
dipercepat. Strategi utama dalam prototyping adalah kerjakan yang mudah terlebih
dahulu dan sampaikan hasil kepada pengguna sesegera mungkin. Harris (2003)
membagi prototyping dalam enam tahapan seperti terlihat pada gambar 2.5.
Tahapan-tahapan secara ringkas dapat dijelaskan sebagai berikut:
• Identifikasi kandidat prototyping. Kandidat dalam kasus ini meliputi user
interface (menu, dialog, input dan output), file-file transaksi utama, dan fungsi-
fungsi pemrosesan sederhana.
2.2.1. Analisis
Analisis sistem adalah sebuah teknik pemecahan masalah yang menguraikan
sebuah sistem menjadi komponen-komponennya dengan tujuan mempelajari
seberapa bagus komponen-komponen tersebut bekerja dan berinteraksi untuk meraih
tujuan mereka.
Analisis mungkin adalah bagian terpenting dari proses rekayasa perangkat
lunak. Karena semua proses lanjutan akan sangat bergantung pada baik tidaknya
hasil analisis. Tahapan-tahapan dalam analisis rekayasa perangkat lunak secara
ringkas dapat dilihat pada Gambar 2.7.
Ada satu bagian penting yang biasanya dilakukan dalam tahapan analisis yaitu
pemodelan proses bisnis. Model proses adalah model yang memfokuskan pada
seluruh proses di dalam sistem yang mentransformasikan data menjadi informasi
(Harris, 2003). Model proses juga menunjukkan aliran data yang masuk dan keluar
pada suatu proses. Biasanya model ini digambarkan dalam bentu Diagram Arus Data
(Data Flow Diagram / DFD). DFD meyajikan gambaran apa yang manusia, proses dan
prosedur lakukan untuk mentransformasi data menjadi informasi.
Process
Context diagram adalah DFD ruang lingkup dari sistem yang menunjukkan
batas-batas sistem, external entitiy yang berinteraksi dengan sistem dan aliran data
utama antara external entity dengan sistem. Context diagram menggambarkan
keseluruhan sistem dalam suatu proses tunggal. Gambar 2.10 menunjukkan sebuah
contoh context diagram.
Gambar 2.10. Context diagram sistem pemesanan makanan (Hoffer et al., 2002).
Context diagram pada Gambar 2.10 tampak hanya ada satu proses tunggal
yang merepresentasikan sistem yang dimodelkan. Pada proses ini diberi notasi angka
0 untuk menunjukkan ini adalah level paling abstrak dari sistem. Selain itu ada tiga
external entity yaitu customer, kitchen dan restaurant manager. Ketiganya dapat
Pada gambar 2.11 tampak adanya pemecahan pada proses dari yang semula
hanya satu menjadi empat. Masing-masing proses diberi nomor kode 1.0, 2.0, 3.0
dan 4.0. Jumlah external entity harus tetap yaitu 3 demikian pula data flow yang
keluar dan masuk (input dan output) ke dalam sistem harus sama dengan pada
context diagram. Sedangkan data flow yang berada di dalam sistem (yang mengalir
antar proses dan atau data storage) tergantung pada proses dan data storage yang
terlibat. Ada dua data storage yaitu Goods Sold File dan Inventory File. Kedua data
2.2.2. Disain
Disain perangkat lunak adalah tugas, tahapan atau aktivitas yang difokuskan
pada spesifikasi detil dari solusi berbasis computer (Whitten et al, 2004).
2.2.3. Konstruksi
Konstruksi adalah tahapan menerjemahkan hasil disain logis dan fisik ke
dalam kode-kode program computer. Buku ini sebagian besar berisi tentang bagian
ini.
2.2.4. Pengujian
Pengujian sistem melibatkan semua kelompok pengguna yang telah
direncanakan pada tahap sebelumnya. Pengujian tingkat penerimaan terhadap
perangkat lunak akan berakhir ketika dirasa semua kelompok pengguna menyatakan
bisa menerima perangkat lunak tersebut berdasarkan criteria-kriteria yang telah
ditetapkan.
• Tipe perawatan corrective dilakukan jika terjadi kesalahan atau biasa dikenal
sebagai bugs. Perawatan bisa dilakukan dengan memperbaiki kode program,
menambah bagian yang dirasa perlu atau malah menghilangkan bagian-
bagian tertentu.
• Tipe perawatan routine biasa juga disebut preventive maintenance dilakukan
secara rutin untuk melihat kinerja perangkat lunak ada atau tidak ada
kesalahan.
• Tipe perawatan sistem upgrade dilakukan jika ada perubahan dari komponen-
komponen yang terlibat dalam perangkat lunak tersebut. Sebagai contoh
perubahan platform sistem operasi dari versi lama ke versi baru menyebabkan
perangkat lunak harus diupgrade.
2.3. RINGKASAN
• Model-model rekayasa perangkat lunak pada umumnya mengacu pada model
proses pengembangan sistem yang disebut System Development Life
Cycle (SDLC).
• Model pengembangan perangkat lunak yang sekarang umum digunakan
adalah The Waterfall Model, Prototyping, dan Unified Process (UP).
• Tahapan-tahapan utama dalam rekayasa perangkat lunak meliputi : analisis,
disain, konstruksi, pengujian dan perawatan.
atau
• Induktor
Induktor adalah komponen yang dapat
menyimpan energi magnetik. Energi ini
direpresentasikan dengan adanya tegangan emf
(electromotive force) jika induktor dialiri listrik.
Fungsi utama dari induktor di dalam suatu
Gambar 3.4. Induktor. rangkaian adalah untuk melawan fluktuasi arus
yang melewatinya. Aplikasinya pada rangkaian
dc salah satunya adalah untuk menghasilkan tegangan dc yang konstan terhadap
fluktuasi beban arus. Pada aplikasi rangkaian ac, salah satu gunanya adalah bisa
untuk meredam perubahan fluktuasi arus yang tidak dinginkan. Akan lebih banyak
lagi fungsi dari induktor yang bisa diaplikasikan pada rangkaian filter, tuner dan
sebagainya.
4. Main Memory. Main Memory atau kadang disebut sebagai Primary Storage,
atau Internal Memory, adalah memori komputer yang secara langsung dapat
diakses oleh CPU tanpa menggunakan jalur input/output komputer. Komponen
ini digunakan untuk menyimpan data yang sedang aktif digunakan. Primary
storage dapat terdiri dari beberapa tipe penyimpan seperti main storage, cache
memory, dan special registers.
6. Power Supply. Power supply atau kadang-kadang disebut PSU (Power Supply
Unit) adalah perangkat yang menyuplai energi listrik atau energi jenis lain pada
komponen lain dalam komputer.
Gambar 3.17. CD-RW Drive, salah satu contoh Optical Disc Drive.
10. Mouse. Mouse, biasanya terdiri dari pointing device, yang digunakan untuk
mendeteksi pergerakan relative dari dua permukaan secara dua dimensi yang
kemudian ditampilkan pada display. Sebagai tambahan, pada mouse seringkali
ditambahkan fungsi lain, seperti "wheels" atau roda. Selain mendeteksi
pergerakan, mouse juga berperan dalam mengeksekusi perintah dengan cara
menekan tombol pada mouse sekali (click) atau dua kali berurutan (double
click).
2. Programming Software
Programming Software adalah perangkat lunak yang menyediakan alat
bantu atau fungsi yang dapat membantu programmer dalam membuat program
komputer.
Software ini sangat bergantung pada bahasa pemrograman yang digunakan.
Alat bantu ini meliputi editor teks, compiler, interpreter, linkers, debugger dan lain-
lain. Sebuah Integrated Development Environment (IDE) atau lingkungan
pengembangan terpadu menggabungkan alat-alat bantu ini untuk mempermudah
programmer. Kita akan banyak mempelajari bagian ini pada buku ini.
3. Application Software
Application Software adalah perangkat lunak yang digunakan membantu
manusia mengerjakan tugas-tugas tertentu (kadang tidak berhubungan dengan
komputer.
Tipe-tipe application software antara lain, perangkat lunak otomatisasi
industri, perangkat lunak bisnis, perangkat lunak pendidikan, perangkat lunak
software, database, dan game komputer. Beberapa contoh application software
dapat dilihat pada Gambar-Gambar berikut ini.
Gambar 3.23. Application software Winrar (Software kompresi dan ekstraksi file).
Kalau kita perhatikan sekilas Gambar 4.1 di atas mungkin kita akan bertanya-
tanya baris-baris tulisan apakah yang tersaji pada gambar tersebut. Tapi kalau kita
cermati kita akan dapat menduga teks di atas adalah baris perintah dan hasil eksekusi
dari sistem operasi. Bagian perintah sistem operasi berbasis teks ini sering kita
abaikan namun sebenarnya sangat penting dan berguna.
Bab ini akan membahas standar kompetensi mengoperasikan sistem operasi
komputer berbasis teks dan GUI. Ada dua kompetensi dasar pada standar
kompetensi ini yaitu menyiapkan pengoperasian PC, mengoperasikan PC yang
tersambung ke jaringan, dan memutuskan koneksi jaringan. Dalam penyajian pada
buku ini, setiap kompetensi dasar memuat uraian materi. Ringkasan diletakkan pada
akhir bab. Sebelum mempelajari kompetensi ini ingatlah kembali tentang sistem
komputer pada bab sebelumnya dan materi-materi pendukung dari mata pelajaran
matematika.
4.1.1 FUNGSI
Fungsi-fungsi sebuah sistem operasi secara umum dapat dilihat pada gambar
4.2.
• Antar muka pengguna
Fungsi ini merupakan fungsi yang paling mudah dikenali oleh pengguna
karena melalui fungsi ini pengguna dapat berinteraksi dengan sistem operasi,
perangkat keras maupun perangkat lunak yang lain. Sistem operasi pada dasarnya
menunggu input atau instruksi dari pengguna dan kemudian menerjemahkan
perintah-perintah tersebut dalam bahasa yang dimengerti oleh komputer. Antar
muka pengguna menjadi tempat bagi pengguna untuk menuliskan atau
menyampaikan perintah tersebut.
56 Sistem Operasi
Gambar 4.2. Fungsi-fungsi sistem operasi.
Secara garis besar ada dua model antar muka pengguna yaitu Command Line
Interface (CLI) dan Graphical User Interface (GUI). CLI memberikan fasilitas bagi
pengguna untuk memberikan perintah dalam bentuk teks sedangkan GUI lebih
berbasis pada tampilan grafis. Dewasa ini hampir semua sistem operasi modern
menyediakan model GUI sebagai antar muka pengguna. Beberapa menyediakan
GUI yang terintegrasi dengan kernel sistem operasi, misalnya pada Microsoft
Windows dan Apple Mac OS versi awal. Sedangkan yang lainnya menyediakan GUI
yang bersifat modular, yaitu tidak terintegrasi langsung pada kernel sistem
operasinya, seperti pada Unix, Linux dan Mac OS versi X ke atas.
• Manajemen memori
Memori utama atau lebih dikenal sebagai memori adalah sebuah array yang
besar dari word atau byte, yang ukurannya mencapai ratusan, ribuan, atau bahkan
jutaan. Setiap word atau byte mempunyai alamat tersendiri. Memori utama
berfungsi sebagai tempat penyimpanan instruksi/data yang akses datanya
digunakan oleh CPU dan perangkat Masukan/Keluaran. Memori utama termasuk
tempat penyimpanan data yang yang bersifat volatile -- tidak permanen -- yaitu data
akan hilang kalau komputer dimatikan.
Sistem operasi bertanggung-jawab atas aktivitas-aktivitas yang berkaitan
dengan manajemen memori seperti:
o Menjaga track dari memori yang sedang digunakan dan siapa yang
menggunakannya.
o Memilih program yang akan di-load ke memori.
• Manajemen file
File (berkas) adalah kumpulan informasi yang berhubungan, sesuai dengan
tujuan pembuat berkas tersebut. Umumnya file merepresentasikan program dan
data. File dapat mempunyai struktur yang bersifat hirarkis (direktori, volume, dll.).
Sistem operasi mengimplementasikan konsep abstrak dari file dengan mengatur
media penyimpanan massal, misalnya tapes dan disk.
Sistem operasi bertanggung-jawab dalam aktivitas yang berhubungan dengan
manajemen file :
o Pembuatan dan penghapusan file.
o Pembuatan dan penghapusan direktori.
o Mendukung manipulasi berkas dan direktori.
o Memetakan berkas ke secondary-storage.
o Mem-back-up berkas ke media penyimpanan yang tidak permanen (non-
volatile).
58 Sistem Operasi
Gambar 4.4. Windows Explorer sebagai sarana pengelolaan file.
• Manajemen proses
Proses adalah sebuah program yang sedang dieksekusi. Sebuah proses
membutuhkan beberapa sumber daya untuk menyelesaikan tugasnya. Alokasi
sumber daya tersebut dikelola oleh Sistem Operasi. Misalnya, penggunaan memori
oleh CPU, file-file yang terbuka, dan penggunaan oleh perangkat-perangkat
input/output lain. Ketika proses tersebut berhenti dijalankan, sistem operasi akan
mendapatkan kembali semua sumber daya yang bisa digunakan kembali.
Sistem operasi bertanggung-jawab atas aktivitas-aktivitas yang berkaitan
dengan manajemen proses seperti:
o Membuat dan menghapus proses pengguna dan sistem proses.
o Menunda atau melanjutkan proses.
o Menyediakan mekanisme untuk sinkronisasi proses.
o Menyediakan mekanisme untuk komunikasi proses.
o Menyediakan mekanisme untuk penanganan deadlock.
60 Sistem Operasi
Gambar 4.6. Manajemen I / O pada sistem operasi Microsoft Windows.
4.1.2 BIOS
BIOS merupakan singkatan dari Basic Input/Output System. BIOS adalah kode-
kode program yang pertama kali dijalankan ketika komputer dinyalakan (booting).
Fungsi utama BIOS adalah untuk mengidentifikasi dan mengenali perangkat keras
komputer. Biasanya BIOS akan tersimpan dalam ROM (Read Only Memory) yang ada
pada motherboard suatu komputer.
Ketika komputer dinyalakan maka BIOS akan mencoba mengenali bagian-
bagian komputer berikut ini:
• clock generator.
• processors dan caches.
• chipset (memory controller and I/O controller).
• system memory.
• Semua perangkat PCI
• primary graphics controller.
• Mass storage controllers (seperti SATA and IDE controllers).
• Various I/O controllers (such keyboard/mouse and USB).
Setelah dikenali maka BIOS akan memanggil program untuk boot suatu sistem operasi
(boot loader).
4.2.1. DOS
DOS adalah singkatan dari Disk Operating System. DOS merujuk pada
perangkat sistem operasi yang digunakan di banyak komputer yang menyediakan
abstraksi dan pengelolaan perangkat penyimpan sekunder dan informasinya.
Misalnya penggunaan sistem file yang mengelola file-file yang ada pada perangkat
penyimpan. DOS biasanya dijalankan dari satu atau dua disc. Hal ini karena pada
masa DOS digunakan media penyimpan masih sangat terbatas kemampuannya
(paling besar mungkin hanya 1,4 Megabyte).
Ada banyak jenis DOS diantaranya Apple DOS, Commodore DOS, Atari DOS dan
lain-lain. Jenis ini sangat bergantung dengan jenis perangkat komputernya. Jenis
DOS yang paling terkenal adalah jenis DOS yang berjalan pada mesin-mesin yang
compatible dengan IBM Personal Computer.
62 Sistem Operasi
Untuk menjalankan perintah-perintah sistem operasi, DOS menggunakan
perintah berbasis teks atau CLI. Setiap kali selesai mengetikkan suatu perintah, kita
harus menekan tombol ENTER untuk mengeksekusi perintah tersebut. Contoh operasi
dengan menggunakan DOS dapat dilihat pada Gambar 4.8.
4.2.2. UNIX
UNIX adalah sistem operasi yang mula-mula dikembangkan oleh suatu
kelompok di AT & T pada laboatorium Bell. Unix banyak digunakan baik untuk server
maupun workstation. Linkungan Unix dan model program client-server menunjukkan
bahwa Unix lebih dikembangkan sebaga sistem operasi yang kuat di jaringan
komputer dari pada sistem operasi untuk computer personal.
UNIX dirancang untuk portable, multi-tasking, dan multi-user. Konsep utama
Unix antara lain banyak menggunakan file teks biasa untuk menyimpan data,
menggunakan sistem file berjenjang, memperlakukan perangkat sebagai suatu file,
dan menggunakan banyak program kecil yang eksekusinya pada CLI dapat digabung
dengan tanda pipeline (|). Pada Gambar 5.2 di atas, tampak beberapa perintah UNIX
yang digabung dengan pipeline. Konsep yang sangat solid dan stabil membuat Unix
banyak dijadikan dasar sistem operasi modern. Gambar 4.9. menunjukkan
bagaimana Unix merupakan dasar dari banyak sistem operasi yang ada sekarang.
Sistem UNIX terdiri dari beberapa komponen yang biasanya dipaket bersama.
Umumnya paket-paket tersebut adalah sebagai berikut:
• Kernel dengan sub komponen seperti :
o conf — file konfigurasi.
o dev — driver perangkat keras
o sys — kernel sistem operasi, manajemen memori, penjadwalan proses,
sistem calls dan lain-lain.
o h — header files, mendefinisikan struktur kunci di dalam sistem.
64 Sistem Operasi
Gambar 4.10. Manajemen memori dan penjadwalan proses pada Unix.
• Development Environment:
o cc —compiler untuk bahasa C
o as — machine-language assembler
o ld — linker, untuk menggabung file-file object
o lib — object-code libraries (diinstall di folder /lib atau /usr/lib) libc,
kumpulan pustaka untuk bahasa C
o make – program untuk mengkompilasi kode program
o include — file-file header untuk pengembangan perangkat lunak dan
menentukan standar interface
o Other languages — bahasa-bahasa pemrograman lain seperti Fortran-77,
Free Pascal, dan lain-lain.
• Commands:
o sh —"Shell" untuk melakukan pemrograman berbasis CLI atau
mengeksekusi perintah-perintah tertentu.
o Utilities — Sekumpulan perintah CLI yang berguna untuk fungsi-fungsi
yang bermacam-macam, meliputi:
System utilities — Program-program untuk pengelolaan sistem
seperti mkfs, fsck, dan lain-lain.
User utilities — Program-program untuk pengelolan lingkungan
kerja, seperti passwd, kill, dan lain-lain.
66 Sistem Operasi
Gambar 4.12. Windows versi 3.11.
Pada Mac OS X (versi terbaru), semua kelemahan pada versi lama telah coba
dihilangkan. Multi-tasking telah berjalan dengan baik dan manajemen memori yang
jauh lebih baik. Selain itu tampilan GUI-nya disebut-sebut sebagai yang terbaik di
antara sistem operasi yang ada..
68 Sistem Operasi
Gambar 4.15. Mac OS X.
4.2.5. Linux
Linux sangat mirip dengan sistem-sistem UNIX, hal ini dikarenakan
kompatibilitas dengan UNIX merupakan tujuan utama desain dari proyek Linux.
Perkembangan Linux dimulai pada tahun 1991, ketika mahasiswa Finlandia bernama
Linus Torvalds menulis Linux, sebuah kernel untuk prosesor 80386, prosesor 32-bit
pertama dalam kumpulan CPU intel yang cocok untuk PC.
Dalam banyak hal, kernel Linux merupakan inti dari proyek Linux, tetapi
komponen lainlah yang membentuk secara komplit sistem operasi Linux. Dimana
kernel Linux terdiri dari kode-kode yang dibuat khusus untuk proyek Linux,
kebanyakan perangkat lunak pendukungnya tidak eksklusif terhadap Linux, melainkan
biasa dipakai dalam beberapa sistem operasi yang mirip UNIX. Contohnya, sistem
operasi BSD dari Berkeley, X Window System dari MIT, dan proyek GNU dari Free
Software Foundation.
Pembagian (sharing) alat-alat telah bekerja dalam dua arah. Sistem
perpustakaan utama Linux awalnya dimulai oleh proyek GNU, tetapi perkembangan
perpustakaannya diperbaiki melalui kerjasama dari komunitas Linux terutama pada
pengalamatan, ketidak efisienan, dan bugs. Komponen lain seperti GNU C Compiler,
gcc, kualitasnya sudah cukup tinggi untuk dipakai langsung dalam Linux. Alat-alat
administrasi network dibawah Linux berasal dari kode yang dikembangkan untuk
4.3BSD, tetapi BSD yang lebih baru , salah satunya FreeBSD, sebaliknya meminjam
kode dari Linux, contohnya adalah perpustakaan matematika Intel floating-point-
emulation.
4.3.1. Instalasi
Instalasi adalah pemasangan perangkat lunak pada system computer.
Sedangkan Instalasi Sistem Operasi adalah pemasangan system operasi pada
sistem computer. Sistem operasi akan dipasang terlebih dahulu dibanding perangkat
70 Sistem Operasi
lunak yang lain. Perangkat lunak yang lain baru bisa dijalankan setelah sistem operasi
terinstal dengan benar.
Seperti telah dijelaskan, masing-masing sistem operasi memiliki ciri tersendiri.
Demikian juga dengan proses instalasi sistem operasi. Proses instalasi sangat
bergantung pada jenis sistem operasinya. Berdasarkan tampilan anta mukanya kita
dapat membagi menjadi dua, yaitu yang berbasis GUI dan berbasis CLI. Proses
instalasi berbasis GUI ada pada sistem operasi Microsoft Windows (GUI penuh pada
versi Vista), Apple Mac OS ver X dan yang di atasnya, beberapa versi Linux seperti,
Ubuntu dan turunannya (Xubuntu, Kubuntu, Edubuntu, dan lain-lain), Mandriva dan
turunannya (PC Linux OS), dan Fedora versi terbaru. Sedangkan versi CLI ada pada
Linux versi Slackware, Gentoo dan lain-lain.
Proses instalasi juga dapat dibagi berdasarkan sumber instalasinya, yaitu
bersumber dari media baik itu CD, DVD atau hard-disc dan yang bersumber dari
network (jaringan). Proses instalasi dengan menggunakan media CD atau DVD
merupakan metode yang paling umum digunakan. Pada bagian ini hanya akan
dijelaskan tentang proses instalasi dengan sumber dari CD/DVD
Tahapan-tahapan dalam instalasi biasanya seperti terlihat pada Gambar 4.16.
Tahapan-tahapan instalasi ini mungkin bervariasi antar sistem operasi. Namun secara
umum tahapan dalam sistem operasi apapun tidak akan berbeda jauh.
4.3.2. Booting
Booting adalah proses awal saat komputer dihidupkan. Proses awal booting
dapat dijelaskan dengan menggunakan skema pada Gambar 4.20. Proses awal
booting dimulai dari pembacaan dan eksekusi program yang tersimpan di ROM
komputer dan data setup yang tersimpan dalam CMOS. Bagian ini disebut POST
(Power On Self Test) apabila berhasil, maka perangkat lunak sistem BIOS yang berisi
program BIOS dari ROM dan BIOS dari adapter (misalnya dari VGA) akan dimuat ke
memori utama (RAM) dan dilanjutkan dengan pembacaan program start-up yang
Rekayasa Perangkat Lunak 73
tersimpan di dalam boot sector hard disk. Dari sini barulah sistem operasi dimuat dari
hard disk.
Pada sistem operasi seperti Microsoft Windows, kita tidak dapat melihat apa
yang terjadi ketika sistem operasi dimuat (mulai dijalankan). Kita hanya disuguhi
tampilan (biasanya logo) yang disebut sebagai boot-splash. Tetapi pada keluarga
Linux, kita dapat memilih apakah proses jalannya sistem operasi ditampilkan atau
tidak dengan mengkonfigurasi file boot-loader (biasanya menggunakan LILO atau
Grub). Gambar 4.21 menunjukkan proses booting pada Linux Fedora.
74 Sistem Operasi
Gambar 4.21 Proses booting pada Linux Fedora
76 Sistem Operasi
Gambar 4.23. Perintah-perintah pada direktori sbin.
78 Sistem Operasi
Berikut ini beberapa perintah-perintah penting dalam mode CLI.
• Menampilkan isi direktori
Untuk menampilkan isi direktori dapat digunakan perintah ls diikuti dengan
argument lain. Beberapa contoh penggunaan dapat dilihat pada gambar 4.27.
• Pindah direktori
Berpindah direktori dapat dilakukan dengan perintah cd diikuti lokasi dimana kita
mau berpindah. Beberapa contoh penggunaan dapat dilihat pada gambar 4.28.
80 Sistem Operasi
• Menyalin file dan directory
Perintah cp bertujuan untuk menyalin file atau directory. Beberapa contoh
penggunaan dapat dilihat pada gambar 4.31.
• Memindahkan file
Untuk memindahkan file dapat digunakan perintah mv. Beberapa contoh
penggunaan dapat dilihat pada gambar 4.32.
• Membuat direktori
Perintah mkdir merupakan perintah untuk membuat directory baru. Beberapa
contoh penggunaan dapat dilihat pada gambar 4.35.
82 Sistem Operasi
Gambar 4.35. Contoh penggunaan perintah mkdir.
Pada gambar 4.36, tampak bahwa attribute file/direktori hanya memiliki attribute
Read-only dan Hiden. Apabila kotak pilihan Read-only dipilih, maka file hanya
akan dapat dibaca saja dan sebaliknya. Apabila kotak pilihan Hiden dipilih maka
file/direktori akan disembunyikan sehingga tidak tampak ketika dicari dengan
Windows Explorer.
84 Sistem Operasi
o exports mempunyai attribute -rw-r--r—yang berarti owner (yaitu one)
mempunyai hak untuk membaca dan menulis. Sedangkan grup dan
other hanya mempunyai hak untuk membaca saja.
Untuk merubah attribute file/direktori dapat digunakan perintah seperti pada
table berikut ini.
Tabel 4.1. Perintah yang berhubungan dengan pengelolaan file/direktori.
Perintah Fungsi
chgrp [options] group file Mengubah kepemilikan grup suatu
file/direktori
chmod [options] owner file Mengubah hak akses suatu file/direktori
chown [options] owner file Mengubah kepemilikan owner suatu
file/direktori
• Mengontrol proses
Proses merupakan bagian yang sangat penting dalam Linux sehingga perintah-
perintah yang berhubungan dengan proses menjadi penting untuk diketahui.
Untuk melihat proses yang sedang berjalan dapat digunakan perintah ps.
Perhatikan gambar 4.38 berikut ini.
Seperti terlihat pada gambar 4.38, perintah ps memiliki beberapa opsi (opsi
selengkapnya dapat dilihat dengan mengetikkan perintah man ps pada
terminal). Pada gambar tersebut ada dua proses yang sedang dijalankan oleh
user one (lihat bagian UID) yaitu bash dengan nomor proses (PID) 3605
dan ps –f dengan PID 3676.
Masih banyak sekali perintah yang digunakan dalam CLI di Linux. Jika kalian
ingin mengetahui arti suatu perintah coba ketikkan perintah man diikuti nama
perintah (Gambar 4.40).
Gambar 4.40. Contoh hasil eksekusi perintah man untuk melihat manual suatu
perintah.
86 Sistem Operasi
4.3.4. Bekerja dengan GUI
Secara umum bekerja dengan GUI pada sistem operasi sangat memudahkan
pengguna karena pengguna hanya membutuhkan kerja mouse untuk melakukan
sejumlah perintah. Mouse memiliki beberapa penggunaan, antara lain :
- klik satu kali digunakan untuk menunjuk satu file sebelum dilakukan operasi lain.
- Klik ganda (double-click) untuk mengeksekusi suatu perintah, misalnya membuka
folder dan menjalankan file yang bisa dieksekusi.
- Klik kanan untuk membuka konteks menu (Gambar 4.41)
- Drag and drop untuk memindahkan file dari satu tempat ke tempat lain (Gambar
4.42).
4.4.1. Persiapan
Ada tiga hal penting yang harus dipersiapkan dalam koneksi ke jaringan
komputer, yaitu perangkat keras, perangkat lunak dan akses ke jaringan.
o Perangkat keras
Kebutuhan perangkat keras sangat
bergantung pada tipe koneksi jaringan yang
akan digunakan. Untuk koneksi ke jaringan
LAN maka kebutuhan utama adalah NIC
(Network Interface Card) yang telah
terpasang dengan baik dan telah terinstal
driver yang sesuai dan kabel jaringan.
Untuk koneksi ke jaringan dengan cara dial-
up, dibutuhkan modem dan kabel telepon
Gambar 4.43. Network analog.
Interface Card
88 Sistem Operasi
Kita dapat melihat apakah perangkat keras jaringan (NIC, modem atau yang
lainnya) sudah terinstall dengan benar dengan memeriksa pada daftar perangkat
keras yang dikenali oleh komputer.
Pada sistem operasi Windows kita dapat melihat dengan cara klik kanan pada
icon My Computer di desktop kemudian pilih Properties pada menu yang muncul
(Gambar 4.44). Pada jendela System Properties pilih tab Hardware kemudian klik
pada Device Manager (Gambar 4.44), sehingga akan muncul jendela Device
Manager (Gambar 4.45).
Pada Gambar 4.45 terlihat bahwa network adapter yang digunakan oleh
komputer sudah dikenali dengan baik. Apabila kita menemukan gambar tanda
tanya pada suatu perangkat lunak berarti perangkat keras tersebut belum
dikenali dengan baik (lihat Gambar 4.45).
Pada sistem operasi Linux dan keluarganya kita dapat memeriksa apakah
perangkat keras sudah dikenali atau tidak dengan cara mengetikkan perintah
lspci (Gambar 4.46) dan ifconfig.
o Perangkat lunak
Perangkat lunak utama, selain sistem operasi adalah apakah paket TCP/IP sudah
terinstall dengan benar pada komputer. Pada sistem operasi windows dapat
dilakukan dengan double klik pada tipe koneksi, kemudian setelah jendela
properties muncul cek apakah sudah ada TCP/IP yang sudah terinstal (Gambar
4.47).
90 Sistem Operasi
Gambar 4.47. Memeriksa protocol TCP/IP.
o Akses ke jaringan
Akses jaringan ini berhubungan dengan hak atau kewenangan kita dalam
jaringan komputer yang akan kita masuki, terutama pemberian alamat IP (IP
Address) dan password untuk masuk ke jaringan. Pada jaringan yang
menerapkan DHCP maka kita tidak perlu khawatir karena no IP akan diberikan
langsung ketika komputer berhubungan ke jaringan. Apabila tidak menggunakan
DHCP maka kita harus memberikan no IP static yang diberikan oleh administrator
jaringan pada komputer.
o Berbagi file
Direktori atau file yang ada pada komputer kita dapat diatur agar dapat
digunakan oleh komputer lain di dalam jaringan. Demikian pula sebaliknya kita
dapat menggunakan direktori atau file pada komputer lain di jaringan.
Untuk membagi (share) direktori atau file kita dapat menempuh cara berikut.
Buka Windows Explorer, kemudian klik kanan pada direktori atau file yang
akan kita share dan pilih Sharing and Security. Setelah muncul jendela
properties, pilih tab Sharing dan pada bagian Network sharing and
security cek pada Share this folder on the network dan beri nama untuk
direktori yang di-share (Gambar 4.49).
92 Sistem Operasi
Gambar 4.49. Mengatur file sharing.
Untuk bisa mengakses direktori atau file di komputer lain, kita bisa membuka
Windows Eksplorer kemudian klik pada My Network Places -> Entire Network ->
Microsoft Windows Network. Kita akan mendapati tampilan seperti pada Gambar
4.50. Dari sini kita bisa melihat sumber daya apa yang dibagi pada masing-
masing komputer yang terhubung ke jaringan dengan cara double klik pada
nama komputer.
o Berbagi printer
Untuk dapat berbagi printer yang ada di komputer, cara yang hampir sama dapat
kita lakukan. Pertama kita buka jendela Printers and Faxes dengan cara Start ->
Settings -> Printers and Faxes. Setelah jendela terbuka, klik kanan pada printer
yang akan di share dan pilih Sharing …. Setelah jendela properties printer
terbuka, pilih tab Sharing dan klik pada Share this printer serta beri nama
(Gambar 4.51).
94 Sistem Operasi
4.5. RINGKASAN
• Sistem Operasi adalah perangkat lunak yang bertugas mengelola
penggunaan sumberdaya dalam komputer dan menyediakan antarmuka
bagi pengguna untuk mengakses sumberdaya tersebut.
• Fungsi-fungsi system operasi adalah sebagai antar muka pengguna,
manajemen memori, manajemen file, manajemen proses dan manajemen
input/output
• Fungsi utama BIOS (Basic Input/Output System) adalah untuk
mengidentifikasi dan mengenali perangkat keras komputer.
• Ada beberapa sistem operasi yang dikenal yaitu DOS, Windows, Mac OS,
UNIX dan Linux.
• Setiap sistem operasi yang akan dijalankan harus diinstal terlebih dahulu.
• Sistem operasi dapat menggunakan perintah berbasis teks atau GUI
tergantung pada konfigurasi dan fasilitas yang dipunyai oleh system
operasi tersebut.
5.1.1. Variabel
Variabel adalah tempat dimana kita dapat mengisi atau mengosongkan
nilainya dan memanggil kembali apabila dibutuhkan. Setiap variabel akan mempunyai
nama (identifier) dan nilai. Perhatikan contoh berikut.
Contoh 5.1. Nama variabel dan nilai.
username = “joni”
Nama = “Al-Khawarizmi”
Harga = 2500
HargaTotal = 34000
Pada contoh 5.1. di atas, username, Nama, harga dan HargaTotal adalah
nama dari variabel sedangkan “joni”, “Al-Khawarizmi”, 2500 dan 34000
adalah nilai dari masing-masing variabel. Nilai-nilai ini akan tersimpan di dalam nama
variabel masing-masing sepanjang tidak kita rubah.
Pada sebagian besar bahasa pemrograman, variabel harus dideklarasikan lebih
dulu untuk mempermudah compiler bekerja. Apabila variabel tidak dideklarasikan
maka setiap kali compiler bertemu dengan variabel baru pada kode program akan
terjadi waktu tunda karena compiler harus membuat variabel baru. Hal ini
memperlambat proses kerja compiler. Bahkan pada beberapa bahasa pemrograman,
compiler akan menolak untuk melanjutkan proses kompilasi.
Pemberian nama variabel harus mengikuti aturan yang ditetapkan oleh bahasa
pemrograman yang kita gunakan. Namun secara umum ada aturan yang berlaku
untuk hampir semua bahasa pemrograman. Aturan-aturan tersebut yaitu:
• Nama variabel harus diawali dengan huruf.
• Tidak boleh menggunakan spasi pada satu nama variabel. Spasi bisa diganti
dengan karakter underscore (_).
5.1.2. Konstanta
Konstanta adalah variabel yang nilai datanya bersifat tetap dan tidak bisa
diubah. Jadi konstanta adalah juga variabel bedanya adalah pada nilai yang
disimpannya. Jika nilai datanya sepanjang program berjalan tidak berubah-ubah,
maka sebuah varibel lebih baik diperlakukan sebagai konstanta. Pada sebuah kode
program, biasanya nilai data dari konstanta diberikan langsung di bagian deklarasi
konstanta. Sedangkan untuk variabel biasanya hanya ditentukan nama variabel dan
tipe datanya tanpa isian nilai data. Aturan penamaan variabel juga berlaku untuk
penamaan konstanta. Demikian juga aturan penetapan tipe data.
Sebagai contoh, jika kita membuat program perhitungan matematik yang
menggunakan nilai pi (3.14159) yang mungkin akan muncul dibanyak tempat pada
kode program, kita dapat membuat pi sebagai konstanta. Penggunaan konstanta pi
akan lebih memudahkan penulisan kode program dibanding harus mengetikkan nilai
3.14159 berulang-ulang.
Tipe data primitive adalah tipe data dasar yang tersedia secara langsung pada
suatu bahasa pemrograman. Sedangkan tipe data composite adalah tipe data
bentukan yang terdiri dari dua atau lebih tipe data primitive.
• Tipe data numeric
Tipe data numeric digunakan pada variabel atau konstanta untuk menyimpan
nilai dalam bentuk bilangan atau angka. Semua bahasa pemrograman menyediakan
tipe data numeric, hanya berbeda dalam jenis numeric yang diakomodasi.
Jenis yang termasuk dalam tipe data numeric antara lain integer (bilangan
bulat), dan float (bilangan pecahan). Selain jenis, dalam bahasa pemrograman juga
diterapkan presisi angka yang digunakan, misalnya tipe data Single adalah tipe data
untuk bilangan pecahan dengan presisi yang terbatas, sedangkan tipe data Double
adalah tipe data untuk bilangan pecahan dengan presisi yang lebih akurat. Pada bab-
bab berikutnya yang membahas aplikasi bahasa pemrograman bagian ini akan
diuraikan lebih lanjut.
100 Algoritma Pemrograman Dasar
Penentuan tipe data numeric untuk suatu variabel/konstanta harus sangat
berhati-hati. Manual dan petunjuk pada masing-masing bahasa pemrograman pada
bagian tipe data harus diperhatikan dengan seksama. Perhatikan contoh berikut.
Contoh 5.3. Penggunaan tipe data numeric.
Kode Program A Hasil eksekusi Program A
#include <iostream> X =12
using namespace std; Y =2.15
int main() { Z =25
int x, z;
float y;
x = 12;
y = 2.15;
z = x * y;
cout << "X =" << x << endl;
cout << "Y =" << y << endl;
cout << "Z =" << z << endl;
return 0; }
• Character
Bersama dengan tipe data numeric, character merupakan tipe data yang paling
banyak digunakan. Tipe data character kadang disebut sebagai char atau string.
Tipe data string hanya dapat digunakan menyimpan teks atau apapun sepanjang
berada dalam tanda petik dua (“…”) atau petik tunggal (‘…’). Perhatikan contoh
berikut.
Contoh 5.4. Penggunaan tipe data character.
Kode program Hasil eksekusi program
#include <iostream> X = 5
using namespace std; Isi variabel huruf =
A
int main() { Isi variabel kata =
int x; Java
x = 5;
char huruf = 'A';
char* kata = "Java";
• Boolean
Tipe data Boolean digunakan untuk menyimpan nilai True/False
(Benar/Salah). Pada sebagian besar bahasa pemrograman nilai selain 0 menunjukkan
True dan 0 melambangkan False. Tipe data ini banyak digunakan untuk pengambilan
keputusan pada struktur percabangan dengan IF … THEN atau IF … THEN … ELSE.
• Image
Image atau gambar atau citra merupakan tipe data grafik. Misalnya grafik
perkembangan jumlah siswa SMK, foto keluarga kita, video perjalanan dan lain-lain.
Pada bahasa-bahasa pemrograman modern terutama yang berbasis visual tipe data
ini telah didukung dengan sangat baik.
• Date Time
Nilai data untuk tanggal (Date) dan waktu (Time) secara internal disimpan
dalam format yang spesifik. Variabel atau konstanta yang dideklarasikan dengan tipe
data Date dapat digunakan untuk menyimpan baik tanggal maupun jam. Tipe data ini
masuk dalam kelompok tipe data composite karena merupakan bentukan dari
beberapa tipe data. Berikut ini contoh tipe data dalam Visual Basic.
• Pseudocode
Pseudocode mirip dengan SE. Karena kemiripan ini kadang-kadang SE dan
Pseudocode dianggap sama. Pseudo berarti imitasi atau tiruan atau menyerupai,
sedangkan code menunjuk pada kode program. Sehingga pseudocode adalah
kode yang mirip dengan instruksi kode program sebenarnya. Pseudocode
didasarkan pada bahasa pemrograman yang sesungguhnya seperti BASIC,
FORTRAN atau PASCAL. Pseudocode yang berbasis bahasa PASCAL merupakan
pseudocode yang sering digunakan. Kadang-kadang orang menyebut pseudocode
sebagai PASCAL-LIKE algoritma. Apabila Contoh 5.10 ditulis dalam pseudocode
berbasis bahasa BASIC akan tampak seperti pada contoh 5.12.
Contoh 5.12. Pseudocode.
1. Start
2. READ alas, tinggi
3. Luas = 0.5 * alas * tinggi
4. PRINT Luas
5. Stop
Pada Contoh 5.12 tampak bahwa algoritma sudah sangat mirip
dengan bahasa BASIC. Pernyataan seperti READ dan PRINT merupakan
keyword yang ada pada bahasa BASIC yang masing-masing menggantikan kata
“baca data” dan “tampilkan”. Dengan menggunakan pseudocode seperti di atas
maka proses penterjemahan dari algoritma ke kode program menjadi lebih mudah.
• Flowchart
Flowchart atau bagan alir adalah skema/bagan (chart) yang menunjukkan
aliran (flow) di dalam suatu program secara logika. Flowchart merupakan alat
yang banyak digunakan untuk menggambarkan algoritma dalam bentu notasi-
notasi tertentu. Secara lebih detil bagian ini akan dibahas pada bagian berikutnya.
Pada flowchart ada beberapa simbol penting yang digunakan untuk
membuat algoritma sebagaimana tercantum pada Gambar 5.3.
Program Flowchart dapat terdiri dari dua macam, yaitu bagan alir logika
program (program logic flowchart) dan bagan alir program komputer terinci (detailed
computer program flowchart). Bagan alir logika program digunakan untuk
menggambarkan tiap-tiap langkah di dalam program komputer secara logika dan
biasanya dipersiapkan oleh seorang analis system. Sedangkan bagan alir program
komputer terinci digunakan untuk menggambarkan instruksi-instruksi program
komputer secara terinci dan biasanya dipersiapkan oleh seorang programmer. Apabila
Contoh 5.10 dibuat program flowchartnya maka akan tampak pada gambar 5.4.
Kedua contoh di atas (5.15 dan 5.16) merupakan contoh struktur percabangan
sederhana yang melibatkan hanya satu percabangan. Pada masalah-masalah yang
lebih rumit, kita akan menjumpai lebih banyak percabangan. Kita juga akan
menjumpai suatu struktur percabangan berada di dalam struktur percabangan yang
lain, atau yang biasa disebut nested (bersarang). Perhatikan contoh-contoh berikut.
Dari Contoh 5.21. di atas kita bisa melihat ada aturan-aturan yang harus
dipenuhi dalam pengulangan bersarang, yaitu:
• Masing-masing pengulangan (badan loop) mempunyai variabel counter
sendiri-sendiri.
• Pengulangan-pengulangan tersebut tidak boleh tumpang tindih.
Pada variabel array, kita tidak hanya menentukan tipe datanya saja, tetapi juga
jumlah elemen dari array tersebut atau dalam hal ini adalah batas atas indeksnya.
Pada banyak bahasa pemrograman seperti C++, Visual Basic, dan beberapa yang
lainnya, nilai indeks awal adalah 0 bukan 1. Cara menuliskan variabel array berbeda-
return 0;
}
Perhatikan pada kedua kode di atas. Pada pendeklarasian variabel array nilai
maksimal indeks adalah 2 tetapi jumlah elemennya ada 3 karena indeks dimulai dari 0
bukan dari 1.
A[0] = 23
A[1] = 22 Manakah
A[2] = 45 elemen yang
A[3] = 12 berisi 12
A[4] = 10
A[5] = 34
Pada contoh ini kita diminta mencari elemen yang berisi angka 12 dari
sekumpulan elemen dalam array. Ada 6 elemen pada array tersebut. Menurut kalian
bagaimanakah algoritma penyelesaiannya?
Cara yang paling umum dan paling mudah dilakukan adalah dengan cara
pencarian berurutan (linear search). Pada masa lalu cara ini dianggap tidak efisien
karena membutuhkan waktu lama. Namun dengan perkembangan komputer yang
sangat cepat, waktu eksekusi algoritma ini tidak terlalu dipermasalahkan. Cara ini
dilakukan dengan cara membandingkan isi dari elemen dengan apa yang kita cari.
Satu per satu dimulai dari elemen yang paling awal.
Apabila kita terapkan pada Contoh 5.24, maka eksekusi program akan
berlangsung berurutan sebagai berikut:
• Tetapkan bilangan yang ingin kita cari (yaitu 12)
• Ambil elemen paling awal (yaitu A[0]), bandingkan isi elemen tersebut (yaitu
23) dengan bilangan yang kita cari. Jika sama maka stop.
• Jika tidak maka lanjutkan dengan elemen berikutnya (yaitu A[1]), bandingkan
isi elemen tersebut dengan bilangan yang kita cari. Jika sama maka stop.
• Jika tidak maka lanjutkan dengan elemen berikutnya. Dan seterusnya sampai
dijumpai elemen yang berisi sama dengan bilangan yang kita cari.
Contoh 5.24 akan memberikan hasil elemen A[3] yang memiliki isi 12. Apabila
digambarkan dalam bentuk flowchart maka akan tampak seperti pada Gambar 5.22.
Pada posisi akhir dari tabel di atas, kita lihat bahwa bilangan belum terurut
sepenuhnya. Karena kita baru menggunakan satu kali putaran dengan Bil[0]
sebagai patokan. Kita akan lakukan perbandingan lagi, namun dengan Bil[1]
sebagai patokan. Hal ini karena Bil[0] pasti sudah berisi bilangan paling kecil.
Sehingga tabel baru kita buat seperti berikut.
J Bil[0] Bil[1] Bil[2] Bil[3] Bil[4]
1 1 4 2 5 8
2 1 2 4 5 8
3 1 2 4 5 8
4 1 2 4 5 8
Pada posisi tabel di atas, sebenarnya urutan bilangan sudah benar, tapi algoritma
belum berhenti karena algoritma belum memeriksa putaran yang berikutnya.
Sehingga diperlukan dua putaran lagi dengan dengan dasar masing-masing
pembanding adalah Bil[2] dan Bil[3]. Kedua tabel tersebut adalah sebagai
berikut.
Kalau digambarkan dalam bentuk flowchart akan tampak seperti pada Gambar
5.23.
5.5. Ringkasan
• Variabel adalah tempat dimana kita dapat mengisi atau mengosongkan
nilainya dan memanggil kembali apabila dibutuhkan. Setiap variabel
akan mempunyai nama (identifier) dan nilai.
• Konstanta adalah variabel yang nilai datanya bersifat tetap dan tidak bisa
diubah.
• Tipe data adalah jenis data yang dapat diolah oleh komputer untuk
memenuhi kebutuhan dalam pemrograman komputer.
• Tipe data dapat dikelompokkan menjadi tipe data primitive dan tipe data
composite. Tipe data primitive terdiri dari numeric, character, dan
bolean. Sedangkan tipe data composite terdiri dari array, record/struct,
image, date time, subrange, enumerasi, obyek dan variant.
• Algoritma adalah urutan langkah-langkah logis penyelesaian masalah
yang disusun secara sistematis. Algoritma harus benar dan harus
berhenti. Setelah berhenti, algoritma memberikan hasil yang benar.
• Algoritma dapat ditulis dengan cara Structured English, Pseudocode dan
Flowchart.
• Struktur berurutan terdiri satu atau lebih instruksi. Tiap instruksi
dikerjakan secara berurutan sesuai dengan urutan penulisannya.
• Pada struktur percabangan, program akan berpindah urutan pelaksanaan
jika suatu kondisi yang disyaratkan dipenuhi.
• Struktur pengulangan terdiri dari dari kondisi pengulangan dan badan
pengulangan dan dapat dilakukan dengan For dan While.
• Array adalah struktur data yang menyimpan sekumpulan elemen yang
bertipe sama, setiap elemen diakses langsung melalui indeksnya.
Array dua dimensi mempunyai dua indeks. Indeks yang pertama menunjukkan
baris sedangkan indeks yang kedua adalah kolom. Pada Gambar 6.2, variable array
NilaiSiswa memiliki dua indeks yaitu indeks pertama 4 yang menyatakan nilai indeks
maksimal untuk baris adalah 4 (atau ada 5 baris karena indeks baris pertama bernilai
0), sedangkan indeks kedua adalah 1 yang menunjukkan nilai indeks maksimal untuk
kolom adalah 1 (atau ada 2 kolom karena indeks kolom pertama bernilai 0). Untuk
mendeklarasikan array dua dimensi dapat digunakan cara sebagai berikut :
Dim NilaiSiswa(4,1)
Sedangkan untuk mengakses nilai pada array dua dimensi dapat digunakan
sepeti contoh berikut.
Operasi matriks di atas adalah operasi penjumlahan dua buah matrik dengan dimensi
yang sama yaitu 3x3. Bagaimanakah algoritma penyelesaiannya?
Penyelesaian:
Pada contoh soal di atas ada dua buah matriks misalkan A matriks pertama dan B
adalah matriks kedua. Selain itu juga dibutuhkan matrik ke tiga yaitu C sebagai
hasil penjumlahan matriks A dan B. Gambar 6.5. menunjukkan algoritma
penjumlahan dua buah matriks.
Gambar 6.6. menunjukkan ada proses utama yang terjadi dan ada prosedur
yang sebenarnya merupakan bagian dari proses utama ini. Ketika proses utama
membutuhkan suatu tugas tertentu maka proses utama akan memanggil prosedur
tertentu menyelesaikan tugas tersebut. Perhatikan contoh berikut:
6.3. Ringkasan
• Array dua dimensi mempunyai dua indeks. Indeks yang pertama
menunjukkan baris sedangkan indeks yang kedua adalah kolom.
• Pembacaan data dan penulisan data pada array multidimensi dilakukan
dengan langsung menunjuk pada nomor indeksnya
• Prosedur adalah sekumpulan perintah yang merupakan bagian dari
program yang lebih besar yang berfungsi mengerjakan suatu tugas
tertentu.
Sebelum kita bekerja dengan Visual Basic, maka ada baiknya kita mengenali
lebih dulur lingkungan kerja (IDE) Visual Basic. IDE (Integrated Developement
Environment) Visual Basic merupakan Lingkungan Pengembangan Terpadu bagi
programmer dalam mengembangkan aplikasinya. Dengan menggunakan IDE
programmer dapat membuat user interface, melakukan coding, melakukan testing
dan debuging serta menkompilasi program menjadi executable. Penguasaan yang
baik akan IDE akan sangat membantu programmer dalam mengefektifkan tugas-
tugasnya sehingga dapat bekerja dengan efisien. Tampilan IDE VB dapat dilihat pada
Gambar 7.4.
• Visual Design
Dalam lingkungan Windows, User-interface sangat memegang peranan
penting, karena dalam pemakaian aplikasi yang kita buat, pemakai senantiasa
berinteraksi dengan User-interface tanpa menyadari bahwa dibelakangnya berjalan
instruksi-instruksi program yang mendukung tampilan dan proses yang dilakukan.
Pada pemrograman Visual, pengembangan aplikasi selalu dimulai dengan
pembentukkan user interface. Untuk mendisain user interface, pengetahuan yang
paling dibutuhkan hanyalah pemahaman dasar tentang jenis dan kegunaan dari
control dan dasar-dasar bagaimana menggambar sebuah object.
Form dan control merupakan elemen-elemen dasar dalam user interface pada
aplikasi-aplikasi berbasis Windows. Dalam VB, elemen-elemen ini disebut obyek
karena dapat dimanipulasi seperti sebuah obyek. Obyek merupakan suatu
kombinasi dari kode dan data yang dapat diperlakukan sebagai satu kesatuan.
• Event-Driven Programming
Pemrograman suatu aplikasi bukanlah sesuatu yang mudah, namun ada
sebuah metodologi yang tidak boleh kita tinggalkan. Aplikasi yang dibuat dengan
VB bukanlah sebuah program yang monolithic (hanya ada satu urutan jalannya
program aplikasi). Ketika kita membuat program dengan VB, pertama kita harus
menentukan bagaimana aplikasi akan berinteraksi dengan pengguna. Atau dengan
Rekayasa Perangkat Lunak 151
kata lain, kita harus menentukan bagaimana setiap control bereaksi terhadap aksi
yang dilakukan pengguna (misalnya: click mouse, double-click mouse, penekanan
salah satu tombol pada keyboard, dan lain-lain). Konsep ini biasa disebut sebagai
Event-Driven Programming, karena bukan aplikasi yang menentukan alur namun
kejadian (event) yang disebabkan oleh pengguna yang menentukan alur dari
aplikasi. Program aplikasi yang kita buat bereaksi terhadap kondisi eksternal
(event), dan aksi dari pengguna yang menentukan bagaimana alur dari aplikasi.
Pada contoh 7.1 kita bisa mendeklarasikan variabel dengan kata kunci Dim
sedangkan untuk konstanta menggunakan kata kunci Const. Kita juga bisa langsung
mengisikan nilai awal setelah definisi tipe data dari suatu variabel.
Salah satu keuntungan menggunakan pemrograman berbasis GUI seperti Visual
Basic adalah tersedianya obyek-obyek yang dapat diperlakukan sebagai tipe data.
Perhatikan contoh berikut ini.
Contoh 7.2. Contoh penggunaan tipe data obyek.
Dim frm As Form
Dim midfrm As MDIForm
Dim ctrl As Control
Dim obj As Object
Dim inv As frmInvoice
Dim txtSalary As TextBox
Dim wrk As Excel.Worksheet
Pada contoh 7.2 di atas, pernyataan Form, MDIForm, Control dan Object adalah
kontrol-kontrol yang dimiliki oleh Visual Basic. Sedangkan frmInvoice adalah form
yang telah kita beri nama frmInvoice. Visual Basic juga memungkinkan kita untuk
menggunakan obyek dari luar Visual Basic. Perhatikan pada baris terakhir di atas.
Kita menggunakan worksheet dari Excel untuk kita gunakan dalam program kita.
Notasi/simbol untuk operator ini memiliki hirarki kekuatan, artinya apabila ada
dua atau lebih operator digunakan bersama-sama, maka operator dengan hirarki
yang lebih tinggi akan dieksekusi lebih dulu. Hirarki kekuatan operator secara
berturut-turut adalah ^, * dan /, \, mod, + dan -. Operator * dan / adalah setara.
Demikian juga operator + dan -. Perhatikan contoh berikut ini.
Contoh 7.3. Contoh penggunaan hirarki operator aritmatika.
5 * 2 + 3 = 13
4 ^ 2 - 5 = 11
Pada contoh pertama, tanda * (kali) memiliki kekuatan yang lebih tinggi dari
tanda + (tambah) sehingga operasi perkalian dilakukan terlebih dahulu daripada
penjumlahan. Hasil yang diperoleh adalah 10 ditambah 3 bukan 5 dikali 5.
Sedangkan pada contoh kedua, tanda ^ (pangkat) mempunyai urutan kekuatan
lebih tinggi dari – (kurang) sehingga hasil akhirnya adalah 11 (yaitu dari 16
dikurangi 5). Untuk merubah urutan proses aritmatika dapat diatur dengan
menggunakan tanda kurung. Perhatikan contoh berikut :
Contoh 7.4. Contoh penggunaan kurung untuk mengatur hirarki operator.
5 * (2 + 3) = 25
4 ^ (2 – 5) = 0.015625
Pada contoh ini kita menggunakan angka dan operator yang sama seperti
contoh sebelumnya, namun dengan menggunakan tanda kurung untuk merubah
• Operator perbandingan
Operator perbandingan digunakan untuk operasi yang membandingkan
nilai data. Simbol-simbol yang digunakan :
Tabel 7.2. Operator perbandingan.
• Operator logika
Operator logika digunakan untuk operasi yang membandingkan suatu
perbandingan. Simbol-simbol yang digunakan :
Tabel 7.3. Operator logika.
Buka Jendela Code dan pada bagian Code Editor ketikkan kode programnya sebagai
berikut :
Private Sub Command1_Click()
If Text1.Text = "nusantara" Then Image1.Visible = True
End Sub
Klik menu Project > Project1 Properties lalu klik tab General. Gantilah Startup
Object-nya menjadi Form5. Coba jalankan Project1 :
o Ketikkan sembarang teks pada TextBox lalu klik tombol OK atau tekan
Enter, tidak terjadi apa-apa.
o Ketikkan “nusantara” pada TextBox lalu klik tombol OK atau tekan Enter,
gambar computer akan muncul.
Klik menu Project > Project1 Properties lalu klik tab General. Gantilah Startup
Object-nya menjadi Form6.
Coba jalankan Project1 :
o List1 akan terisi nama-nama barang.
o Klik tombol OK, akan muncul kotak pesan "Anda belum memilih barang !!".
o Klik OK, nama barang pertama akan terpilih secara otomatis. Anda boleh
memilih nama barang yang lainnya.
o Klik tombol OK, akan muncul kotak pesan "Anda belum mengisi jumlah
barang !!".
o Klik OK, text1 akan menjadi focus. Isi jumlah barangnya, misalnya : 10.
o Klik tombol OKm akan tampil : nama barang, harga barang (per-satuannya),
jumlah barang (dengan satuannya), diskon dan total bayar.
o Coba ganti pilihan nama barang (pada List1) dan jumlah barang (pada Text1)
lalu klik lagi tombol OK.
Catatan :
o Bila jumlah barang diisi dengan selain angka akan muncul pesan error.
o Untuk mengecek isi Text1 angka atau bukan, tambahkan kode berikut :
If Not IsNumeric(Text1.Text) Then
MsgBox "Isi jumlah barang harus angka !!"
Text1.SetFocus
Exit Sub
End If
Do
y = y + 1
x = x \ 2
Loop Until x <= 0
Pada bagian pertama dari Contoh 7.10 kita menggunakan Do While ... Loop.
Cara ini sama persis dengan struktur pengulangan dengan While yang telah kalian
pelajari pada Bab 5. Pernyataan di bawah Do While, akan dikerjakan jika kondisi
pada Do While bernilai benar. Jika tidak maka tidak akan dieksekusi.
Bagian kedua dari Contoh 7.10, kita menggunakan Do ... Loop Until untuk
melakukan pengulangan. Pada bentuk seperti ini, pengulangan dilakukan sampai
162 Pemrograman Aplikasi dengan VB dan VB.Net
kondisi pada Loop Until bernilai benar. Jadi selama kondisi di depan Loop until
masih bernilai salah maka pengulangan akan terus dilakukan. Atau Do ... Loop ini
merupakan kebalikan dari Do While. Melihat kedua bagian tersebut, apabila kita
inisialisasi x = -4 dan Y = 5, bagaimanakah hasilnya? Pada pengulangan dengan Do
While, tidak akan memberikan hasil karena nilai X kurang dari 0 sehingga
pengulangan tidak dilakukan. Sedangkan pada Do ... Loop Until, pernyataan di
bawah Do masih dikerjakan, karena kondisi baru diperiksa di akhir pengulangan.
Sehingga nilai X akan bernilai -2 dan Y bernilai 6.
Berikut ini adalah contoh progam aplikasi dengan menggunakan struktur
pengulangan.
Contoh 7.11. Program aplikasi dengan struktur pengulangan.
Buka VB dan buatlah form sebagai berikut :
Buka Jendela Code dan pada bagian Code Editor ketikkan kode programnya sebagai
berikut :
Dim i As Integer
Coba jalankan program. Tekan keempat tombol yang ada pada form bergantian.
Cobalah cermati output apa yang keluar dari eksekusi program di atas.
• Sub procedure
Syntax penulisan Sub procedure:
[Private|Public][Static]Sub namaprosedur (argumen-
argumen)
Bulan = sRet
End Function
Gambar 7.7. Berbagai cara akse basis data dari Visual Basic.
• ODBC
ODBC singkatan dari Open Data Base Connectivity. Merupakan sekumpulan
fungsi yang membolehkan kita untuk koneksi pada basis data lokal atau yang berada
di jaringan. Biasanya ODBC digunakan untuk mengakses berbagai tipe basis data
antara lain, MS FoxPro, MS Access, MS SQL Serve, Oracle atau bahka data yang
tersimpan dalam bentuk file data.
• DAO
DAO atau Data Access Object adalah antarmuka dari Microsoft Jet, perangkat
utama penggerak MS Access. Kita dapat membuat basis data dengan MS Access
kemudian kita manipulasi dengan Visual Basic melalui DAO dengan mudah. Karena
• OLE DB
OLE DB adlah teknologi untuk mengakses basis data level dasar yang
sebenarnya dimaksudkan untuk menggantikan fungsi ODBC. Namun dalam
perkembangannya ODBC dan OLE DB memiliki perbedaan, yaitu OLE DB berbasis
pada teknologi COM dan dapat digunakan untuk mengakses basis data yang bukan
bersifat relasional.
• ADO
ADO (ActiveX Data Object) adalah antarmuka level atas dari OLE DB. ADO
dikembangkan di atas OLE DB untuk melengkapi fungsi-fungsi yang tidak dimiliki
oleh OLE DB sehingga memudahkan programmer dalam membuat aplikasi.
Pada Gambar 7.8 kita memilih COM atau obyek yang ingin kita gunakan. Pada
contoh ini kita memilih “Microsoft Word 8.0 Object Library”. Setelah kita klik OK maka
kita dapat menggunakan obyek yang kita pilih ini dalam kode program kita. Berikut
contoh penggunaan obyek tersebut.
Contoh 7.14. Contoh penggunaan COM.
Private Sub cmdCheck_Click()
Dim text As String
Dim suggestion As Word.SpellingSuggestion
Dim colSuggestions As Word.SpellingSuggestions
lstSuggestions.Clear
If MSWord.CheckSpelling(text) Then
lstSuggestions.AddItem "(correct)"
Pada kode di atas kita menggunaka salah satu metode dari obyek yang kita
buka sebelumnya (“Microsoft Word 8.0 Object Library”). Metode yang ingin kita
gunakan adalah SpellingSuggestion (lihat kode pada bagian pendeklarasian
variabel). Dengan cara yang sama kita dapat menggunakan metode atau fungsi-
fungsi yang kita inginkan dari obyek COM yang telah kita muat.
Pada jendela Reference di Gambar 7.8, tersedia banyak sekali COM yang dapat
kita gunakan. Cobalah untuk membuka satu persatu dan lihat apa fungsinya.
7.4. Ringkasan
Pada bab ini kalian telah mempelajari pemrograman dengan Visual Basic.
Dimulai dengan penerapan variabel, konstanta, tipe data dan operator. Kemudian
dilanjutkan dengan strukturkendali pemrograman baik percabangan maupun
pengulangan. Penggunaan procedure dan function juga disampaikan untuk
melengkapi dasar pemrograman dengan Visual Basic.
Pada bagian selanjutnya kalian juga telah mempelajari teknik akses dan
manipulasi data dengan menggunakan ADO. Bagian akhir ditutup dengan bagaimana
membuka dan menggunakan teknologi COM yang disediakan oleh Visual Basic.
6. Bukalah Gambar 5.6 dan 5.7 pada Bab 5. Buatlah program dalam Visual
Basic. Gunakan kontrol TextBox dan CommandButton pada soal ini.
7. Bukalah Gambar 5.9 dan 5.10 pada Bab 5. Buatlah program dalam Visual
Basic.
8. Bukalah Gambar 5.15 dan 5.17 pada Bab 5. Buatlah program dalam Visual
Basic.
8.1.1. Abstraksi
Abstraction atau disebut juga composition merupakan prinsip penyederhanaan
dari sesuatu yang kompleks dengan cara memodelkan kelas sesuai dengan
masalahnya. Untuk lebih memperjelas pengertian coba perhatikan Gambar 8.3. Pada
gambar tersebut terlihat sebuah mobil jika dipecah-pecah bagian-bagiannya kita akan
dapatkan seperti ban, mesin, rangka mobil, kaca, dan lain-lain dan hal in berlaku
sebaliknya. Jika kita gabungkan bagian-bagian tersebut maka kita akan mendapatkan
sebuah kelas mobil. Pada pemrograman berorientasi obyek biasanya kalau kita
menjumpai beberapa kelas atau obyek yang kalau diidentifikasi memiliki banyak
kesamaan atribut dan method maka kita akan menggabungkan kelas-kelas tersebut
menjadi satu super class.
8.1.2. Enkapsulasi
Prinsip encapsulation adalah prinsip penyembunyian detil dari sebuah kelas
terhadap obyek yang berinteraksi terhadapnya. Sebagai contoh ketika kita
menjalankan mobil, sebenarnya kita sedang berinteraksi dan kita meminta kepada
mobil untuk menjalankan methodnya seperti maju, mundur atau berhenti. Kita
berinteraksi hanya dengan beberapa bagian dari mobil (interface) seperti persneling,
setir, pijakan gas, pijakan rem dan bagian lain. Tapi detil proses yang terjadi didalam
mobil bagaimana bisa maju, mundur atau berhenti kita tidak perlu tahu.
8.1.4. Polymorphism
Polymorphism mungkin merupakan konsep pemrograman beroerientasi obyek
yang paling sulit dimengerti. Arti dari polymorphism adalah kemampuan dari suatu
obyek untuk mempunyai lebih dari satu bentuk. Atau dalam pengertian lain adalah
kita dapat menerapkan sesuatu hal yang berbeda melalui suatu cara yang sama.
Sebagai contoh kalau ada empat ekor hewan berbeda yaitu burung, ular, katak, dan
singa kemudian kita minta untuk bergerak, maka burung akan terbang, ular akan
melata, katak melompat, singa mungkin akan berlari. Jadi suatu method yang sama
mungkin bisa diterapkan secara lain jika obyek yang menerapkan adalah berlainan.
Sekarang buka command prompt dan arahkan ke direktori tempat file java
kalian simpan dan ketikkan seperti pada Gambar 8.7. Perhatikan cara penulisan dan
hasil yang diperoleh.
Pada Java, String bukan merupakan tipe data primitif (namun merupakan suatu
Class). String mewakili tipe data yang terdiri atas beberapa karakter. String ditulis
dengan menggunakan tanda petik ganda (“”).
Contoh-contoh berikut menunjukkan bagaimana menggunakan tipe-tipe data di
atas. Ketikkan kode pada contoh-contoh berikut kemudian kompilasi dan jalankan.
Perhatikan output dari program.
Contoh 8.1. Penggunaan tipe data integral.
public class ContohPerhitungan {
public static void main(String[] args) {
byte a = 1;
short b = 12;
int c = 300, d, e;
d = a + b + c;
e = a * b * c;
System.out.println("Hasil penjumlahan = " + d);
System.out.println("Hasil perkalian = " + e);
try{
name = dataIn.readLine();
}catch( IOException e ){
System.out.println("Error!");
}
System.out.println("Hai " + name +"!");
}
}
Tiga baris yang diawali dengan perintah import menunjukkan bahwa kita akan
menggunakan kelas BufferedReader, InputStreamReader dan IOException
yang berada di java.io package. Penjelasan tentang package akan kita bahas pada
bagian lain dari bab ini.
Pada statement,
BufferedReader dataIn = new BufferedReader(new
InputStreamReader( System.in) );
kita mendeklarasikan sebuah variabel bernama dataIn dengan tipe kelas
BufferedReader. Kemudian, kita mendeklarasikan variabel String dengan
identifier name. Pernyataan ini digunakan untuk menunjukkan tempat menyimpan
input dari pengguna. Variabel name diinisialisasi sebagai String kosong "". Baris
berikutnya adalah memberikan output string seperti yang telah kita pelajari dengan
menggunakan pernyataan System.out.print;
Sekarang, blok di bawah ini merupakan try-catch blok (kita akan bahas tentang
ini di sub bab exception)
182 Pemrograman Berorientasi Obyek dengan Java
try{
name = dataIn.readLine();
}catch( IOException e ){
System.out.println("Error!");
}
Pada baris ini menjelaskan bahwa kemungkinan terjadi error pada statement
name = dataIn.readLine(); akan ditangkap. Jika ada kesalahan maka tulisan
“Error” akan disampaikan. Jika tidak ada kesalahan maka variabel name akan diisi
dengan apa yang dimasukkan oleh pengguna melalui keyboard. Dan akan
ditampilkan pada pernyataan terakhir.
Untuk menampilkan output yang kita inginkan, dapat menggunakan perintah
sebagai berikut :
System.out.println()
System.out.print()
System.out.println()akan membuat baris baru sedangkan
System.out.print() tidak akan membuat baris baru.
8.4. OPERATOR
Contoh 8.6 ini hanya menggunakan if untuk membuat struktur pemilihan. Jika
nilai lebih dari 60 maka program akan menampilkan output “Selamat anda lulus!”
Contoh 8.7. Penggunaan if … else.
int nilai = 68;
Pada contoh 8.7, kita menggunakan struktur if … else. Jika nilai lebih dari 60
maka akan menampilkan output “Selamat anda lulus!” tetapi jika tidak (else) maka
program akan menampilkan output “Anda tidak lulus!”.
Contoh 8.8. Penggunaan if … else … if.
int nilai = 68;
Pesan pada Gambar 8.8 tersebut menginformasikan tipe exception yang terjadi
pada baris dimana exception itu berasal. Inilah aksi default yang terjadi bila terjadi
exception yang tidak tertangani. Jika tidak terdapat kode yang menangani exception
yang terjadi, aksi default akan bekerja otomatis.
Beberapa tipe exception yang umum antara lain:
• ArithmeticException. Exception karena kesalahan yang ada hubungannya
dengan perhitungan, misalnya pembagian dengan 0.
• ArrayIndexOutOfBoundException. Exception karena membaca indeks array
diluar batas yang ditetapkan.
• NullPointerException. Kesalahan karena pointer yang tidak berisi (null)
• Dan lain-lain
try {
c = a/b;
} catch (ArithmeticException exc) {
//Reaksi jika terjadi exception
System.out.println(exc);
}
System.out.println("Setelah exception");
}
}
Umumnya exception pada satu masalah tidak hanya satu. Pada contoh 8.16
berikut ini, kita menggunakan beberapa tipe exception untuk memeriksa kemungkinan
terjadi exception. Ketik kode program berikut kemudian jalankan dan amati apa yang
terjadi.
Contoh 8.16. Exception dengan try-catch.
class BanyakEksepsi {
public static void test(int a, int b) {
try {
int c = a / b;
System.out.println("Hasil bagi: " + c);
8.6.3. Throw
Disamping menangkap exception, Java juga mengijinkan seorang user untuk
melempar (throw) sebuah exception. Perhatikan contoh 8.17 berikut ini.
Contoh 8.17. Exception dengan try-catch dan throw.
class ThrowDemo {
public static void main(String args[]){
String input = "Salah input";
try {
if (input.equals("Salah input")) {
throw new RuntimeException("Demonstrasi
Throw");
} else {
System.out.println(input);
}
System.out.println("Setelah throw");
} catch (RuntimeException e) {
System.out.println("Exception ditangkap
di sini.");
System.out.println(e);
}
}
}
Perhatikan pada pernyataan yang dimulai dari perintah if. Kalau diartikan
pernyataan tersebut adalah jika nilai variabel input sama dengan “Salah input” maka
lemparkan exception dengan menampilkan “Demonstrasi Throw”. Output dari kode
program ini akan tampak seperti pada Gambar 8.10.
8.6.4. Finally
Blok finally mengandung kode penanganan setelah penggunaan try dan catch.
Blok kode ini selalu tereksekusi apapun yang terjadi pada blok try. Blok kode tersebut
Rekayasa Perangkat Lunak 193
juga akan menghasilkan nilai true meskipun return, continue ataupun break
tereksekusi. Perhatikan kode program berikut.
Contoh 8.18. Exception dengan try-catch-finally.
class DemoFinally {
private static int i = 0;
class PenerapanRunnable {
public static void main(String[] args) {
class DemoMultipleThread {
public static void main(String[] args) {
Sekarang kita akan buat kelas menjadi sedikit lebih kompleks dengan
mengikutkan method pada kelas tersebut. Perhatikan contoh berikut.
Contoh 8.23. Pembuatan kelas yang mempunyai method.
class Siswa {
String nama;
String alamat;
int usia;
double nilaiMatematika;
double nilaiBhsInggris;
double nilaiBhsIndonesia;
double rerata;
Ada beberapa tipe method di dalam class, yaitu method yang tidak
mengembalikan nilai, method yang mengembalikan nilai dan method khusus yaitu
constructor. Secara umum method ini boleh kita samakan dengan prosedur atau
fungsi (lihat kembali Bab 6 dan 7). Perhatikan contoh-contoh berikut ini.
Contoh 8.24. Pembuatan method tanpa pengembalian nilai.
Class Bangun {
double panjang;
double lebar;
class pakaiBangun {
public static void main(String[] args) {
Bangun b1, b2;
// instansiasi objek
b1 = new Bangun();
b2 = new Bangun();
class pakaiBangun {
public static void main(String[] args) {
Bangun b1, b2;
// instansiasi objek
b1 = new Bangun();
b2 = new Bangun();
class pakaiBangun {
public static void main(String[] args) {
Bangun b;
// instansiasi obyek
b = new Bangun();
class pakaiBangun {
public static void main(String[] args) {
Bangun b;
// instansiasi obyek
b = new Bangun();
class DemoKelasTurunan1 {
public static void main(String[] args) {
// constructor default
Bangun() {
panjang = lebar = 0;
}
Bangun(double p, double l) {
panjang = p;
lebar = l;
}
class inheritBangun {
public static void main(String[] args) {
Box kotak;
class overridingBangun {
public static void main(String[] args) {
Segitiga s;
// instansiasi obyek
s = new Segitiga(6, 8);
class overloadBangun {
public static void main(String[] args) {
BujurSangkar b;
// instansiasi obyek
b = new BujurSangkar();
BujurSangkar(int s) {
sisi = s;
}
Lingkaran(int r) {
jarijari = r;
}
class DemoPolimorfisme2 {
public static void main(String[] args) {
Bentuk obyek;
BujurSangkar b = new BujurSangkar(12);
Segitiga s = new Segitiga(5, 6);
Lingkaran l = new Lingkaran(4);
public BujurSangkar(int s) {
sisi = s;
}
public double hitungLuas() {
double luas = sisi * sisi;
return luas;
}
}
File : Segitiga.java
package PaketBangun;
class Segitiga extends Bangun {
private double alas;
private double tinggi;
public Lingkaran(int r) {
jarijari = r;
}
public double hitungLuas() {
double luas = PI * jarijari * jarijari;
return luas;
}
}
Setelah itu lakukan pengaturan classpath seperti terlihat pada sub bab awal. Dan
lakukan kompilasi pada ketiga file tersebut di atas sehingga akan diperoleh hasil file
seperti Gambar 8.18.
class PakaiPaketBangun {
public static void main(String[] args) {
int x = 10;
public double luas( ) {
return (6 * x * x);
}
8.9. RINGKASAN
• Konsep penting harus pahami dalam pemrograman berorientasi yaitu, kelas,
obyek, abstraksi, enkapsulasi, inheritance dan polymorphism.
• Ada 8 tipe data dasar pada Java yaitu boolean (untuk bentuk logika), char
(untuk bentuk tekstual), byte, short, int, long (integral), double and float
(floating point).
• Operator yang tersedia pada Java adalah operator aritmatika, relasional,
logika dan bitwise.
• Struktur kontrol program untuk percabangan dapat dilakukan dengan
pernyataan if, if … else, dan if …else … if, sedangkan pengulangan dapat
dilakukan dengan for, while dan do-while.
• Exception adalah kondisi abnormal yang terjadi saat runtime. Java
menyediakan mekanisme try, throw, catch dan finally untuk menangani
exception.
int main() {
const float hargaPerUnit = 2500;
int jumlahUnit;
• Tipe data
Seperti telah dijelaskan pada Bab 5, tipe data tergantung dari yang
disediakan oleh bahasa pemrograman. Pada C++ tipe data dasar yang disediakan
dapat dilihat pada tabel berikut. Kalau kalian perhatikan tipe-tipe ini sama persis
dengan Java. Hal ini karena Java sebenarnya banyak mengambil elemen-elemen
bahasa pemrograman dari C++.
Tabel 9.1. Tipe data pada C++.
Tipe Data Keterangan
int Tipe data bilangan bulat dengan ukuran 4 bytes
long Tipe data bilangan bulat namun lebih besar dari int.
float Tipe data bilangan pecahan
double Tipe data bilangan pecahan namun lebih besar dari float
char Tipe data karakter yang berisi huruf, angka atau simbol-simbol
(alphanumeric) sepanjang berada pada tanda “ “ atau ‘ ‘.
bool Tipe data boolean
short Tipe data bilangan bulat dengan ukuran 2 bytes
int main() {
struct Guru {
char* NIP;
char* Nama;
char* Alamat;
};
Guru A;
return 0;
}
Contoh 9.6. Penggunaan tipe data enum.
#include <iostream>
using namespace std;
struct Guru {
char* NIP;
char* Nama;
JENIS_KELAMIN JK;
} A;
return 0;
}
9.1.4. Operator
Seperti halnya pada VB dan Java yang telah anda pelajari, C++ juga
menyediakan banyak operator yang dapat kita gunakan untuk membantu
memecahkan masalah tertentu. Secara umum banyak kemiripan antara Java dengan
C++ dalam penyediaan operator. Operator-operator yang tersedia pada C++ dapat
dilihat pada Tabel 9.2.
Tabel 9.2. Operator pada C++.
Jenis Operator Fungsi Contoh
Operator assignment
= Memasukkan (assign) nilai ke dalam C=5
suatu variabel
Operator unary
+ Membuat nilai positif X = +10
- Membuat nilai negatif Y = -12
++ Menaikkan nilai variabel satu nilai ++C (pre-increment)
C++ (post-increment)
-- Menurunkan nilai variabel satu nilai --C (pre-increment)
C-- (post-increment)
Operator Binary
+ Penjumlahan 3 +5=8
- Pengurangan 7 –2=5
* Perkalian 5 * 2 = 10
/ Pembagian 6 /3=2
% Sisa hasil bagi (modulus) 5 /2=1
Operator Logika
&& AND 1 && 1 = 1
|| OR 1 || 0 = 1
! NOT !0 = 1
Operator Relasional
> Lebih besar (5 > 4) = 1
< Lebih kecil (5 < 4) = 0
>= Lebih besar atau sama dengan (4 >= 4) = 1
<= Lebih kecil atau sama dengan (5 <= 4) = 0
== Sama dengan (5 ==4) = 0
!= Tidak sama dengan (5 != 4) = 1
int main() {
int bil;
return 0;
}
Pada contoh di atas kita menggunakan if untuk memeriksa apakah suatu
bilangan genap atau ganjil. Operator yang kita gunakan adalah modulus (%).
Perhatikan cara penulisan struktur if dan else.
Contoh 9.8. Penggunaan struktur percabangan if tiga kondisi.
#include <iostream>
using namespace std;
if (bil > 0) {
cout<<bil<<" adalah bilangan POSITIF";
} else if (bil < 0) {
cout<<bil<<" adalah bilangan NEGATIF";
} else {
cout<<"ini bilangan NOL";
}
return 0;
}
Contoh 9.8. merupakan pengembangan dari Contoh 9.7. Struktur pemilihan
dikembangkan menjadi tiga kondisi dengan menambahkan else. Apabila pemilihan
lebih dari tiga kondisi atau banyak, C++ menyediakan perintah switch … case untuk
memudahkan proses pemilihan. Perhatikan contoh berikut.
Contoh 9.9. Penggunaan struktur percabangan dengan switch ... case.
#include <iostream>
using namespace std;
int main() {
int bil;
switch (bil) {
case 1 : cout<<"Bilangan anda adalah : SATU";
break;
case 2 : cout<<"Bilangan anda adalah : DUA";
break;
case 3 : cout<<"Bilangan anda adalah : TIGA";
break;
case 4 : cout<<"Bilangan anda adalah : EMPAT";
break;
case 5 : cout<<"Bilangan anda adalah : LIMA";
break;
default : cout<<"Anda memasukkan di luar batas";
}
return 0;
}
int main() {
int C, J;
cout<<"Cetak angka dari kecil ke besar :"<<endl;
for (C=0; C<10; C+3) {
cout<<C+1<<endl;
}
cout<<endl;
cout<<"Cetak angka dari besar ke kecil"<<endl;
for (J=10; J>0; J--) {
cout<<J<<endl;
}
return 0;
}
Contoh 9.10. merupakan contoh penggunaan for untuk kasus sederhana. Ada
dua pengulangan for di atas, yaitu mencetak angka dari 1 sampai dengan 10 dan dari
10 sampai dengan 1. Perhatikan penggunaan increment ++ dan --. Cara penulisan
di atas sangat mirip dengan penulisan pada Java yang telah kalian pelajari
sebelumnya. Pada contoh 9.11 berikut ini, pengulangan for dikembangkan menjadi
sedikit lebih rumit dengan menerapkan for bersarang.
Contoh 9.11. Penggunaan struktur pengulangan dengan for bersarang.
#include <iostream>
using namespace std;
int main() {
for (int j=1; j<=4; j++) {
for (int k=1; k<=3; k++) {
cout<<k+j<<' ';
}
cout<<endl;
}
return 0;
}
int main() {
int C;
C = 1; // inisialisasi nilai C
while (C<10) {
cout<<"Saya tidak nakal lagi"<<endl;
C++; // increment
}
return 0;
}
int main() {
int x, y;
x = 1; //inisialisasi variabel x
while (x<=4){
y = 1; //inisialisasi variabel y
while (y<=3){
cout<<y+x<<' ';
y++;
}
cout<<endl;
x++;
}
return 0;
}
Perhatikan contoh 9.12 di atas, bagaimanakah menurut kalian output dari kode
program tersebut. Coba bandingkan dengan contoh 9.11. Cobalah memindahkan
int main() {
int J = 5;
int K;
do {
K = 1;
do {
cout<<K*J<<' ';
K++;
} while (K <= J);
cout<<endl;
J--;
} while (J >= 1);
return 0;
}
Contoh 9.14 terlihat menampilkan kode program yang cukup rumit. Namun bila
kita cermati, ini adalah kode program dengan pengulangan do while yang bersarang.
Perhatikan cara penulisan dan alur logika programnya. Do-while yang luar
menggunakan variabel counter J dan ini adalah pengulangan dari besar ke kecil
(perhatikan J diinisialisasi dengan nilai 10 dan syarat kondisi pada while J >=1).
Sedangkan do-while yang dalam variabel counter nya adalah K dengan pengulangan
dari kecil ke besar. Bagaimanakah hasil dari eksekusi kode program di atas?
Perhatikan output di bawah ini. Cobalah untuk menelusuri kode program sehingga
kalian benar-benar mengerti mengapa output program bisa menjadi seperti ini.
5 10 15 20 25
4 8 12 16
3 6 9
2 4
1
9.1.6. Input/Output
Sampai dengan bagian ini, kalian telah cukup banyak latihan kode
pemrograman C++. Namun kita belum sekalipun mempelajari statement input /
int main() {
int bil1, bil2;
return 0;
}
Perintah cin dapat digunakan untuk memasukkan data satu per satu seperti
pada contoh 9.15 (lihat bagian di bawah //cin bagian satu) atau memasukkan data
secara langsung berurutan (lihat bagian di bawah //cin bagian dua). Perintah cin
harus diikuti operator >>.
Perintah cout adalah perintah melakukan output standar yaitu pada layar
monitor. Perintah cout harus diikuti operator <<. Perhatikan contoh 9.15 di atas.
cout dapat digunakan untuk mencetak langsung karakter (ditandai dengan “ dan
diakhiri dengan “) atau isi variabel. Seperti halnya cin, cout dapat digunakan untuk
output satu persatu atau berurutan sekaligus. Pada contoh di atas pernyataan endl
adalah pernyataan untuk mencetak baris baru.
return 0;
}
Pada contoh ini kita membuat fungsi dengan nama CetakAngka dengan tipe
void sehingga tidak mengembalikan nilai (return value). Perhatikan bagaimana
mendeklarasikan fungsi. Fungsi akan berjalan sampai akhir kode pada fungsi
tersebut.
// Fungsi utama
int main() {
// Memanggil dan menampilkan hasil fungsi
cout<< NilaiChar();
return 0;
}
Pada tipe fungsi ini, kita membutuhkan pernyataan return untuk menunjukkan
bagian yang akan dikembalikan nilainya. Pada contoh di atas, tipe data dari nilai yang
akan dikembalikan adalah char. Bentuk char dengan tanda * menunjukkan variabel
NilaiChar boleh berisi lebih dari satu huruf dan akan disimpan/dicetak sebagaimana
ketika kita memasukkan isinya.
int main() {
return 0;
}
Fungsi pada contoh 9.18 adalah Kuadrat. Fungsi ini membutuhkan satu
variabel input (pada contoh dinamakan X). Pada fungsi main(), variabel Bil adalah
variabel yang digunakan untuk menyimpan nilai yang digunakan sebagai parameter
pada fungsi Kuadrat ketika dipanggil.
Contoh 9.19. Fungsi dengan parameter input dan output.
#include <iostream>
using namespace std;
int main() {
int Bil, HASIL;
cout<<"Masukkan sebuah bilangan bulat : ";
cin>>Bil;
// Menampilkan nilai setelah diproses di dalam fungsi
cout<<"Kuadrat dari bilanga "<<Bil<<" adalah :
"<<Kuadrat(Bil, &HASIL);
return 0;
}
Contoh 9.19 merupakan pengembangan dari Contoh 9.18. Pada fungsi Kuadrat
kita tambahkan parameter output yaitu hasil. Parameter keluaran, harus dilewatkan
berdasarkan alamat memorinya (yaitu hasil), sehingga harus menggunakan pointer
(lihat tanda * sebelum variabel hasil. Demikian juga cara pemanggilan fungsinya,
parameter input dan outputnya harus disebutkan. Parameter output yang menyimpan
hasil perhitungan harus kita beri awalan &.
int main() {
long *Alamat;
long X;
Alamat = &X;
X = 5; // Mengisikan nilai 5 ke dalam variabel X
cout<<"Nilai X : "<<X<<endl;
cout<<"Nilai *Alamat : "<<*Alamat<<endl;
cout<<"Nilai Alamat : "<<Alamat<<endl;
cout<<"Nilai &X : "<<&X<<endl;
cout<<"Nilai X : "<<X<<endl;
cout<<"Nilai *Alamat : "<<*Alamat<<endl;
cout<<"Nilai Alamat : "<<Alamat<<endl;
cout<<"Nilai &X : "<<&X<<endl;
return 0;
}
Pada contoh di atas, kita deklarasikan variabel alamat sebagai pointer dengan
menambahkan tanda * di depan nama variabel. Jika kita tidak menggunakan tanda *
berarti variabel tersebut akan berfungsi seperti variabel normal. Variabel X kita
deklarasikan sebagai variabel normal dengan tipe data long. Perhatikan pada baris
Alamat = &X. Baris ini menyatakan bahwa variabel Alamat (bukan pointer) akan diisi
dengan nilai dari alamat dari X. Tanda & di depan nama variabel berarti kita
menginginkan nilai alamat memorinya yang kita gunakan dan bukan nilainya. Apabila
kita eksekusi programnya maka tampilannya akan tampak seperti pada Gambar 9.4.
Perhatikan nilai-nilai output pada Gambar 9.4. Nilai seperti 0x22ff88 adalah
angka hexadesimal dari alamat variabel. Kalau kalian amati, ketika kita memasukkan
nilai 5 pada variabel X maka variabel *Alamat akan berisi juga nilai 5. Demikian juga
ketika kita memasukkan nilai 20 pada variabel *Alamat , nilai X juga berubah menjadi
20. Hal ini karena variabel *Alamat dan X menempati alamat memori yang sama.
Setiap kali kita mendeklarasikan sebuah pointer, maka otomatis pointer akan
menunjuk alamat acak pada memori. Oleh karena itu kita harus mengeset variabel
pointer tersebut agar tidak menunjuk alamat tertentu dengan cara memberi nilai
NULL. Perhatikan contoh kode berikut dan hasil eksekusinya (Gambar 9.5).
Contoh 9.21. Mendeklarasikan pointer dengan NULL.
#include <iostream>
int main() {
long *Alamat;
long *Alamat1;
Alamat = NULL;
return 0;
}
int main() {
int *Alamat;
// membebaskan memori
delete Alamat;
return 0;
}
9.3.3. Array
Seperti telah dijelaskan pada bab-bab sebelumnya, array dapat digunakan
untuk menyimpan banyak data yang tipenya sama pada satu nama variabel.
int main() {
// deklarasi array A dengan 5 buah elemen bertipe int
int A[5];
cout<<"A[C]"<<" "<<"B"<<endl;
// Memasukkan nilai ke dalam elemen array
for (int C=0; C<5; C++) {
double B = 5;
A[C] = C;
B = A[C]/B;
cout<<A[C]<<" "<<B<<endl;
}
return 0;
}
Pada contoh di atas kita mendeklarasikan array dengan nama A dan tipe
datanya adalah int. C pada kode di atas adalah variabel counter. Untuk memasukkan
nilai pada array, perhatikan pada baris A[C] = C. C di sini adalah indeks dari variabel
A. Sama seperti halnya pada VB ataupun Java, nilai default awal dari indeks array
adalah 0. Apabila contoh di atas dijalankan, maka output akan tampak seperti pada
Gambar 9.6.
Pada contoh 9.23 di atas kita mendeklarasikan array tanpa inisialisasi nilai.
Tapi sebenarnya kita dapat langsung member nilai bersamaan dengan pendeklarasian
variabel array. Kemudian kita dapat merubah nilainya ketika program sedang berjalan
atau dibagian lain dari program. Perhatikan contoh 9.24 berikut.
int main() {
// Deklarasikan dan inisialisasi array
char X[3] = { 'A', 'B', 'C' };
return 0;
}
Jika kita jalankan kode program di atas, maka hasilnya akan tampak seperti
pada Gambar 9.7.
int main() {
return 0;
}
Pada contoh di atas, ada dua buah array multidimensi yaitu Matrik_A dan
Matrik_B. Keduanya merupakan matriks dua dimensi. Matrik_A memiliki 3 baris dan
2 kolom sedangkan Matrik_B memiliki 2 baris dan 3 kolom. Pengisian nilai elemen
array dilakukan pada saat deklarasi. Namun kalian dapat mengisi dengan
menggunakan masukkan dari keyboard melalui perintah cin. Hasil eksekusi dari
program di atas akan tampak seperti pada Gambar 9.8.
9.4 KELAS
Konsep kelas pada C++ sama persis dengan apa yang telah kalian pelajari pada
bab 8. Konsep ini diturunkan dari paradigm pemrograman berorientasi obyek yang
telah disampaikan pada bab tersebut. Apabila kalian telah mengerti dengan baik
konsep pemrograman berorientasi obyek dan pemrograman kelas pada Java, maka
konsep kelas pada C++ bukanlah perkara yang sulit. Perlu kalian ketahui, Java
mengambil sebagian besar konsep pemrograman C++ (termasuk kelas) untuk
diterapkan. Perbedaan utama mungkin hanya pada sintaks penulisannya. Pada bab
ini konsep pemrograman berorientasi obyek tidak akan dibahas ulang, namun akan
langsung pada penerapannya pada C++.
int main () {
PersegiPanjang pp1, pp2;
pp1.set_nilai (3,4);
pp2.set_nilai (7,12);
cout << “Luas pp1 : “ << pp1.luas()<<endl;
cout << “Luas pp2 : “ << pp2.luas()<<endl;
return 0;
}
Pada contoh di atas, kelas yang kita deklarasikan bernama PersegiPanjang dan
mempunyai anggota kelas dua data yaitu x dan y dan dua method yaitu set_nilai dan
luas(). Dua buah method tersebut ditetapkan mempunyai akses public. Seperti
halnya java, ada 3 hak akses terhadap data atau method dalam kelas, yaitu public,
private dan protected. Public berarti anggota kelas tersebut dapat diakses dari luar
kelas. Private berarti anggota kelas tersebut hanya dapat diakses di dalam kelas
tersebut. Sedangkan protected berarti anggota kelas tersebut dapat diakses oleh
turunan (subclass) dari kelas tersebut, tetapi tidak oleh bagian di luar kelas.
Method set_nilai mempunyai dua argument/parameter yang semuanya bertipe
data int namun tidak memiliki pengembalian nilai, sehingga kita menggunakan kata
kunci void. Method luas() tidak memiliki argumen namun memiliki pengembalian nilai.
Untuk method yang memiliki pengembalian nilai maka kita menggunakan tipe data di
depan nama method. Bukalah kembali bab 8 untuk mengingat kembali tentang
argumen dalam method.
Pada C++ kita dapat mengimplementasikan method di dalam kelas atau di luar
kelas, tetapi deklarasi method harus berada di dalam kelas. Umumnya kita
meletakkan implementasi method di luar kelas (di luar tanda { }). Perhatikan pada
contoh di atas. Deklarasi method set_nilai terletak di dalam kelas PersegiPanjang
namun implementasinya berada di luar kelas. Sedangkan method luas(), baik
deklarasi maupun implementasi berada di dalam kelas. Pada implementasi method di
luar kelas kita menggunakan tanda :: untuk mendefinisikan anggota kelas di luar
kelasnya (perhatikan pada baris void PersegiPanjang::set_nilai (int a,
int b)).
Setelah kelas terbentuk kita dapat menggunakan dengan membuat obyek yang
merupakan instance dari kelas tersebut. Perhatikan pada bagian yang diawali dengan
int main(). Pada bagian ini kita membentuk dua obyek dengan nama pp1 dan
class PersegiPanjang {
int *panjang, *lebar;
public:
PersegiPanjang (int,int);
~PersegiPanjang ();
int luas () {return (*panjang * *lebar);}
};
PersegiPanjang::~PersegiPanjang () {
delete panjang;
delete lebar;
}
int main () {
PersegiPanjang pp1 (3,4), pp2 (5,6);
cout << "Luas pp1: " << pp1.luas() << endl;
cout << "Luas pp2: " << pp2.luas() << endl;
return 0;
}
9.4.2. Inheritance
C++ juga memberikan fasilitas inheritance pada kelas. Proses pewarisan pada
C++ agak lebih rumit dibandingkan dengan Java. Hal ini karena C++ memberikan
class CPolygon {
protected:
int width, height;
public:
void set_values (int a, int b)
{ width=a; height=b;}
};
int main () {
Rekayasa Perangkat Lunak 247
CRectangle rect;
CTriangle trgl;
rect.set_values (4,5);
trgl.set_values (4,5);
cout << rect.area() << endl;
cout << trgl.area() << endl;
return 0;
}
Pada kode program di atas, CPolygon adalah superclass, sedangkan CRectangle
dan CTriangle adalah subclass. Pada kelas CPolygon, variabel width dan height
dideklarasikan sebagai protected, karena ditujukan untuk bisa diakses oleh
subclassnya saja. Selain itu kelas ini juga mempunyai method set_values. Kedua
variabel dan method ini akan diwariskan pada subclassnya yaitu CRectangle dan
CTriangle. Perhatikan bagaimana CRectangle dan CTriangle dideklarasikan sebagai
kelas turunan dari CPolygon dengan menggunakan kata kunci public. Sekarang coba
ganti kata public pada deklarasi kelas CTriangle sehingga menjadi class
CTriangle: private CPolygon. Apabila kalian kompilasi maka kalian akan
menjumpai pesan kesalahan sebagai berikut:
Compiling source file(s)...
oo-test.cpp
oo-test.cpp: In function `int main()':
oo-test.cpp:9: error: `void CPolygon::set_values(int, int)' is
inaccessible
oo-test.cpp:28: error: within this context
oo-test.cpp:28: error: `CPolygon' is not an accessible base of
`CTriangle'
Mengapa kesalahan kompilasi bisa terjadi? Hal ini karena berlakunya aturan di
atas. Method set_values pada kelas CPolygon dideklarasikan dengan public, tetapi
diturunkan ke kelas CTriangle dengan private. Hal ini akan merubah method yang
semula public menjadi private ketika berada pada kelas CTriangle. Tentunya kalian
ingat bila anggota kelas diberi hak akses private maka dia tidak dapat diakses dari
luar.
9.4.3. Polimorfisme
Pada C++, untuk dapat menerapkan polimorfisme maka kita perlu
menggunakan fungsi khusus yang dikenal sebagai fungsi virtual. Fungsi ini kita
letakkan pada superclass, kemudian fungsi tersebut dapat kita definisikan ulang pada
subclass. Perhatikan contoh berikut.
Contoh 9.29. Penggunaan fungsi virtual.
#include <iostream>
class AnggotaSekolah {
// Fungsi utama
int main() {
return 0;
}
Pada kode program di atas, ada dua fungsi/method virtual yaitu Bekerja dan
Berpakaian. Method inilah yang akan kita gunakan pada subclass namun dengan
penerapan yang lain. Perhatikan isi dari masing-masing method tersebut pada
masing-masing subclass. Cara ini biasa disebut sebagai overriding. Coba kembali bab
8 untuk memperjelas pengertian overriding. Bandingkan juga bagaimana overriding
dilakukan pada Java dan C++. Jika program di atas dijalankan, maka hasilnya akan
tampak seperti pada Gambar 9.9. Overloading juga dapat dilakukan pada fungsi
virtual. Kalian tentu masih ingat perbedaan overriding dan overloading yang sudah
dijelaskan di bab 8.
Pada contoh 9.29 di atas, fungsi virtual dibuat lengkap dengan isi dari fungsi
tersebut. Namun sebenarnya C++ juga menyediakan fungsi virtual murni (pure
virtual function) yang hanya ada deklarasi fungsinya tapi tidak ada isinya. Konsep ini
mirip dengan ketika kalian pelajari tentang interface pada Java. Fungsi virtual murni
ini kemudian akan diterjemahkan isinya pada kelas-kelas yang merupakan turunan
dari kelas tersebut. Keuntungan dari penggunaan fungsi virtual murni ini adalah
keleluasaan kita untuk mendefinisikan fungsi-fungsi tersebut pada kelas turunannya.
Fungsi virtual murni biasanya digunakan pada kelas abstrak. Kelas abstrak adalah
kelas yang mempunyai paling tidak satu fungsi virtual murni. Karena masih abstrak
kita tidak diperbolehkan untuk membuat obyek langsung dari kelas abstrak.
class CPolygon {
protected:
int width, height;
public:
void set_values (int a, int b)
{ width=a; height=b; }
virtual int area (void) =0; //fungsi virtual murni
void printarea (void)
{ cout << this->area() << endl; }
};
int main () {
CRectangle rect;
CTriangle trgl;
CPolygon *ppoly1 = ▭ // mendefinisikan obyek pointer
CPolygon *ppoly2 = &trgl; // mendefinisikan obyek pointer
ppoly1->set_values (4,5);
ppoly2->set_values (4,5);
ppoly1->printarea();
ppoly2->printarea();
return 0;
}
Pada contoh di atas, kela CPolygon adalah kelas abstrak yang memiliki fungsi
virtual murni yaitu area. Perhatikan cara mendeklarasikan fungsi virtual murni pada
baris yang diawali dengan pernyataan virtual. Fungsi ini tidak dibuat isinya tapi dibuat
dengan tanda = 0. Kita tidak dapat membuat obyek langsung dari kelas CPolygon ini.
Tetapi kita dapat membuat obyek pointer untuk mengalokasikan memori berdasarkan
252 Pemrograman Aplikasi dengan C++
kelas ini. Pada kelas CPolygon juga digunakan kata kunci this. Kata kunci ini
berfungsi untuk menunjuk pada kelas itu sediri. Pernyataan this->area() pada
kode di atas sama artinya dengan CPolygon->area(). Jadi pernyataan ini sama
artinya dengan memanggil fungsi virtual area di dalam kelas itu.
Pada kode diatas dibuat dua variabel pointer *ppoly1 dan *ppoly2 yang nilainya
sama dengan nilai dari alamat variabel rect dan trgl. Perhatikan dengan baik
penggunaan tanda * dan & untuk merujuk pada alamat memori. Jalankan program di
atas dan perhatikan hasilnya.
9.6 RINGKASAN
• Struktur umum program dalam C++ meliputi bagian pendaftaran file,
pendefinisian fungsi, bagian main(), dan blok kode.
• Tipe data primitive pada C++ terdiri dari int, long, float, double, char, bool,
dan short. Tipe data composite yang disediakan adalah struct, enum dan
array.
Jika nasabah memasukkan angka 1 maka dia akan diminta memasukkan jumlah
rupiah yang akan disetor. Jika nasabah memilih angka 2 maka nasabah diminta
memasukkan jumlah rupiah yang akan ditarik. Jika jumlah penarikkan
mengakibatkan saldo kurang dari Rp. 10000 maka program akan menolak.
(Petunjuk: gunakan pernyataan cin untuk mendapatkan input dari keyboard)
4. Buatlah program menggunakan function untuk menentukan nilai akhir suatu
pelajaran. Terdapat 2 argumen function yaitu nilai ujian tengah semester dan
nilai ujian akhir semester. Output yang diinginkan adalah jika nilai rata-rata
lebih besar atau sama dengan 80 maka nilai akhirnya adalah A, jika nilai rata-
rata kurang dari 80 dan lebih besar sama dengan 70 maka nilainya B, jika
kurang dari 70 maka nilainya C.
5. Perhatikan contoh soal pada Bab 8 no 6. Buatlah diagram abstraksi sistemnya
kemudian buatlah kode programnya dengan menggunakan bahasa C++.
Arsip
Guru
Arsip
Keuangan
Data
Guru
Data
Siswa
Basis Data
Dalam
Media Penyimpanan
Data
Keuangan
Prinsip utama dalam basis data adalah konsep independensi data yaitu
pemisahan data dari program aplikasinya (Lewis et al., 2002; Post, 1999). Sedangkan
tujuan utama dalam basis data adalah membantu pengguna dalam abstraksi suatu
sistem. Ada tiga level abstraksi yang biasanya digunakan yaitu physical level,
conceptual level dan view level (Gambar 10.3). Physical level menunjukkan
bagaimana data akan disimpan. Conceptual level berkaitan dengan data apa yang
akan disimpan dan bagaimana hubungan antar data tersebut. View level merupakan
level tertinggi yang menjelaskan bagian-bagian basis data pada pengguna tertentu
(Ramakrishnan and Gehrke, 2000).
Conceptual Level
Physical Level
- Pengisian atau penambahan data baru (insert data) pada suatu tabel. Operasi
ini mirip dengan penambahan lembaran arsip baru pada kelompok arsip.
Operasi ini baru bias dijalankan jika tabel telah dibuat.
- Pengambilan data dari suatu tabel (retrieve data). Operasi ini mirip dengan
pencarian lembaran arsip yang tersimpan dalam kelompok arsip.
- Pengubahan data dari suatu tabel (update data). Operasi ini mirip dengan
perbaikan isi lembaran arsip dari suatu kelompok arsip
- Penghapusan data dari suatu tabel (delete). Operasi ini mirip dengan
penghapusan sebuah lembaran arsip dari suatu kelompok arsip.
Basis data dibangun untuk memenuhi tujuan dalam pengorganisasian data,
yang antara lain sebagai berikut :
1. Efisiensi meliputi kecepatan (speed), ruang simpan (space) dan keakuratan
(accuracy).
2. Menangani data dalam jumlah besar.
3. Kebersamaan pemakaian (Shareability).
4. Meniadakan duplikasi dan inkonsistensi data.
Aplikasi-aplikasi tambahan bersifat opsional (bisa ada dan bisa tidak) dan
biasanya terdapat pada DBMS sebagai fungsi tambahan. Sebagai contoh, aplikasi
pembuat report (laporan), aplikasi untuk mendisain form, aplikasi untuk membuat
diagram atau chart, aplikasi untuk monitoring sistem, dan aplikasi-aplikasi lainnya.
Ada puluhan bahkan mungkin ratusan perangkat lunak DBMS yang tersedia.
Masing-masing dengan spesifikasinya sendiri-sendiri. Mulai dari yang sangat
sederhana sampai yang paling kompleks. Pada bagian ini kita akan membahas 5
buah DBMS yang cukup familiar dikalangan pengguna DBMS, yaitu Microsoft Access,
MySQL, Microsoft SQL Server, PosgreSQL, dan Oracle.
• Microsoft Access
Microsoft Access atau kadang disebut juga Microsoft
Office Access adalah DBMS relational keluaran dari Microsoft
yang termasuk dalam paket Microsoft Office. Microsoft Access
mengkombinasikan engine relational Microsoft Jet Database,
Graphical User Interface (GUI) dan perangkat pengembang
perangkat lunak. Microsoft Access dapat menggunakan data
yang disimpan dalam Microsoft Jet Database, Microsoft SQL
Gambar 10.6. Server, Oracle atau tipe lain asal kompatibel dengan ODBC
Logo MS Access (Open Database Connectivity).
• MyQSL
MySQL adalah SQL-DBMS yang bersifat multi-user dan
multi-threaded. MySQL berjalan sebagai server yang melayani
banyak pengguna untuk mengakses sejumlah basis data. DBMS
ini sangat populer di dunia aplikasi berbasis web sebagai
komponen basis data. Selain karena tersedia dalam versi gratis,
popularitas MySQL juga sangat dipengaruhi oleh populernya web
server Apache dan bahasa pemrograman PHP. Istilah-istilah
Gambar 10.8. seperti LAMP (Linux-Apache-MySQL-PHP/Perl/Python), MAMP
Logo MySQL (Mac-Apache-MySQL-PHP/Perl/Python dan WAMP (Windows-
Apache-MySQL-PHP/Perl/Python menjadi sangat terkenal.
Banyak sekali aplikasi berbasis web yang dibangun dengan
Rekayasa Perangkat Lunak 265
menggunakan kombinasi perangkat lunak tersebut. WordPress,
Drupal, Mambo, Wikipedia, PHP-Nuke, merupakan beberapa
contoh aplikasi berbasis web yang menggunakan kombinasi ini.
Tidak seperti Microsoft Access, default instalasi MySQL
tidak menyediakan GUI bagi pengguna untuk berinteraksi
dengan basis data. Pengguna dapat berinteraksi dengan client
yang menggunakan perintah-perintah berbasis teks. Namun
saat ini telah banyak GUI yang dikembangkan untuk
mempermudah interaksi dengan basis data, baik itu berupa
aplikasi stand-alone (misalnya MySQL-Front, MySQL-GUI, dan
lain-lain) atau yang berbasis web (misalnya, phpMyAdmin).
Bahkan dengan menggunakan komponen MyODBC, MySQL
dapat diakses dengan GUI dari Microsoft Access seperti halnya
basis data yang kompatibel dengan ODBC lainnya.
• PostgreSQL
PostgreSQL atau sering disebut Postgres termasuk dalam
kategori Object-Relational Database Management System
(ORDBMS). ORDBMS adalah DBMS yang selain menggunakan
prinsip-prinsip basis data relational juga menggunakan
pendekatan berorientasi obyek dalam model basis datanya.
Postgres dikembangkan sebagai free-software dan bersifat
terbuka (open-source) sehingga tidak dikendalikan oleh satu
Gambar 10.12. atau dua perusahaan.
Logo PostgreSQL
Kelebihan Postgres dibandingkan DBMS lainnya adalah,
sifatnya yang free dan open-source, dukungan dokumentasinya
Rekayasa Perangkat Lunak 267
yang luar biasa, fleksibilitasnya dan fitur-fiturnya yang tidak
kalah dengan DBMS komersial. Selain mendukung model data
object-relational, Postgres juga mendukung penggunaan basis
data spasial (biasanya untuk penggunaan Sistem Informasi
Geografis). Postgres juga mendukung operasi multi-user dan
multi-threaded, bahkan mungkin lebih bagus dari MySQL dari sisi
keamanan.
Seperti halnya MySQL dan Microsoft SQL Server, kita
dapat berinteraksi dengan basis data pada Postgres
menggunakan perintah-perintah disisi klien dengan tool yang
disebut psql. Antar muka yang bersifat GUI juga telah banyak
dikembangkan, diantaranya phpPgAdmin, PgAdmin, dan lain-
lain.
• Oracle Database
Nama Oracle Database atau Oracle RDBMS adalah nama
yang sangat diperhitungkan dalam dunia DBMS. Oracle
Gambar 10.13.
dikembangkan oleh Oracle Corporation.
Logo Oracle
Oracle menyimpan data secara logika dalam bentuk
tablespaces dan secara fisik dalam bentuk file-file data.
Tablespaces dapat berisi berbagai macam bagian memori,
misalnya bagian data, bagian index dan lain sebagainya.
Bagian-bagian ini berisi satu atau lebih area. Area-area ini berisi
kumpulan blok data yang berdekatan. Oracle dapat menyimpan
dan store procedure dan fungsi secara mandiri.
10.2.1. Entitas
Entitas adalah individu yang mewakili sesuatu yang nyata (eksistensinya) dan
dapat dibedakan dari sesuatu yang lain. Dapat berupa suatu elemen dari suatu
lingkungan, suatu sumber daya atau sebuah transaksi yang memiliki arti penting bagi
suatu model yang akan dibangun.
Contoh Entitas set :
o Semua Guru atau Guru saja.
Himpunan ini memiliki anggota : Bapak Fahri, Ibu Fitri, Bapak Joko dan
guru-guru yang lain.
o Semua Siswa atau Siswa saja.
Himpunan ini memiliki anggota : Joni, Ridho, Fanny, Donny dan siswa-
siswa yang lain.
10.2.2. Atribut
Setiap entitas mempunyai atribut. Atribut adalah karakteristik atau ciri yang
membedakan antara entitas satu dengan entitas yang lainnya.
Contoh Atribut :
o Entitas Siswa.
Memiliki atribut antara lain: nis (nomor induk siswa), nama, alamat,
nomor telepon, tempat lahir, tanggal lahir dan lain-lain.
o Entitas Guru.
Memiliki atribut antara lain: NIP, nama, alamat, pangkat, nomor telepon,
tempat lahir, tanggal lahir, bidang keahlian, dan lain-lain.
o Entitas Mobil.
Memiliki atribut antara lain: Nomor mesin, nomor rangka, warna, tahun
keluar, tipe mesin, bahan baker, dan lain-lain.
Tidak semua karakteristik dari entitas penting bagi suatu ruang lingkup
masalah. Sebagai contoh pada masalah basis data perpustakaan, karakteristik nomor
sepatu siswa bukanlah karakteristik yang penting yang dapat dijadikan sebagai
10.2.3. Relationship
Relationship atau relasi adalah hubungan yang terjadi antara sejumlah entitas.
Misalkan dari entitas siswa ada seorang siswa yang memiliki NIS = “GHI007” dan
nama_siswa = “Donny” mempunyai relasi dengan entitas program keahlian dengan
kode_program = “RPL” dan nama_program = “Rekayasa Perangkat Lunak”. Relasi di
antara kedua entitas mengandung arti siswa tersebut sedang mengambil program
keahlian tersebut pada sekolah tertentu.
Relation schema terdiri dari nama dari relation, nama dari attribute yang ada
pada suatu relation beserta nama domainnya, dan integrity constrains. Nama dari
relation haruslah unik dalam suatu basis data, atau tidak boleh ada nama relation
yang sama. Nama attribute adalah nama kolom dari relation dan tidak ada nama
attribute yang sama pada suatu relation. Nama domain dari suatu attribute
berhubungan dengan tipe data yang digunakan oleh attribute tersebut. Integrity
constraints adalah batasan pada relational instances pada suatu schema
(Ramakrishnan and Gehrke, 2000; Lewis et al., 2002)
Rekayasa Perangkat Lunak 275
10.3.2. Struktur Basis Data Relasional
Seperti telah dijelaskan di atas sebuah tabel terdiri dari baris dan kolom.
• Row/Baris/Tuple
Row/Baris/Tuple adalah sekumpulan atribut yang saling berhubungan dalam
satu baris (lihat Gambar 10.23). Row ini akan selalu berulang dengan struktur yang
sama namun dengan isi data yang berbeda. Sebagai contoh, pada Gambar 10.23,
row pertama memiliki struktur yang sama dengan row yang ke 2 dan ke 3. Namun
data pada masing-masing row berbeda. Kita dapat mengidentifikasi untuk pembeli
dengan id_pembeli = 1 pasti memiliki nama = Cristiano Ronaldo dan untuk
id_pembeli = 2 pasti memiliki nama = Ryan Giggs, demikian seterusnya.
• Field/Kolom/Attributes
Field/Kolom/Attributes menunjukkan struktur dari data dari baris-baris yang
berulang. Pada Gambar 10.23, terdapat 4 kolom, yaitu id_pembeli, nama, alamat,
dan telepon. Data pada kolom id_pembeli misalnya, akan memiliki struktur yang
sama, yaitu dalam bentuk angka dan merupakan urutan id pembeli . Demikian juga
pada kolom nama yang hanya berisi nama pembeli saja, tidak bercampur dengan
data lain.
Sebuah kolom harus memiliki nama kolom dan tipe data untuk data yang
berada dalam kolom tersebut (Gambar 10.24). Selain itu, kadang-kadang juga ada
pembatas (constraint) dan domain untuk data yang termasuk dalam kolom tersebut.
Tipe data akan sangat bergantung pada atribut yang digunakan dan operasi-operasi
yang akan dilakukan pada basis data ini. Domain data memiliki banyak kesamaaan
pengertian dengan fungsi tipe data yang digunakan. Namun, tipe data lebih
merujuk pada kemampuan penyimpanan data yang mungkin bagi suatu atribut
secara fisik, tanpa melihat layak tidaknya data tersebut bila dilihat dari pemakaian di
dunia nyata. Sementara domain data lebih ditekankan pada batas-batas nilai yang
diperbolehkan bagi suatu atribut, dilihat dari kenyataan pemakaiannya.
Pada Gambar 10.24 terlihat nama-nama kolom pada sebuah tabel lengkap
dengan tipe data dan constrainnya. Kolom ISBN misalnya bertipe data integer,
artinya kolom ini hanya boleh diisi dengan bilangan integer. Selain itu kolom ini
memiliki constrain no null, yang berarti ketika mengisikan data, kolom ini harus
selalu terisi tidak boleh dikosongkan. Pada kolom Pages, tipe datanya adalah date,
artinya hanya boleh berisi data berbentuk tanggal. Kolom Pages tidak memiliki
constrain null, artinya kolom ini boleh diisi atau tidak diisi.
Jenis-jenis tipe data tergantung pada DBMS yang digunakan. Sebagai contoh
MySQL memberikan jenis-jenis tipe data yang lebih luas dari pada Microsoft Access.
Pada MySQL misalnya, kita akan menjumpai tipe data set, enum yang tidak dijumpai
dalam Microsoft Access. Pemilihan tipe data yang tepat sangat penting karena
mempengaruhi konsistensi data dan kinerja basis data.
Contoh domain adalah, apabila kita berhadapan dengan atribut / kolom
tentang kelas pada Sekolah Dasar (SD). Kolom kelas ini hanya boleh diisi data
angka 1 sampai dengan 6, karena tidak ada kelas 7 atau 4.5 di SD. Artinya domain
kolom kelas adalah bilangan integer (bulat dan tidak ada pecahan) antara 1 sampai
dengan 6 saja. Contoh lainnya adalah kolom nilai ujian, kolom ini domainnya adalah
bilangan asli (real dan boleh pecahan) antara 0 sampai dengan 100.
Ada beberapa tipe atribut, yaitu:
o Atribut sederhana (Simple Attribute), yaitu atribut atomic yang tidak
dapat dipecah lagi.
Tabel ketiga adalah Buku. Tabel ini mempunyai 6 kolom yaitu, judul,
tahun_terbit, ISBN, id_penerbit, deskripsi, dan kelompok (Gambar 10.30). Primary
key pada tabel ini adalah ISBN. Ada yang sedikit aneh pada tabel ini, yaitu kolom
id_penerbit yang merupakan salah satu kolom pada tabel Penerbit, dimasukkan dalam
tabel ini. Sebenarnya ini bukan keanehan atau kesalahan, tetapi memang beginilah
salah satu cara basis data relasional menangani hubungan antar tabel.
Dalam dunia nyata, kita akan menjumpai bahwa satu penerbit tidak hanya
menghasilkan satu judul buku saja, tetapi ratusan bahkan mungkin jutaan judul buku.
Sehingga secara formal hubungan antara penerbit dengan buku dapat dinyatakan
sebagai hubungan dengan kardinalitas one-to-many. Jika digambarkan dalam bentuk
ER-Diagram akan tampak seperti Gambar 10.31. Satu penerbit dapat menerbitkan
banyak judul buku dan satu judul buku hanya diterbitkan oleh satu penerbit. Untuk
10.4. RINGKASAN
• Basis data (database) merupakan kumpulan dari data yang saling berhubungan
satu dengan yang lainnya, tersimpan dalam perangkat keras komputer dan
digunakan perangkat lunak untuk memanipulasinya.
Gambar di atas adalah tampilan awal dari Microsoft Access terbaru yaitu versi
2007. Perangkat lunak yang termasuk dalam Micosoft Office Suite ini mungkin
perangkat lunak yang jarang digunakan orang meskipun telah tersedia pada paket
Micosoft Office. Padahal perangkat lunak ini sangat bermanfaat banyak bila
digunakan.
Bab ini membahas dua standar kompetensi yaitu mengoperasikan aplikasi basis
data dan membuat aplikasi berbasis Microsoft Access. Standar kompetensi
mengoperasikan aplikasi basis data terdiri dari tiga kompetensi dasar, yaitu
menjelaskan menu aplikasi basis data, membuat tabel dan membuat view atau query.
Sedangkan standar kompetensi membuat aplikasi berbasis Microsoft Access terdiri
dari empat kompetensi dasar, yaitu menjelaskan Database Management System,
menjelaskan Data Definition Language, menerapkan query dan menerapkan reporting.
Database Management System telah kita bahas pada Bab 10, sedangkan Data
Definition Language akan kita bahas pada Bab 12. Sebelum mempelajari kompetensi
ini ingatlah kembali tentang prinsip pemecahan masalah, sistem operasi, dan dasar-
dasar basis data pada bab-bab sebelumnya.
Rekayasa Perangkat Lunak 285
TUJUAN
Setelah mempelajari bab ini diharapkan pembaca akan mampu :
o Menjelaskan menu-menu umum aplikasi basis data
o Membuat Tabel
o Membuat dan menerapkan View / Query
o Membuat Form
o Membuat Report
Setelah kita tekan tombol Create berarti kita telah mempunyai sebuah basis
data, namun masih belum terisi tabel atau data apapun (Gambar 11.4). Pada gambar
tersebut dapat kita lihat nama file basis data adalah latihan01 dan format file basis
data menggunakan Access 2000. Pada gambar tersebut juga tampat bagian bagian
(object) basis data tersebut.
Pada buku ini kita akan mempelajari empat buah obyek yaitu, tabel, query,
form dan report. Namun, sebelum kita memulai dengan pembahasan tentang
bagaimana menggunakan obyek-obyek dalam Microsoft Access tersebut, kita akan
sekilas membahas tentang contoh kasus basis data yang akan kita buat. Kasus yang
akan kita buat adalah Basis Data Penjualan Buku. Pada kasus ini setiap pembeli akan
melakukan pembelian terhadap buku yang diinginkan dan membayar sejumlah uang
sesuai buku yang dibeli. Data pembeli akan dicatat. Demikian juga setiap data
pesanan, baik itu pemesanan ringkasan maupun item-item pemesanannya. Data
pesanan berisi pembeli yang melakukan pemesanan, total pembelian dan tanggal
pembelian. Sedangkan data item pemesanan berisi data buku yang dipesan dan
jumlahnya untuk tiap pemesanan.
Dengan membaca kasus di atas, maka apabila kita akan membuat ER
Diagramnya maka langkah pertama adalah identifikasi kandidat entitas yang terlibat.
Dari teks di atas kita dapat mengidentifikasi ada minimal 4 kandidat entitas yaitu
pembeli, buku, pesanan dan item pemesanan. Sedangkan relasinya dapat kita
identifikasi sebagai berikut :
o pembeli melakukan pemesanan
o pada setiap pesanan terdapat item-item pesanan
Tabel 11.1 dapat kita lengkapi dengan tipe data dan constraint/domain seperti
pada Tabel 11.2. Hal ini untuk mempermudah pembuatan tabel pada DBMS. Apabila
kita memeriksa apakah tabel-tabel yang terbentuk sudah dalam bentuk normal atau
belum, maka kita akan menjumpai semua tabel sudah dalam bentuk normal bentuk
ketiga (3NF).
Tabel 11.2. Tabel, atribut, tipe data dan constraint/domain pada Basis Data
Penjualan Buku.
Tabel Atribut Tipe Data Constraint/Domain
Pembeli o id_pembeli Integer Not Null
o nama Char/Text (30)
o alamat Char/Text (60)
o telepon Char/Text (15)
Buku o isbn Char/Text (15) Not Null
o pengarang Char/Text (30)
o judul Char/Text (50)
o harga Real/Float (10,2)
Pesanan o id_pesanan Integer Not Null
o id_pembeli Integer Not Null
o jumlah_pembelian Real/Float (10,2)
o tanggal_pembelian Date
Item_Pesanan o id_pesanan Integer Not Null
o isbn Char/Text (30) Not Null
o jumlah Integer Not Null dan > 0
3. Kita dapat mulai memasukkan field-field yang dibutuhkan. Untuk contoh awal
kita akan memasukkan field-field untuk tabel Pembeli seperti yang sudah
didefinisikan pada Tabel 11.2. Perhatikan Gambar 11.10 berikut ini.
5. Kita dapat menyimpan tabel yang sudah kita definisikan dan memberi nama tabel
tersebut dengan cara menekan tombol bergambar disket (lihat Gambar 11.11).
Gambar 11.16 menunjukkan isi data pada tabel pembeli. Dengan cara yang
sama kita dapat mengisikan data pada tabel-tabel lain. Perhatikan hasil pengisian
data pada gambar-gambar berikut.
11.3. QUERY
Pada bagian ini kita akan menerapkan teori-teori query yang telah kita telah
singgung sebelumnyanya. Seperti telah dijelaskan, query adalah 'permintaan data'.
Dengan query kita dapat menampilkan data-data tertentu dari satu atau lebih tabel,
atau melakukan perhitungan pada data di dalam tabel. Namun sebelum mempelajari
bagaimana membuat query, kita akan pelajari dulu bagaimana membuat relasi antar
tabel agar ketika membuat query menjadi lebih mudah.
Untuk membuat relasi antar tabel, dapat dilakukan dengan memilih primary
key pada suatu tabel kemudian seret mouse menuju key dengan nama yang sama
pada tabel lainnya (foreign key pada tabel lain). Sebagai contoh pada tabel pembeli,
primary key – nya id_pembeli dan pada tabel pesanan, id_pembeli adalah foreign key.
Click id_pembeli pada tabel pembeli kemudian seret mouse menuju id_pembeli pada
tabel pesanan. Apabila prosedur ini benar dilakukan, maka akan muncul jendela
seperti Gambar 11.23. Click pada bagian Enforce Referential Integrity dan click
tombol Create. Kita dapat melakukan prosedur ini pada relasi-relasi yang lain.
Sehingga pada jendela Relationships akan tampak seperti pada Gambar 11.24.
Gambar 11.24 menunjukkan relasi antar tabel yang dapat kita bandingkan
dengan ER Diagram pada Gambar 11.8. Pada relasi antar tabel ini, kita juga
menentukan kardinalitas antar tabel. Perhatikan pada garis yang menghubungkan
tabel pembeli dengan pesanan. Di ujung yang berada pada tabel pembeli ditandai
dengan angka 1 dan di ujung yang ada pada tabel pesanan ditandai dengan notasi ∞.
Hal ini menunjukkan adanya hubungan one-to-many antara tabel pembeli dengan
tabel pesanan. Demikian juga dengan relasi antar tabel yang lain.
2. Pada jendela Query bagian bawah (lihat Gambar 11.25), ada beberapa hal
penting yang harus diketahui dan berguna dalam query yaitu
Field : Nama Field yang ingn ditampilkan
Tabel : Nama Tabel dari Filed tersebut
Sort : Mengurutkan Data hasil query
Show : Mengatur Field ditampikan atau tidak
Criteria : Syarat dari data yang ingin ditampilkan
4. Contoh query yang kedua adalah memilih kolom mana saja yang akan
ditampilkan, misalnya :
Tampilkan semua nama pengarang dan judul buku yang dikarangnya
Query ini tidak menampilkan seluruh data tetapi hanya data dari kolom
pengarang dan judul buku saja. Pada Gambar 11.27 terlihat bagaimana
query dilakukan. Tabel buku tetap dipilih dari jendela Show Table, kemudian
di jendela Query, pada bagian Field dipilih field pengarang dan judul. Hasil
eksekusi query adalah daftar nama seluruh pengarang dan buku yang
dikarangnya.
5. Contoh query yang ketiga adalah bagaimana membuat tampilan data urut
sesuai yang dikehendaki, misalnya:
Tampilkan semua judul buku dan harganya dengan urutan harga yang
paling mahal lebih dahulu
Query ini juga tidak menampilkan seluruh data tetapi hanya data dari judul
buku dan harga saja. Namun urutan tampilan dirubah. Pada Gambar 11.28
terlihat bagaimana query dilakukan. Tabel buku tetap dipilih dari jendela
Show Tabel, kemudian di jendela Query, pada bagian Field dipilih field judul
dan harga. Pada bagian Sort, pada kolom yang sama dengan harga, kita
gunakan opsi Descending untuk mengurutkan dari besar ke kecil. Hasil
eksekusi query adalah daftar seluruh judul buku dan harganya dengan urutan
judul buku yang berharga paling mahal di atas.. Bandingkan urutan baris pada
hasil dengan hasil query pada Gambar 11.26.
6. Contoh query yang ketiga adalah bagaimana memilih baris-baris mana saja
yang akan ditampilkan, misalnya:
Tampilkan semua judul buku yang pengarangnya adalah Harry
Redknapp.
Query ini juga hanya berhubungan dengan data dari field judul buku dan
pengarang saja. Namun tidak seluruh judul, tetapi hanya judul buku yang
ditulis ‘Harry Redknapp’. Pada Gambar 11.28 terlihat bagaimana query
dilakukan. Tabel buku tetap dipilih dari jendela Show Tabel, kemudian di
jendela Query, pada bagian Field dipilih field nama pengarang dan judul.
Pada bagian criteria, kita masukkan criteria yang kita maksudkan, yaitu =
‘Harry Redknapp’. Hasil eksekusi query adalah daftar seluruh judul buku yang
ditulis ‘Harry Redknapp’.
Ketika kita memilih tabel pembeli dan pesanan seperti tampak pada Gambar
11.33, secara otomatis Microsoft Access akan menampilkan garis relasi antara
kedua tabel tersebut. Apabila kita belum membuat relasi, maka garis relasi
tidak akan muncul. Pada Gambar 11.33 terlihat pada bagian Field untuk
kolom nama dan alamat, Tabel nya adalah pembeli. Sedangkan pada
jumlah_pembelian, tabelnya adalah pesanan. Selain itu pada kolom
jumlah_pembelian, kita juga membuat criteria, yaitu yang lebih besar dari
100000. Hasil eksekusi query menunjukkan ada dua orang pembeli yang
jumlah_pembeliannya lebih dari 100000.
2. Contoh query yang kedua adalah query yang melibatkan tiga tabel, misalnya:
Tampilkan judul buku dan pengarangnya yang dibeli pada tanggal 22 Juli 2007
atau 25 Juli 2007.
Pada query ini kita membutuhkan tabel buku karena kolom judul dan
pengarang ada pada tabel buku. Kita juga membutuhkan tabel pesanan
karena kolom tanggal pembelian ada pada tabel ini. Namun dari relasi antar
tabel pada Gambar 11.24, kita tahu bahwa tabel pesanan dan tabel buku
tidak ada relasi langsung. Tabel pesanan berhubungan langsung dengan
tabel item_pesanan dan tabel item_pesanan berhubungan langsung dengan
tabel buku. Semua relasinya berkardinalitas one-to-many. Sehingga
pembuatan query akan seperti berikut:
Pilih tabel buku, item_pesanan dan pesanan pada jendela Show Tabel.
Kemudian click Add dan kemudian Close. Seperti tampak pada Gambar
11.34 terlihat relasi antara ketiga tabel tersebut. Hasil eksekusi query ini
menghasilkan tiga record seperti terlihat pada gambar.
3. Contoh query yang ketiga adalah query yang melibatkan semua tabel pada
basis data penjualan buku, misalnya:
Tampilkan nama dan alamat pembeli yang membeli buku dengan judul Teori
Sepakbola Modern.
Pada query ini kita membutuhkan tabel pembeli karena kolom nama dan
alamat ada pada tabel pembeli. Kita juga membutuhkan tabel buku karena
kolom judul hanya ada pada tabel ini. Dari relasi antar tabel pada Gambar
11.24, kita tahu bahwa tabel pembeli dan tabel buku tidak ada relasi
langsung, namun harus melalui tabel pesanan dan tabel item_pesanan. Oleh
karena itu kita membutuhkan keempat tabel tersebut dalam query ini. Pada
Gambar 11.35 terlihat bagaimana query ini harus dibuat. Hasil eksekusi query
ini menghasilkan tiga record seperti terlihat
11.4. FORM
Form adalah salah satu obyek basis data dalam Microsoft Access yang
digunakan sebagai antar muka bagi pengguna untuk memasukkan data atau
menampilkan data. Bagi pengguna awam, memasukkan data seperti pada Gambar
11.16 sampai dengan 11.19 agak menyulitkan. Jauh lebih mudah menggunakan
form. Pada Microsoft Access, dikenal ada tiga model form, yaitu: form data entry
(Gambar 11.36 no 1), form switchboard (no 2) dan form custom dialog (no. 3).
Ada dua cara pembuatan form pada Micosoft Access, yaitu dengan
menggunakan Wizard dan dengan menggunakan Design View. Wizard merupakan
cara yang paling mudah, karena kita Microsoft Access akan melakukan pembuatan
form secara otomatis. Sedangkan pada Design View kita melakukan rancangan form
secara manual. Kita dapat memodifikasi hasil dari Wizard dengan Design View.
3. Pada Gambar 11.40, tersedia beberapa opsi model tampilan form. Kita akan
mencoba membuat dengan model Columnar. Namun pembaca dapat
mencoba membuat dengan model tampilan lain yang tersaji pada pilihan.
Click tombol Next maka akan muncul jendela untuk memilih style (Gambar
11.41). Pada jendela ini kita dapat memilih sesuai keinginan kita dan setelah
selesai kita click Next sehingga muncul jendela untuk member Title atau judul
form yang telah kita buat. Isikan nama form pada Textbox yang telah
disediakan (Gambar 11.42).
4. Click tombol Finish pada Gambar 11.42. Form pembeli telah selesai kita buat
dan hasilnya tampak pada Gambar 11.43. Ada bagian yang sangat penting
pada Form telah kita buat. Yaitu tombol navigasi dan tombol menambah
record baru. Tombol navigasi berfungsi untuk melihat data yang telah kita
buat secara urut berdasarkan id_pembeli. Sedangkan apabila tombol
menambah form di-click, maka teks yang ada pada seluruh textbox akan
dikosongkan dan kita dapat mulai mengisi data baru.
7. Tampilan akhir dari form setelah dimodifikasi akan tampak seperti pada
Gambar 11.53.
11.5. REPORT
Report, seperti halnya form, digunakan untuk merepresentasikan hasil olahan
data menjadi informasi yang siap di cetak di lembaran kertas. Kita dapat saja
mencetak langsung dari tabel database namun hasil cetakannya tidak seperti laporan
yang diinginkan. Cara yang terbaik adalah dengan membuat model laporan dengan
fasilitas Report. Report dapat dibuat dengan dua cara yaitu manual dan wizards.
Seperti halnya pada form, wizard memberikan kemudahan dalam pembuatan report,
karena semuanya sudah diatur otomatis. Berikut ini kita akan membuat laporan
penjualan harian. Laporan ini berisi tanggal transaksi, ISBN dan judul buku yang
terjual, harga masing-masing buku dan total nilai penjualan per hari/tanggal.
1. Untuk membuat report ini kita tidak bias langsung dari tabel, karena report ini
berisi gabungan dari beberapa tabel yang ada. Sehingga kita harus membuat
query sebagai sumber data untuk laporan. Cara membuat query sama
dengan yang kita lakukan sebelumnya. Perhatikan Gambar 11.54 berikut ini.
Pada Gambar tersebut kita memilih tabel pesanan, item_pesanan dan buku.
Kemudian kita memilih tanggal_pembelian, isbn, judul, dan harga pada bagian
Field. Kemudian kita simpan dengan nama query_rpt_penjualan_harian (atau
dengan nama yang lain).
2. Pada jendela Database pilih object Report dan double click pada Create
Report by using Wizard. Jendela Report Wizard akan terbuka dan pada
bagian Tabels/Queries pilih query yang telah kita buat pada bagian 1 (lihat
Gambar 11.55). Kemudian click tombol >> sehingga semua field yang ada
pada bagian Available Fields berpindah ke Selected Fields (lihat Gambar
11.56)
3. Click Next untuk membuka jendela berikutnya (Gambar 11.57). Pada jendela
ini kita menentukan dasar tampilan laporan, apakah berdasarkan buku atau
pesanan. Karena kita akan membuat laporan harian maka tampilan
berdasarkan pesanan yang kita pilih (ingat, field tanggal_pembelian ada pada
tabel pesanan).
4. Click Next untuk melanjutkan dengan jendela berikutnya (Gambar 11.58).
Jendela ini digunakan untuk mengelompokkan (grouping) data pada field
yang sama. Pada contoh kali ini kita tidak melakukan grouping sehingga kita
tidak perlu mengatur apa-apa pada jendela ini. Kita dapat langsung click Next
untuk melanjutkan pada jendela berikutnya.
5. Pada Gambar 11.59, kita dapat memilih melakukan pengurutan data atau
tidak. Pada bagian ini kita akan mengurutkan berdasarkan nomor ISBN dan
kemudian berdasarkan judul buku. Pada Combo Box no 1 kita pilih isbn dan
pada Combo Box no 2 kita pilih judul. Selain itu pada bagian ini kita juga
mengatur apakah kita membuat ringkasan laporan atau tidak. Click pada
Summary Options untuk membuka jendela pengaturan ringkasan (Gambar
7. Pada Gambar 11.63, kita melihat laporan yang tidak terlalu bagus bila dicetak.
Judul kolom masih menggunakan nama field pada tabel. Selain itu kata-kata
Summary for tanggal pembelian dan seterusnya, agak mengganggu tampilan
laporan. Untuk memperbaiki tampilan laporan, click kanan pada nama report
di jendela object Report kemudian pilih Design View. Jendela seperti pada
Gambar 11.64 akan terbuka.
11.6. RINGKASAN
• Ada enam obyek penting Microsoft Access, yaitu Table, Queries, Forms,
Reports, Macros dan Modules.
• Tabel dalam Microsoft Access terdiri dari record (baris) dan field (kolom). Tabel
dapat dibuat dengan mendefinisikan field-field yang dibutuhkan dilengkapi
dengan tipe data, domain dan penentuan primary key nya.
• Query atau permintaan data dapat menampilkan data dari satu tabel atau
beberapa tabel yang saling berhubungan. Query dalam Microsoft Acces dapat
dilakukan dengan menggunakan fasilitas GUI.
• Form adalah salah satu obyek basis data dalam Microsoft Access yang
digunakan sebagai antar muka bagi pengguna untuk memasukkan data atau
menampilkan data. Form dapat dibuat melalui metode Wizard maupun manual
dengan menggunakan Design View.
• Report digunakan untuk merepresentasikan hasil olahan data menjadi
informasi yang siap di cetak di lembaran kertas. Report juga dapat dibuat
dengan cara manual maupun dengan fasilitas Wizard.
Setiap kali kita membuka SQL Server Management Studio, kita akan diperiksa
apakah kita berhak menggunakan SQL Server atau tidak. Jika SQL Server dijalankan
pada mesin lokal dan menggunakan Windows Authentication maka kita dapat
langsung menekan tombol Connect untuk masuk ke lingkungan SQL Server. Tetapi
Ada dua bagian penting yang ada pada bagian awal ini yaitu Object Explorer
dan Summary Panel. Object Explorer adalah tempat kita melihat obyek-obyek apa
saja yang ada di dalam SQL Server. Pada gambar di atas kalian bisa melihat obyek-
obyek yang tersedia. Untuk sementara yang paling penting adalah Databases.
Sedangkan Summary panel merupakan tempat keterangan atau ringkasan yang ada
pada Object Explorer. Coba klik pada salah satu obyek di Object Explorer, maka isi
Summary panel juga akan berubah sesuai dengan obyek yang kita pilih.
Pada gambar di atas, kita membuat tabel dengan 5 kolom yaitu NoInduk,
Nama, Alamat, Kota, NoTelepon. Masing-masing bertipe nchar dengan lebar data
yang bervariasi. Untuk menentukan lebar data, lihatlah pada bagian property dari
kolom. Setelah selesai simpan tabel dengan nama tertentu. Pada contoh di atas
tabel disimpan dengan nama siswa. SQL server akan memberikan awalan nama
(prefix) dbo secara default. Tetapi ini bisa kita rubah. Jadi nama tabel yang kita buat
di atas akan menjadi dbo.siswa.
Hapuslah tabel dbo.siswa dengan cara klik kanan lalu pilih Delete. Sekarang
buatlah tabel-tabel berikut ini dengan cara seperti di atas.
Kolom Filter pada jendela Criteria digunakan untuk memilih baris yang sesuai
dengan keinginan kita. Pada contoh di atas, digunakan untuk memilih baris yang isi
kolom Kotanya bukan ‘Malang’. Kita menggunakan tanda <> untuk menyatakan
ketidaksamaan.
Contoh 12.2. View untuk menampilkan nama, nomor induk, dan program keahlian
Siswa secara urut abjad nama.
Contoh ini membutuhkan minimal 2 tabel, yaitu tabel Siswa dan tabel Program.
Perhatikan relasi antar tabel pada Gambar 12.12. Tabel Siswa berhubungan langsung
dengan tabel Program. Dengan cara yang sama seperti Contoh 12.13, pilih tabel
Siswa dan tabel Program. Pada kotak Siswa di jendela Diagram pilih Nama dan
NoInduk sedangkan pada kotak Program pilih NamaProgram. Pada jendela Criteria,
pilih baris Nama dan klik pada kolom Sort Type kemudian pilih Ascending. Kemudian
jalankan View tersebut. Kalian akan mendapat hasil seperti pada Gambar 12.17.
Contoh 12.3. View untuk menampilkan nama Guru dan bidang keahliannya secara
urut abjad nama.
Berdasarkan relasi tabel pada Gambar 12.12, maka View pada contoh ini
membutuhkan tiga buah tabel yaitu tabel Guru, Guru_Bidang dan Bidang. Kolom
Nama ada di tabel Guru sedangkan kolom NamaBidang ada pada tabel Bidang. Pilih
tiga tabel tersebut. Pada kotak Guru di jendela Diagram pilih Nama kemudian pada
kotak Bidang pilih NamaBidang. Pada jendela Criteria, pilih baris Nama dan klik pada
kolom Sort Type kemudian pilih Ascending. Jalankan View ini. Perhatikan hasil yang
diperoleh.
Kalau kalian perhatikan, perintah INSERT di atas terlalu panjang. Coba hapus
bagian daftar nama kolom pada perintah tersebut. Kemudian ganti data di bawah
VALUES menjadi (9, ’Digital Animation’, NULL). Kemudian jalankan dan periksalah
hasilnya. Apa yang terjadi? Setelah Refresh, kalian akan menjumpai bahwa data
kalian juga dapat dimasukkan tanpa harus menyebut daftar nama kolom pada
perintah INSERT.
Seringkali dalam pengisian data pada suatu tabel, kita melakukan kesalahan.
Kesalahan dapat berupa kesalahan ketik atau kesalahan pembacaan data. Sehingga
ketika diperiksa, kita menginginkan untuk merubah/memperbaiki data tersebut.
Proses ini biasa disebut sebagai update data. SQL menyediakan perintah UPDATE
untuk melakukan proses ini. Perintah ini masih termasuk dalam kelompok DML.
Misalnya kita ingin merubah isi kolom NamaBidang pada IdBidang yang ke-5
(lihat Gambar 12.21). Dari ‘Fotografi’ kita rubah menjadi ‘Fotografi Digital’ maka kita
ketikkan perintah seperti berikut.
UPDATE [Lat-01].[dbo].[Bidang]
SET [NamaBidang] = 'Fotografi Digital'
WHERE [IdBidang] = 5
Periksa kembali isi tabel Bidang. Jangan lupa untuk me-refresh dulu tabel
Bidang sebelum perintah Open Table dijalankan.
350 Basis Data Berbasis SQL
Penghapusan data dengan SQL dilakukan dengan perintah DELETE. Perlu
diperhatikan bahwa perintah DELETE akan menghapus isi seluru baris. Kalau kalian
hanya ingin mengosongkan isi satu bagian dari baris (atau satu sel) saja gunakan
perintah UPDATE. Misalnya kita ingin kita menghapus baris yang IdBidangnya sama
dengan 8 maka kita ketikkan dengan perintah seperti berikut.
DELETE FROM [Lat-01].[dbo].[Bidang]
WHERE [IdBidang] = 8
Contoh 12.8. Menampilkan data nama siswa dan program keahlian yang diikuti.
Pada contoh ini kita melibatkan dua buah tabel yang saling berhubungan yaitu tabel
Siswa dan tabel Program. Yang kita ingin tampilkan adalah kolom Nama pada tabel
Siswa dan kolom NamaProgram pada tabel Program. Untuk kasus seperti ini pada
perintah SELECT pemanggilan nama kolom harus didahului dengan nama tabelnya.
Sedangkan pada FROM kita menggunakan perintah INNER JOIN untuk menggabung
dua tabel. Perlu kalian cermati (lihat Tabel 12.1 di atas), pada tabel Siswa terdapat
Foreign Key yaitu IdProgram yang merupakan Primary Key pada tabel Program.
IdProgram ini merupakan penghubung yang dapat kita gunakan untuk menggabung
dua tabel. Perhatikan pernyataan SQL berikut ini dan cermati outputnya.
Contoh 12.11. Menampilkan data nama guru yang bidang keahliannya Pemrograman
Web atau Basis Data.
Contoh ini merupakan pengembangan dari contoh 12.10. Kita ingin menampilkan
guru yang bidang keahliannya Pemrograman Web atau Basis Data. Kita perlu
Bandingkan dengan hasil eksekusi contoh 12.10. Cobalah ganti OR dengan AND dan
jalankan kembali perintah SQL tersebut. Bagaimanakah hasilnya?
Contoh-contoh di atas dapat dikembangkan lagi dengan banyak variasi.
Dengan banyak mencoba dan berlatih maka kalian akan dapat memahami dengan
baik penggunaan perintah-perintah SQL.
12.7.1. FUNGSI
T-SQL menyediakan banyak fungsi yang digunakan untuk mempermudah
tugas-tugas dalam pengelolaan basis data. Beberapa fungsi penting akan
disampaikan di sini. Untuk lebih lengkapnya silahkan baca manual atau online-help
dari SQL Server.
12.7.3. Trigger
Trigger adalah tipe khusus dari stored procedure yang akan dieksekusi ketika
suatu kejadian muncul. Kejadian tersebut misalnya ketika ada penambahan data
(INSERT), penghapusan data (DELETE) atau perubahan data (UPDATE). Trigger
biasanya merupakan komponen dari suatu table.
Cara membuatnya adalah klik node di depan table yang anda pilih. Setelah
muncul daftar komponen table tersebut klik kanan pada Trigger dan pilih New Trigger.
SQL Server akan menampilkan jendela baru yang isinya adalah template dari Trigger.
Hapus semua teks pada jendela tersebut kemudian ketikkan contoh berikut ini.
Contoh 12.19. Membuat trigger.
CREATE TRIGGER coba_trigger
ON dbo.Bidang FOR INSERT
AS
DECLARE @varNama Varchar(20)
SELECT @varNama = NamaBidang FROM INSERTED
PRINT 'Anda baru memasukan data : ' + @varNama
Trigger di atas berada pada table Bidang. Nama triggernya adalah coba_trigger
dan akan dijalankan ketika event pemasukkan data (INSERT) pada table dbo.Bidang
terjadi.
Untuk menambahkan user yang bisa masuk ke SQL Server, klik node pada
Security di Object Explorer, kemudian klik kanan Logins. Pilih New Logins untuk
membuka jendela Login seperti pada Gambar 12.23. Buat user baru yang kalian
inginkan.
12.8.2. Permissions
Permissions berhubungan dengan hak akses seorang user pada suatu basis
data. Seorang yang sudah terdaftar sebagai user pada SQL Server tidak secara
otomatis bisa menggunakan basis data yang ada jika belum diberi hak. Untuk
mengubah hak user pada basis data tertentu, klik node pada Logins. Klik kanan pada
nama user yang terdaftar di bawah Logins kemudian pilih Properties. Pada jendela
Login Properties, pilih bagian User Mapping sehingga tampilan akan tampak seperti
pada Gambar 12.24.
12.9. RINGKASAN
• Data Definition Language (DDL) adalah satu paket bahasa DBMS yang berguna
untuk melakukan spesifikasi terhadap skema basis data sedangkan Data
Manipulation Language (DML) adalah satu paket DBMS yang memperbolehkan
pemakai untuk mengakses atau memanipulasi data sebagaimana yang telah
diorganisasikan sebelumnya dalam model data yang tepat.
• SQL lebih menekankan pada aspek pencarian dari dalam tabel hal ini karena
pencarian adalah inti dari pengelolaan data.
• Pembuatan Tabel dan View pada SQL server dapat dilakukan dengan cara GUI
atau dengan menggunakan perintah-perintah SQL.
• Perintah utama SQL adalah SELECT, FROM dan WHERE.
Rekayasa Perangkat Lunak 363
• Microsoft SQL Server menyediakan fasilitas fungsi built-in dan user-defined
function.
• Stored procedure adalah potongan kode program yang dapat menerima
parameter input dan menghasilkan satu atau lebih parameter output. Trigger
adalah tipe khusus dari stored procedure yang akan dieksekusi ketika suatu
kejadian muncul
• SQL Server menyediakan mekanisme Authentication untuk membatasi siapa
yang berhak masuk ke dalam sistem SQL Server dengan dua model yaitu
Windows Authentication dan SQL Server Authentication. Selain itu keamanan
data juga diatur dengan cara pemberian permissions.
• Web Server
Web server adalah perangkat lunak yang bertindak melayani permintaan-
permintaan client terhadap halaman-halaman web tertentu. Ada beberapa
IIS adalah web server keluaran Microsoft. Sebutan web server bagi IIS
mungkin tidak terlalu tepat, karena selain web server, IIS juga memberikan
fasilitas file server, email server dan layanan lain berbasis internet. Oleh karena
itu istilah yang tepat mungkin adalah internet based-service. Perangkat lunak
ini dibundel dalam sistem operasi Microsoft Windows. Namun secara default
tidak langsung diinstall. Sehingga kalau kita mau menggunakannya kita harus
menginstall lebih dulu. Gambar 13.3 menunjukkan bagaimana IIS diinstall.
• Web Browser
Web browser berfungsi menerjemahkan kode-kode HTML menjadi tampilan
yang kita kehendaki. Ada banyak Web Browser tersedia di internet. Hampir
semuanya dapat kita download secara bebas. Beberapa nama yang cukup
terkenal antara lain Microsoft Internet Explorer, Firefox, Opera atau Safari.
Microsoft Internet Explorer adalah default web browser pada sistem operasi
Microsoft Windows (lihat Gambar 13.4). Firefox adalah default web browser
pada sebagian besar sistem operasi Linux. Safari adalah default web browser
pada sistem operasi Mac OS X (lihat Gambar 13.5). Sedangkan Opera adalah
web browser keluaran Opera Software yang dapat berjalan pada berbagai
platform sistem operasi (Gambar 13.6).
Halaman awal suatu situs web biasanya berupa halaman web yang diberi nama
homepage. Biasanya filenya diberi nama index.html (atau bisa juga index.php,
index.jsp, index.asp jika menggunakan bahasa skrip server). Di dalam direktori yang
sama dengan index.html ini biasanya ada direktori-direktori lain yang berisi halaman-
13.4. HTML
13.4.1. Pengertian HTML
Gambar 13.8 dan 13.9 menunjukkan pada kalian bagaimana membuat halaman
web sederhana. Halaman web yang kalian buat ini menggunakan bahasa yang
disebut HTML (Hypertext Markup Language). HTML merupakan pengembangan dari
standar pemformatan dokumen teks yaitu Standard Generalized Markup Language
(SGML). HTML sebenarnya adalah dokumen ASCII atau teks biasa yang dirancang
untuk tidak tergantung pada suatu sistem operasi tertentu.
HTML dibuat oleh Tim Barners-Lee ketika masih bekerja untuk CERN. HTML
dipopulerkan pertama kali oleh browser Mosaic. Selama awal tahun 90’an, HTML
mengalami perkembangan yang sangat pesat. Setiap pengembangan HTML pasti akan
menambahkan kemampuan dan fasilitas yang lebih baik daripada versi sebelumnya.
Perkembangan yang pesat tersebut tidak sampai merubah cara kerja HTML.
Sebuah dokumen atau file HTML agar dapat dibaca langsung oleh browser
disimpan dalam ekstensi .htm atau .html. Untuk menulis HTML tidak dibutuhkan
perangkat lunak yang spesifik, cukup dengan text editor sederhana seperti Notepad
(pada Microsoft Windows) atau beragam text editor yang ada di platform Linux dan
Apple Mac OS, seperti vi, nano, joe, gedit, leafpad dan lain-lain. Beberapa editor
menyediakan fitur-fitur tambahan seperti syntax coloring (memberi warna pada kode-
kode HTML) dan code completion (melengkapi secara otomatis kode yang akan
dituliskan). Saat ini telah banyak perangkat lunak berbasis GUI yang sangat
membantu dalam pembuatan halaman-halaman HTML. Macromedia Dreamweaver
dan Microsoft Frontpage merupakan dua nama yang cukup populer di platform
Microsoft Windows. Sedangkan di Linux tersedia Quanta+, Bluefish dan Nvu.
• Header
Bagian ini biasanya berisi berbagai macam keterangan tentang dokumen
termasuk title (judul dokumen), posisinya dalam sekumpulan halaman web dan
hubungannya dengan dokumen lain. Bagian ini ditandai dengan tag <head> ….
</head>. Tag ini tidak mempunyai atribut. Di dalam tag ini kita dapat
meletakkan beberapa tag lain seperti tag title dan tag link. Lihat Gambar 13.15
dan 13.16.
• Body
Body adalah bagian dari dokumen HTML tempat dimana kita meletakkan isi
dari dokumen. Bagian ini ditandai dengan tag <body> dan diakhiri dengan
</body>. Apapun yang berada diantara dua tanda ini disebut sebagai body
content. Dokumen HTML yang paling sederhana mungkin hanya berisi sebaris
atau dua baris teks saja tanpa format apapun (Gambar 13.17). Pada dokumen
yang lebih kompleks, body content bisa berisi teks yang terformat, gambar, tabel
atau bahkan animasi yang rumit (Gambar 13.18).
• Line Break
Line break digunakan untuk menuliskan teks pada baris berikutnya. Line
break dibuat dengan tag tunggal <BR>. Tag ini akan membuat baris baru tanpa
memberi baris kosong sebagaimana pada tag <P> (Lihat Gambar 13.21).
• List
HTML menyediakan 3 cara untuk membuat daftar atau list, yaitu
o Unordered list
Unordered list digunakan untuk membuat daftar yang disajikan tanpa
nomor urut, melainkan dengan secara default dengan tanda bulatan utuh
(bullet). Tanda ini bisa dirubah dengan merubah nilai atribut TYPE untuk
unordered list. Nilai-nilai atribut yang diijinkan dapat dilihat pada tabel 13.1.
Tipe lain dari list yang termasuk Unordered list adalah Directory list dan
Menu list. Directory list merupakan daftar tak bernomor yang digunakan
untuk menangani direktori. Tag yang digunakan adalah <DIR> ...
</DIR>. Menu list umumnya digunakan untuk menu pilihan. Tag yang
digunakan adalah <MENU> ... </MENU>. Baik Direktori list maupun Menu
list menghasilkan tampilan yang sama dengan Unordered list (Gambar 13.24
dan Gambar 13.24).
o Definition list
Definition list membuat daftar definisi mirip seperti tampilan pada
kamus, dengan definisi suatu istilah agak menjorok ke kanan. Tiga buah
pasang tag yang terkait dengan definition list adalah:
- <DL> ... </DL> untuk menyatakan tempat bagi daftar definisi.
- <DT> ... </DT> untuk menyatakan tempat bagi istilah yang akan
didefinisikan.
- <DD> ... </DD> untuk menyatakan tempat bagi definisi dari istilah.
Contoh penggunaan Definition list dapat dilihat pada Gambar 13.26.
• Font
HTML menyediakan fasilitas pengaturan huruf yang akan ditampilkan dalam
dokumen. Pengaturan ini dilakukan dengan tag berpasangan <FONT> dan
• Horizontal Line
Untuk mempercantik tampilan halaman HTML, kita dapat menambahkan garis
horizontal dengan tag <HR>. Tag <HR> mempunyai atribut SIZE untuk menentukan
ketebalan garis, atribut WIDTH untuk menentukan lebar garis, Atribut ALIGN untuk
menentukan letak teks dalam garis, dan atribut NOSHADE untuk mengatur agar garis
tidak disertai bayangan. Gambar 13.28 menunjukkan bagaimana tag <HR>
digunakan.
• Image
Dokumen HTML dapat diperindah dengan menyertakan gambar pada halaman
web yang dibuat. Tag <IMG> dapat digunakan untuk memanggil dan menampilkan
gambar pada halaman web. Sintaks penulisan tag <IMG> adalah:
<IMG SRC=”file_gambar” ALT=”nama_alternatif”>
Atribut SRC digunakan untuk menentukan sumber file gambar yang akan
ditampilkan. Atribut ALT berfungsi untuk memberi tulisan pengganti, apabila gambar
tidak ditampilkan.
Untuk pengaturan gambar yang lebih baik, tag IMG menyediakan beberapa
atribut, antara lain:
• Atribut ALIGN untuk mengatur penempatan teks pada gambar.
• Atribut BORDER untuk memberi bingkai pada gambar.
13.4.5. Tabel
Tabel dalam HTML dibuat dengan menggunakan tag awal <TABEL> dan tag
penutup </TABLE>. Tag ini memiliki beberapa bagian penting, seperti dapat dilihat
pada Tabel berikut ini.
Tabel 13.2. Bagian-bagian pada tag Table
Tag Fungsi
<CAPTION>…</CAPTION> Membentuk judul tabel
<TH>…</TH> Membuat judul kolom
<TR>…</TR> Membentuk baris pada suatu tabel
<TD>...</TD> Membuat sebuah sel data
Pada Gambar 13.31, tabel yang kita buat adalah tabel sederhana dengan dua
buah kolom dan 3 buah baris (perhatikan ada 3 buah pasangan tag <TR> … </TR>.
Secara default tabel ditampilkan tanpa ada garis pada tabel tersebut. Kita dapat
menambahkan garis dengan menggunakan atribut border pada tabel (lihat Gambar
13.32).
Pada Gambar 13.32, terlihat tabel yang tampilannya lebih baik daripada
Gambar sebelumnya. Ada beberapa atribut yang kita tambahkan pada tabel yaitu :
Sel pada tabel tidak selalu harus berisi teks namun dapat juga berisi gambar
seperti terlihat pada Gambar 13.36.
13.5. RINGKASAN
• Teknologi disain web terbagi menjadi beberapa layer (lapisan), yaitu structural
layer, presentation layer dan behavioral layer.
• Web statis adalah halaman web yang isi data dan informasinya tidak berubah-
ubah. Sedangkan web dinamis, memiliki isi data dan informasi yang berbeda-
beda tergantung input apa yang disampaikan client.
• Pembuatan halaman web membutuhkan dukungan persiapan perangkat keras,
perangkat lunak dan pemahaman teknologi pembuatan web.
• HTML (Hypertext Markup Language) merupakan bahasa yang digunakan untuk
pembuatan halaman web dilakukan dengan cara disisipkan (embedded
language) pada dokumen dengan memberi tanda tertentu yang disebut tag.
• Dokumen HTML secara umum akan terdiri dari dua bagian yaitu Header dan
Body.
• HTML menyediakan tag-tag untuk pendeskripsian dokumen dan format
dokumen yang lengkap.
• Pada halaman HTML dapat ditambahkan gambar, tabel, suara, atau file-file lain.
• PHP
PHP adalah bahasa pemrograman yang didesain khusus untuk membuat
halaman web. PHP adalah singkatan dari PHP Hypertext Preprocessor.
Singkatan yang agak aneh. Awalnya, PHP adalah singkatan dari Personal Home
Page yang pertama kali diciptakan oleh Rasmus Lerdorf. PHP diciptakan
pertama kali untuk keperluan mencatat jumlah pengunjung homepagenya.
Perkembangan php saat ini dapat dilihat pada www.php.net.
Pada jendela Services tersebut cari nama servis web server kalian. Jika kalian
menggunakan IIS cari nama Internet Information Services pada kolom nama.
Jika kalian memakai Apache, cari juga nama Apache. Jika belum ada mungkin
Untuk menguji apakah halaman JSP dapat dijalankan, pada halaman awal
NetBeans, klik menu File dan pilih New Project. Jendela New Project seperti Gambar
14.12. akan terbuka. Pada bagian Choose Project pilih kategori Web dan pada
Projects pilih Web Application. Klik Next untuk melanjutkan pada menentukan nama
dan lokasi penyimpanan project (Gambar 14.13). klik Next untuk melanjutkan
menentukan tipe dan setting server (Gambar 14.14). Pada bagian ini kita dapat
memilih apakah menggunakan Apache Tomcat atau GlassFish (Java Application
Server). Klik Finish untuk menyelesaikan konfigurasi aplikasi web.
Setelah kalian menekan Finish kalian akan dihadapkan pada tampilan seperti
pada Gambar 14.15.
<html>
<head>
<meta http-equiv="Content-Type" content="text/html;
charset=UTF-8">
<title>JSP Page</title>
</head>
<body>
<h2>Hello World!</h2>
</body>
</html>
Jika web browser kalian telah berhasil menampilkan halaman seperti pada
Gambar 14.17, berarti kalian telah siap untuk membuat aplikasi dengan JSP.
Perhatikan pada alamat URL-nya, halaman ini dipanggil dengan alamat
http://localhost:8080/JSP-01/. Karena file yang kita panggil adalah file index.jsp,
maka kita dibolehkan memanggil halaman tersebut tanpa menyebut nama file.
Konfigurasi pada server telah membuat server mengenali bahwa halaman dengan
nama index adalah halaman awal.
14.3.1. Directive
Directive adalah sekumpulan tag yang menentukan bagaimana dokumen yang
berisi direktif ini akan diproses. Directive digunakan JSP untuk mengirimkan “pesan”
ke JSP container. Directive berguna untuk melakukan setting nilai global seperti
deklarasi class atau method. Setting yang dilakukan oleh directive berlaku pada
seluruh halaman (hanya halaman itu saja).
Secara umum sintaks directive adalah sebagai berikut :
<%@ nama_directive atribut1=”nilai1” atribut2=”nilai2” . . %>
Directive pada JSP terdiri atas tiga jenis tentu saja dengan fungsi yang
berbeda-beda.
• Page : digunakan untuk mendefinisikan atribut-atribut yang terdapat pada
halaman JSP. Atribut-atribut ini misalnya atribut language, import, info,
errorpage dan lain-lain. Cara penulisannya dengan menggunakan tanda @
setelah tag JSP (<%) diikuti kata page dan atributnya.
Contoh : <%@ page language=”java” %>
• Scriplet
Scriplet merupakan sekumpulan kode program Java uang dijalankan setiap kali
halaman JSP dipanggil. Pada bagian ini kalian bisa memasukkan kode-kode
program Java yang telah kalian pelajari pada Bab 8. Cara penulisannya adalah
dengan memberikan tag <% kode %>.
Contoh 14.2. Penggunaan tag scriplet.
<html>
<head>
<title>Contoh Println</title>
</head>
<body>
<%
out.print("Ini keluar dari tag scriplet");
out.print("Coba saja kalau tidak percaya”);
%>
</body>
</html>
Simpan file dengan nama yang diakhiri .jsp. Jalankan kode progam tersebut
dan periksalah hasilnya.
• Ekspresi
Ekspresi adalah satu baris perintah yang digunakan untuk mengeksekusi
perintah sekaligus menampilkan dalam halaman web. Eskpresi ini mirip seperti
14.3.4. Action
Action mendukung beberapa aksi yang berbeda-beda. Hampir mirip dengan
scripting, action akan dieksekusi setiap kali ada permintaan. Fungsi penting dari
action adalah memungkinkan terjadinya transfer kontrol antar halaman, mendukung
penggunaan applet Java dan memungkinkan JSP terintegrasi dengan komponen
JavaBeans.
JSP mengenal tag action standar dan custom tag. Tag standar adalah tag yang
didefinisikan dalam spesifikasi JSP, sedangkan custom tag adalah tag baru yang dapat
didefinisikan sendiri. Pada bagian ini hanya dibahas mengenai tag action standar. Tag
action standar JSP adalah sebagai berikut :
• <jsp:useBean>
• <jsp:setProperty>
• <jsp:getProperty>
• <jsp:param>
• <jsp:include>
• <jsp:forward>
• <jsp:plugin>
Pada buku ini kita akan mempelajari penggunaan action standard forward dan
param. Forward action ini digunakan untuk mentransfer kontrol dari sebuah halaman
JSP ke halaman lain pada server lokal. Saat proses berlangsung, baris-baris kode
sesudah forward action pada JSP asal tidak akan diproses lagi oleh JSP container.
Proses berpindah pada halaman tujuan. Cara penulisannya adalah dengan
menggunakan tag <jsp:forward page=”localURL” />. Forward action
biasanya digunakan bersama-saman dengan Param action. Perhatikan contoh berikut.
</FORM>
</body>
</html>
File testlogin.jsp
<html>
<head>
<title>Test Login </title>
</head>
<body>
<%
String nama = request.getParameter("nama");
String pass = request.getParameter("pass");
Secara umum tidak ada perangkat lunak yang seratus persen menjamin bebas
dari gangguan keamanan. Hal ini karena celah-celah keamanan selalu muncul di sana
sini yang memungkinkan penyerangan. Namun ada beberapa langkah yang dapat
digunakan untuk mengurangi resiko terserang gangguan, antara lain:
• Menjalankan server secara aman, misalnya dengan tidak memberikan
kesempatan pada pengguna untuk mengakses melalu shell, membuat fasilitas
perekam kesalahan (log) dari web server.
• Menerapkan permissions atau hak akses pada direktori dan file secara ketat
(buka Bab 4 untuk mempelajari lagi permissions). Permissions ini juga harus
diterapkan pada file-file konfigurasi web server.
14.5. RINGKASAN
• Pemrograman web merupakan usaha untuk membuat halaman web dengan
menggunakan bahasa pemrograman web (script).
• Ada dua model pemrograman web yaitu client-side dan server-side. Bahasa
pemrograman untuk membuat web dinamis juga terbagi menjadi dua yaitu
client-side script dan server-side script.
• Untuk membangun aplikasi web dinamis, diperlukan persiapan pada web
server, bahasa pemrograman web, lokasi penyimpanan web dinamis, dan
konfigurasi dari aplikasi.
• Java Server Pages (JSP) adalah bahasa scripting untuk web programming
yang bersifat server side dan berjalan di Platform Java.
• JSP menyediakan empat kategori tag, yaitu directive, elemen scripting,
komentar, dan action.
• Web termasuk layanan internet yang paling rentan terhadap ancaman dan
pelanggaran oleh karena itu upaya pencegahan dan pengamanan web adalah
sangat penting.
Balter, A. 2006. Sams Teach Yourself Microsoft® SQL Server™ 2005 Express in 24
Hours. Sams.
Bass, L., P. Clements, and R. Kazman. 2003. Software Architecture in Practice. 2nd
Edition. Addison-Wesley.
Cormen, T.H. 2001. Introduction to Algorithm: Second Edition. The MIT Press.
Deek, FP., J.A.M. McHugh, and O.M. Eljabiri. 2005. Strategic software engineering :
An Interdisciplinary Approach. Auerbach Publications.
den Haan, P., L. Lavandowska, S.N. Panduranga, and K. Perrumal. 2004. Beginning
JSP 2: From Novice to Professional. Apress.
Kaisler, S.H. 2005. Software Paradigm. John Wiley & Sons, Inc.
Kennedy, B. and C. Musciano. 2006. HTML & XHTML: The Definitive Guide, 6th
Edition. O'Reilly.
Lafore, R. 1998. Data Structures & Algorithm in Java. Waite Group Press.
Laurie, B and P. Laurie. 2001. Apache: The Definition Guide. 2nd Edition. O’Reilly
and Associates, Inc.
Meyer, B. 2000. Object Oriented Software Construction. 2nd Edition. ISE, Inc.
Musciano, C. and B. Kennedy. 2002. HTML and XHTML: The Definition Guide. 4th
Edition. O’Reilly and Associates, Inc.
Van Roy, P and S. Haridi. 2004. Concepts, Techniques, and Models of Computer
Programming. The MIT Press.
Authentication Control
Proses memeriksa keabsahan Aktivitas monitoring dan evaluasi
seseorang sebagai user (pengguna) terhadap feedback untuk menentukan
pada suatu system (misalnya pada apakah system telah bekerja dengan
DBMS) baik atau tidak
Identifier Loop
Nama dari suatu variable atau Proses pengulangan suatu perintah
konstanta
428 Lampiran
Masalah (problem)
Perbedaan antara situasi aktual dan Perangkat lunak
situasi yang diharapkan atau perbedaan Seluruh instruksi yang digunakan untuk
antara kondisi sekarang dengan target memproses informasi
atau tujuan yang diinginkan
Permissions
Model Proses untuk menentukan apa yang
Penyederhanaan dari suatu system bisa dilakukan seorang pengguna pada
atau Tiruan dari suatu sistem dengan suatu sistem
sedikit atau banyak penyederhanaan
Pointer
Variabel yang menyimpan alamat pada
Multi-tasking memori komputer
Kemampuan sistem operasi untuk
menjalankan beberapa tugas / aplikasi Polymorphism
secara bersamaan Kemampuan dari suatu obyek untuk
mempunyai lebih dari satu bentuk
Multi-user
Kemampuan system operasi untuk Programmer
dijalankan oleh pengguna yang berbeda Seseorang yang bekerja membuat
pada waktu bersamaan program komputer
Output Prosedur
Perpindahan elemen-elemen yang • Instruksi yang dibutuhkan oleh
dihasilkan dari proses perubahan ke pengguna dalam memproses
tujuan yang diinginkan informasi
• Sekumpulan perintah yang
Pemecahan masalah merupakan bagian dari program
Sebuah proses dimana suatu situasi yang lebih besar yang berfungsi
dianalisa kemudian solusi-solusi dibuat mengerjakan suatu tugas tertentu
bila ditemukan ada masalah dengan
cara pendefinisian, pengurangan atau Proses
penghilangan, atau pencegahan Perubahan atau transformasi input
masalah menjadi output
Sistem Trigger
Kumpulan dari elemen-elemen yang Tipe khusus dari stored procedure yang
saling berinteraksi untuk mencapai akan dieksekusi ketika suatu kejadian
tujuan tertentu muncul
430 Lampiran
Web dinamis
Halaman-halaman web yang isi dan
informasinya berubah-ubah sesuai
dengan permintaan pengguna
Web server
Perangkat lunak yang bertindak
melayani permintaan-permintaan client
terhadap halaman-halaman web
tertentu
Web statis
Halaman-halaman web yang isi dan
informasinya tidak berubah-ubah
Alamat Keterangan
http://www.apache.org Situs resmi web server Apache. Situs ini
menyediakan kode sumber Apache dan file-file
binary Apache yang siap diinstall di berbagai
platform sistem operasi. Selain itu juga
menyediakan dokumentasi Apache yang lengkap.
http://www.borland.com Situs resmi Borland. Borland merupakan
perusahaan perangkat lunak yang memproduksi
Borland Delphi, Borland JBuilder, Turbo Pascal,
Turbo Delphi, Borland C++ dan lain-lain.
http://www.debian.org Situs resmi distribusi linux Debian.
http://www.eclipse.org Situs resmi proyek eclipse, perangkat
pengembang terpadu yang mendukung banyak
bahasa pemrograman.
http://www.google.com Situs resmi search engine Google.
http://www.ilmukomputer.com Situs berbahasa Indonesia yang menyediakan
dokumen-dokumen untuk belajar berbagai sub
bidang dalam ilmu computer.
http://www.javasoft.com Situs resmi yang diluncurkan Sun Microsystem
dan berisi dokumentasi dan informasi online
tentang bahasa pemrograman Java.
http://www.kambing.vlsm.org Situs dengan server local di Indonesia. Situs ini
menyediakan file-file iso dari berbagai jenis
distribusi linux dan dapat didownload secara
bebas. Selain itu situs ini juga sebagai mirror dari
berbagai distribusi linux dan aplikasi yang
berjalan di linux.
http://www.linuxdoc.org Situs yang berisi dokumentasi bebas tentang
linux. Sumber informasi online yang sangat
bagus untuk mempelajari linux
434 Lampiran
IsNumeric(ekspresi)
Fungsi ini digunakan untuk menguji apakah suatu ekspresi menghasilkan nilai
numeric atau bukan. Nilai yang dikembalikan adalah Boolean.
IsEmpty(ekspresi)
Fungsi untuk memeriksa apakah suatu ekspresi telah berisi nilai atau tidak.
Nilai yang dikembalikan adalah Boolean..
IsNull(ekspresi)
Fungsi untuk memeriksa apakah suatu ekspresi mengandung data yang tidak
valid, biasanya digunakan untuk memeriksa isi field recordset.
IsArray(varname)
Fungsi untuk memeriksa apakah suatu variabel adalah suatu array.
IsDate(ekspresi)
Fungsi untuk memeriksa apakah suatu ekspresi dapat dikonversi ke date.
IsError(ekspresi)
Fungsi untuk memeriksa apakah suatu ekspresi adalah nilai error
IsObject(ekspresi)
Fungsi untuk memeriksa apakah suatu ekspresi mengacu pada suatu OLE
Automation object.
IsMissing(argname)
Fungsi untuk memeriksa apakah suatu argumen optional pada procedure ada
dilewatkan atau tidak
CBool(ekspresi)
Konversi suatu ekspresi ke Boolean
CByte(ekspresi)
Konversi ekspresi ke Byte
CCur(ekspresi)
Konversi suatu ekspresi ke Currency
CDate(date)
Konversi suatu ekspresi ke date
CDbl(ekspresi)
Konversi suatu ekspresi ke Double
CInt(ekspresi)
Konversi suatu ekspresi ke Integer