Anda di halaman 1dari 46

#BasicPHPSharing #Daily #7

#HTTPRequestMethod
MOCHAMMAD ZACHRI·RABU, 20 MARET 2019·

** Intro **

Di PHP umumnya saat kita menerima parameter dari Client kita akan menerima dalam
bentuk request GET atau POST. Terkadang kita juga masih belum bisa membedakan kapan
kita menggunakan GET, dan POST.

Jika kalian sudah mulai membuat API Services, untuk merancang API yang baik. Ada
baiknya kita memahami lebih dalam mengenai HTTP Request Method.

** Kenapa? **

Mari kita mulai dari apa itu HTTP Request Method. HTTP Request Method adalah jenis
metode request yang selalu dikirimkan oleh Client ketika melakukan request ke Server.

Pada Best Practice nya, HTTP Request Method ini kita pakai untuk mengartikan sebuah
request berdasarkan Request Method yang dipakai. Berikut jenis-jenis request yang ada
di HTTP Request Method :

 GET : Request Method ini biasanya digunakan ketika Client mengirim request yang
bermaksud untuk mengambil data / resource dari server. Request Method GET memiliki
data yang dikirim di URL yang diawali dengan tanda tanya (?).

 POST : Request Method ini biasanya digunakan ketika Client mengirim request yang
bermaksud untuk menyimpan / menambahkan data atau resource ke server. Request
Method POST memiliki data yang dikirim di dalam Body Request.

 PUT / PATCH : Request Method ini biasanya digunakan ketika Client mengirim request
yang bermaksud untuk mengubah sebagian / keseluruhan data atau resource di server.
Pada Best Practice nya, ketika kita mengubah sebagian data kita akan menggunakan
PATCH dan jika kita mengubah keseluruhan data kita akan menggunakan PUT. Tapi pada
kenyataannya, dari beberapa kasus yang saya lihat baik skala kecil / besar. API” Services
hanya menggunakan PUT ketika melakukan perubahan data baik itu sebagian /
keseluruhan. Request Method PUT/PATCHmemiliki data yang dikirim di dalam Body
Request.

 DELETE : Request Method ini biasanya digunakan ketika Client mengirim request yang
bermaksud untuk menghapus data / resource di server. Request Method DELETE tidak
dapat menampung data. (Bisa di dalam Request Body, tapi tidak sesuai dengan Standar
yang ada jadi sangat-sangat tidak disarankan)

 OPTIONS : Request Method ini biasanya dikirim oleh Browser sebelum melakukan request
dengan method lainnya. Yang bertujuan untuk mengetest apakah request tersebut ada
kendala / tidak (seperti CORS, dsb)

Biasanya pada implementasi API, penggunaannya akan seperti ini. Kita akan mengambil
contoh mengenai Users :

 Request GET ke endpoint /users : Request untuk mendapatkan data seluruh user

 Request GET ke endpoint /users/1 : Request untuk mendapatkan data user yang memiliki
id 1

 Request POST ke endpoint /users : Request untuk menambahkan data user baru

 Request PUT/PATCH ke endpoint /users/1 : Request untuk mengubah data user yang
memiliki id 1

 Request DELETE ke endpoint /users/1 : Request untuk menghapus data user yang
memiliki id 1

** Solusi **

Dengan penjelasan diatas, sekarang kita paham apa saja jenis HTTP Method, bagaimana
data yang dikirimnya, dan bagaimana contoh penggunaan pada umumnya. Lalu
bagaimana cara menghandle data yang dikirim oleh request tersebut?

Sekarang kita akan mencoba untuk menerima data yang dikirim dari masing” request
tersebut :

 GET
Kita dapat menggunakan variable default yang ada di PHP untuk menerima value dari
Request Method GET, yaitu $_GET . Contohnya seperti ini :

Image 1. Handle GET Request

 POST
Sama seperti GET request, kita dapat menggunakan variable default PHP yaitu $_POST .
Contohnya seperti ini :

Image 2. Handle POST Request

 PUT / PATCH
Kali ini PHP tidak memiliki variable default untuk melakukan handle Request Method
PUT / PATCH . Tapi kita sudah paham, bahwa request tersebut menaruh datanya di Request
Body. Kita bisa baca langsung Request Body nya dari php://input yang berisi Raw
Request Body , kita ambil menggunakan fungsi file_get_contents() . Contoh disini isi
dari Request Body nya memiliki format Query String, kita bisa gunakan fungsi
parse_str() ( jika JSON, bisa pakai json_decode(), dsb )untuk melakukan parsing
Request Body agar bisa kita pakai serupa seperti $_POST dan $_GET, disini saya assign ke
variable $_PUT supaya jadi mirip” variable default PHP. Contohnya seperti ini :Image 3

Image 3. Handle PUT Request

 DELETE
Untuk Request Method DELETE , berhubung method tersebut tidak bisa mengirimkan data.
Yang bisa kita terima hanyalah data dari URLnya saja, di contoh berikut data id nya
diambil dari GET :

Image 4. Handle DELETE Request

** Penjelasan **

Dari materi kali ini, kita sudah bisa memahami apa itu HTTP Request Method, jenisnya,
bentuknya, dan cara menerimanya di PHP.

Dengan itu kita sekarang harusnya bisa lebih paham dalam membuat request ke server /
menerima request dari client. Kita pun tidak akan bingung jika harus mengintegrasikan
apps kita dengan API services lain karena melihat ada 1 endpoint dengan nama yang
sama tapi berbeda Request Method ( percaya tidak percaya, banyak yang suka bingung
dengan hal ini ). Bahkan kita pun siap untuk membuat API services sendiri yang sesuai
dengan standar orang banyak :D
** Catatan **

Mungkin akan ada pertanyaan, bagaimana cara saya membedakan Request PUT / PATCH /
DELETE ? Kalian dapat mendapatkan informasi tersebut dari variable default PHP yaitu
$_SERVER dari value REQUEST_METHOD nya seperti ini :

$request_method = $_SERVER[‘REQUEST_METHOD’];

balikannya akan berupa String nama Request Method yang dipakai dengan format
semuanya Uppercase (GET,POST,PUT,PATCH,DELETE) .

Lalu, ada juga sebenarnya tipe Request Method yang tidak saya sebutkan. Tetapi karena
itu kasusnya jarang kita perlu terapkan / ketahui jadi tidak saya cantumkan ( HEAD,
CONNECT, TRACE, etc )

#BasicPHPSharing #Daily #8
#MengenalJSON
MOCHAMMAD ZACHRI·KAMIS, 21 MARET 2019·

** Intro **

Di materi kali ini, kita akan membahas mengenai JSON. Mungkin kalian disini sudah
banyak yang familiar dengan JSON. Tapi disini saya akan menjelaskannya sedikit lebih
detail dan lebih khusus pengolahannya di PHP.

Apa itu JSON? JSON singkatan dari JavaScript Object Notation. JSON adalah sebuah
format data yang basicnya berasal dari Bahasa Pemograman JavaScript, tetapi saat ini
sudah menjadi format data yang universal dan compatible di banyak Bahasa
Pemograman lainnya.

Mari kita kenali bentuk format data JSON :

{“username”:”ariemeow”,"last_login":155322352,"company":["PT. ABC","PT CDE"]}

JSON umumnya memiliki format data berupa key-value object yang berada di dalam
kurung kurawal ({}). Dengan contoh diatas, saya memiliki sebuah JSON Object yang
berisi :

- key username dengan value String ariemeow


- key last_login dengan value Integer 155322352
- key company dengan value Array yang berisi 2 String PT. ABC dan PT CDE

** Kenapa? **

Kenapa kita harus memahami soal JSON? Karena JSON adalah salah satu solusi untuk
kita dapat mengirim / menerima data dari platform lain yang mungkin dibuat dengan
bahasa pemograman yang berbeda.

Tapi perlu diingat, JSON disini beda penggunaannya seperti Object yang ada di
JavaScript yang bisa kita masukkan apapun kedalam objectnya.

Berikut tipe-tipe data yang support di format data JSON :

- String
- Number (Integer & Float)
- Object
- Array
- Boolean
- NULL

** Solusi **

Sekarang kita mulai dengan pengolahan JSON di PHP. PHP memiliki beberapa fungsi
bawaan untuk menangani mengenai JSON. Yang akan kita bahas disini sekarang ada 3
yaitu json_encode() , json_decode() , dan json_last_error() .

 json_encode($data, $option = 0, $depth = 512)


Fungsi ini berguna jika kita mau melakukan generate JSON data dari data di PHP. .
Fungsi ini memiliki 1 parameter yang wajib diisi yaitu $data dan 2 parameter opsional
yaitu $option dan $depth . Jika json_encode() gagal melakukan generate JSON, maka
fungsi ini akan mengembalikan value NULL

o $data : Parameter pertama json_encode() ini dapat diisi dengan sebagian besar tipe data
di PHP, data tersebut bisa dijadikan parameter di json_encode() kecuali data yang berupa
Resource (Baca #3)

Image 1. Contoh penggunaan json_encode()

Image 2. Output pengunaan json_encode()

 $options : Parameter kedua json_encode() ini dapat diisi dengan PHP Default JSON
Constant untuk menyesuaikan format JSON yang akan digenerate. Memiliki default
value 0
Image 3. Penggunaan json_encode() dengan parameter option

Image 4. Output json_encode() dengan param option JSON_PRETTY_PRINT

 $depth : Parameter ketiga json_encode() ini dapat diisi dengan angka maksimal tingkat
kedalaman dari sebuah JSON data. Default value dari parameter ini adalah 512

 json_decode($json_string, $array_associative = FALSE, $depth = 512, $options = 0)


Fungsi ini adalah lawan dari json_encode() yang tadi berfungsi untuk melakukan
generate dari data PHP ke bentuk JSON Data. json_decode() ini berfungsi untuk
melakukan parsing dari JSON Data ke data PHP.
Fungsi ini memiliki 1 parameter yang wajib diisi yaitu $json_string , dan 3 parameter
opsional $array_associative , $depth dan $options . Jika json_decode() gagal
melakukan parsing JSON Data, maka fungsi ini akan mengembalikan value NULL

o $json_string : Parameter pertama json_decode() ini berisi String JSON Data yang akan
diparsing.

Image 5. Contoh penggunaan json_decode()


Image 6. Output penggunaan json_decode()

 $array_associative : Parameter kedua ini memiliki jenis tipe data Boolean. Jika kita set
TRUE, maka balikan dari json_decode() jika berhasil akan berupa Array , dan Jika kita set
FALSE maka balikannya akan berupa Object. Default value dari parameter ini adalah
FALSE .

Image 7. Contoh pengunaan parameter kedua json_decode()

Image 8. Output json_decode() dengan param kedua

 $depth : Parameter ketiga json_decode() ini dapat diisi dengan angka maksimal tingkat
kedalaman dari sebuah JSON data yang diparsing. Default value dari parameter ini
adalah 512
 $options : Parameter keempatjson_decode() ini dapat diisi dengan PHP Default JSON
Constant untuk menyesuaikan format JSON yang akan diparsing. Memiliki default
value 0

 json_last_error()
Fungsi ini dapat kita gunakan saat kita sudah menggunakan fungsi json_encode() atau
json_decode() dan dalam prosesnya itu terjadi kesalahan dan mengembalikan value NULL
. Fungsi ini akan mengembalikan value berupa Integer yang bisa kita compare dengan
PHP Default JSON Constant untuk mengecek kesalahan apa yang terjadi.

** Penjelasan **

Dari materi kita mengenal JSON di atas, kita sekarang bisa mengolah JSON Data di
PHP ataupun membuat JSON Data di PHP untuk kebutuhan kita. Kita pun jadi
mengetahui format data lain yang bisa digunakan untuk berkomunikasi dengan apps lain
diluar apps kita.

#BasicPHPSharing #Daily #6
#MengenalClass
MOCHAMMAD ZACHRI·SELASA, 19 MARET 2019·

** Intro **

Jika anda adalah seorang coder PHP, cepat atau lebih cepat akan tiba saatnya dimana
anda harus memahami mengenai Class.
Dengan kita memahami Class, kita dapat selangkah lebih maju untuk memahami
Pemograman Berbasis Object atau bahasa kerennya sih OOP (Object Oriented
Programming).
** Kenapa? **

Umumnya, library” PHP berbentuk Class. Ketika kita ingin membuat sebuah Object pun,
pasti kita membuat Class.
Singkatnya, Class di PHP bisa kita anggap sebagai Template dari sebuah Object. Kita
bisa set properti” dari Class sehingga membentuk sebuah Object.

Mari kita gunakan analogi Manusia, jika Manusia adalah sebuah Class. Maka di Class
tersebut akan memiliki banyak property, seperti Nama, Gender, Tanggal Lahir,
Golongan Darah, dsb. Ketika Class tersebut sudah di set propertynya sehingga
memiliki identitas tersendiri maka kita bisa menyebut itu sebagai Object.

Dan itulah awal dari yang tadi kita sebuat OOP, karena OOP itu segalanya berbasis
Object dalam proses code nya.

** Solusi **

Jadi, mari kita mulai membuat Class. Kita pelajari sambil membuat contoh Class kita
sesuai analogi di atas. Class di PHP di awali dengan syntax class lalu diikuti dengan
nama Class-nya.

Image 1. Awal pembuatan Class

Lalu kita set property dari Class Manusia tersebut dengan property seperti diatas.
Image 2. Set Property Class Manusia

Property di class, bisa kita akses dengan cara menggunakan variable $this-
>[nama_variable]. Contohnya property $nama, kita akses dengan menggunakan $this-
>nama .

Di Image 2 kita bisa lihat di depan variable ada syntax public , itu berarti property dari
Class tersebut bisa diakses diluar Class tersebut. Ada juga syntax lainnya seperti :

 private : property hanya bisa diakses di dalam scope Class tersebut

 protected : property hanya bisa diakses di dalam scope Class tersebut dan Sub-Class
(Turunan) dari Class Tersebut

Sekarang kita lanjutkan untuk membuat Constructor dan Destructor dari Class yang kita
buat. Apa itu Constructor / Destructor?

Constructor adalah sebuah method khusus di Class yang digunakan untuk membantu
kita melakukan inisialisasi pembuatan Class. Constructor berupa method __construct()
di Class yang bisa berisi parameter ketika Inisialisasi Class.

Destructor adalah sebuah method khusus di Class yang digunakan untuk membantu kita
melakukan proses saat PHP sudah melepas Object tersebut dari proses memori karena
sudah tidak terpakai / selesai di eksekusi. Biasanya Destructor dipakai untuk melakukan
unset pada variable / menutup koneksi database / menutup handler file dan sebagainya.
Destructorberupa method __destruct() di Class tanpa parameter.
Image 3. sample Constructor dan Destructor di Class

Di Constructor tersebut saya menambahkan parameter yang sifatnya opsional, dan


parameter di Constructor tersebut saya set ke property Class Manusia. Di Destructor ,
saya melakukan unset pada property Class Manusia

Selanjutnya kita buat method di Class Manusia , disini method yang kita buat untuk
melakukan set property dari Class Manusia
Image 4. Setter Method di Class

Method di class pun sama memiliki syntax public seperti property, dan artinyapun sama.
Disini saya set methodnya public karena saya ingin method tersebut bisa diakses dari
luar Class .

(Optional) Di contoh method diatas, kita bisa kembalikan juga Class tersebut di balikan
method agar kita bisa melakukan Chaining Method. Apa itu Chaining Method? Chaining
Method adalah pemanggilan method secara berturut-turut dalam 1 object yang nanti bisa
dilihat contohnya dibawah.
Image 4.1 Optional add return $this suapay bisa Chaining Method

Sekarang mari kita coba membuat Object dari Class Manusia yang sudah kita buat. Kita
akan buat Object yang bernama Ani, seorang perempuan kelahiran 1 Januari 1999
dengan golongan darah O. Kita akan inisialisasi dengan cara melalui Constructor Class
Manusia.

Image 5. Create Object dari Class Manusia #1

Dan hasilnya :

Image 5.1 Hasil Object Ani


Sekarang kita coba lagi membuat Object Budi dengan menggunakan method yang kita
tadi sudah buat bukan dari Constructor. Disini saya menggunakan Chaining Method
yang tadi saya jelaskan di atas untuk pemanggilan methodnya.

Image 6. Create Object dari Class Manusia #2

Dan Hasilnya :

Image 6.1 Hasil Object Budi

** Penjelasan **

Dari pembuatan Class Manusia di atas, kita sudah bisa memahami Class di PHP seperti
apa. Penggunaannya pun bisa beragam sesuai kebutuhan.

** Catatan **
Dari materi Class di atas, masih banyak yang bisa kita dalami. Soal Sub-Class (Turunan)
, soal public - private - protected, dsb yang mungkin akan kita bahas di materi
selanjutnya nanti.
Pembuatan materi ini pun saya agak membatasi ke pengenalan mengenai Class, supaya
kita bisa memahaminya secara bertahap.
#BasicPHPSharing #Daily #5
#DesignPattern
MOCHAMMAD ZACHRI·SENIN, 18 MARET 2019·

** Intro **

Pernahkah kalian merasa saat sedang membuat sebuah fitur, kalian merasa dari fitur”
yang dibuat sebenarnya output dan input yang akan di proses sama. Tetapi butuh cara
proses yang berbeda. Jika jawaban kalian adalah ya, maka kita memiliki masalah yang
sama.
Saya pun sudah beberapa kali menemui hal seperti itu, samplenya yang saat ini sedang
saya kerjakan adalah soal Payment Gateway dan Delivery Services.

Saya memiliki data transaksi, data transaksi tersebut ingin saya proses untuk
menghasilkan input nomor referensi pembayaran yang kelak akan saya gunakan untuk
tracking pembayaran user di Payment Gateway. Tapi di Payment Gateway, banyak
payment methodnya dan cara prosesnya pun berbeda-beda.

Dan ketika saya bingung dengan masalah tersebut, saya ingat mengenai Design Pattern
dan mengimplementasikannya. Masalah saya pun selesai :)

Jadi, apa itu Design Pattern? Mungkin banyak referensi yang bisa kalian dapatkan di
gugel. Tapi disini saya akan menjelaskan dengan apa yang saya pahami.
Design Pattern adalah sebuah pola. Pola yang digunakan untuk menyelesaikan masalah
yang berulang / serupa. Design Pattern ada banyak, mulai yang mainstream (Factory,
Singleton, Strategy, dsb) hingga yang tidak. Karena setiap kita menyelesaikan suatu
masalah yang berulang, solusi yang kita kerjakan dapat dikatakan sebuah Design Pattern.
** Kenapa? **

Kenapa kita harus mengetahui soal Design Pattern? Karena kita sebagai coder pembuat
apps, bertujuan untuk menyelesaikan sebuah masalah pastinya. Dan untuk menyelesaikan
sebuah masalah, ada banyak cara. Dengan mengetahui soal berbagai macam Design
Pattern kalian bisa memilih solusi dari sebuah masalah yang seefektif mungkin.

** Solusi **

Disini saya akan soal salah satu Design Pattern yang saya gunakan untuk menyelesaikan
masalah saya diatas.

Saya membutuhkan 1 Class utama untuk handling data transaksi yang saya miliki , kita
buat nama Classnya Payment :

Image 1. Main Class Payment

Lalu kita buat salah satu jenis payment, misalnya contoh disini saya buat pembayaran
menggunakan BCA Virtual Account dengan nama Class BCA_Virtual_Account yang
meng-extends Class Payment :

Image 2. Child Class BCA_Virtual_Account


Untuk memudahkan sample, kedua Class tersebut saya satukan. Kalian dapat
memisahkannya supaya lebih tertata.
Image 3. Disatukan di 1 File sebagai sample

Lalu kita buat method di Main Class Payment yang bernama createPayment yang akan
kita gunakan untuk memproses data transaksi nanti.

Image 4. Method createPayment di Main Class

Setelah itu, kita buat juga method dengan nama yang sama seperti di Main Class (
createPayment ) di Class Payment Provider kita ( BCA_Virtual_Account ) Untuk
meneruskan method dari Main Class.
Lalu kita perlu menambahkan constant di Main Class yang berisi nama Class-Class
Payment Provider yang kita miliki. dan menambahkan method untuk melakukan set
Payment Provider yang akan kita pakai ( setPaymentProvider() ).
Image 5. Membuat setter Payment Provider di Main Class

Variable $active_instance di atas saya tambahkan untuk menampung Class Payment


Provider yang di set.
Sekarang kita arahkan method di Main Class untuk memanggil method di Class Payment
Provider.
Image 6. Mengarahkan method di Main Class ke Payment Provider Class

Lalu kita tinggal pakai deh untuk mengolah data transaksi kita

Image 7. Proses Transaksi dengan Class Payment

Selesai, kita tinggal menambahkan Payment Provider lain sesuai kebutuhan dan hanya
cukup menambahkan referensi di Main Class
** Penjelasan **

Design Pattern diatas adalah salah satu cara penyelesaian masalah dengan pola Payment
Gateway yang saya hadapi. Tapi dari sana kita bisa implementasikan ke berbagai macam
hal.
Dengan mengimplementasikannya, saya dapat menghemat banyak code dan logic yang
tidak efektif dan dengan mudah melakukan manage code ke setiap fitur yang saya buat.

** Catatan **

Contoh code diatas adalah untuk keperluan sample, kita juga harus tetap mengecek jika
Child Class nya ternyata tidak ada, method yang kita mau pakai tidak ada, dan
sebagainya

#BasicPHPSharing #Daily #4
#isset()&empty()
MOCHAMMAD ZACHRI·MINGGU, 17 MARET 2019·

** Intro **

Akhir” ini, banyak saya melihat coder” PHP kurang memahami mengenai isset() dan
empty(). Berikut contohnya :

image 1. sample penggunaan yang kurang tepat.


Apa yang salah? Mungkin beberapa dari kalian tidak merasa ada yang salah dari code
tersebut. Tapi penggunaannya secara flow kurang tepat, karena sebelum kita mau
mengecek parameter ‘name’ di request kita harus memastikan terlebih dahulu apakah ada
parameter ‘name’ di request tersebut.
Jika tidak ada, maka akan menghasilkan error undefined index dan tentunya kita akan
menghindari kemungkinan terjadinya error di code yang kita buat.

** Kenapa? **

Sebelum kita membahas mengenai isset() dan empty() lebih jauh, kita harus memahami
dulu mengapa kita harus paham cara penggunaan kedua fungsi tersebut. Secara garis
besar,kedua fungsi tersebut berguna untuk mengecek apakah suatu value “ada” atau
“tidak ada”. Tetapi sebenarnya, penggunaan mereka berbeda.

** Solusi **

Sekarang mari kita pahami isset() dan empty() :

# isset()

Function isset() kita gunakan untuk mengecek apakah variable / index ada di code kita
atau tidak. Jika ada, maka function tersebut akan mengembalikan value TRUE dan jika
tidak ada maka akan mengembalikan FALSE .
image 2. isset() test #1

Tapi ada sesuatu lagi yang harus kita ketahui mengenai function isset() ini, yaitu jika
value yang kita cek ada tetapi memiliki value NULL. Maka isset() akan mengembalikan
value FALSE. Kenapa? Karena sesuai bahasan saya di #3, bahwa NULL
merepresentasikan bahwa variable tersebut kosong, tidak memiliki value dan itu isset()
menganggap bahwa itu sama saja dengan “tidak ada”.

image 3. isset() test #2

# empty()

Function empty() kita gunakan saat kita ingin mengecek apakah sebuah variable memiliki
value atau tidak. Value” yang dianggap kosong oleh function empty() adalah sebagai
berikut :

 ‘’ ( string kosong )

 0 ( angka 0 [integer] )

 0.0 ( angka 0 [float] )

 ‘0’ ( angka 0 [string] )

 NULL

 FALSE

 array() atau [] ( array kosong )


image 4. empty() test

** Penjelasan **

Jadi sekarang kita sudah memahami apa itu isset() dan apa itu empty(). Kedua fungsi
tersebut serupa tapi tidak sama. Sama-sama untuk mengecek value variable, tapi berbeda
cara pengecekannya.
Jika kita memiliki sample kasus seperti di awal, mengecek parameter dari client (front
end, apps, dsb), lebih baik kita mengecek apakah parameter tersebut ada atau tidak.
Kemudian baru kita cek, apakah parameter tersebut ada isinya atau tidak.

Tutup Catatan

#BasicPHPSharing #Daily #3
#TipeData
MOCHAMMAD ZACHRI·SABTU, 16 MARET 2019·

** Intro **

Biasanya, ketika mengerjakan code khususnya di PHP. Ada coder yang tidak peduli
dengan tipe data dari sebuah variable. Ya, karena PHP tidak terlalu strict dengan tipe
data.
Tapi tahukah anda, sering terjadinya kesalahan dikarenakan ketidakpahaman terhadap
tipe data ( ex : melakukan operasi aritmatika, menjadikan variable sebagai parameter
dengan tipe data yg strict, dll ). Apalagi jika apps yang anda buat berhubungan dengan
apps lain ( ex : API Services ).

** Kenapa? **

Pengetahuan mengenai tipe data itu sangatlah penting bagi seorang coder, walaupun pada
kenyataan dilapangan hal tersebut tidak mempengaruhi code mereka. Tapi dengan
memahami tipe data, code yang kalian kerjakan akan memiliki performa lebih baik dan
kalian pun benar” mengerti apa yang terjadi dengan code kalian.

** Solusi **

PHP Memiliki beberapa tipe data :


- Integer

Tipe data ini berisi data berbentuk angka real (negatif / positif), tanpa desimal. Contoh :
$a = 123;
- String

Tipe data ini terdiri dari huruf, angka, ataupun karakter spesial. Assignment variable
dengan tipe data String diawali dengan tanda kutip 1 ( ‘ ). Contoh : $a = ‘text’;

- Float

Tipe data ini berisi data berbentuk angka desimal. Pemisah angka dengan desimalnya
menggunakan titik ( . ). Contoh : $a = 5.550;

- Boolean

Tipe data ini hanya memiliki 2 jenis value TRUE atau FALSE ( bisa dialias juga menjadi
1 atau 0 ). Contoh : $a = TRUE;
- Array

Tipe data ini dapat menampung banyak jenis variable dengan berbagai jenis type data.
Contoh : $a = [1,2,3,4,5];

- Object

Tipe data ini tidak hanya menampung berbagai macam data, tapi juga menampung
method, function, dsb. Contoh : $a = new User();
- Null

Tipe data ini adalah tipe data yang menyatakan bahwa data tersebut kosong dan hanya
bisa diisi dengan value NULL. Contoh : $a = NULL;

- Resource

Tipe data ini biasanya adalah tipe data yang menyimpan referensi”, handler, dengan
sesuatu dari luar sistem. contoh : $a = mysqli_connect();

** Penjelasan **

Dengan memahami tipe data, sekarang kita bisa mengetahui. Variable apa, berisi data
apa, dengan jenis data apa, dan bagaimana cara handling nya.
Tapi ada satu pertanyaan lagi, bagaimana jika isi dari variable tersebut yang diterima
tidak sesuai dengan yang kita inginkan?

$a = $_POST[‘harga’]; // Kita mengharapkan Integer, ternyata yang kita dapatkan


String
kita dapat merubah tipe data variable tersebut dengan bantuan function” default dari PHP
ataupun dengan cara casting tipe data.
Berikut samplenya jika kita memakai function default PHP :
- intval($a); // merubah menjadi Integer
- strval($a); // merubah menjadi String
- floatval($a); // merubah menjadi Float
- boolval($a); // merubah menjadi Boolean

Atau Casting tipe data;


- (int) $a; // merubah menjadi Integer
- (string) $a; // merubah menjadi String
- (float) $a; // merubah menjadi Float
- (bool) $a; // merubah menjadi Boolean

** Catatan **

Mungkin dari penjelasan saya masih banyak hal yang kurang, mengenai apa dampaknya
secara langsung pada code, atau misalnya requirement parameter untuk melakukan
casting, handling error gagal casting, dll. Tapi hal itu akan saya jelaskan dilain
kesempatan / kalian bisa mencoba sendiri.

Mengapa saya menjelaskan hal ini? Karena saya lihat di beberapa grup pemograman
(bukan hanya PHP sebenarnya), banyak coder yang tidak paham apa itu tipe data. Dan itu
adalah sesuatu hal yang buruk menurut saya. Karena semua data yang kita olah di apps
kita, mereka memiliki tipe data yang berbeda-beda dan kita harus tau supaya kita bisa
mengolahnya dengan baik.

Jika kalian berkutat dengan API Services pihak luar, biasanya mereka lebih strict
terhadap soal tipe data ini. Parameter yang kita kirim isinya benar, tapi salah tipe data
akan menyebabkan gagal request.

Semoga bermanfaat, ditunggu sharing” lainnya besok :)


btw, kalau misalnya ada yang merasa ada sesuatu yg basic yang kalian rasa semua coder
(terutama PHP) harus memahaminya, boleh suggest kok buat saya bahas detailnya sejelas
mungkin

Tutup Catatan

#BasicPHPSharing #Daily #2
#UNIXTimestamp
MOCHAMMAD ZACHRI·JUMAT, 15 MARET 2019·

** Intro **

Biasanya, ketika kita menyimpan record di Database. Kita memerlukan referensi


mengenai waktu ( waktu data itu disimpan, terakhir diubah, dll ).

( banyak ) dari kita akan menggunakan format seperti 2019-03-15 19:00:00 dan
menyimpannya ke Database.
Data tersimpan, referensi waktu ada, semua selesai. Tapi masih ada 1 masalah ... Zona
waktu.

Mungkin jika apps yang kita buat hanya diakses di 1 lokasi, it wont be any problem. Tapi
bayangkan, jika apps yang dibuat adalah apps yang digunakan oleh orang banyak, yang
kita gak bisa tebak darimana saja.
Mereka akan melihat sebuah referensi waktu yang tidak tepat dengan waktu yang mereka
jalani.
// Local Machine Server berada di zona GMT+9
// User Berada di zone GMT+7
echo date('Y-m-d H:i:s'); // output : 2019-03-15 19:00:00
Output yang diharapkan seharusnya adalah waktu sesuai dengan waktu user kita ( output
: 2019-03-15 17:00:00 )

** Kenapa? **

Karena ketika kita mengambil waktu ( khususnya dengan php function date() ), kita akan
mengambil waktu dari local machine dimana apps itu berjalan.

** Solusi **

Gunakan UNIX Timestamp sebagai referensi waktu.


UNIX Timestamp adalah selisih waktu saat ini dengan tanggal 1 Januari 1970 00:00:00
dalam satuan detik. Jadi jika kita memiliki waktu 1 Januari 1970 01:00:00 akan
menghasilkan Timestamp 3600

Jadi ketika kita menggunakan UNIX Timestamp sebagai referensi waktu kita. Kita tidak
perlu khawatir untuk menampilkan waktu kepada user. Karena waktu yang kita tampilkan
akan sesuai dengan user ketika diakses darimanapun.

// Local Machine Server berada di zona GMT+9 di waktu 2019-03-15 19:00:00


echo time(); // output : 1552644000

// Tampilkan ke user yang berada di zona GMT+7 (sample in JS)


var waktu = new Date((1552644000 * 1000)); // JS memiliki detail Timestamp hingga
micro detik, jadi dikali 1000
console.log(dt.toLocaleString()); // Output : 2019-03-15 17:00:00

** Penjelasan **

Kenapa saya menampilkan ke usernya dengan JS, bukan menggunakan :


echo date('Y-m-d H:i:s', 1552644000);

Karena jika saya menampilkannya dengan PHP, itu artinya tetap saja waktu yang
ditampilkan akan mengikuti waktu Local Machine Server karena waktu yang kita
tampilkan di "render" oleh server. Makanya Timestamp tersebut ditampilkan oleh JS
yang mengolahnya di tempat User itu sendiri dan akan mengikuti waktu si user tersebut.
** Catatan **

Hingga saat ini, sepanjang karir saya. Di awal saya pun sama selalu menggunakan format
DateTime ( 2019-03-15 19:00:00 ) untuk menyimpan referensi waktu.
Tapi ketika tiba dimana saya membuat apps yang dipakai orang banyak, saya menemui
masalah waktu tersebut karena user mengeluh bahwa waktu yang tampil tidak sesuai
dengan ketika ia melakukan hal tersebut.
Sampai saat ini pun banyak perusahaan" besar yang menggunakan data referensi dengan
format UNIX Timestamp ini (karena saya banyak berkomunikasi dengan API-API
perusahaan besar. Ex: GRAB)

#BasicPHPSharing #Daily #1
#referenceOnForeachLoop
MOCHAMMAD ZACHRI·JUMAT, 15 MARET 2019·

** Intro **

Jika kita memiliki sebuah array :


$arr = [1,2,3,4,5];

dan kita ingin memanipulasi isi dari array tersebut saat loop seperti ini :
foreach($arr as $arr_data){
$arr_data += 1;
}
// $arr masih [1,2,3,4,5]

(kebanyakan) pasti pakai variable lain untuk menampung data hasil manipulasinya seperti
in :
$new_arr = [];
foreach($arr as $arr_data){
$new_arr[] = $arr_data+1;
}
// $arr masih [1,2,3,4,5]
// $new_arr berisi [2,3,4,5,6]

karena jika tidak begitu, manipulasi yang kita lakukan di dalam loop tidak akan merubah
isi dari array yang kita punya ketika dipakai diluar loop.

** Kenapa? **

karena saat kita melakukan loop, value yang kita gunakan di dalam foreach tidak
mereferensikan value dari array tersebut.

** Solusi **

Gunakan tanda & di value yang akan di loop, contoh :


foreach($arr as &$arr_data){
$arr_data += 1;
}
unset($arr_data);
// $arr berisi [2,3,4,5,6]

** Penjelasan **

tanda & bisa diartikan bahwa kita bermaksud untuk menjadikan variable tersebut berupa
referensi terhadap nilai aslinya (disini samplenya adalah nilai dari isi $arr).

Jadi saat loop, yang kita manipulasi adalah benar-benar isi referensi dari $arr

** Catatan **

Kenapa setelah loop ada unset()?


Karena jika tidak ada unset, variable tersebut akan tetap ada hingga program selesai di
eksekusi
foreach($arr as &$arr_data){
$arr_data += 1;
}

echo $arr_data; // ini akan tetap berisi angka 6

** Selesai **

Jika member-member, admin-admin, sepuh-sepuh disini berkenan. Saya ingin sharing


setiap hari 1 case mengenai basic PHP yang casenya akan sangat terpakai di dunia real.

http://didanurwanda.github.io/CodeIgniterStrap/javascript.html#collapse

https://github.com/kamranahmedse/developer-roadmap
Mempercepat Development
dengan Package Control /
Extensions CodeIgniter Snippets
(Sublime 3 dan VS Code)
THOMAS JERIKO·JUMAT, 07 DESEMBER 2018·

 Sublime 3

1. Buka Sublime 3 -> Pada menubar pilih Preferences ->Package Control

2. Pilih Package Control:Install Package ->Cari “CodeIgniter Snippets”

Daftar Cara Penggunaan : https://packagecontrol.io/packages/CodeIgniter%20Snippets

Contoh Penggunaan :

 VS Code

o Buka Visual Code ->Pada Side Bar Menu ->Pilih Extensions

o Pada Kolom Pencarian Ketikan “ci-snippets2”

Contoh Cara Penggunaan kurang lebih sama seperti di sublime:

PS: Bila ada kekurangan silahkan suhu suhu menambahkan atau memperbaiki. sekian
Cara menginstall XAMPP di windows
BY AGUS YUSIDA OKTOBER 25, 2019 4 VIEWS

Jika kamu ingin membuat website di komputer pribadi kamu, maka kamu membutuhkan
sebuah web server. Nah salah satu aplikasi untuk membuat web server di komputer
kamu adalah XAMPP.

Lalu bagaimana cara menginstall xampp di komputer windows kamu?

1. Pertama Download XAMPP

Kunjungi link berikut dan download xampp sesuai dengan sistem operasi yang kamu
pakai.

https://www.apachefriends.org/index.htm

Kemudian buka aplikasi yang sudah kita kita download tadi. Contohnya: xampp-windows-
x64-7.3.10-1-VC15-installer.exe

1. Pilih Bahasa, pilih bahasa yang kamu inginkan. Misalnya english.


2. Kadang-kadang setelah pilih bahasa muncul pesan warning seperti gambar dibawah
ini. Tapi kamu tinggal OK saja.

3. Dibawah ini adalah tampilan pertama dari installer XAMPP, tekan tombol Next

4. Selanjutnya kamu akan diminta untuk memilih aplikasi apa saja yang ingin di install.
Centang saja semuanya dan klik tombol Next.
5. Langkah selanjutkan adalah menetukan lokasi dimana xampp ini akan di install.
Secara default, pathnya adalah di C:\xampp, jika kalian ingin merubah foldernya, tinggal
ganti saja sesuaikan dengan path yang diinginkan. Tekan tombol Next.
6. Selanjutnya proses intall xampp akan dimulai, mungkin butuh waktu beberapa menit
sampai proses ini selesai.

7. Setelah semua proses selesai, maka akan muncul tampilan seperti di bawah ini.
Jika kamu mencentang checkbox di atas dan klik tombol Finish, maka laucher xampp
akan terbuka dan XAMPP sudah selesai terinstall di komputer kamu

Ini adalah tampilan awal dari xampp.

Langkah selanjutnya adalah memulai service Apache dan MySQL.

Apache berfungsi sebagai webserver, dan MySQL adalah dabatase server yang
digunakan untuk menyimpan data dari aplikasi yang akan kita buat.

Untuk memulai, kamu hanya menekan tombol Start di kanan masing-masing module.
Terkadang akan muncul alert seperti diatas. Tidak usah kawatir, kamu hanya tinggal klik
tombol Allow access saja.

Jika servicenya sudah berwarna hijau-hijau seperti di atas, maka service tersebut sudah
berjalan.

Lalu bagaimana cara mengetesnya?

Untuk mengetes web server, kamu bisa buka url http://localhost di browser. Jika tidak
ada masalah, maka akan muncul tampilan seperti berikut ini.
Tampilan defult localhost

Untuk membuka halaman phpmyadmin, kamu bisa buka


url: http://localhost/phpmyadmin

Jadi itulah cara menginstall XAMPP dikomputer kamu. Mudah bukan? Selanjutnya kamu
tinggal mulai belajar programming seperti belajar dasar-dasar php dan mysql.

Perbedaan REST dengan RESTfull API


REST ( Representational State Transfer) itu arsitektur sebuah
software, sedangkan RESTful API itu merupakan salah satu model
implementasi dari web service. RESTful API merupakan
implementasi dari API. RESTful itu protokol/aturan untuk
melakukan REST. Jadi RESTful itu udah pasti REST, namun
REST belum tentu bisa disebut RESTful.

Apa itu API

API adalah singkatan dari Application Programming Interface.


Merupakan suatu “penghubung” yang memungkinkan suatu
aplikasi untuk berinteraksi dengan aplikasi lainnya dan berbagi
data
(https://en.wikipedia.org/wiki/Application_programming_interf
ace).

Output API

Output dari RESTful ada XML dan JSON.

JSON (JavaScript Object Notation), beberapa ciri-ciri JSON.

1. Mudah di urai, bahkan oleh javascript pada sisi client, hanya


object biasa
2. Data transport lebih kecil
3. Proses urai lebih cepat

XML (Extensible Markup Language), beberapa ciri-ciri XML

1. Butuh XML Document untuk mengurai seperti Xpath


2. Data transport lebih besar
3. Proses urai lebih lambat

Sumber : http://slides.com/ferrisutanto/mengenal-restful-
api#/20

PENGERTIAN DAN KONSEP


RESTFUL API PROGRAMMING
PUBLISH ON MARET 17, 2019BY YUDANA
ARTIKEL IT

FacebookTwitter

RESTful API didasarkan pada teknologi state transfer (representational state


transfer / REST), gaya arsitektur dan pendekatan komunikasi yang sering
digunakan dalam pengembangan layanan web.

Meskipun REST dapat digunakan di hampir semua protokol, tapi biasanya


memanfaatkan HTTP ketika digunakan untuk Web API. Hal ini membantu
pengembang web tidak perlu menginstal library atau perangkat lunak tambahan
untuk memanfaatkan desain REST API. Design REST API pertama kali
diperkenalkan oleh Dr. Roy Fielding dalam disertasi doktor tahun 2000-nya.
REST API terkenal karena fleksibilitasnya yang luar biasa. Data tidak terikat
dengan metode dan sumber daya, REST memiliki kemampuan untuk menangani
beberapa jenis panggilan, mengembalikan format data yang berbeda dan
bahkan mengubah secara struktural tentunya dengan implementasi yang benar.
REST yang digunakan oleh browser dapat dianggap sebagai bahasa internet.
Dengan meningkatnya penggunaan cloud, API muncul untuk mengekspos
layanan web. REST adalah pilihan logis untuk membangun API yang
memungkinkan pengguna untuk terhubung dan berinteraksi dengan layanan
cloud. API telah banyak digunakan oleh situs-situs seperti Amazon, Google,
LinkedIn dan Twitter.

Cara RESTful APIs bekerja

API secara eksplisit memanfaatkan metodologi HTTP yang ditentukan oleh


protokol RFC 2616. Permintaan ke API bisa menggunakan GET untuk
mengambil sumber daya, PUT untuk mengubah status atau memperbarui
sumber daya, yang dapat berupa objek, file, atau blok, POST untuk membuat
sumber daya itu, dan DELETE untuk menghapusnya.

API dapat dikatakan “RESTful” jika memiliki fitur berikut :

Client – server : client menangani front end dan server menangani back end
dan keduanya dapat diganti secara independen satu sama lain.
Stateless : Tidak ada data klien yang disimpan di server ketika ada permintaan
dan status sesi disimpan di klien.
Cacheable : Klien dapat men-cache respon (seperti browser yang men-cache
elemen statis halaman web) untuk meningkatkan kinerja.

Format Respon Populer Dari REST API


– XML
– JSON

Keuntungan terbesar dari Restful API adalah Anda tidak perlu memasang apa
pun di sisi klien. SDK atau framework tidak diperlukan. Yang harus Anda lakukan
adalah membuat permintaan HTTP sederhana ke layanan end point dari API
target, biarkan server melakukan layanannya untuk Anda dan dapatkan hasilnya
kembali. Sangat mudah dilakukan.
Contoh paling sederhana adalah Google API untuk login. Anda tidak perlu
menghabiskan banyak waktu hanya untuk membuat sistem login untuk member
di website. Anda hanya perlu memanggil API dari google, pengguna hanya perlu
login ke Google kemudian Anda akan mendapatkan data semisal alamat email /
nama dari pengguna tersebut. Tentunya jika pengguna telah memberikan izin
mengunakan data mereka.

TAGS: ALGORITMA, PROGRAMMING, TEKNOLOGI

Anda mungkin juga menyukai