LAPORAN PENGALAMAN LAPANGAN INDUSTRI
IMPLEMENTASI YII2 F RAMEWORK DALAM PEMBUATAN BACKEND
WEBSITE INFORMASI BISNIS
Oleh :
FANNY OKTAVIA 1306572/2013
PROGRAM STUDI S1 PENDIDIKAN TEKNIK INFORMATIKA JURUSAN TEKNIK ELEKTRONIKA
FAKULTAS TEKNIK
i
Halaman Pengesahan Perusahaan
Laporan Ini Disampaikan Untuk Memenuhi Sebagian dari Persyaratan Penyelesaian Pengalaman Lapangan Industri FT-UNP Padang
Semester Juli – Desember 2016
Oleh Fanny Oktavia Nim: 1306572. 2013 Jurusan Teknik Elektronika
Program Studi Pendidikan Teknik Informatika dan Komputer
Diperiksa dan disahkan oleh: Supervisor
Muhammad Aser, S.Pd
Menyetujui Direktur
ii
Lembaran Pengesahan Fakultas
Laporan Ini Disampaikan Untuk Memenuhi Sebagian dari Persyaratan Penyelesaian Pengalaman Lapangan Industri FT-UNP Padang
Semester Juli – Desember 2016
Oleh Fanny Oktavia Nim: 1306572. 2013 Jurusan Teknik Elektronika
Program Studi Pendidikan Teknik Informatika dan Komputer
Diperiksa dan disahkan oleh : Dosen Pembimbing
Yeka Hendriyani , S.Kom, M.Kom Nip: 198405202010122003
a.n. Dekan FT UNP Kepala Unit Hubungan Industri
iii
KATA PENGANTAR
Puji dan syukur penulis ucapkan atas kehadirat Allah SWT karena berkat rahmat, hidayah, dan karunia-Nya,penulis dapat menyelesaikan laporan Pengalaman Lapangan Industri (PLI) dengan baik dan benar. Shalawat beriringan salam untuk Nabi Muhammad SAW yang telah membawa umat manusia dari kejahiliyahan ke peradaban yang penuh ilmu pengatahuan.
Laporan Pengalaman Lapangan Industri ini disusun berdasarkan apa yang telah dikerjakan di PT Aka Solusi Teknologi, dimulai pada tanggal 13 Juni 2016 s/d 13 Agustus 2016. Laporan ini disusun untuk memenuhi syarat kelulusan mata kuliah Pengalaman Lapangan Industri pada jurusan Pendidikan teknik Informatika dan Komputer. Judul laporan ini yaitu “Implementasi YII2 Framework dalam
Pembuatan Backend Website Informasi Bisnis”.
Dengan segala kerendahan hati penulis mengucapkan terima kasih yang sebesar-besarnya kepada:
1. Bapak Drs. Syahril, Ph.D selaku Dekan Fakultas Teknik Universitas Negeri Padang.
2. Bapak Drs. Hanesman, M.M selaku Ketua Jurusan Teknik Elektronika Universitas Negeri Padang.
iv
4. Bapak Thamrin selaku koordinator PLI Jurusan Elektronika FT UNP. 5. Ibu Yeka Hendriyani, S.Kom, M.Kom selaku dosen pembimbing PLI
6. Bapak Geovanne Farell ,S.Pd, M.Pd.T selaku direktur dan Bapak Muhammad Aser,S.Pd sebagai Supervisor di PT Aka Solusi Teknologi.
7. Karyawan PT Aka Solusi Teknologi
8. Orang tua dan seluruh keluarga yang selalu ada di setiap waktu dam selalu memberikan dukungan yang tak ternilai harganya
9. Teman-teman seperjuangan yang telah membantu dalam proses pelaksanaan PLI dan penyusunan laporan PLI.
Laporan ini disusun oleh penulis dengan segala upaya agar menghasilkan laporan yang baik. Kekhilafan dan kesalahan merupakan bagian dari proses kehidupan, jika terdapat kekhilafan dan kesalahan dalam penulisan Laporan Pengalaman Industri ini penulis mengharapkan kritikan dan saran pembaca demu bahan pembelajaran bagi penulis kedepannya.
Penulis berharap laporan ini bermanfaat bagi penulis dan pembaca, serta menjadi semangat dan motivasi bagi rekan-rekan yang akan melaksanakan PLI.
Padang, Agustus 2016
v
BAB I PENDAHULUAN ... 1
A.Latar Belakang Pelaksanaan PLI ... 1
B.Deskripsi Tentang Perusahaan / Instansi PLI ... 3
C.Perencanaan Kegiatan PLI ... 8
D.Pelaksanaan Kegiatan PLI ... 8
BAB II IMPLEMENTASI YII2 FRAMEWORK DALAM PEMBUATAN WEBSITE INFORMASI BISNIS ... 10
A.Teori Singkat ... 10
a. Framework ... 10
b. YII2 ... 12
c. MySQL ... 16
d. PHP ... 18
e. Back End ... 20
B.Proses Pengerjaan ... 20
a. Proses Penginstalan ... 20
b. Directory Pada YII2 Framework ... 23
c. Pembuatan Database ... 24
d. Menghubungkan Database pada YII2 ... 27
e. Generating Code dengan Gii ... 28
vi
g. Implementasi YII2 Framework pada Backend ... 34
BAB III PENUTUP ... 59
A.Kesimpulan ... 59
B.Saran ... 61
vii
DAFTAR GAMBAR
Gambar 1. Gambar Struktur Organisasi ... 6
Gambar 2. Skema MVC (Model, View, Controller) ... 11
Gambar 3. Inisialisasi project ... 22
Gambar 4. YII2 Berhasil di install ... 22
Gambar 5. Struktur Database Bisnis ... 24
Gambar 6. Database ... 26
Gambar 7. Halaman Yii Code Generator... 28
Gambar 8. Model Generator pada posting ... 29
Gambar 9. Model Generator yang sukses digenerate ... 29
Gambar 10. CRUD generator untuk Posting ... 30
Gambar 11. CRUD Generator berhasil ... 31
Gambar 12. Melakukan generate pada Controller Generator ... 31
Gambar 13. Controller Generate berhasil ... 32
Gambar 14. Submenu ... 32
Gambar 15. memasukkan template adminLTE pada main-local.php ... 33
Gambar 16. tampilan AdminLTE pertama kali install ... 33
Gambar 17. Merubah Warna AdminLTE ... 34
Gambar 18. tampilan AdminLTE dengan warna yang berbeda ... 34
Gambar 19. Menu Login saat pertama kali menginstall YII2 ... 35
Gambar 20. Menu Login setelah diterapkan tema adminLTE ... 35
Gambar 21. Menu Home pada Halaman Admin ... 36
Gambar 22. Posting ... 36
Gambar 23. Create Posting ... 37
Gambar 24. Kolom isi yang Menggunakan Widget TinyMce ... 38
Gambar 25. File Input dalam mnegupload file ... 40
Gambar 26. Dropdown list pada kategori ... 40
Gambar 27. View Posting ... 41
Gambar 28. Slider ... 44
Gambar 29. Create Slider ... 45
Gambar 30. View Slider ... 47
viii
Gambar 32. View Kategori ... 53
Gambar 33. Kontak ... 54
Gambar 34. Detail kontak ... 56
ix
DAFTAR TABEL
x
DAFTAR LAMPIRAN
Lampiran 1. Surat Permohonan Pengalaman Lapangan Industri Lampiran 2. Surat Balasan Perusahaan
Lampiran 3. Daftar Hadir PLI
Lampiran 4. Catatan Konsultasi Laporan dengan Supervisor
1
BAB I PENDAHULUAN
A. Latar Belakang Pelaksanaan PLI
Fakultas Teknik Universitas Negeri Padang sebagai salah satu lembaga pendidikan yang berupaya mengembangkan dan meningkatkan Sumber Daya Manusia (SDM), yakni menjadikan manusia seutuhnya yang memiliki wawasan ilmu pengetahuan dan teknologi (IPTEK) dan bertaqwa kepada Tuhan Yang Maha Esa.
Fakultas Teknik Universitas Negeri Padang (FT-UNP) juga berupaya melaksanakan program-program pendidikan yang betujuan menghasilkan lulusan yang tidak saja memahami ilmu pengetahuan dan teknologi akan tetapi juga mampu mempraktekkan serta mengembangkannya baik dalam pendidikan maupun didalam dunia industri.
Upaya yang dilakukan Fakultas Teknik Negeri Padang adalah mengadakan suatu program pengalaman yaitu dengan mengirim Mahasiswa-mahasiswanya keperusahaan yang relevan dengan jurusan masing-masing yang dinamakan dengan Pengalaman Lapangan Industri (PLI) yang merupakan salah satu syarat bagi mahasiswa Fakultas Teknik untuk menyelesaikan Pendidikan Diploma 3 (D3) dan Strara 1 (S1).
2
kuliah Pengalaman Lapangan Industri dengan nomor seksi 201610760063 dan 3 sks, PLI ini dilaksanakan selama 2 bulan dari tanggal 13 Juni 2016 – 13 Agustus 2016. Selain merupakan salah satu syarat untuk menyelesaikan pendidikan, PLI ini dilakukan untuk menambah wawasan dan merupakan wadah pengenalan lingkungan kerja untuk meningkatkan pengetahuan keterampilan. Sehingga pada saat memasuki dunia kerja. PT Aka Solusi Teknologi merupakan salah satu perusahaan yang bergerak di bidang teknologi informasi. Telah banyak produk yang dihasilkan seperti aplikasi yeng berbasis WEB, desktop, maupun mobile. PT Aka Solusi Teknologi memberikan layanan jasa pembuatan dan pengembangan aplikasi yang disesuaikan dengan kebutuhan klien. Salah satu produk yang dibuat yaitu “Website Informasi Bisnis”
1. Tujuan Penulisan
Tujuan dari Pelaksanaan Pengalaman Lapangan Industri FT UNP adalah sebagai berikut :
a. Merupakan salah satu sarana bagi mahasiswa untuk mengaplikasikan ilmu yang diperoleh diperkuliahan
b. Menambah wawasan dan pengetahuan tentang dunia kerja dengan memperhatikan, mempelajari, dan memahami proses kerja beserta aturan-aturannya.
2. Manfaat Pelaksanaan PLI
Kegiatan Pengalaman Lapangan Industri (PLI) ini memberikan pengalaman kerja bagi penulis di instansi terkait serta sebagai sarana dalam menambah ilmu pengetahuan dan wawasan dalam bidang Teknik Informatika. Selain itu kegiatan Pengalaman Lapangan Industri ini juga sebagai salah satu syarat untuk kelulusan di Program Studi S1 Pendidikan teknik Informatika dan Komputer
3. Waktu dan Tempat Pelaksanaan PLI
Pengalaman Lapangan Industri (PLI) ini dilaksanakan pada tanggal 7 Juni – 12 Agustus 2016 yang bertempat di PT. Aka Solusi Teknologi Jalan Ujung Gurun No. 87, Kelurahan Ujung Gurun, Padang, Sumatera Barat.
B. Deskripsi Tentang Perusahaan / Instansi PLI
1. Produk dan Layanan
a. Pengembangan Aplikasi
PT. Aka Solusi Teknologi menciptakan produk software dan dan website sesuai keinginan dan kebutuhan pelanggan. Mengikuti standar yang ditetapkan untuk penggunaan pribadi, organisasi dan perusahaan. Faktor keamanan dan kepuasan pelanggan, merupakan perhatian utama.
b. Integrasi Sistem
Sistem yang menyeluruh akan memudahkan pelanggan dalam pemanfaatan dan pemantauan. Dengan keahlian yang dimiliki PT. Aka Solusi Teknologi akan membantu pelanggan untuk mewujudkan kemudahan tersebut.
c. Konsultasi dan Training
Perkembangan yang sangat pesat dibidang Hardware dan Software, membutuhkan perencanaan yang matang untuk penggunan, sehingga keputusan yang ditetapkan efisien dari segi biaya dan efektif dari segi kinerja.
d. Pengadaan Peralatan IT
spesifikasi yang dipasarkan, PT. Aka Solusi Teknologi siap membantu customer dalam memenuhi kebutuhan tersebut.
2. Tempat dan Kedudukan PT. Aka Solusi Teknologi
Tempat dan kedudukan Kantor PT. Aka Solusi Teknologi bertempat di Jalan Ujung Gurun No. 87, Kelurahan Ujung Gurun, Padang, Sumatera Barat.
3. Bidang Pekerjaan PT. Aka Solusi Teknologi
4. Struktur Organisasi
Gambar 1. Gambar Struktur Organisasi
5. Disiplin Kerja
karyawan yang berisikan tentang hak-hak dan kewajiban masing-masing pihak dengan tujuan:
a. Memelihara hubungan kerjasama baik dinamis antara perusahaan dan karyawan.
b. Menggalang bersama untuk meningkatkan produktivitas kerja. c. Sebagai perlindungan yang dapat memberikan kapasitas terhadap
hak dan kewajiban pengusaha dan karyawan.
d. Terpelihara keserasian, kerapian dan kesejahteraan karyawan demi kelancaran aktifitas perusahaan.
6. Keselamatan Kerja
Teknologi informasi dan komunikasi merupakan teknologi tinggi yang akhir-akhir ini berkembang sangat pesat. Dengan diperkenalkannya teknologi yang baru di tempat kerja atau lingkungan rumah, aspek keshatan dan keselamatan kerja harus dipertimbangkan dengan seksama.
Aspek-aspek yang diperhatikan dalam bekerja dibidang TI adalah sebagai berikut:
a. Menggunakan komputer harus pada posisi yang benar dan jangan sampai terlalu lama, karena dapat menyebabkan kerusakan pada mata.
menggunakan pengamanan yang lengkap, seperti menggunakan safetybelt dan lain-lainnya.
C. Perencanaan Kegiatan PLI
Adapun rencana kegiatan yang dirinci tau disusun dalam melaksanakan PLI sebagai berikut:
Tabel 1.Pelaksanaan Praktek Lapangan Industri
No Tanggal Kegiatan
1 7 Juni 2016 Kunjungan Tempat Praktek 2 13 - 25 Juni 2016 Orientasi Lapangan
3 26 Juni – 1 Agustus 2016
Kegiatan Pengalaman Lapanagan Industri di PT. Aka Solusi Teknologi.
4 2-13 Agustus 2016
Perbaikan Aplikasi dan Pembuatan Laporan
D. Pelaksanaan Kegiatan PLI
Penulis melaksanakan PLI di PT. Aka Solusi Teknologi pada tanggal 7 Juni – 12 Agustus 2016. Adapun kegiatan yang dilaksanakan selama kerja praktek di PT. Aka Solusi Teknologi.
a. Kegiatan Umum
a. Pengenalan terhadap ruang lingkup kerja, tata tertib perusahaan dan struktur organisasi perusahaan.
b. Kegiatan Khusus
a. Mengerjakan website Bisnis sesuai dengan perintah dari Supervisor menggunakan framework YII2.
10
BAB II
IMPLEMENTASI YII2 FRAMEWORK DALAM PEMBUATAN WEBSITE INFORMASI BISNIS
A. Teori Singkat
a. Framework
Framework adalah kerangka kerja yang juga dapat diartikan sebagai kumpulan script (terutama class dan function) yang dapat membantu developer/programmer dalam menangani berbagai masalah-masalah dalam pemrograman seperti koneksi ke database, pemanggilan variabel, file,dll sehingga developer lebih fokus dan lebih cepat membangun aplikasi. Bisa juga dikatakan Framework adalah komponen pemrorgaman yang siap re-use kapan saja, sehingga programmer tidak harus membuat skrip yang sama untuk tugas yang sama dari awal. Framework menggunkan konsep MVC (Model,view,controller) sebagai asiterktur untuk membangun sebuah aplikasi.
Konsep MVC
Gambar 2. Skema MVC (Model, View, Controller) Bagian dari MVC, yaitu :
1) Model
Model mewakili struktur data. Model berfungsi untuk mengontrol data, berupa CRUD (Create, Read, Update & Delete) pada database yang digunakan oleh sistem. Model berisi class dan fungsi seperti Controller, tidak seperti pada view . Pemanggilan model hampir sama dengan pemanggilan view, namun perbedaannya dalam pemanggilan model dilakukan dengan pemanggilan fungsi.
2) View
View adalah bagian yang mengatur tampilan ke pengguna. View berisi kode-kode html, css, maupun javascript yang digunakan sebagai tampilan web nantinya.
3) Controller
suatu data dan mengirimkannya ke halaman web. Controller yang menghandle input dari user.
b. YII2
Yii adalah framework (kerangka kerja) PHP berbasis-komponen,
berkinerja tinggi untuk pengembangan aplikasi Web berskala-besar. Yii
menyediakan reusability maksimum dalam pemrograman Web dan
mampu meningkatkan kecepatan pengembangan secara signifikan.
Nama Yii (dieja sebagai /i:/) singkatan dari "Yes It Is!".
a. Fitur
Berikut ini beberapa fitur-fitur yang terdapat pada Yii :
1) Arsitektur programing menggunakan konsep Model, View, Controller atau biasa disebut MVC.
2) Object Relational Mapping atau ORM merupakan salah satu fitur di dalam Yii yang mengurusi pengelolaan database, jika
kita lihat secara spesifik maka Yii sebenarnya menyediakan
mekanisme seperti DAO (Data Access Object), Query Builder, Active Record(ORM) dan Database Migration. Dengan ORM pekerjaan developer menjadi terbantu karena
tidak lagi menulis query SQL yang rumit, cukup dengan
3) Form input dan Validasi adalah fitur yang mengatur inputan pada suatu form dan sekaligus membantu melakukan validasi pada inputan.
4) Widget merupakan konsep di Yii yang menyediakan komponen-komponen user interface yang siap pakai, misalnya data grid, autocomplete, tree view dan lain-lain. Adapun widget-widget ini ada yang terintegrasi dengan library Jquery sehingga memungkinkan untuk mekanisme AJAX.
5) Autentikasi hak akses dan Autorisasi loging dan logout. 6) Masalah tampilan (view) Yii menggunakan konsep skinning
kita bisa meng-costumize tampilan komponen user interface di aplikasi kita menggunakan CSS sedangkan dengan konsep Theming kita bisa mengganti-ganti seluruh tampilan aplikasi.
7) Web service, pada Yii dapat meng-generate
spesifikasi WSDL service secara otomatis.
8) Translasi, Yii menyediakan fitur penterjemah untuk pesan, tanggal dan format waktu sesuai zona waktu dan daerah. 9) Caching, dengan fitur caching akses terhadap aplikasi yang
dibangun menggunakan Yii akan lebih ringan ketika diakses oleh penggunanya.
10) Pesan Error dan Logging yang ada pada Yii bisa memilih untuk
Security di dalam Yii membantu dalam mencegah
serangan-serangan seperti SQL Injection, XSS, CSRF, Cookie Tampering, dan lain-lain.
11) 3rd Party, Yii telah di desain sedemikian rupa sehingga kita bisa memasang library external dari pihak ketiga untuk di sematkan dalam aplikasi.
12) Extension, Yii memiliki segudang extensions. Extension sendiri merupakan kontribusi dari pengguna-pengguna Yii dengan membuat widget, library ataupun component yang bisa dipakai dan belum ada di Yii secara built-in.
13) Dokumentasi Yii.
Dalam menggunakan framework YII2 ada beberapa hal yang harus diketahui oleh pengguna, yaitu sebagai berikut:
1. Persyaratan
Untuk menjalankan aplikasi Web berbasis Yii, diperlukan server Web yang mendukung PHP 5.1.0. Bagi para pengembang yang ingin menggunakan Yii, mengerti pemrograman berorientasi-objek (OOP) akan sangat membantu, karena Yii merupakan framework OOP murni.
2. Penggunaan Yii
caching yang canggih, Yii sangat cocok untuk pengembangan aplikasi dengan lalu lintas-tinggi, seperti portal, forum, sistem manajemen konten (CMS), sistem e-commerce, dan lain-lain. 3. Perbandingan Yii dengan Framework lain
Seperti kebanyakan PHP framework , Yii adalah MVC framework. Yii melampaui framework PHP lain dalam hal efisiensi, kekayaan-fitur, dan kejelasan dokumnetasi. Yii didesain dengan hati-hati dari awal agar sesuai untuk pengembangan aplikasi Web secara serius. Yii bukan berasal dari produk pada beberapa proyek maupun konglomerasi pekerjaan pihak ketiga. Yii adalah hasil dari pengalaman kaya dari para pembuat pada pengembangan aplikasi Web dan investigasi framework pemrogaraman Web dan aplikasi yang paling populer.
Tabel 2.Perbedaan YII2 Basic dan YII2 Advanced
c. MySQL
mereka juga menjual dibawah lisensi komersial untuk kasus-kasus di mana penggunaannya tidak cocok dnegan penggunaan GPL.
Tidak sama dengan proyek-proyek seperti Apache, di mana perangkat lunak dikembangkan oleh komunitas umum, dan hak cipta untuk kode sumber dimiliki oleh penulisnya masing-masing, MySQL dimiliki dan disponsori oleh sebuah perusahaan komersial Swedia MySQL AB, di mana memegang hak cipta hampir atas semua kode sumbernya. Kedua orang Swedia dan satu orang Finlandia yang mendirikan MySQL AB adalah: David Axmark, Allan Larsson, dan Michael ”Monty” Widenius.
MySQL memiliki keistimewaan diantaranya:
1. Portabilitas. MySQL dapat berjalan stabil pada berbagai sistem operasi seperti Windows, Linux, FreeBSD, Mac Os X Server, Solaris, Amiga, dan masih banyak lagi.
2. Perangkat lunak sumber terbuka. MySQL didistribusikan sebagai perangkat lunak sumber terbuka, dibawah lisensi GPL sehingga dapat digunakan secara gratis.
3. Multi-user. MySQL dapat digunakan oleh beberapa pengguna dalam waktu yang bersamaan tanpa mengalami masalah atau konflik. 4. ‘performance tuning’, MySQL memiliki kecepatan yang
5. Ragam tipe data. MySQL memiliki ragam tipe data yang sangat kaya, seperti signed / unsigned integer, float, double, char, text, date, timestamp, dan lain-lain.
6. Perintah dan fungsi. MySQL memiliki operator dan fungsi secara penuh yang mendukung perintah Select dan Where dalam perintah (query).
7. Keamanan. MySQL memiliki beberapa lapisan keamanan seperti level subnetmask, nama host, dan izin akses user dengan sistem perizinan yang mendetail serta sandi terenkripsi.
8. Skalabilitas dan Pembatasan.
d. PHP
PHP adalah bahasa pemrograman script server-side yang didesain untuk mengembangkan web. Selain itu, PHP juga bisa digunakan sebagai bahasa pemrograman umum. PHP dikembnagkan pada tahun 1995 oleh Rasmus Lerdorf, dan sekarang dikelola oleh The PHP Group. Situs resmi PHP beralamat di http://www.php.net .
perkembangannya, PHP menjelma menjadi bahasa pemrograman web yang powerful dan tidak hanya digunakan untuk membuat halaman web sederhana, tetapi juga website populer yang digunakan oleh jutaan orang seperti wikipedia, wordpress, joomla, dll. PHP dapat digunakan dengan gratis dan bersifat open source. PHP dirilis dalam lisensi PHP Lisence, sedikit berbeda dengan lisensi GNU General Public Lisence (GPL) yang biasa digunakann untuk proyek Open Source.
Kelebihan PHP dari bahasa pemrograman lain yaitu :
1) Bahasa pemrograman PHP adalah sebuah bahasa script yang tidak melakukan sebuah kompilasi dalam penggunaannya.
2) Web Server yang mendukung PHP dapat ditemukan dimana- mana dari mulai apache, IIS, Lighttpd, hingga Xitami dengan konfigurasi yang relatif mudah.
3) Dalam pengembangannya lebih mudah karena banyak milis – milis dan developer yang siap membantu dalam pengembangan.
4) Dalam sisi pemahaman, PHP adalah bahasa scripting yang paling mudah karena memiliki referensi paling banyak.
e. Back End
Back End adalah istilah halaman belakang pada situs bersistem CMS (Content Management System). Memungkinkan seseorang untuk masuk sebagai administrator dan melakukan perubahan informasi dalam website mereka. Untuk memiliki tingkatan halaman yang aman , setidaknya halaman Back-end dilindungi dengan https dan juga SSL yang akan membuat enskripsi menjadi aman , dan juga password administrator yang berformat MD5. Dengan memiliki halaman Back-end akan memudahkan seorang user untuk meng-update situs mereka. Pada CMS konsep Back-end haruslah benar-benar aman , sebab jika seorang hacker dapat menembusnya maka mereka dapat melakukan apa-apa terhadap situs. Biasanya back-end page ini dapat diakses dengan mengetikkan beberapa nama direktori khusus admin.
Tingkatan User biasanya akan berdampak kepada kemampuan mereka dalam mengakses beberapa menu. Tingkatan tertinggi terdapat pada Super Administrator, administrator, Global Publisher, Publisher.
B. Proses Pengerjaan
a. Proses Penginstalan
aplikasi web berbasis PHP. Untuk mendownload composer, bisa di download di getcomposer.org/download. Selanjutnya, lakukan penginstallan YII2 framework sebagai berikut :
a. Buka command prompt
b. Masuk ke directory xampp, ketikkan cd c:\xampp\php pada command prompt
c. Lalu ketik
d. Update composer, ketikkan
e. Buat project baru dengan mengetikkan kode berikut :
f. Kemudian ketik
g. Lalu inisialisasi project dengan mengetikkan
php.exe -r
"readfile('https://getcomposer.org/installer');" |
php.exe
php.exe composer.phar self-update
php.exe composer.phar global require
"fxp/composer-asset-plugin:1.0.0-beta3"
php.exe composer.phar createproject preferdist
--stability=dev yiisoft/yii2-app
advanced ../htdocs/bisnis1
h. Lalu akan ada pilihan 0 untuk Development or 1 untuk Poduction, pilih 0 lalu enter , Lalu ada pertanyaan lagi , ketik yes
Gambar 3. Inisialisasi project
i. Project sudah terinstal. Untuk menguji , ketikkan localhost/bisnis1/backend/web pada browser , maka akan tampil sebagai berikut :
b. Directory Pada YII2 Framework
Ketika menginstall yii dengan advanced application template, maka kita akan menjumpai beberapa folder utama dan beberapa file, berikut ini penjelasan mengenai fungsi masing-masing folder :
a. backend – pengembangan web yang berhubungan dengan database dan sistem
b. common – common file untuk semua aplikasi. c. console – aplikasi console.
d. environments - konfigurasi environment
e. frontend - – pengembangan web yang berhubungan dengan disain tampilan
Penjelasan untuk beberapa file :
a. .gitignore berisi daftar direktori diabaikan oleh sistem versi git. Jika ada kode yang dibutuhkan, tapi ada di repository, tambahkan disini. b. composer.json – Penjelasan tentang konfigurasi composer
c. init – Inisialisasi script d. init.bat - same for Windows.
e. LICENSE.md – Info lisensi project
f. README.md – Informasi dasar tentang penginstallan g. requirements.php – Syarat-syarat untuk penginstallan yii h. yii - console application bootstrap.
Intinya, ada 3 aplikasi yaitu frontend, backend dan console.
1) Frontend adalah aplikasi web yang akan ditampilkan untuk end user. 2) Backend adalah aplikasi web yang berfungsi untuk administrator
dalam mengelola aplikasi frontend.
3) Console adalah aplikasi yang digunakan untuk cron jobs and low-level server management, serta digunakan selama deployment aplikasi dan menghandle migrations dan assets.
4) Folder common berisi file-file yang digunakan oleh lebih dari satu aplikasi, sebagai contoh global configuration seperti pengaturan koneksi
database, atau general model seperti model user.
c. Pembuatan Database
Database yang dibentuk adalah sebagai berikut:
Dengan nama database bisnis, diisikan tabel – tabel seperti berikut ini :
Nama Tabel Field
User id (int :11 primarykey)
username (varchar : 255) auth_key (varchar : 32) password_hash(varchar :255) password_reset_token(varchar :255) email (varchar :255)
status (smallint : 6) created_at (int :11) updated_at (int :11)
Posting idPosting (int : 11 primarykey) judul (varchar :200)
Slider idSlider (int :11) primarykey judul (varchar :255)
foto (varchar :255)
Kategori idKategori (int :11)
Contact id_contact (int :11) primary key phone (int :11)
nama (varchar :255) email (varchar :255) pesan (text)
waktu (datetime)
Comment idComment (int :11 primary key) content (text)
status (int :15) create_time (int :11) uname (varchar :128) email (varchar : 128)
idPosting (int :11 foreign key)
d. Menghubungkan Database pada YII2
1) Buka pada folder common dan pilih folder config 2) Kemudian pilih main-local.php
3) Akan keluar script seperti berikut ini :
4) Pada script 'dsn' => 'mysql:host=localhost;dbname=””',ganti ‘””’ menjadi ‘bisnis’
e. Generating Code dengan Gii
1) Ketikkan pada kolom search
“localhost/bisnis/backend/web/index.php?r=gii”, klik enter
2) Kemudian akan masuk ke halaman Yii Code Generate seperti pada gambar di bawah ini
Gambar 7. Halaman Yii Code Generator
Gambar 8. Model Generator pada posting
4) Lakukan hal tersebut pada nama – nama tabel yang kita buat. Kemudian di preview, setelah dipreview kemudian generate, jika sukses maka tampilannya akan menjadi seperti ini :
Kemudian ketika sudah selesai pada model generator, beralih ke CRUD Generator, lakukan hal yang sama pada tabel lain. Pada CRUD Generator Posting isi kolom seperti berikut ini :
o Model Class : common\models\Posting
o Search Model Class : backend\models\PostingSearch o Controller Class : backend\controllers\PostingController
Gambar 10.CRUD generator untuk Posting
Gambar 11. CRUD Generator berhasil
6) Dan terakhir pada Controller Generator, lakukan juga pada semua tabel. Contoh controller generator untuk posting
Gambar 12. Melakukan generate pada Controller Generator
Gambar 13. Controller Generate berhasil
8) Ketika generate selesai, maka akan tampil pada menu submenu – submenu yang sudah dibuat pada database.
Gambar 14. Submenu
f. Menambah Template AdminLTE pada Halaman Admin
1) Pastikan komputer terhubung dengan internet, kemudian buka CMD ketikkan perintah berikut ini composer require
dmstr/yii2-adminlte-asset “2.*”
Gambar 15. memasukkan template adminLTE pada main-local.php
3) Lalu coba lihat di WEB browsernya, localhost/bisnis/backend/web, lalu tekan enter. Maka hasilnya akan menjadi seperti ini
Gambar 16. tampilan AdminLTE pertama kali install
classnya, skin awal saat penginstallan yaitu skin-blue seperti gambar : ,maka diubah menjadi skin-blue-light.
Gambar 17. Merubah Warna AdminLTE
Gambar 18. tampilan AdminLTE dengan warna yang berbeda
g. Implementasi YII2 Framework pada Backend
1. Menu Login
Gambar 19. Menu Login saat pertama kali menginstall YII2
Gambar 20. Menu Login setelah diterapkan tema adminLTE 2. Menu Home
mempermudah administrator dalam meng-update situs webnya. Contoh yang telah di buat submenunya beserta source codenya seperti berikut ini:
Gambar 21. Menu Home pada Halaman Admin
a) Posting
Pada posting disediakan menu untuk menambah halaman posting dan melihat apa saja daftar informasi dari posting tersebut
1) Create Posting
Gambar 23. Create Posting
Agar pada form posting terlihat rapi, maka setiap kolomnya disusun dengan cara buka file pada views - posting - _form.php, lalu menambahkan <div class = row> seperti script berikut ini:
<div class ="row">
<div class="col-xs-6 col-md-4">
<?= $form->field($model,
'judul')->textInput(['maxlength' => true]) ?>
</div>
<div class="col-xs-6 col-md-4">
<?= $form->field($model, 'file')->fileInput() ?>
</div>
<?= $form->field($model,
'idKategori')-
>dropDownList(ArrayHelper::map(kategori::find()->all(), 'idKategori', 'namaKategori'), ['prompt'
=> 'Kategori Artikel']) ?></div>
Agar pada kolom isi bisa di rubah font dan ada tambahan toolbar serta pluginsnya, maka rubah widgetnya dengan TinyMce.
Gambar 24. Kolom isi yang Menggunakan Widget TinyMce
<div class="col-md-12"><?=
$form->field($model,
'isi')->widget(TinyMce::className(), [
'options' => ['rows' => 20],
'clientOptions' => [
'plugins' => [
"advlist autolink lists link charmap
print preview anchor",
"searchreplace visualblocks code
"insertdatetime media table
contextmenu paste"
],
'toolbar' => "undo redo | styleselect |
bold italic | alignleft aligncenter alignright
alignjustify | bullist numlist outdent indent
| link image"
]
]);?></div>
</div>
Lalu pada kolom file, diharuskan untuk mengunduh sebuah file, maka diperlukan button telusuri file dengan menggunakan file input. Buka file pada views – posting – _form.php. tambahkan script berikut ini:
<div class="col-xs-6 col-md-4"><?=
$form->field($model, 'file')->fileInput() ?>
</div>
Setelah itu buka file pada controllers – PostingControllers.php, masukkan script berikut :
$model->file =
UploadedFile::getInstance($model,'file');
if ($model->file){
$model->foto= $tgl.'.'
>file->saveAs('uploads/posting/'.
$model->foto);
Dalam mengupload file jangan lupa untuk membuat folder di dalam folder web dengan nama uploads.
Gambar 25. File Input dalam mnegupload file
Kemudian beralih ke kolom kategori , dimana pada kolom kategori yang berada pada tabel posting tersebut berelasi dengan tabel kategori. Semua informasi yang akan diinputkan dan dipost oleh administrator, disesuaikan dengan kategori bisnis yang telah disediakan. Maka pada kolom kategori menggunakan dropdown list, agar dapat menyesuaikan dalam kategori apakah bisnis yang akan diposting oleh administrator.
Gambar 26. Dropdown list pada kategori
<div class="col-xs-6 col-md-4">
<?= $form->field($model, 'idKategori')-
>dropDownList(ArrayHelper::map(kategori::find()->all(), 'idKategori', 'namaKategori'), ['prompt'
=> 'Kategori Artikel']) ?></div>
2. View Posting
Gambar 27. View Posting
Pada menu lihat posting, akan ditampilkan beberapa postingan yang telah ditambahkan oleh administrator. Postingan dapat diupdate, dihapus, dan dilihat (view) tampilannya. Untuk meng-update postingan, maka dibutuhkan source code berikut :
<?php
use yii\helpers\Html;
$this->title = 'Update Posting: ' .
$model->idPosting;
$this->params['breadcrumbs'][] = ['label' =>
'Postings', 'url' => ['index']];
$this->params['breadcrumbs'][] = ['label' =>
>idPosting, 'url' => ['view', 'id' =>
$this->params['breadcrumbs'][] = 'Update';
?>
<div class="posting-update">
<div class="box box-info">
<div class="box-header">
<h4>Update Data Posting</h4>
<div class="box-tools pull-right">
<button type="button" class="btn
btn-box-tool" data-widget="collapse"><i class="fa
fa-minus"></i>
Kemudian buka pada controller postingan di controllers/PostingController.php, pada action updatenya masukkan source code berikut :
public function actionUpdate($id)
{
$model = $this->findModel($id);
$model->foto = $tgl. '.' .
$model->file->extension;
return $this->redirect(['index']);
} else {
return $this->render('update', [
'model' => $model,
}
}
private function deleteImg($img){
$baseUrl =
Yii::getAlias('uploads/posting/'.$img);
@unlink($baseUrl);
}
Tujuan memasukkan action updatenya agar data lama yang sudah tak diperlukan lagi otomatis akan terhapus, contohnya pada image ketika diupdate, image yang lama akan terhapus dan akan diganti dengan image yang baru. Sehingga folder yang akan menyimpan gambar tersebut tidak menyimpan gambar lama dan tidak memenuhi penyimpanan harddisk. b) Slider
1. Create Slider
Gambar 29. Create Slider
Pada slider akan ditampilkan image yang akan muncul pada bagian frontend web bisnis, dimana slider ini bertujuan untuk menampilkan gambar yang berhubungan dengan web bisnis yang terletak pada bagian atas halaman awal di frontend. Administrator bertugas untuk memasukkan gambar pada slidernya.
Untuk mencreate slider tersebut, Pada judul slider, menggunakan text input dan filenya menggunakan file input, berikut source codenya pada file di folder views/slider/_form.php :
<?php $form = ActiveForm::begin(['options' =>
['enctype' => 'multipart/form-data']]) ?>
<?= $form->field($model,
'judul')->textInput(['maxlength' => true]) ?>
<?= $form->field($model, 'file')->fileInput() ?>
Kemudian ubah juga pada controllersnya di
SliderContorollers.php pada actionCreatenya:
public function actionCreate()
{
if ($model->load(Yii::$app->request->post()) )
{
$imageName = $model->judul;
//get upload file
$model->file =
UploadedFile::getInstance($model,'file');
if ($model->file){
$model->foto= $imageName.'.'
.$model->file>extension;
$model->file->saveAs('uploads/slider/'.
$model->foto);
//save the path in db colomn
$model->save();
return $this->redirect(['view', 'id' =>
Kemudian buat folder untuk file imagenya di uploads/slider. 2. View Slider
Gambar 30. View Slider
Pada view slider menampilkan slider yang sudah dicreate, dan bisa update serta menghapus slider. Berikut source code untuk menampilkan slider pada slider/view.php :
<div class="slider-view">
<div class="box box-solid box-info">
<div class="box-header">
<h3 class="box-title">Detail
Slider</h3>
<div class="box-tools pull-right">
<?= Html::a('<i class="fa fa-fw
fa-plus-square"></i>Create', ['create', 'id' =>
$model->idSlider], ['class' => 'btn
btn-primary']) ?>
<?= Html::a('<i class="fa fa-fw
fa-pencil-square"></i>Update', ['update', 'id' =>
$model->idSlider], ['class' => 'btn
<?= Html::a('<i class="fa fa-fw
fa-trash"></i>Delete', ['delete', 'id' =>
$model->idSlider], ['class' => 'btn btn-primary','data'
=> ['confirm' => 'Are you sure you want to delete
this item?', 'method' => 'post',],]) ?>
],
Kemudian untuk mengupdate dan menghapus slider, source codenya pada SliderController.php :
public function actionUpdate($id)
{
$model = $this->findModel($id);
$oldImg = $model->foto;
$imageName = $model->judul;
if ($model->load(Yii::$app->request->post()))
return $this->redirect(['index']);
public function actionDelete($id)
c) Kategori
1. Create Kategori
Gambar 31. Create Kategori
Tabel kategori bertujuan untuk membagi jenis – jenis postingan bisnis berdasarkan kategorinya. Pada web bisnis ini kategorinya dibedakan menjadi fashion, food, IT, dan bisnis ekonomi. Source code untuk create kategori pada
kategori/_form.php:
<div class="kategori-form">
<div class="box-body">
<?php $form = ActiveForm::begin(); ?>
<?= $form->field($model,
'idKategori')->textInput() ?>
<?= $form->field($model,
'namaKategori')->textInput(['maxlength' => true]) ?>
<?= Html::a('<i class="fa fa-fw
fa-reply-all"></i>Back', ['index', 'id' =>
$model->idKategori], ['class' => 'btn btn-default']) ?>
<?= Html::submitButton($model->isNewRecord ?
'Create' : 'Update', ['class' =>
$model->isNewRecord ? 'btn success' : 'btn
btn-primary']) ?>
</div>
<?php ActiveForm::end(); ?>
</div>
</div>
Kemudian pada KategoriController.php :
public function actionCreate()
{
$model = new Kategori();
if
($model->load(Yii::$app->request->post()) && $model->save()) {
2. View Kategori
Gambar 32. View Kategori
Pada view kategori ada beberapa tombol seperti view, update, dan delete. Source codenya pada KategoriController.php adalah sebagai berikut :
public function actionView($id)
{
return $this->render('view', [
'model' => $this->findModel($id),
]);
}
public function actionUpdate($id)
{
$model = $this->findModel($id);
if
($model->load(Yii::$app->request->post()) && $model->save()) {
return $this->redirect(['view', 'id' =>
$model->idKategori]);
return $this->render('update', [
'model' => $model,
]);
}
}
public function actionDelete($id)
{
$this->findModel($id)->delete();
return $this->redirect(['index']);
}
d) Contact
Gambar 33. Kontak 1. View Contact
Pada kontak kita hanya bisa melihat dan menghapus data kontak yang telah diinputkan oleh user pada frontend. Kontak juga tidak ditambahkan atau diinputkan oleh admin karena kontak digunakan untuk user yang ingin mengirim pesan atau kesan.
$this->title = $model->id_contact;
$this->params['breadcrumbs'][] = ['label' =>
'Contacts', 'url' => ['index']];
$this->params['breadcrumbs'][] = $this->title;
?>
<div class="contact-view">
<div class="box box-solid box-primary">
<div class="box-header">
fa-trash"></i>Delete', ['delete', 'id' =>
$model->id_contact], [
'class' => 'btn btn-danger',
'data' => [
'confirm' => 'Are you sure you
want to delete this item?',
'method' => 'post',
],
]) ?>
<button class="btn btn-primary btn-sm"
data-widget="collapse"><i class="fa
fa-minus"></i></button>
</div>
<div class="box-body">
<?= DetailView::widget([
'model' => $model,
'attributes' => [
'id_contact',
'phone',
'nama',
'email:email',
'pesan:ntext',
'waktu',
],
]) ?>
</div>
</div>
Gambar 34. Detail kontak e) Comment
1. View Comment
Source code untuk menampilkan komentar :
Gambar 35. Detail komentar
$this->title = $model->idComment;
$this->params['breadcrumbs'][] = ['label' =>
'Comments', 'url' => ['index']];
$this->params['breadcrumbs'][] = $this->title;
?>
<div class="comment-view">
<div class="box box-solid box-primary">
<div class="box-header">
<h3 class="box-title">Detail Comment</h3>
<div class="box-tools pull-right">
<?= Html::a('<i class="fa fw
fa-trash"></i>Delete', ['delete', 'id' =>
$model->idComment], ['class' => 'btn btn-danger','data'
=> [
'confirm' => 'Are you sure you want to delete this
item?',
],
]) ?>
<button class="btn btn-primary btn-sm"
fa-59
BAB III PENUTUP A. Kesimpulan
Setelah melakukan kegiatan Pengalaman Lapangan Industri (PLI) di PT. AKA Solusi Teknologi, penulis mendapatkan beberapa kesimpulan bahwa:
1. Kesimpulan Umum
a. PT. AKA Solusi Teknologi memberikan waktu deadline proses pengerjaan sebuah program
b. PT. AKA Solusi Teknologi sangat menjunjung tinggi kedisiplinan dan tata tertib pada karyawan selama bekerja. Bukan hanya karyawan, siswa ataupun mahasiswa magang di perusahaan tersebut juga harus mengikuti tata tertib yang telah ditetapkan PT. AKA Solusi Teknologi. Salah satunya itu jadwal jam masuk, jam istirahat, jam pulang yang sudah menjadi ketetapan tata tertib perusahaan tersebut.
2. Kesimpulan Khusus
untuk membuat backend dari “Website Informasi Bisnis” dengan alasan sebagai berikut:
a. YII 2 Framework menggunakan pola MVC, pola standar pengembangan aplikasi yang memisahkan tampilan, logic program, dan modelnya sehingga website lebih terstruktur
b. Menggunakan database abstraction layer seperti Data Access Objects (DAO) dan Active Record untuk memudahkan interaksi antar database. Sehingga tidak perlu lagi memikirkan crud untuk input data.
c. Penggunaan tema, memudahkan pengembangan aplikasi dalam merancang tampilan aplikasi.
d. Console, penggunaan perintah pada console untuk melakukan beragam perintah otomatis seperti mengenerate struktur dasar aplikasi, model,crud, dan sebagainya.
e. Widget, semacam kontrol yang memiliki fungsi seperti auto complete, datapicker,table dan lain – lain. Menggunakan Jquery sebagai javascript client sidernya.
g. Modular dan mudah ditambahkan dengan dukungan extensi dan komponen tambahan sehingga beragam fitur tambahan dengan mudah dimasukkan.
h. Autentikasi dan Autorisasi, Yii sudah menyediakan mekanisme Autentikasi(login, logout) dan Autorisasi(hak akses) terhadap pengguna sistem, sehingga kita tidak perlu lagi repot-repot membuat dari pertama. i. Security, Yii memiliki fitur keamanan yang membantu dalam mencegah serangan-serangan seperit SQL Injection, XSS, CSRF, Cookie Tampering dll
j.Extensions, Yii memiliki segudang extensions. Extension sendiri merupakan kontribusi dari pengguna-pengguna Yii dengan membuat widget, library ataupun component yang bisa dipakai dan belum ada di Yii secara built-in.sudah menjadi ketetapan tata tertib perusahaan tersebut.
B. Saran
Setelah melakukan kegiatan Pengalaman Lapangan Industri di PT AKA Solusi Teknologi maka penulis dapat memberikan saran dalam pelaksanaan Pengalaman Lapangan Industri diantaranya :
Dengan adanya kegiatan Pengalaman Lapangan Industri ini diharapkan adanya hubungan kerjasama yang baik antara pihak perusahaan dengan mahasiswa dan Fakultas.
Agar kegitan PLI lebih memberikan pengalaman seperti layaknya berada di dunia kerja nyata , sebaiknya diberikan pengawasan dan pelakuan layaknya pegawai tetap. Menggunakan pakaian seragam, masuk dan pulang sesuai dengan jam kerja.
63
DAFTAR PUSTAKA
1. Fahrurroji,Ahmad.2014.”Perbedaan antara Frontend dan Backend”. http:// afahrurroji.net/perbedaan-antara-frontend-dan-backend/, diakses 11 Agustus 2016.
2. Mukhlasin,Hafid. 2016. “YII Framework Archive”. http://www.hafidmukhlasin.com/. Diakses pada 14 September 2016.
3. Pratama,Andre.2013.” Belajar HTML Dasar Part 5: Pengertian Tag, Elemen, dan Atribut pada HTML”. http://www.duniailkom.com/ , diakses 5 September
2016.
4. Unit Hubungan Industri. 2015. Buku Pedoman Pengalaman Lapangan Industri (PLI) Mahasiswa FT UNP. Padang: FT UNP.
5. Wikipedia. 2016. “JavaScript”. https://id.wikipedia.org/wiki/JavaScript, diakses tanggal 14 September 2016.