Ngoding jadi pusing karena lupa.

Breaking

Showing posts with label FRAMEWORK. Show all posts
Showing posts with label FRAMEWORK. Show all posts

Tuesday, January 16

January 16, 2024

Laravel Dan PostgreSql di Docker

    Kali ini saya sedang mencoba mempelajari PHP framework yang masih sering mendapatkan update yaitu framework Laravel. Framework ini dibangun dengan bahasa pemrograman PHP. Saat ini Laravel sudah mencapai versi 10.x.

    Untuk melakukan ujicoba, dan mebiasakan diri dengan framework ini, cara yang terfikir adalah dengan mencobanya dan terus mencoba hingga akhirnya bisa terbiasa dengan framework ini. Supaya saya bisa melakukan hal tersebut, saya membutuhkan server php, composer dan juga postgresql sebagai databasenya.

    Untuk server PHP nya, saya akan menggunakan Nginx.Karena Nginx tidak bisa mengexekusi script PHP, sehingga kita perlu menambahkan PHP FPM (FastCGI Process Management) sebagai eksekutor script PHP nya, sedangkan Nginx sebagai penerima request dari client ke PHP FPM, dan pemberi response hasil eksekusi dari PHP FPM ke client.

    Selain itu, saya juga memerlukan composer. Composer ini sangat mempermudah dalam melakukan installasi library atau dependency yang nantinya diperlukan ketika sedang melakukan ujicoba ataupun saat sedang mendevelop aplikasi menggunakan Laravel.

    Untuk kebutuhan - kebutuhan tersebut, akan saya letakkan di dalam docker. Hal ini seperti pada alasan yang sudah saya sebutkan di catatan saya sebelumnya Kenapa Docker ?

Apa saja yang akan kita lakukan ?

0. Persiapan
1. Membuat Dockerfile
2. Membuat docker-compose.yml
3. Membuat config untuk Nginx
4. Membuat Container
5. Membuat project Laravel baru
6. Menghubungkan Laravel dengan database Postgresql
7. Melakukan Pengecekan, apakah database sudah terhubung, dan data bisa tampil.

0. Persiapan

    Buatlah sebuah folder (Terserah dimanapun, asal jangan didalam recyclerbin). disini saya membuat folder dengan nama laravel-environment

    Didalam folder laravel-environment, saya membuat folder "database","docker-config","project"

1. Membuat Dockerfile (laravel-environment/Dockerfile)

    Menurut pemahaman saya, setiap kita ingin membuat container pada docker, kita perlu menentukan sumber imagenya darimana. Sudah banyak image yang dibuat oleh orang lain, dan kita hanya perlu membuat container dengan menggunakan image tersebut. Namun dalam keadaan sehari-hari yang kita hadapi, seringkali apa yang sudah disediakan berbeda dengan apa yang kita butuhkan. Itulah kenapa terkadang kita perlu membuat image itu sendiri supaya sesuai dengan apa yang kita butuhkan. 

    Dockerfile adalah dokumen teks yang berisi perintah untuk membangun sebuah image. Didalam file Dockerfile kita bisa memberikan perintah-perintah supaya image yang terbentuk nantinya akan menjadi image yang sesuai dengan kebutuhan.

    Sebelumnya sudah disebutkan, bahwa kita butuh PHP FPM untuk menjalankan script PHP, dan juga saya membutuhkan composer untuk membantu proses install library atau dependensi nantinya. Maka dari itu, saya akan membuat Dockerfile yang nantinya akan membentuk image dengan kombinasi (PHP FPM dan composer)

Berikut bentuk filenya :

2. Membuat docker-compose.yml (laravel-environment/docker-compose.yml)

    Image yang spesifik dengan kebutuhan saya, sudah saya persiapkan didalam Dockerfile sebelumnya. Sedangkan sisanya, seperti Nginx dan postgreSql tidak ada kebutuhan yang spesial. Jadi untuk image sisanya, saya akan menggunakan image yang sudah ada atau sudah disediakan.

    Tahap selanjutnya hanya perlu mengkombinasikan image - image menjadi container. Untuk membuat hal tersebut, saya membuatnya seperti berikut :

3. Membuat config untuk Nginx (laravel-environment/docker-config/default.conf)

    Sudah dijelaskan sebelumnya, bahwa Nginx tidak akan bisa menjalankan script PHP, sehingga kita perlu mengarahkan Nginx supaya menuju ke PHP FPM.

Berikut file config yang saya buat :

4. Membuat Container

    Semua persiapan untuk membuat container sudah selesai. Saatnya kita eksekusi untuk membuat containernya.

    Klik kanan folder laravel-environment, lalu pilih buka terminal (Setiap OS beda-beda). Setelah terminal terbuka, jalankan perintah berikut :

docker compose up -d

    Setelah selesai, jika kita buka Docker desktop, maka akan muncul container-container yang sudah diatur sebelumnya, yaitu postgresql, nginx dan php fpm.


5. Membuat project Laravel baru

    Pada saat saya membuat Dockerfile, di dalamnya saya juga sekaligus menambahkan perintah untuk melakukan install composer. Sehingga composer akan ada di dalam container yang dibangun dengan image dari Dockerfile tersebut. Pada kasus kali ini, composer terdapat pada container fpm-laravel-environment. Jadi jika ingin mengexekusi perintah composer yang ada di dalam container, bisa menggunakan perintah berikut :

docker exec -it fpm-laravel-environment composer create-project laravel/laravel /var/www/

Setelah prosesnya selesai, maka folder laravel-environment/project akan berisi project laravel. Sekarang coba akses localhost dari browser, seharusnya sudah bisa menampilkan halaman defaultnya Laravel.

6. Menghubungkan Laravel dengan database Postgresql

Untuk menghubungkan project laravel dengan database postgresql yang sudah saya buat, saya perlu merubah file .env yang ada di dalam folder laravel-environment/project menjadi seperti ini :


7. Melakukan Pengecekan, apakah database sudah terhubung, dan data bisa tampil.

    Setelah sudah selesai melakukan configurasi supaya Laravel bisa terhubung dengan database postgresql. Kita bisa melakukan perintah untuk membuat tabel migrasi. Ini nanti berguna dalam keperluan migrasi tabel dan lain - lain. Berikut perintahnya :

docker exec -it fpm-laravel-environment php /var/www/artisan migrate:install

Jika koneksi ke database sudah benar, seharusnya perintah sebelumnya tidak akan memunculkan pesan error. 

Selanjutnya saya akan membuat data seeder atau data dummy menggunakan perintah bawaan dari artisan. Namun sebelum menjalankan perintah pembuatan seedernya, saya perlu mengubah sedikit code yang ada pada laravel-environment/project/database/seeders/DatabaseSeeder.php menjadi seperti berikut :


Code tersebut digunakan untuk menjalankan perintah, membuat data seeder sebanyak 10 data. Berikut perintah yang perlu di jalankan untuk membuat seeder 

docker exec -it fpm-laravel-environment php /var/www/artisan migrate --seed 

 Sejauh ini sudah berjalan tanpa muncul kendala, saatnya saya butuh pembuktian bahwa data yang ada pada database bisa ditampilkan menggunakan laravel. Tapi saya perlu merubah beberapa code untuk menampilkan data yang sudah ada.

Pertama, ubah dulu laravel-environment/routes/web.php menjadi seperti berikut


Selanjutnya, ubah file laravel-environment/resources/views/welcome.blade.php. Tambahkan 

{{dd($data)}}

Pada posisi paling atas, sehingga terlihat seperti berikut :


 Lalu test akses localhost dari browser. Niscaya akan menampilkan tampilan seperti berikut :


Umh, Nais. Datanya sudah muncul, artinya sekarang environment laravel, postgresql sudah bisa digunakan. 

Oh iya, kalau ada yang ingin clone reponya, bisa clone dari sini ya : Laravel Environment

Thursday, February 21

February 21, 2019

Skill pertama yang harus anda miliki

Skill pertama yang harus anda miliki jika ingin menjadi seorang PROGRAMMER dengan cara otodidak akan saya bahas dengan bahasa dan dengan segenap pengalaman yang sudah saya alami sendiri di dalam artikel berikut ini.

Hai kalian para pembaca yang merasa masih newbie, masih nubb, masih bau kencur seperti saya (penulis) di bidang Pemrograman. Selamat, anda sedang membaca artikel yang tepat. Kenapa saya katakan tepat, karena dengan adanya Artikel ini, saya harap anda akan menjadi lebih baik.

Tukang ngomong.
Alasan saya membuat tulisan ini, sangat sederhana. Supaya kita semua bisa menjadi pemula yang tidak benar - benar kosong di bidang pemrograman. Ok, langsung aja yok apa sih Skill pertama yang harus kita miliki jika kita ingin menjadi salah satu orang yang bisa menyandang gelar ProGrammer.

Yang utama dan paling utama adalah Skill yang hanya bisa anda lakukan sendiri, karena skill ini biar bagaimanapun sejauh yang saya tau, belum pernah ada tutorialnya, kalaupun ada. mungkin hanya menjelaskan tentang kulitnya saja.

Apakah skill itu ?
Skill ini saya beri nama skill GOOGLING.

Yang mau skip membaca silahkan, yang mau lanjut, ayo lanjut bacanya.

Kenapa saya katakan skill GOOGLING. karena skill ini adalah skill yang sangat sulit untuk di ajarkan. Skill ini hanya bisa Bangkit dari diri seseorang yang benar - benar sudah mahir menggunakan GOOGLE dan juga mahir memilah dari hasil yang sudah diberikan GOOGLE.

Untuk calon programmer, ada skill tambahan yang perlu di kuasai setelah pandai memilah, yaitu tidak boleh takut untuk mencoba atas hasil yang sudah diberikan oleh GOOGLE (walaupun mungkin menyesatkan).

Selain itu, kenapa saya katakan ini adalah SKILL UTAMA yang harus dimiliki. Hal ini sangat mempengaruhi cara anda bertanya jawab di dalam suatu forum.

Ilustrasi :

PRO :
#Ask #Android Studio #RecyclerView
Permisi, saya ingin bertanya tentang RecyclerView, saya sedang mencoba untuk membuat event clik untuk setiap data yang akan di tampilkan oleh RecyclerView.
Saya sudah mencoba tutorial dari  tutorial ini, dan ini Namun masih tidak bisa. malah muncul NullPointerExeption.
Dan berikut ini Error yang dimunculkan.
Mohon bantuannya ya.


Ilustrasi :

SUPER NUB :
Om, bagi link tutorial RecYclerview donk.

Another one Ilustrasi :
The Power OF NUB :
Om, bagi source code Recyclerview donk.
Tenang, uang pulsa ada kok 10K.


Itu ada tiga contoh ilustrasi pertanyaan yang di lemparkan ke suatu forum yang sebenernya kurang lebih sama. hanya berbeda cara menyampaikannya. hanya saja, untuk mendapatkan pertanyaan yang nampak lebih baik, seperti pertanyaan yang pertama, Anda harus sudah menguasai skill GOOGLING dan add-on nya (Mencoba).

Coba renungkan, anda itu tipe yang mana ?

Jika anda sudah termasuk tipe yang pertama, selamat anda sudah termasuk menguasai skill GOOGLING.

Jika anda masuk ke kategori kedua dan ketiga. sebaiknya anda harus menguasai skill GOOGLING ini terlebih dahulu.


Halah, kebanyakan BACOT  omong doank !

Sepengalaman saya sebagai salah satu warga di suatu forum, walaupun bobot pertanyaannya dari 3 pertanyaan tadi, tapi yang akan di bantu di jawab adalah pertanyaan no 1.

Pertanyaan no 2 dan 3 akan di jawab, dengan jawaban : GOOGLING dulu sanah.
Palingan kalo lagi hoki aja pertanyaan no 2 dan 3 akan di jawab.

Ok, next
Benefit lainnya jika anda sudah menguasai skill ini, anda bisa menemukan solusi lebih cepat.

KENAPA ????

Ya banyangin aja, jika anda bertanya ke suatu forum dengan jumlah mencapai 1000 orang, anggap deh 800 orangnya sudah PRO semua, dari sisa 200 orang ini, apakah cuman anda yang akan bertanya ?
Tentu tidak, jika anda bertanya ke forum, pertanyaan anda bisa saja tertimbun dengan pertanyaan lain, dan lebih parahnya lagi, tertimbun oleh postingan yang tidak ada hubungannya di forum tersebut (link pemersatu bangsa misalnya). Nah selain itu, karena tipe pertanyaan yang anda tuliskan kemungkinan akan menjadi tipe 2 atau 3, maka para orang yang 800 tadi juga akan mengabaikan pertanyaan anda. Belum lagi jika ternyata di jawabnya setelah 1 jam anda bertanya, mngkin anda sudah lupa tadi bertanya apa.


Tapi jika anda sudah menguasai skill GOOGLING, anda tidak akan bertanya ke forum, anda akan langsung bertanya ke GOOGLE, dan mencoba, jika beruntung masalah anda akan langsung kelar, jika belum beruntung dan anda harus bertanya ke forum, maka pertanyaan anda akan menjadi pertanyaan dengan tipe no 1. Dan dengan pertanyaan tipe 1 ini, kemungkinan akan langsung di jawab akan sangat tinggi. 

Jadi gimana dengan skill ini ?
Masih mau mengabaikannya ?

Ok, semoga setelah membaca omongan dari Nub seperti saya ini, anda bisa menjadi lebih pro.
Silahkan tinggalkan saran dan komentar, supaya saya yang Nub ini bisa menjadi PRO juga.

Terimakasih banyak.

Saturday, November 24

November 24, 2018

DESIGN DATABASE PROJECT POS (Point of Sales)

Sebelumnya saya sudah mengatakan, jika saya akan membuat catatan tentang bagaimana saya membuat aplikasi Point of Sales sederhana dan memiliki beberapa fitur yang sudah saya sebutkan sebelumnya di catatan saya yang ini.

Ok, untuk memulainya saya awali dengan melakukan design databasenya terlebih dahulu. Saya sadar saya bukan designer yang baik, tapi saya mencoba mendesign database untuk project ini sesuai dengan apa yang sudah saya sebutkan fitur apa saja yang akan dimasukkan kedalam project ini.


Langsung saja saya Create database dengan nama "pos".
Click gambar untuk memperbesar gambar

Selanjutnya silahkan import file pos.sql yang bisa di download dari sini ke dalam database yang baru saja dibuat.

link yang baru saja saya tuliskan adalah link dimana project yang saya catat ini akan saya letakkan. sehingga anda bisa dengan mudah untuk mendownloadnya. Untuk file pos.sql saya letakkan di dalam folder database.

berikut ini adalah sketsa dari relasi yang saya buat antara semua table yang sudah saya buat.
Click gambar untuk memperbesar gambar
saya akan jelaskan kenapa untuk sebuah aplikasi PoS sederhana butuh table sebanyak itu.
saya akan jelaskan table per table nya. (Semoga tidak salah dan tidak membosankan).

1. History 

table ini saya buat untuk mencatat apa saja yang sudah di lakukan oleh pengguna (admin ataupun kasir) terhadap data. Jadi nantinya ketika si user melakukan update data ataupun insert data maka akan di catat ke dalam table ini. supaya jika suatu saat ada data yang berubah, bisa di deteksi siapa sih yang melakukan itu. 
field kode disitu di gunakan untuk menyimpan kode dari data yang di insert / pun dirubah.

create_at akan otomatis mengambil time dari komputer ketika data di simpan.
create_by akan menyimpan kode atau id dari user yang melakukan proses ini.

2. Users
table ini digunakan untuk menyimpan data dari penggunanya (username, password dan lain-lain).

3. Menu
Table ini saya buat untuk menyimpan data dari menu atau fitur apa saja yang ada di dalam aplikasi ini nantinya.

4. Otoritas

Jika dilihat dari sketsa pada gambar diatas, pada table ini akan menyimpan kode_menu dan juga kode_user. Di dalam table ini nantinya akan meyimpan si user ini memiliki hak akses akan menu apa saja.

Dalam table yang memiliki relasi, ketika dua buah table berelasi dengan tipe (M to M) atau Many to Many maka akan menciptakan table baru.
sesuai dengan note diatas, karena talbe Users dan table Menu memiliki relasi dengan type (M to M) maka muncullah table baru yang disini saya beri nama Otoritas. 

Kenapa saya sebut M to M ?
karena 1 data users bisa memiliki banyak data menu.

dan juga 1 data menu bisa dimiliki banyak users.

Untuk lebih jelasnya nanti akan saya contohkan ketika dalam project. 


5. Kategori
Table ini hanya digunakan untuk menyimpan beberapa data untuk membantu mengelompokkan jenis barang.

6. Barang
Sesuai namanya, Table ini akan digunakan untuk menyimpan data dari barang - barang yang akan dijual oleh pengguna.

7. Satuan
Table ini saya buat untuk menyimpan jenis-jenis satuan dari barang. Misalnya (piece, liter, Kg, butir, dll).

8. Jenis_promo

Karena promo ada beberapa jenis dan ketentuan, maka dari itu saya buat table sendiri untuk menyimpan jenis dan ketentuannya. Oleh sebab itu saya buat field rumus di dalam table ini. fungsi field ini adalah untuk membuat rumus perhitungan tersendiri untuk jenis promo tertentu, misalnya 
(Diskon 10% + 90%) atau contoh lainnya (Beli 3 gratis 1 produk yang sama) dan lainnya.

9. Promo

Table ini saya buat untuk menyimpan promo yang sedang terjadi. Misalnya barang ini sedang ada promo dari tanggal sekian hingga sekian. Nah data tersebut saya simpan di table ini.

10. Transaksi
Ketika ada pembeli melakukan pembelian, dan akan ada data yang berkurang karena sudah di beli, maka hal ini perlu di catat supaya bisa tau, kemana dan kapan suatu barang terjual.

11. Detail_transaksi
Karena ketika suatu transaksi terjadi, pembeli bisa saja membeli suatu barang lebih dari satu jenis. Supaya data tetap tercatat secara detail, maka dari itu saya membuat table ini untuk menyimpan detail dari suatu transaksi.
Misalnya :
pembeli membeli beberapa produk, yang salah satunya ternyata ada promonya, maka harganya akan berubah, data tentang harga yang berubah ini perlu di simpan supaya bisa tau kenapa barang yang dijual sekian, tetapi uang yang masuk tidak sesuai.

Ok, itulah penjelasnnya kenapa saya membuat begitu banyak table.
Terimakasih banyak.
Ikuti terus catatan ini, hingga project ini selesai ya..

Silahkan tinggalkan komentarnya...

Thursday, November 22

November 22, 2018

INTRO PROJECT POS (Point Of Sales)


Karena saya lebih suka belajar dengan cara praktik secara langsung (Mungkin ini bukan metode yang baik). Maka saya juga ingin membuat catatan yang serupa. Iya, saya akan membuat catatan yang saling berkesinambungan tentang bagaimana saya belajar menggunakan Codeigniter secara praktik. Dalam kasus kali ini saya ingin mencoba dengan membuat aplikasi sederhana yaitu Point Of Sales atau kalau bahasa kerennya itu aplikasi kasir (LoL). Karena ini berupa project, mungkin project ini akan memakan waktu cukup lama. Tapi, namanya juga catatan, semakin rapi dan semakin lengkap maka akan semakin baik (Menurut saya).


Yang saya inginkan dari aplikasi ini untuk sementara ini masih standart saja, yaitu :

  1. Multi User (admin dan kasir)
  2. Admin bisa menambah data dan merubah data (Termasuk menambahkan data kasir)
  3. Admin bisa mengatur otoritas untuk kasir
  4. Kasir hanya bisa mengakses apa yang di otoritaskan untuk dia
  5. Setiap transaksi harud ada catatannya, siapa yang melakukannya (baik itu kasir, maupun admin itu sendiri).
  6. Bisa mengaplikasikan Promo.
  7. Bisa Membuat laporan (Excel dan Pdf).
  8. Akan menggunakan template AdminLTE (Free)

sedangkan tahapan tahapan pembuatanya, yang baru terfikir adalah mendesign databasenya.

Ok, doakan supaya catatan ini berjalan dan selesai tanpa memakan waktu yang terlalu lama.

Terimakasih banyak, silahkan tinggalkan komentarnya (jika ada saran lain, juga boleh di tinggalkan di komentar).



Monday, November 19

November 19, 2018

CRUD menggunakan API (CI) : Action


Akhirnya sampai tahap CRUD yang sesungguhnya juga, setelah kemarin saya hanya membuat catatan untuk persiapannya terlebih dahulu dari catatan yang ini.

nah, kali ini catatan ini benar-benar proses bagaimana saya melakukan CRUD ke dalam database dengan menggunakan CI yang sudah di persiapkan untuk dijadikan REST API.

Ok, cekibrot aja..
karena catatan kali ini akan sedikit lebih panjang.

Buka kembali project dari catatan sebelumnya.
1. Ubah mehtod GET
Click gambar untuk memperbesar gambar
ubah isi dalam method get menjadi seperti gambar.
untuk keterangan silahkan di baca pada gambar ya.

Pada method get ini, saya buat kondisi, supaya method ini bisa menampilkan 2 jenis data. Yaitu data detail (hanya menampilkan satu data) dan semua data (tampilkan semua data dari database)
2. Test tampilkan data detail.
Click gambar untuk memperbesar gambar
pada gambar diatas saya memberikan parameter id, sebagai patokan untuk ditampilkan

3. Test tampilkan semua data

Click gambar untuk memperbesar gambar
pada gambar diatas, saya menghapus parameter dari proses sebelumnya untuk menampilkan semua datanya. namun karena datanya hanya ada satu (di insert ketika proses persiapan sebelumnya) jadi datanya yang nampil sama seperti pada tahap sebelumnya, nanti setelah kita insert data lagi, maka akan tampil semua datanya.

4. Ubah method POST
Click gambar untuk memperbesar gambar
ubah isi dalam method get menjadi seperti gambar.
untuk keterangan silahkan di baca pada gambar ya.

5. Test insert data ke database.
Click gambar untuk memperbesar gambar
pada gambar diatas, saya mencoba memasukkan data baru. dan setelah saya coba send datanya, muncul tanda sukses di sebelah kanannya (bisa saja di bagian bawah).

6. Cek data yang baru di masukkan
Click gambar untuk memperbesar gambar
Setelah sebelumnya mencoba menambah data dan katanya berhasil. maka saya coba untuk menggunakan mehtod get untuk melihat datanya, apakah benar sudah masuk. Dan ternyata datanya jadi nambah setelah di test.

7. Ubah method PUT
Click gambar untuk memperbesar gambar
pada dasarnya prosesnya masih sama seperti kedua method sebelumnya, hanya saja yang membedakan adalah perintah pada eksekusinya saja. Saya tidak akan mengulang catatan saya, yang sudah saya catat di dalam kodingan.

8. Test method PUT
Click gambar untuk memperbesar gambar
untuk method put, id harus di autur sesuai dengan id yang ada datanya di dalam database. pada gambar diatas saya menggunakan id 2, supaya data yang id nya 2 lah yang di update.

9. Cek data setelah di update.
Click gambar untuk memperbesar gambar
Yeah, datanya berubah.

10. Ubah method Delete.
Method yang satu ini sedikit berbeda dari yang lainnnya. silahkan lihat bagaimana perbedaannya.
Click gambar untuk memperbesar gambar
perbedaannya saya tidak perlu menampung data yang dikirimkan, karena data yang dikirim hanya id yang merupakan identitas dari data yang ingin di hapus.

11. Test method Delete.
Click gambar untuk memperbesar gambar

Yeah, setelah di test, ternyata berhasil.

12. Cek data lagi.
Click gambar untuk memperbesar gambar
yup, ternyata datanya sudah tidak ada lagi di database, di buktikan dengan hanya satu data yang di tampilkan.


saya tidak menjelaskan tentang cara mengirimkan data ketika menggunakan postman, karena saya sudah mencatatnya di catatan sebelumnya.
Sedangkan tentang script php untuk melakukan CRUD ke databasenya sudah saya jelaskan di dalam gambarnya.

Terimakasih banyak.
Mohon maaf jika catatan saya kurang dapat di mengerti.
silahkan tinggalkan komentarnya ya..

Sunday, November 18

November 18, 2018

CRUD menggunakan API (CI) : Persiapan


Sebelumnya saya sudah membuat catatan tentang mempersiapkan CI supaya bisa menjadi REST API dan juga sudah mebahas tentang Method-Method nya, dan juga tentang cara mengirim data berdasarkan Method-method tersebut. Kali ini saya ingin membuat catatan tentang melakukan CRUD ke database MYSQL dengan menggunakan REST API. Tapi sebelum itu, saya perlu membuat database terlebih dahulu, dan juga melakukan Config CI nya supaya bisa terkoneksi ke database.



Langsung aja yok lihat bagaimana cara saya mempersiapkan nya.

1. Persiapkan database
Click gambar untuk memperbesar gambar
Disini saya membuat table dengan nama "coba"
Lalu saya lanjutkan dengan membuat table "orang"
Yang didalamnya ada 3 buah field (id, nama, status).

2. INSERT DATA
proses ini sebenarnya untuk persiapan di tahapan selanjutnya, tapi saya lakukan sekarang supaya sekali jalan.
Click gambar untuk memperbesar gambar
saya lakukan insert data ke dalam table yang baru saya buat. oh iya, itu isinya bukan kode-kode kok.

Click gambar untuk memperbesar gambar
nah itu hasilnya setelah data sudah di insert.

3. Load Libaray database ke CI
Click gambar untuk memperbesar gambar

buka project CI dari project yang sebelumnya. lalu buka file autoload.php yang ada di dalam folder "application/config/".
lalu cari $autoload['libraries'] dan isikan seperti gambar diatas.

4. Config database ke CI
Click gambar untuk memperbesar gambar
masih di folder yang sama yaitu "application/config/", saya buka file database.php.
lalu pada bagian bawah saya isikan seperti pada di gambar.

Jika pengguna xampp biasanya nama host masih tetap localhost. usernamenya diisikan root, dan passwordnya di kosongkan. lalu database diisi dengan nama database yang sudah di buat pada tahap 1.
Tapi disitu saya isi seperti itu karena user untuk mysql saya sudah saya tambah dan saya rubah.

 untuk persiapannya sudah selesai, sisanya akan saya lanjutkan dengan ngoding untuk bagaimana melakukan CRUD ke database MYSQL dengan API.

Terimakasih banyak..
Silahkan tinggalkan kritikan dan saran-sarannya di kolom komentar dibawah.

Saturday, November 17

November 17, 2018

Mencoba mengirim data ke API (CI)


Ketika sebelumnya saya mencoba membuat API (mungkin lebih tepatnya mencoba memahami API). Saya sudah memasukkan beberapa jenis METHOD juga, dan saya juga sudah mencoba nya. Namun di kenyataannya, kita tidak mungkin mengirim data kosong ke API, karena hakikatnya API itu berfungsi sebagai jembatan yang akan menyimpankan data yang kita kirimkan ataupun jembatan sebagai penyedia data dari database ketika kita minta. Maka kali ini saya akan mencatat bagaimana sih cara mengirim data (disini saya menggunakan alat bantu POSTMAN) ke API dan bagaimana si API bisa tau data yang saya kirimkan.


Karena ini masih lanjutan dari yang ini, maka saya masih menggunakan project yang sama.

1. GET
Ok, saya menggunakan file Coba.php dari project sebelumnya. dan saya tambahkan beberapa baris seperti berikut.
Click gambar untuk memperbesar gambar
ok, disitu karena saya sedang berada di dalam method get, maka untuk mendapatkan data yang dikirim menggunakan method get, saya menggunakan $this->get(). Ok, langsung aja saya coba menggunakan POSTMAN.
Click gambar untuk memperbesar gambar
pilih method GET tentunya, dan di url nya saya titipkan datanya.

Cara mengirim data pada method GET yaitu langsung melalui url. dengan cara di tuliskan dulu key nya baru nilainya.
Contoh : url/ci/Controller?id=30 : saya tuliskan "id" sebagai keynya, dan "30" adalah nilai yang di bawa.
Click gambar untuk memperbesar gambar
seperti yang saya tuliskan sebelumnya, cara mengirim data dengan method GET adalah dengan menitipkan langsung dari url.

ok, itu baru mengirimkan 1 (satu) data, bagaimana jika mengirimkan lebih dari satu ?

Click gambar untuk memperbesar gambar
Pertama -tama, kita siapkan kodingannya. pada gambar diatas, saya menambahkan beberapa key yang akan di tangkap, yaitu "nama" dan "status". Lalu saya juga menggunakan function bawaan dari Library yang sebelumnya sudah saya masukkan ke dalam project CI (dari catatan saya yang ini), yaitu function response untuk menampilkan datanya.

Function response adalah function yang jika kita masukkan data kedalamnya, akan langsung di representasikan sebagai data JSON.

JSON : adalah salah satu presentasi data yang datanya bisa dipahami oleh banyak bahasa pemrograman, hal inilah yang memungkinkan API menjadi bisa digunakan banyak jenis aplikasi seperti Web, Mobile, dan Desktop.

Click gambar untuk memperbesar gambar
untuk menuliskan data pada url, sama seperti sebelumnya, hanya saja butuh tanda "&" sebagai pemisah antara key dan datanya. seperti pada gambar di atas, saya memisahkan beberapa key dengan tanda "&".

2. POST
Untuk method yang ini, saya hanya melakukan copy dari isi mehtod GET dan merubah beberapa hal.
Click gambar untuk memperbesar gambar
seperti yang terlihat pada gambar, saya merubah $this-get() menjadi $this->post(). Karena ini adalah cara supaya data yang dikirim melalui method post bisa di ambil. Dan saya juga merubah penamaan variable dari $get menjadi $id (hanya merubah penamaan saja).

Ok, saya coba dulu.

Click gambar untuk memperbesar gambar
Buka postman lagi, lalu ubah Urlnya hanya sampai Controllernya saja "localhost/project/index.php/Controller". Ubah juga methodnya menjadi POST. lanjutkan dengan klik tab body->form-data. Dan isikan key dan valuenya.

Click gambar untuk memperbesar gambar
dan Jeng jeng, datanya muncul.

3. PUT
Lanjut ke method lainnya.
Ayo kita koding  copas dlu isi dari method POST ke dalam Method PUT.
Click gambar untuk memperbesar gambar
ubah sedikit kodenya, dari $this->post() menjadi $this->put().

Ayo test lagi pake tukang post (POSTMAN).
Click gambar untuk memperbesar gambar

Ubah methodnya jadi PUT. lalu pada tab body, ambil yang x-www-form-urlencoded (seperti gambar diatas). lalu masukkan key dan valuenya lagi. Jika sudah seharusnya akan menampilkand ata seperti di gambar.

4. DELETE
Ok, Untuk Delete ini dia agak spesial. Type mehodnya seperti method GET yang datanya di tuliskan langsung di URL, namun untuk lebih jelasnya, Ayo kita Coding dlu Methodnya.
Click gambar untuk memperbesar gambar
Coba di perhatikan, pada method Delete, tidak di masukkan key, melainkan langsung parameter di dalam methodnya.

function index_delete($parameter1,$parameter2,$paramete3,$parameterseterusnya).
sedangkan isinya hanya menampilkan data dari parameter.

Saya coba dlu ya.
Click gambar untuk memperbesar gambar
Buka postman, lalu ubah methodnya menjadi DELETE. 
Perhatikan penulisan URL nya, ini yang saya bilang sebelumnya, method DELETE mirip seperti GET, hanya saja pada saat penulisan URL, pada Mehtod Delete, tidak memasukkan key melainkan langsung memasukkan datanya dan untuk memisahkan antara data yang satu dengan yang lainnya, menggunakan tanda "/".
Contoh : localhost/project/index.php/Controller/data1/data2/data3
dan penulisan data pada URL juga di pengaruhi pada penulisan code pada 

method index_delete($param1, $param2,$param3).
dengan penulisan URL seperti diatas, maka "data1" akan ditangkap oleh "$param1" dan seterusnya.


Ok, selesai...

Terimakasih banyak, dan silahkan tinggalkan komentar di kolom komentar di bawah ya..

Friday, November 16

November 16, 2018

Mencoba membuat API dengan CI


Catatan ini adalah catatan lanjutan dari catatan sebelumnya. Sehingga project yang digunakan juga masih sama dengan yang sebelumnya.

Ok, sebelumnya saya ingin membahas tentang METHOD pada API.
Ada banyak jenis METHOD yang di sediakan atau bisa digunakan sebenarnya, hanya saja saya pribadi ketika menulis catatan ini baru mencoba 4 buah Method dari keseluruhan method yang ada. Yaitu :

1. POST
Apa sih itu POST ?
Sederhananya gini, ketika kita menggunakan API, selain menarik atau mengambil data, maka kita juga perlu mengirim data ke API. Umumnya Method ini lah yang digunakan untuk melakukan pengiriman data dari aplikasi ke API.

2. GET
kalau yang ini, lebih sering digunakan untuk meminta si API supaya memberikan data ke aplikasi yang meminta berdasarkan parameter yang sudah di tentukan. Atau kalau bahasa rumitnya "AMBIL DATA DARI API".

3. PUT
Nah, yang satu ini biasanya digunakan untuk mengirim data ke API tetapi ketika melakukan proses perubahan data.

4. DELETE
Sesuai namanya, method ini sering digunakan untuk memerintahkan API supaya menghapus suatu data.

NOTE : Bukan berarti ketika ingin menghapus data harus menggunakan method DELETE, tetapi bisa saja kita menggunakan method POST. Namun, jika proses untuk meminta data, memberi data, merubah data dan menghapus data dilakukan seluruhnya di dalam method POST, maka akan membingungkan anda sendiri nantinya. Jadi sebaiknya gunakan Method pada tempatnya.

Ok, langsung aja kita coba yok..

Silahkan buat file baru #saya membuat file dengan nama Coba.php di dalam folder "project/application/controllers".

Click gambar untuk memperbesar gambar

jangan lupa tambahkan 3 line seperti pada gambar di atas di dalam filenya.
selanjutnya saya membuat echo untuk setiap methodnya. supaya ketika method itu benar-benar jalan, maka akan menampilkan echonya.
Click gambar untuk memperbesar gambar

Ok, sudah selesai. mari kita uji dengan software POSTMAN #silahkan download jika belum ada.
Buka aplikasi Postman nya.
Click gambar untuk memperbesar gambar
Silahkan Ubah methodnya sesuai keinginan (pengennya method mana yang mau di coba). lalu masukkan url nya (urlnya sama seperti url web).
Click gambar untuk memperbesar gambar
kalau sudah, di bagian kanan ada button Send, silahkan di klik. Maka nanti di bagian bawah akan menampilkan (respon dari API).
Click gambar untuk memperbesar gambar
disini saya mencoba method POST terlebih dahulu. dan hasilnya adalah menampilkan echo yang ada di dalam method Post.

untuk mengganti methodnya cukup ubah dari POST menjadi seperti yang di inginkan.
Contoh ..
Click gambar untuk memperbesar gambar
ini contoh : GET
Click gambar untuk memperbesar gambar
ini contoh : PUT
Click gambar untuk memperbesar gambar
ini contoh : DELETE

Ok, untuk awal percobaan, saya rasa itu adalah hal2  yang perlu di ketahui terlebih dahulu.

Terimakasih banyak.
Silahkan tinggalkan komentarnya ya..