Bersamaan dengan tulisan ini , saya ingin berbagi ilmu seputar PHP. Semoga ilmu ini dapat
membantu
TABLE OF CONTENTS
• Xampp .
• Ampps
• Wamp
Apabila anda memakai windows, maka pilihan atas sudah cukup cepat membuat webserver!!
Namun bila ingin 1-1, maka perlu sedikit waktu mengerjakannya. Apabila anda memakai win,
akan lebih baik memakai instalan seperti di atas!! Bila ingin 1-1!! Well malah gk bagus karena
akan memperlambat kinerjamu.
Tetapi kalau untuk server, ini akan sedikit tricky!! Pertama mulai dari memasang apache atau
server lainnya. Memasang saja belum tentu selese, karena kamu harus memasang php lalu
menghubungkan antara apache dan php! Itu blum termasuk mengaktifkan mysql atau
databasenya.
Memasang satu-satu memang tepat bila ingin membuat server production!! Tetapi akan lebih
baik apabila mengerjakannya apabila pc anda linux atau mac!! (yang kebetulan mirip). Dalam
tulisan ini tidak akan bahas caranya, tetapi lebih kepada saran saja.
Dalam membangun server production, yang perlu diperhatikan pertama adalah bagaimana cara
agar server anda tidak bocor resourcenya.. baik dari spek maupun dari code yang akan
dimasukkan. Ada beberapa fungsi yang harus anda block apabila ini production!! Sebisa
mungkin minim interaksi user ke server!!
Selalu ingat, server andaikan sebagai tempat yang kritikal. Bila hilang datanya, maka kamu akan
rugi. Miroring selalu wajib dilakukan!!! Tetapi yang terpenting adalah mencatat proses anda
bikin server hingga bisa bekerja!! Kadang apa yg ditulis malah ngak jalan kedua kalinya.. Tetapi
dengan di catat, setidaknya menyingkat waktu daripada mengingat kembali.
Database juga ngak melulu Mysql atau Maria. Selalu ingat setting bagaimana kamu memasang
database, terutama masalah backup. Dalam pembahasan berikutnya adalah metode backup
Sebelumnya perlu diperingati, coding dan database tidak mudah menyimpannya. Bahkan
memiliki ide copy paste dari pc sendiri dan kerjain di pc berbeda lalu yang produksi berbeda
juga bisa menimbulkan kebingungan.
Adanya Git dapat membantu melakukan backup coding yang baik. Tentu saja kita harus analisa
apa aja yang dibackup dan metode menyimpan kode yang baik. Dari backup kita kenal
versioning (membuat versi pada coding). Tentu dengan versi yang lebih tinggi, akan
menimbulkan masalah dan kadang menyelesaikan masalah.
BACKUP DATABASE
Bagaimana dengan database? Bagaimana backup database yang baik. Kalau kita ada dana lebih,
bikin 1 server lagi yang buat backup. Tiap beberapa periode, copy paste isi database sebelum ke
database sesudah! Dalam console kita kenal “mysqldump”
Tujuan mysqldump adalah membackup database. Lalu nanti dimekarkan dengan mysql atau
kita kenal istilah impor dan ekspor. Apabila ini di server, untuk mencegah hal tak di inginkan,
kita kadang meminta jasa melakukan backup.
Database yang baik adalah database yang memiliki kemampuan bisa digunakan banyak user
dari tempat berbeda.misal buat database pegawai tapi dibaca oleh coding non pegawai akan
lebih mengerti.. Contoh yang mendekati sebenarnya adalah table user
Topik ini sebenarnya lebih condong membahas sedikit kepada normalisasi table di Database,
sedangkan database yang kita angkat sebenarnya akan menjadi database yang bersifat dinamis.
Karena dinamis inilah yang membuat hambatan pada database, terutama database tersebut
tidak bisa berhenti sebentar.
Proses yang saya sarankan adalah dijalankan manual, dimana ada manusia yang mengerjakan
dibandingkan automatis dibelakang layar dengan cron. Untuk kebutuhan automatis, saya
sarankan menjalankan langkah berikut
• Membuat privileges yang aman untuk melakukan backup yang harus menentukan
o Host mana yang diperbolehkan untuk menjalankannya.. ingat jangan memilih %
o User akan lebih baik jangan sulit untuk diketik.. saran lebih baik memberikan
nama yang menjelaskan bahwa ini untuk backup
o Password yang mudah untuk diketik. Karena mudahnya diketik inilah yang
membuat kita harus lebih extra hati-hati.
o Privileges global lebih baik tidak diberikan
• Membuat privileges pada table yang live. Pastikan tidak ada proses edit atau hapus.
Berikan minimal privileges. Penjelasan ada dibawah
• Membuat database backup yang menjadi target backup
• Membuat privileges database backup kepada user backup ini
• Membersihkan file sql yang dibuat dalam proses export
PRIVILEGES
Khusus untuk database live harusnya pilih satu2 database lalu berikan pilihan seperti ini
Perhatikan adanya pilihan lock!! Ini perlu untuk memastikan tabelnya tidak bergerak saat di
backup. Atau querynya seperti ini
Atau mau simple seperti ini juga boleh (langsung didepan). Tetapi perhatikan pada bagian
kanan ini
Normalnya kita hindari ini, tetapi sebenarnya ini harus jadi perhatian.
Point berikutnya adalah waktu menjalankan backup, perhatikan bahwa kita harus mencari
waktu yang sepi transaksi!! Biasanya kita lakukan pas malam hari bukan waktu kerja.
DATABASE BACKUP
Akan baik apabila database backup sejumlah dengan database live. Jadi apabila database live
kamu 4 maka ada database backup sejumlah 4 juga. Ini juga atas pertimbangan kamu memakai
1 server bukan 2 server.
Perhatikan bahwa kamu menulis password. Akan baik apabila usernya adalah user minimal !!
jangan user yang benar2 super
Perhatikan arah ‘<’ dan ‘>’. Dan jangan lupa memberikan perintah penghapusan file tujuan.sql
Dalam pengerjaan backup, memastikan bahwa backup berjalan dengan benar adalah esesensial.
Membuat log kerjaan juga perlu. Jadi selalu periksa ulang hasil backup.. dibandingkan
mengatakan bahwa backup berlangsung aman.
Penjelasan validasi backup sebaiknya dilakukan manual dahulu atau dilakukan automatis saat
proses backup berjalan.. Metodenya bisa menulis file atau malah memasukkan ke table log.
Malah menambahkan fitur kirim email saat backup selese juga pilihan yang baik.
MASTER SLAVE
Mysql atau server DB modern memiliki konsep replikasi secara langsung. Makanya saya
menyebutkan dibutuhkan 2 server berbeda IP (annggap secara fisik) untuk saling bertukaran
data. Namun masalahnya tentu pada biaya dan waktu pembuatan. Sebenarnya kalau ingin 1
server (fisik) saja bisa.. tetapi kita harus menjalankan 2 mysql server dalam 1 server.
Mysql pertama memakai port normal, sedangkan mysql lainnya (slave) memakai port berbeda.
Bahkan untuk konsep yang lebih tinggi dan juga apabila Sumber Daya cukup, konsep pengerjaan
DB juga memakai metode
Server Master untuk menulis, server Slave untuk dibaca. Yah tentu saja buat developer yang
biasa memakai 1 database (config) akan kesulitan. Namun itu proses yang harus dikerjakan
Semua proses ini membutuhkan config agar php jalan di OS kita. Apabila di linux, ini sebenarnya
sudah langsung, apalagi Mac yang saya lihat memiliki konsep yang sama! Bagaimana dengan
Win atau lainnya, sayangnya konsep OS ini berbeda.
WINDOWS
MENCOBA DI CONSOLE
Sampai di proses ini, kita sudah bisa menjalankan di console. Buka console windows
(linux/Mac)
Ketik
php –v
Apabila keluar, maka proses berikutnya kita dapat melakukan proses sebagai berikut
• Menjalankan composer
• Menjalankan script php under console
• Dan lain-lain
MEMASANG COMPOSER
Saya merasa apabila anda berhasil pasang php seperti di atas, memasang composer akan lebih
mudah! Apalagi memasang GIT. Terdapat metode pasang COMPOSER dan GIT yang tersebar di
internet. Tetapi dengan dasar bahwa php berhasil jalan di console, semua akan lebih mudah!!
Akan lebih baik mencoba memasang sendiri, lalu apabila ada masalah baru konsultasi pada grup
atau internet. Saya menyarankan untuk memakai PHP 7.1 atau bila masih memakai php 5.6,
saya lihat ada banyak ketertinggalan terutama pada code yang kamu gunakan
Banyak tutorial di ‘lembaga pendidikan’ yang masih memakai php 4!! Ingat bukan php 5. Saya
melihat codingnya masih memakai
Masalah point sulitnya transformasi ilmu ini yang jadi perhatian saya. Pertama yang harus kita
sadari adalah
Hal-hal berikut yang akhirnya membuat lembaga pendidikan tidak bisa meningkatkan
silabusnya., terutama SDM yang kurang. Andai saja ada yang dapat berbagi silabus untuk
mempelajari PHP dengan metode baru, maka peningkatan versi PHP sangat bermanfaat.
SILABUS
Langkah-langkah yang saya sarankan dalam pembuatan silabus. Awali dari membuat tujuan
dari silabus dari awal hingga akhir. Kita harus membagi silabus dalam 3 atau lebih tingkatan
yang diawali dari dasar hingga advance
TINGKAT DASAR
Pada tingkat ini, hal pertama yang harus diberikan adalah beberapa hal yaitu
TINGKAT MENENGAH
• Membangun fungsi sendiri, termasuk membuat nama fungsi yang enak dibaca. Dalam
bahasa lain kita bisa sebut “readable”
• Lebih detail dengan class yang bersifat independence. Extend dan lain-lain berikutnya
• Membangun class sendiri
• Memakai private, public dan lain-lain dalam class
• Memiliki akun Git
• Memasang GIT dan COMPOSER
• Mulai memakai framework seperti CI
Lanjutannya bisa langsung memakai framework seperti laravel atau YII juga bisa. Tapi akan
lebih bagus diawali dengan memasang GIT dan Composer. Kenapa GIT perlu? Karena kita perlu
untuk melakukan backup source code kita, walau terlihat remeh untuk pemula tetapi baik untuk
kedepannya. Bahkan memakai GIT (yang artinya punya akun Git seperti gitlab) bisa menjadi
portfolio. Tidak heran apabila kalau kita dari kuliah sudah punya portfolio, maka kedepannya
kita mudah mencari pekerjaan.
Pada tingkat ini, akan baik kalau dipisah menjadi 2 bagian atau kita sebut 2 silabus. Silabus
pendahuluan tingkat menengah dan silabus utama dari tingkat menengah. Karena pada
penjelasan awal dijelaskan memasang GIT dan COMPOSER, maka kedepannya akan lebih
kepada memakai framework
FRAMEWORK
Sebenarnya Framework bukan merujuk pada nama seperti CI, Laravel dan YII. Tetapi lebih
kepada metode kamu membuat coding yang mudah. Ketika kamu memakai framework di atas,
metode yang memudahkan kamu dan team bekerja itu harus di utamakan. Dari konsep yang
saya buat, semua modul-modul (saya sebut modul untuk plugin dan lain-lain) saya pisah-pisah
untuk mudah dalam memperbaiki. Namun kesulitannya adalah apabila terpecah banyak maka
akan sulit mengeditnya karena akan banyak file yang di edit. Tetapi apabila berkumpul dalam 1
file, maka file itu akan besar
Dalam Framework tidak memungkinkan kita memberikan hal terbaik atau termudah. Karena
fokus utama dalam Framework adalah kecepatan, kadang kecepatan tak selalu harus dalam
bentuk coding pendek. Malah kadang panjang untuk validasi yang lebih baik.
Menjadi coding yang pendek kadang perlu pengalaman lama, hingga mendapatkan coding yang
sesuai dengan kebutuhan. Terkadang malah kita harus melakukan copy paste coding yang
sebenarnya bisa digunakan ulang. Kadang juga kita terpaksa melakukan karena kemungkinan
ada config berbeda pada setiap coding.
Jadi ketika memakai framework, gunakan kemampuan framework tersebut dalam membangun
web. Tetapi fahami juga bagaimana struktur yang baik, kita akan mengenal
• Controller
• Model
• Middleware
• View
• routes
• Dan lain-lain
Framework tidak bisa bekerja sendiri tanpa plugin dan library. Beberapa plugin dan library
dapat dipanggil melalui composer, sehingga tak langsung memakai composer adalah penting
belakangan ini.
Tutorial plugin dan library pastinya banyak tersebar di Internet. Tetapi kita ini lebih cocok
kalau mencontoh bukan hanya diberikan teori. Membahas library tertentu harusnya dimulai
dari
• memberikan contoh
• menjelaskan fungsi terkait,
• membuat contoh lain dengan data berbeda
• datatable. Atau plugin table yang bersifat dinamis, bisa juga jquery easy-ui dan lain-lain
• pdf. Saya lebih suka pada html-pdf. Tetapi pdf library biasa udah sepaket dengan
framework (di Laravel) sehingga bisa langsug dipasang saat menjalankannya
• excel. Fakta bahwa banyak laporan minta dalam bentuk excel, menunjukkan bahwa
excel wajib dipasang
• bootstrap. Ada banyak pilihan lain, tetapi yang terkenal kebetulan bootstrap. Memakai
yang lain juga disarankan
• dan lain-lain
plugin dan library di atas bisa dibilang adalah pembahasan yang harusnya masuk kedalam
silabus. Tetapi tidak menutup kemungkinan apabila memasukkan plugin dan library lainnya
seperti
• kendo ui
• jqgrid
• jquery ui. Salah satu jquery yang layak di pasang. Tetapi bukan pilihan yang disarankan
• jquery graph. Maksudnya plugin grafik yang memakai jquery. Sayangnya membuat
graph kadang tidak bisa memakai plugin bawaan framework, karena ada beberapa
kebutuhan custom yang kurang didukung oleh fungsi-fungsinya.
• dan lain-lain