Proyek Membangun
Responsive Web Design
dengan Bootstrap 3 dan 4
Husein Alatas
CV. LOKOMEDIA
Proyek Membangun Responsive Web Design dengan
Bootstrap 3 dan 4
Perpustakaan Nasional : Katalog Dalam Terbitan (KDT)
Penulis : Husein Alatas
Proyek Membangun Responsive Web Design dengan Bootstrap 3 & 4
- Cet. I. - Yogyakarta : Penerbit Lokomedia, 2015
350 halaman; 14 x 21 cm
ISBN : 978-602-71905-6-6
Penerbit Lokomedia,
Cetakan Pertama : Oktober 2015
Editor : Lukmanul Hakim
Cover : Subkhan Anshori
Layout : Lukmanul Hakim
Diterbitkan pertama kali oleh :
CV. LOKOMEDIA
Jl. Jambon, Perum. Pesona Alam Hijau 2 Kav. B-4, Kricak
Yogyakarta 55242.
email : redaksi@bukulokomedia.com
website : www.bukulokomedia.com
Copyright © Lokomedia, 2015
Hak Cipta dilindungi oleh Undang-Undang
Dilarang memperbanyak, mencetak ataupun menerbitkan sebagian
maupun seluruh isi buku ini tanpa izin tertulis dari penerbit.
ii
UCAPAN TERIMAKASIH
Penulis sadar bahwa buku ini tidak
akan bisa terbit tanpa bantuan orangorang lain yang telah memberikan
waktu dan perhatian agar buku ini
sampai di hadapan pembaca.
Terimakasih kepada Tim Redaksi
dari Penerbit Lokomedia yang telah
memberikan semangat agar buku ini
bisa selesai pada waktunya.
Juga terimakasih kepada
Isteri tercinta, Eva Sulava
untuk setiap cangkir teh manisnya...
Dan juga,
Muhammad Ridho,
Fatimah Azzahra, dan
Ahmad Faqih
Sumber Inspirasi
dan Pendorong Semangat
iii
Halaman ini Sengaja Dikosongkan
www.bukulokomedia.com
iv
KATA PENGANTAR
Pada tahun 2008, Mary Meeker, seorang analis dari kantor Konsultan Kleiner
Perkins Cauield Byers (KPCB) membuat sebuah ramalan yang menghebohkan
di media masa, yaitu bahwa akses internet dari mobil devices (handphone, tablet,
phablet, dan sejenisnya) akan mengalahkan akses dari PC pada tahun 2014.
Sejak saat itu, berbagai riset meunjukkan akses internet menggunakan mobile
device semakin bertambah seperti riset yang dilakukan oleh GSMA Inteligent
membuktikan bahwa di tahun 2012 saja akses dari mobile device per populasi
penduduk di seluruh bagian dunia telah meninggalkan jauh persentase jumlah
akses internet via PC (https://gsmaintelligence.com/research/2014/02/gaugingthe-relationship-between-ixed-and-mobile-penetration/414/).
Semakin banyaknya mobile device yang digunakan ditambah dengan semakin
mudah, semakin cepat dan semakin murahnya akses internet telah membuat
perubahan dalam gaya hidup manusia. Sebuah riset di USA menunjukkan pada
tahun 2015 ini, akses dari mobile device ke digital media sudah mencapai 60%.
Meningkatknya akses internet dari mobile phone dan tablet ini, menimbulkan
budaya baru dan juga kebutuhan baru, antara lain adalah tersedianya website
yang tetap tampil elegan walau dibuka dengan mobile phone tersebut. Atau
dengan perkataan lain, tersedianya website yang responsive terhadap ukuran
layar mobile phone, bahkan Google sendiri menyatakan bahwa responsive web
merupakan cara terbaik untuk membuat website bagi mobil device (http://www.
developers.google.com/webmasters/smartphone-sites/).
Buku ini membahas tentang salah satu Framework yang paling populer untuk
pembuatan responsive website tersebut, yaitu Bootstrap. Dengan Bootstrap,
Anda akan mampu membangun responsive website dalam waktu yang singkat,
tidak perlu pusing kepala dengan segala macam teknik CSS untuk merespon
ukuran layar dari mobile device yang digunakan untuk mengakses web tersebut.
Akhir kata, semoga buku ini bermanfaat bagi kita semua.
Jakarta, Juli 2015
Penulis,
hhalat01@gmail.com
v
Halaman ini Sengaja Dikosongkan
www.bukulokomedia.com
vi
DAFTAR ISI
BAB 1. Mengenal Bootstrap ............................................................................1
1.1. Sejarah Bootstrap .........................................................................................2
1.2. Struktur Folder dan File Bootstrap ..............................................................3
1.3. HTML Template Dasar dengan Bootstrap ..................................................6
1.3.1. Template Dasar dengan HTML 5 .....................................................6
1.3.2. Template Dasar dengan Bootstrap....................................................8
1.4. Kustomisasi File CSS Bootstrap ...............................................................10
1.4.1. Membuat File CSS Sendiri Secara Terpisah ..................................10
1.4.2. Mengubah Pengaturan CSS di Website Bootstrap.........................11
BAB 2. Memahami Grid dan Layout ...........................................................13
2.1. Apa itu Grid System? .................................................................................14
2.2. Grid System pada Bootstrap ......................................................................16
2.2.1. Membuat Kontainer ........................................................................16
2.2.2. Membuat Baris ................................................................................17
2.2.3. Membuat Kolom .............................................................................17
2.2.4. Menerapkan Konsep Mobile First..................................................19
2.2.5. Menggeser Kolom ke Kanan (Offseting Column) ........................24
2.2.6. Percabangan (Nesting) Kolom .......................................................25
2.2.7. Mengubah Susunan Kolom (Column Ordering) ..........................26
2.2.8. Menggeser Kolom ke Baris Baru (Column Wrapping).................28
2.2.9. Responsive Column Resets ............................................................29
vii
BAB 3. Tipograi, Kode, Tabel dan Form ....................................................33
3.1. Tipograi (Seni Huruf) ...............................................................................34
3.1.1. Heading (Judul) ...............................................................................34
3.1.2. Body Copy ......................................................................................35
3.1.3. Lead Body Copy .............................................................................36
3.1.4. Inline Text Element .........................................................................36
3.1.5. Text Alignment (Meratakan Teks) ..................................................39
3.1.6. Singkatan .........................................................................................39
3.1.7. Mengubah Bentuk Teks ..................................................................40
3.1.8. Addresses (Menampilkan Alamat) .................................................41
3.1.9. Blockquotes (Kutipan Teks) ...........................................................41
3.1.10. List (Daftar)...................................................................................43
3.2. Beragam Tag Penampil Kode ....................................................................47
3.3. Table ...........................................................................................................50
3.3.1. Markup Table yang Didukung Bootstrap .......................................50
3.3.2. Style Dasar Markup Table ..............................................................51
3.3.3. Class Tambahan untuk Markup Table ............................................52
3.4. Form (Formulir) .........................................................................................54
3.4.1. Style Dasar Form ............................................................................54
3.4.2. Pilihan Layout untuk Form.............................................................55
3.4.3. Elemen Form Control yang Didukung Bootstrap..........................58
3.4.4. Form Control States ........................................................................63
3.4.5. Mengatur Ukuran Elemen Form ....................................................68
3.4.6. Help Text .........................................................................................72
BAB 4. Tombol, Image dan Class Bantu......................................................73
4.1. Tombol (Button) .........................................................................................74
viii
4.1.1. Tombol Standar (Default Button) ...................................................74
4.1.2. Pilihan Tampilan Tombol................................................................74
4.1.3. Ukuran Tombol ...............................................................................75
4.1.4. Status Tombol Aktif ........................................................................77
4.1.5. Tombol Tidak Aktif (Disabled).......................................................78
4.2. Gambar (Image) .........................................................................................79
4.2.1. Responsive Image ...........................................................................79
4.2.2. Bentuk Tampilan Gambar...............................................................81
4.3. Class Bantu (Helper Class) ........................................................................81
4.3.1. Contextual Colors ...........................................................................81
4.3.2. Contextual Backgrounds.................................................................83
4.3.3. Close Icon........................................................................................83
4.3.4. Caret Icon ........................................................................................85
4.3.5. Quick Floats ....................................................................................85
4.3.6. Center Content Blocks ....................................................................86
4.3.7. Clearix ............................................................................................86
4.3.8. Menampilkan dan Menyembunyikan Konten ...............................86
4.3.9. Screen Reader and Keyboard Navigation Content ........................87
4.3.10. Menyembunyikan Teks (Image Replacement) ............................88
4.4. Class Bantu Responsive (Responsive Utilities) ........................................88
4.4.1. Class-Class Tampilan ......................................................................88
4.4.2. Class-Class untuk Pencetakan (Print Classes) ...............................90
BAB 5. Icon, Dropdown dan Button Group ................................................93
5.1. Icon (Ikon) ..................................................................................................94
5.1.1. Koleksi Icon Glyphicons ................................................................94
5.1.2. Cara Menggunakan Icon Glyphicons.............................................94
ix
5.2. Dropdown Menu ........................................................................................96
5.2.1. Dropdown Menu Dasar ..................................................................96
5.2.2. Dropdown Menu Rata Kanan.........................................................98
5.2.3. Membuat Header Menu ..................................................................99
5.2.4. Pemisah Menu (Divider) ................................................................99
5.2.5. Menu Tidak Aktif (Disabled Menu) .............................................100
5.3. Button Group (Kelompok Tombol) .........................................................101
5.3.1. Single Button Group .....................................................................101
5.3.2. Multiple Button Group (Button Toolbar) .....................................102
5.3.3. Vertical Button Group ...................................................................102
5.3.4. Justiied Button Group ..................................................................103
5.3.5. Ukuran Tombol dalam Button Group ..........................................105
5.3.6. Percabangan (Nesting) Button Group ..........................................107
5.4. Menampilkan Dropdown Menu dengan Tombol ...................................108
5.4.1. Dropdown Menu dengan Tombol Tunggal ..................................108
5.4.2. Dropdown Menu dengan Tombol Terpisah .................................109
5.4.3. Ukuran Tombol Dropdown...........................................................110
5.4.4. Dropup Menus ..............................................................................110
5.5. Kelompok Input (Input Group) ...............................................................112
5.5.1. Menambahkan Simbol ke dalam Elemen Input...........................112
5.5.2. Menambahkan Elemen Radio dan Checkbox..............................113
5.5.3. Menambahkan Tombol .................................................................113
5.5.4. Ukuran Kelompok Input ...............................................................114
BAB 6. Komponen Navigasi ........................................................................117
6.1. Tab dan Pill ...............................................................................................118
6.1.1. Tab Dasar.......................................................................................118
x
6.1.2. Pill Dasar .......................................................................................119
6.1.3. Justiied Tab dan Pill .....................................................................119
6.1.4. Membuat Link Tampak Tidak Aktif (Disabled) ..........................120
6.1.5. Tab dan Pill dengan Dropdown Menu .........................................121
6.2. Navigation Bar (NavBar).........................................................................123
6.2.1. NavBar Dasar ................................................................................124
6.2.2. Elemen-Elemen didalam NavBar.................................................125
6.2.3. Memposisikan Elemen didalam NavBar .....................................130
6.2.4. Posisi NavBar................................................................................132
6.2.5. Inverted NavBar ............................................................................134
6.3. Breadcrumbs ............................................................................................135
6.4. Pagination .................................................................................................136
6.4.1. Pagination Standar ........................................................................136
6.4.2. Variasi pada Pagination Standar ...................................................137
6.5. Pager .........................................................................................................139
6.5.1. Pager Standar ................................................................................139
6.5.2. Posisi Elemen Pager......................................................................139
6.5.3. Elemen Pager Tidak Aktif (Disabled) ..........................................140
BAB 7. Komponen Pelengkap Bootstrap...................................................141
7.1. Labels .......................................................................................................142
7.2. Badges ......................................................................................................143
7.3. Jumbotron .................................................................................................144
7.4. Page Header (Judul Halaman) .................................................................145
7.5. Thumbnails ...............................................................................................145
7.6. Alerts.........................................................................................................147
7.6.1. Variasi Warna Alert .......................................................................148
xi
7.6.2. Alert dengan Link .........................................................................148
7.7. Progress Bar .............................................................................................149
7.7.1. Progress Bar Dasar........................................................................149
7.7.2. Progress Bar dengan Label ...........................................................150
7.7.3. Progress Bar Bergaris (Striped) ....................................................151
7.7.4. Progress Bar Bergerak (Animated) ..............................................152
7.7.5. Progress Bar Bertumpuk (Stacked) ..............................................152
7.7.6. Variasi Penggunaan Warna pada Progress Bar ............................153
7.8. Media Object ............................................................................................155
7.8.1. Media Object Standar ...................................................................156
7.8.2. Variasi Posisi Media......................................................................157
7.8.3. Media List .....................................................................................158
7.9. List Group ................................................................................................159
7.9.1. List Group Dasar ...........................................................................160
7.9.2. List Group dengan Badge .............................................................160
7.9.3. List Group Berisi Anchor Link.....................................................161
7.9.4. List Group Berisi Elemen Tombol ...............................................162
7.9.5. Membuat Elemen List Group Tidak Aktif (Disabled) .................163
7.9.6. Menambahkan Elemen Lainnya...................................................164
7.9.7. Variasi Warna Tampilan Elemen didalam List Group .................164
7.10. Panel .......................................................................................................166
7.10.1. Panel Dasar..................................................................................166
7.10.2. Panel dengan Header ..................................................................167
7.10.3. Panel dengan Footer....................................................................167
7.10.4. Panel Berisi Tabel .......................................................................168
7.10.5. Panel Berisi List Group ..............................................................169
7.10.6. Variasi Warna Panel ....................................................................170
xii
7.11. Responsive Embed .................................................................................171
7.12. Well .........................................................................................................172
BAB 8. Javascript Plugin .............................................................................175
8.1. Bootstrap Data API ..................................................................................176
8.2. Plugin Individual atau Kompilasi ............................................................177
8.3. Plugin Transition ......................................................................................177
8.4. Plugin Modal ............................................................................................178
8.4.1. Modal Statis ..................................................................................178
8.4.2. Modal Interaktif ............................................................................179
8.4.3. Ukuran Modal ...............................................................................181
8.4.4. Menggunakan Grid System didalam Modal ................................183
8.4.5. Cara Menggunakan Modal ...........................................................184
8.4.6. Modal Options...............................................................................184
8.4.7. Modal Methods .............................................................................185
8.4.8. Modal Events ................................................................................186
8.5. Plugin Dropdown .....................................................................................187
8.5.1. Cara Menggunakan Dropdown ....................................................187
8.5.2. Dropdown Methods ......................................................................188
8.5.3. Dropdown Events .........................................................................188
8.6. Plugin Scrollspy .......................................................................................189
8.6.1. Cara Menggunakan Scrollspy ......................................................190
8.6.2. Scrollspy Method ..........................................................................191
8.6.3. Scrollspy Option ...........................................................................191
8.6.4. Scrollspy Event .............................................................................192
8.7. Plugin Tab.................................................................................................192
8.7.1. Cara Menggunakan Tab ................................................................193
xiii
8.7.2. Efek Tab Memudar (Fade)............................................................194
8.7.3. Tab Methods ..................................................................................194
8.7.4. Tab Events .....................................................................................194
8.8. Plugin Tooltip ...........................................................................................195
8.8.1. Cara Menggunakan Tooltip ..........................................................196
8.8.2. Tooltip Options..............................................................................196
8.8.3. Tooltip Methods ............................................................................198
8.8.4. Tooltip Events ...............................................................................198
8.9. Plugin Popover .........................................................................................199
8.9.1. Cara Menggunakan Popover ........................................................199
8.9.2. Efek Popover Menghilang (Dismissable Popover) .....................200
8.9.3. Popover Options............................................................................200
8.9.4. Popover Methods ..........................................................................202
8.9.5. Popover Events .............................................................................202
8.10. Plugin Alert ............................................................................................203
8.10.1. Cara Menggunakan Alert............................................................204
8.10.2. Alert Methods..............................................................................204
8.10.3. Alert Event ..................................................................................204
8.11. Plugin Button..........................................................................................205
8.11.1. Loading State Button ..................................................................205
8.11.2. Single Toggle Button ..................................................................206
8.11.3. Checkbox Style Button (Tombol Bergaya Checkbox) ..............206
8.11.4. Radio Style Button (Tombol Bergaya Radio) ............................207
8.11.5. Cara Menggunakan Button .........................................................208
8.11.6. Button Methods ...........................................................................208
8.12. Plugin Collapse ......................................................................................209
8.12.1. Beberapa Contoh Penggunaan Collapse ....................................209
xiv
8.12.2. Cara Menggunakan Collapse .....................................................211
8.12.3. Collapse Options .........................................................................212
8.12.4. Collapse Methods .......................................................................213
8.13. Plugin Carousel ......................................................................................214
8.13.1. Cara Menggunakan Carousel .....................................................215
8.13.2. Carousel Options.........................................................................217
8.13.3. Carousel Methods .......................................................................217
8.13.4. Carousel Events ..........................................................................218
8.14. Plugin Afix ............................................................................................218
8.14.1. Cara Menggunakan Afix ...........................................................220
8.14.2. Afix Options ...............................................................................220
8.14.3. Afix Methods .............................................................................221
8.14.4. Afix Events.................................................................................221
BAB 9. Teknik Merancang Template Bootstrap .......................................223
9.1. Template Dasar Bootstrap........................................................................224
9.2. Membuat Layout Halaman ......................................................................226
9.2.1. Unsur-Unsur Pembentuk Halaman Web ......................................226
9.2.2. Elemen-Elemen Baru HTML5 untuk Layout Halaman ..............228
9.2.3. Variasi Layout Halaman dengan Elemen HTML5 ......................229
9.2.4. Solusi Problem pada Browser Lama ............................................232
9.2.4.1. Menggunakan html5shiv.js ..............................................233
9.2.4.2. Menggunakan modernizr.................................................234
9.3. Menerapkan Grid System Bootstrap .......................................................234
9.3.1. Container Fluid atau Container Saja?...........................................237
9.3.2. Menambahkan Baris dan Kolom..................................................242
9.4. Merancang Web Template Bootstrap ......................................................246
xv
9.4.1. Menyiapkan Elemen-Elemen HTML5 ........................................246
9.4.2. Menyisipkan Grid System Bootstrap ...........................................249
9.4.3. Menyisipkan Komponen Bootstrap dan Teks ..............................252
BAB 10. Proyek Point Of Sales Responsive ...............................................255
10.1. Informasi Umum Aplikasi POS.............................................................256
10.2. Struktur Folder dan File Aplikasi POS..................................................257
10.3. Layout Halaman Aplikasi POS .............................................................259
10.3.1. Halaman Login............................................................................259
10.3.2. Halaman Utama ..........................................................................260
10.3.3. Halaman Data Master .................................................................264
10.3.3.1. Layout dan Komponen Halaman Data Master .............264
10.3.3.2. Penerapan Column Ordering Halaman Data Master ....269
10.3.4. Halaman Pembelian Barang .......................................................271
10.3.4.1. File-File Pembelian Barang ...........................................271
10.3.4.2. Layout dan Komponen Halaman Pembelian Barang ...272
10.3.5. Halaman Penjualan Barang (Kasir)............................................274
10.3.5.1. File-File Penjualan Barang ............................................274
10.3.5.2. Layout dan Komponen Halaman Penjualan Barang ....275
10.3.6. Halaman Laporan........................................................................276
10.3.4.1. File-File Laporan ...........................................................276
10.3.4.2. Layout dan Komponen Halaman Laporan....................277
BAB 11. Bonus: Bootstrap Versi 4 ..............................................................279
11.1. Bootstrap 3.3.5 Vs Bootstrap 4 ..............................................................280
11.1.1. Dukungan Terhadap Browser .....................................................280
11.1.2. Perubahan Global ........................................................................281
xvi
11.1.3. Perubahan pada Tipograi ...........................................................281
11.1.4. Perubahan pada Elemen Table....................................................281
11.1.5. Perubahan pada Elemen Form....................................................282
11.1.6. Perubahan pada Komponen CSS Non-Javascript......................282
11.1.7. Perubahan pada Komponen Javascript Plugin ...........................283
11.2. Perubahan pada Template Dasar............................................................283
11.3. Perubahan pada Satuan Ukuran Px ke Rem dan Em ............................284
11.4. Grid System pada Bootstrap 4 ...............................................................286
11.5. Class Bantu Responsive (Responsive Utilities) ....................................286
11.6. Styling pada Elemen-Elemen HTML5 .................................................287
11.6.1. Styling Elemen HTML5 yang dihapus Bootstrap 4 ..................287
11.6.2. Styling Elemen HTML5 di Bootstrap 3.3.5 yang Masih Digunakan
di Bootstrap 4 .............................................................................287
11.6.3. Styling Elemen HTML5 yang Berubah di Bootstrap 4 .............289
11.6.3.1. Elemen List ....................................................................280
11.6.3.2. Elemen Table ..................................................................290
11.6.4. Elemen Form ..............................................................................295
11.6.4.1. Klasiikasi Elemen Pembentuk Form............................296
11.6.4.2. Layout (Tata Letak) Elemen Form ................................297
11.6.4.3. Menyembunyikan Label ................................................300
11.6.4.4. Variasi Tampilan Elemen Checkbox dan Radio............301
11.6.4.5. Menon-Aktifkan (Disabled) Elemen form-control .......304
11.6.4.6. Readonly Input ...............................................................305
11.6.4.7. Mengatur Ukuran Elemen Form ...................................306
11.6.4.8. Status Hasil Validasi.......................................................308
11.6.4.9. Custom Form..................................................................309
11.6.5. Styling Elemen HTML5 yang Baru di Bootstrap 4 ...................313
xvii
BAB 12. Bonus: Komponen Bootstrap 4 ...................................................315
12.1. Komponen Bootstrap 3.3.5 yang Dihapus ............................................316
12.2. Komponen Bootstrap 3.3.5 yang Tidak Berubah .................................316
12.3. Komponen Bootstrap 3.3.5 yang Berubah ............................................318
12.3.1. Dropdown Menu .........................................................................318
12.3.2. Komponen Navigasi ...................................................................319
12.3.3. Pewarnaan Navigation Bar (NavBar) ........................................325
12.3.4. Komponen Pager.........................................................................327
12.3.5. Komponen Label.........................................................................328
12.3.6. Komponen Jumbotron ................................................................328
12.3.7. Progress Bar ................................................................................329
12.4. Komponen Card .....................................................................................332
12.4.1. Markup Dasar Card.....................................................................332
12.4.2. Header dan Footer Card..............................................................333
12.4.3. Berbagai Ragam Isi Komponen Card ........................................335
12.4.4. Mengatur Lebar Komponen Card ..............................................339
12.4.5. Meratakan Teks pada Komponen Card ......................................342
12.4.6. Image Caps..................................................................................343
12.4.7. Image Overlays ...........................................................................343
12.4.8. Inverted Text ...............................................................................345
12.4.9. Variasi Warna Latar Belakang ....................................................345
12.4.10.Card Groups ...............................................................................346
12.4.11. Card Deck..................................................................................347
12.4.12. Card Column .............................................................................348
Daftar Pustaka ...............................................................................................351
Lampiran........................................................................................................355
xviii
BAB I
Mengenal Bootstrap
BAB 1
Mengenal Bootstrap
Bootstrap adalah framework ataupun tools untuk membuat aplikasi web
ataupun website yang bersifat responsive secara cepat, mudah dan gratis.
Kata ‘responsive’ disini berarti bahwa tampilan web (lebar dan susunan isinya)
dapat berubah secara otomatis sesuai dengan lebar layar yang menampilkannya.
Bootstrap terdiri dari CSS dan HTML untuk menghasilkan Grid, Layout,
Tifograi, Tabel, Form, Navigasi, dan lain-lain. Di dalam Bootstrap juga sudah
terdapat Javascript (jQuery Plugins) untuk menghasilkan komponen UI yang
cantik seperti Transitions, Modal, DropDown, ScrollSpy, ToolTip, PopOver, Tab,
Alert, Button, Carousel, dan lain-lain.
Dengan Bootstrap, kita dapat membuat responsive website dengan cepat dan
mudah dan dapat berjalan sempurna pada browser-browser modern seperti
Chrome, Firefox, Safari, Opera dan Internet Explorer.
1.1 Sejarah Bootstrap
Pada tahun 2011, Bootstrap diciptakan oleh dua orang Programmer di Twitter,
yaitu Mark Otto dan Jacob Thornton. Pada saat itu, para programmer di
Twitter menggunakan berbagai macam tool dan library yang mereka kenal dan
senangi untuk melakukan pekerjaan mereka, sehingga tidak ada standarisasi
dan akibatnya sulit untuk di maintain, kemudian Mark Otto dan Jacob Thornton
tergerak untuk menciptakan satu tool ataupun framework yang dapat digunakan
bersama di lingkungan internal Twitter.
Oleh karena faktor historis tersebut, walaupun nama resminya hanyalah Bootstrap,
namun terkenal di kalangan Developer sebagai Twitter Bootstrap.
Sejak diluncurkan pada bulan Agustus 2011, Bootstrap telah berevolusi dari
sebuah project yang hanya berbasis CSS menjadi sebuah tool ataupun framework
yang lebih lengkap yang juga berisi Javascript Plugin, Icon, Forms dan Button.
Pada Januari 2012, Bootstrap merelease versi 2.0 yang didalamnya sudah
memasukkan itur responsive layout.
Pada bulan Agustus 2014, Bootstrap mengeluarkan versi 3.0 yang didalamnya
sudah mengakomodasi konsep ‘mobile irst’, artinya didalam pembuatan desain
2
Responsive Web Design dengan Bootstrap 3 & 4
web maka kita merancang untuk layar yang kecil dahulu (handphone), kemudian
secara bertahap menambahkan itur-itur untuk layar yang lebih besar.
1.2 Struktur Folder dan File Bootstrap
Bootsrap dapat didownload secara gratis dari website resminya di http://
getbootstrap.com/ atau https://github.com/twbs/bootstrap, atau dapat Anda
temukan di CD terlampir. Saat buku ini ditulis, versi terbarunya adalah Bootstrap
3.3.5. Lihat gambar 1.1.
Gambar 1.1 Website resmi Bootstrap
Klik tombol Download Bootstrap, maka akan tampil halaman download
bootstrap dengan tiga pilihan seperti pada gambar 1.2.
Untuk memudahkan pembahasan di dalam buku ini, maka kita klik saja tombol
pilihan yang pertama (Download Bootstrap), maka kita akan memperolah ile
bootstrap-3.3.5-dist.zip dengan ukuran 260KB.
Simpan ile tersebutdi harddisk, lalu unzip/extract ile tersebut, maka Anda akan
mendapatkan struktur folder dan ile-ile didalamnya. Lihat gambar 1.3.
Bab I. Mengenal Bootstrap
3
Gambar 1.2 Pilihan download Bootstrap
Gambar 1.3 Struktur folder dan ile Bootstrap versi 3.3.5
4
Responsive Web Design dengan Bootstrap 3 & 4
Pada folder css terdapat enam ile, yaitu:
bootstrap.css, ile css yang biasanya digunakan untuk development, karena
disusun sedemikian rupa agar mudah dibaca dan terdapat banyak comment.
bootstrap.css.map, ile css yang dihasilkan oleh CSS Preprocessor, seperti
Sass, Less, atau Stylus. File ini dapat kita edit menggunakan developer tool
(debuggers) yang tersedia di browser Firefox dan Chrome. Jika kita tidak
menggunakan CSS Preprocessor dalam membuat web dengan bootstrap,
maka kita dapat menghapus ile ini.
bootstrap.min.css, ile css yang biasanya digunakan dalam production,
karena sudah di kompresi agar ukuran ilenya lebih kecil.
bootstrap-theme.css, ile css tambahan terhadap ile bootstrap.css, fungsi
ile ini memperkaya dan memperindah tampilan beberapa komponen
bootstrap seperti button, thumbnail, dropdown, navbar, dan sebagainya.
Karena sifatnya tambahan, ile ini boleh saja tidak kita gunakan.
bootstrap-theme.css.map, ile ini sama seperti bootstrap.css.map adalah ile
css yang dihasilkan oleh CSS Preprocessor. Fungsinya agar dapat di edit
menggunakan development tool yang ada pada browser Firefox dan Chrome.
bootstrap-theme.min.css, versi mini (compressed) dari ile bootstraptheme.css untuk digunakan pada saat production.
Pada folder fonts terdiri dari lima ile, biasa disebut dengan glyphicons yang
berisi 263 icon. Semua ile tersebut isinya sama saja, hanya formatnya saja
yang berbeda, misalnya ile dengan ekstension *.eot untuk menampilkan font
di browser IE (Microsoft), *.svg untuk menampilkan font di browser Chrome,
Safari dan Opera, dan *.ttf bisa dibuka di semua browser.
Untuk lebih memahami tentang format-format font tersebut, dapat dilihat pada
situs-situs yang membahas tentang web font.
Pada folder js (javascript) terdiri dari tiga ile, yaitu bootstrap.js dan versi mininya yaitu bootstrap.min.js dan ile npm.js.
File bootstrap.js berisi fungsi-fungsi javascript yang langsung dapat digunakan
(plug-in) untuk membuat tampilan komponen bootstrap lebih interaktif.
Adapun ile npm.js hanya digunakan apabila kita menggunakan bootstrap
bersama dengan node.js.
Bab I. Mengenal Bootstrap
5
1.3 HTML Template Dasar dengan Bootstrap
1.3.1 Template Dasar dengan HTML5
Bootstrap sangat terkait erat dengan HTML5 dalam membuat sebuah layout
halaman web. Oleh karena itu, semakin baik pengetahuan kita mengenai
HTML5, maka semakin mudah kita mengimplementasikan Bootstrap.
Pada umumnya, sebuah html template dasar akan tampak seperti berikut ini
apabila menggunakan HTML5:
Skrip 1_1_template_dasar_HTML5.html
<!DOCTYPE html>
<html lang=”en”>
<head>
<meta charset=”utf-8”>
<meta http-equiv=”X-UA-Compatible” content=”IE=edge”>
<meta name=”viewport” content=”width=device-width,
initial-scale=1”>
<!-- The above 3 meta tags *must* come irst in the head;
any other head content must come *after* these tags -->
<title>Template Dasar HTML5</title>
<!-- HTML5 shim and Respond.js for IE8 support of HTML5
elements and media queries -->
<!-- WARNING: Respond.js doesn’t work if you view the page
via ile:// -->
<!--[if lt IE 9]>
<script src=”https://oss.maxcdn.com/html5shiv/3.7.2/
html5shiv.min.js” ></script>
<script src=”https://oss.maxcdn.com/respond/1.4.2/
respond.min.js”></script>
<![endif]-->
</head>
<body>
<h1>Hello, world!</h1>
</body>
</html>
Penjelasan Skrip:
6
<htmllang=”en”>,
menunjukan bahwa Bahasa yang digunakan oleh situs ini
adalah Bahasa Inggris, jika kita menggunakan Bahasa Indonesia maka kita
Responsive Web Design dengan Bootstrap 3 & 4
ganti lang attribute tersebut dengan id atau in.
<metacharset=”utf-8”>,
<metahttp-equiv=”X-UA-Compatible”content=”IE=edge”>,
<metaname=”viewport” content=”width=device-width, initial-scale=1”>,
menunjukkan character encoding yang digunakan,
dalam hal ini adalah Unicode utf-8.
tag ini digunakan
untuk memaksa browser Internet Explorer (IE) menampilkan dokumen html
menggunakan versi terkini (edge) dari rendering engine-nya.
viewport adalah bagian dari sebuah alat (notebook, desktop pc, handphone,
dan sebagainya) yang dapat menampilkan halaman web (window).
Meta tag viewport ini umumnya digunakan untuk mengatur tampilan
browser pada mobile device dan juga tablet. Pada tag di atas, pernyataan
content=”width=device-width” untuk mengatur lebar tampilan awal browser
disesuaikan dengan lebar layar mobile device, sedangkan pernyataan
“initial-scale=1” untuk mengatur level zoom dari tampilan pada saat
ditampilkan, semakin besar nilai initial-scale, semakin besar tampilannya
(zoom in).
Untuk lebih jelasnya mengenai pengaturan pada viewport ini bisa di lihat
pada url berikut:
http://developer.apple.com/library/safari/#documentation/appleapplications/
reference/SafariHTMLRef/Articles/MetaTags.html
http://dev.opera.com/articles/view/an-introduction-to-meta-viewport-andviewport/
html5shiv.min.js, saat ini semua browser utama dengan versi terkini telah
mendukung elemen-elemen baru di HTML5, namun demikian masih terdapat
banyak user yang masih menggunakan browser versi lama seperti IE6, IE7
dan IE8 yang belum mendukung elemen-elemen baru di HTML5, sehingga
apabila halaman web kita yang dibuat menggunakan HMTL5 ditampilkan
di browser versi lama tersebut dapat menghasilkan penampilan yang tidak
bagus.
html5shiv.min.js adalah ile yang berisi skrip singkat untuk mengatasi
problem tersebut. File ini bisa di link secara online seperti tertera di atas, atau
bisa kita download agar bisa digunakan secara ofline.
respond.min.js, ile ini digunakan untuk mengaktifkan itur responsive pada
browser yang tidak mendukung itur media queries dalam CSS, khususnya
browser IE versi 8 dan sebelumnya.
Bab I. Mengenal Bootstrap
7
1.3.2 Template Dasar dengan Bootstrap
Untuk menambahkan Bootstrap versi 3.3.5 sangat mudah, kita tinggal
menambahkan ile bootstrap.min.css, ile jquery dan bootstrap.min.js seperti
berikut, perhatikan bagian yang ditebalkan:
Skrip 1_2_template_dasar_bootstrap.html
<!DOCTYPE html>
<html lang=”en”>
<head>
<meta charset=”utf-8”>
<meta http-equiv=”X-UA-Compatible” content=”IE=edge”>
<meta name=”viewport” content=”width=device-width,
initial-scale=1”>
<!-- The above 3 meta tags *must* come irst in the head; any
other head content must come *after* these tags -->
<title>Bootstrap Template</title>
<!-- Bootstrap & Bootstrap Theme-->
<link href=”css/bootstrap.min.css” rel=”stylesheet”>
<link href=”css/bootstrap-theme.min.css” rel=”stylesheet”>
<!-- HTML5 shim and Respond.js for IE8 support of HTML5
elements and media queries -->
<!-- WARNING: Respond.js doesn’t work if you view the page
via ile:// -->
<!--[if lt IE 9]>
<script src=”https://oss.maxcdn.com/html5shiv/3.7.2/
html5shiv.min.js”></script>
<script src=”https://oss.maxcdn.com/respond/1.4.2/
respond.min.js”></script>
<![endif]-->
</head>
<body>
<h1>Hello, world!</h1>
<!-- jQuery (necessary for Bootstrap’s JavaScript plugins) -->
<script src=”js/jquery.min.js”></script>
<!-- Include all compiled plugins (below),
or include individual iles as needed -->
<script src=”js/bootstrap.min.js”></script>
</body>
</html>
Apabila skripnya dijalankan di browser, maka akan tampil seperti gambar 1.4.
8
Responsive Web Design dengan Bootstrap 3 & 4
Gambar 1.4. Tampilan Template Dasar di Browser
Jadi, ada tiga hal utama untuk mengubah template dasar HTML5 menjadi
template dasar Bootstrap, yaitu:
1.
Tambahkan link ke ile bootstrap dan ile bootstrap theme:
<link href=”css/bootstrap.min.css” rel=”stylesheet”>
<link href=”css/bootstrap-theme.min.css” rel=”stylesheet”>
Elemen html ini kita gunakan untuk me-link ke ile css bootstrap. Dan kita
letakkan diatas baris atau elemen yang memanggil skrip dalam ile html5shiv.
min.js dan respond.min.js.
Sedangkan link ke ile css bootstrap theme merupakan option (tambahan),
jadi boleh digunakan atau tidak.
2.
Tambahkan link ke ile jquery:
<script src=”https://ajax.googleapis.com/ajax/libs/
jquery/1.11.2/jquery.min.js”></script>
Plugin Javascript di Bootstrap membutuhkan jQuery, maka link ke jQuery
merupakan standar pada html template pada Bootstrap.
Bab I. Mengenal Bootstrap
9
3.
Tambahkan link ke ile javascript bootstrap:
<script src=”js/bootstrap.min.js”></script>
Link ke plugin javascript bootstrap diletakkan paling bawah dari skrip,
hal ini untuk mempercepat browser dalam me-render halaman web sesuai
rekomendasi dari http://developer.yahoo.com/performance/rules.html.
1.4 Kustomisasi File CSS Bootstrap
Bisa saja karena sesuatu hal pengaturan standar yang sudah dilakukan oleh
Bootstrap kurang sesuai dengan selera kita. Misalnya pewarnaan standar oleh
Bootstrap pada navbar yang hanya ada dua, yaitu abu-abu dan hitam tidak cocok
dengan situs yang sedang kita buat, sehingga harus kita ubah pewarnaannya, juga
berbagai hal lainnya seperti warna background pada elemen body, padding pada
elemen tabel, warna huruf pada komponen button dan lainnya.
Ada beberapa cara untuk membatalkan pengaturan CSS dari Bootstrap dan
membuat pengaturan kita sendiri, caranya simak pembahasan berikut:
1.4.1 Membuat File CSS Sendiri Secara Terpisah
Buat ile CSS sendiri, misalnya style.css yang kita isi dengan skrip pengaturan
pada elemen ataupun komponen yang kita ingin ubah tampilannya, misalnya:
Skrip style.css
.navbar {
min-height: 80px;
border: 1px solid transparent;
border-radius: 0;
}
Kemudian simpan/letakkan ile style.css di folder bootstrap/css/. Selanjutnya,
pada halaman utama, kita buat link ke ile tersebut dibawah baris link ke ile
css Bootstrap agar tidak mengacaukan fungsi responsive Bootstrap. Contohnya
seperti gambar 1.5.
10
Responsive Web Design dengan Bootstrap 3 & 4
Gambar 1.5 Menempatkan link ke ile CSS sendiri di bawah link ke CSS Bootstrap
1.4.2 Mengubah Pengaturan CSS di Website Bootstrap
Cara yang kedua adalah dengan membuat perubahan pada ile CSS langsung di di
website Bootstrap, caranya:
1.
Buka website resmi Bootstrap di www.getbootsrap.com.
2.
Pilih menu Customize.
3.
Kita akan diberi banyak pilihan kustomisasi, pilih yang kita mengerti saja,
misalnya kita ingin mengubah tinggi navbar, maka cari pilihan kustomisasi
mengenai navbar. Lihat gambar 1.6.
Gambar 1.6 Halaman kustomisasi navbar di situs Bootstrap
Bab I. Mengenal Bootstrap
11
4.
Pada kolom @navbar-height, ubah tingginya dari 50px menjadi 100px.
5.
Kemudian scroll ke bawah halaman, lalu klik tombol Compile and
Download, maka kita akan memperoleh satu set ile-ile Bootstrap yang
sudah di kustomisasi sesuai keinginan kita.
12
Responsive Web Design dengan Bootstrap 3 & 4