diff --git a/.github/pull_request_template.md b/.github/pull_request_template.md index 67978a8..4e73b7b 100644 --- a/.github/pull_request_template.md +++ b/.github/pull_request_template.md @@ -42,6 +42,5 @@ usahakan kamu memilih sesuai apa yang telah kamu ubah @bellshade/docs-team --> - diff --git a/.mergify.yml b/.mergify.yml index d96e4a4..2b5915a 100644 --- a/.mergify.yml +++ b/.mergify.yml @@ -53,16 +53,23 @@ pull_request_rules: - markdown files - request docs team untuk review - # me mention maintainer yang ketika file markdown - # tedapat pada pull request - - name: review docs team untuk file markdown - conditions: - - label=markdown files - actions: - request_reviews: - users: - - ikr4mm - - azqilana + # catatan oleh @sensasi-delight 2023-05-08 + # menonaktifkan konfigurasi mergify untuk notifikasi tim dokumentasi + # karena konfigurasi tersebut memunculkan eror: + # GitHub error: [422] Reviews may only be requested from collaborators. + # One or more of the users or teams you specified is not a collaborator of the bellshade/PHP repository. + # dan belum ada tim `@bellshade/docs-team` + + # me mention maintainer yang ketika file markdown + # tedapat pada pull request + # - name: review docs team untuk file markdown + # conditions: + # - label=markdown files + # actions: + # request_reviews: + # users: + # - ikr4mm + # - azqilana # me mention maintainer yang ketika file php # terdapat pada pull request diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 47c771e..0c392d6 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -1,6 +1,7 @@ # Contributing ## Daftar Isi + - [Contributor](#contributor) - [Kategori yang tersedia](#kategori-yang-tersedia) - [Basic](#pembelajaran-dasar-basic-learning) @@ -29,12 +30,12 @@ Kami sangat senang Kamu dapat ikut berkontribusi dalam implementasi algoritma, s Basic learning adalah kumpulan demonstrasi kode materi pemrograman PHP beserta artikel penjelasan yang lengkap, mudah di mengerti dan menarik secara visual. Dirangkai dengan alur yang runtut mulai dasar sehingga bisa dijadikan referensi untuk kalian yang belajar pemrograman PHP. -Untuk berkontribusi di repositori bellshade PHP bagian Basic ini kamu harus mengikuti urutan materi yang telah ditentukan. Daftar materi yang tersedia bisa kamu jelajahi di [Issues tag materi](https://github.com/bellshade/PHP/issues?q=is%3Aopen+is%3Aissue+label%3Abasic). Didalam issue itu kami juga menuliskan rekomendasi tentang konten yang ada dalam materi tersebut, namun kamu masih dapat menambah materi konten jika dirasa perlu. +Untuk berkontribusi di repositori bellshade PHP bagian Basic ini kamu harus mengikuti urutan materi yang telah ditentukan. Daftar materi yang tersedia bisa kamu jelajahi di [Issues tag materi](https://github.com/bellshade/PHP/issues?q=is%3Aopen+is%3Aissue+label%3Abasic). Didalam issue itu kami juga menuliskan rekomendasi tentang konten yang ada dalam materi tersebut, namun kamu masih dapat menambah materi konten jika dirasa perlu. Semua implementasi kode untuk Basic Learning bisa ditemukan di `/basics`
dengan struktur direktori sebagai berikut
-``` +```text 📦 / ┣📦basics ┃ ┣ 📂x_nama_materi @@ -47,7 +48,6 @@ dengan struktur direktori sebagai berikut
> Artikel materi ditulis pada `README.md`
- ### Algoritma (_Algorithm_) Algoritma adalah langkah-langkah untuk menyelesaikan suatu pekerjaan dimana terdiri dari 3 bagian utama, yaitu: @@ -60,7 +60,7 @@ Algoritma harus dikemas sedemikian rupa sehingga memudahkan pembaca untuk memasu Semua implementasi kode untuk Algorithm bisa ditemukan di `/algorithms` dengan bentuk struktur seperti berikut -``` +```text 📦/ ┣📦algorithms ┃ ┣ 📂NamaKategoriAlgoritma @@ -69,17 +69,19 @@ Semua implementasi kode untuk Algorithm bisa ditemukan di `/algorithms` dengan b ┃ ┃ ┃ ┗ 📜README.md ┃ ┃ ┗ 📜README.md ``` + > Artikel penjelasan algoritma ditulis pada `README.md`
### Komponen / Fungsi kegunaan _(Utilities)_ + Kategori utilities adalah kumpulan referensi dan contoh penggunaan komponen-komponen / fitur-fitur umum yang mungkin diperlukan oleh para web developer untuk diterapkan pada project aplikasi webnya. Didalam kategori ini, kalian dapat menjelajahi berbagai macam kebutuhan umum untuk pengembangan web umum dan mempelajari bagaimana cara mengimplementasikannya. -Utility ini adalah sesuatu yang bukan esensial dalam pengembangan web namun terkadang dibutuhkan. Bisa juga dibilang Utility ini adalah peralatan / komponen yang bisa melengkapi sebuah fitur dalam aplikasi berbasis web. Contohnya adalah seperti: Manipulasi Gambar, DateTime, Mencetak ke printer dot matrix dan sebagainya. +Utility ini adalah sesuatu yang bukan esensial dalam pengembangan web namun terkadang dibutuhkan. Bisa juga dibilang Utility ini adalah peralatan / komponen yang bisa melengkapi sebuah fitur dalam aplikasi berbasis web. Contohnya adalah seperti: Manipulasi Gambar, DateTime, Mencetak ke printer dot matrix dan sebagainya. Semua tentang Utility dapat ditemukan pada direktori `/utilities`
dengan bentuk struktur yang mirip dengan `algorithm` -``` +```text 📦/ ┣📦utilities ┃ ┣ 📂NamaKategoriUtility @@ -90,6 +92,7 @@ dengan bentuk struktur yang mirip dengan `algorithm` ┃ ┃ ┃ ┗ 📜README.md ┃ ┃ ┗ 📜README.md ``` + > Artikel penjelasan utility ditulis pada `README.md`
## Standar Penulisan @@ -121,7 +124,7 @@ composer phpcbf Jika menggunakan `phpcbf` masih belum memperbaiki seluruh kesalahan yang ada, Kamu harus memperbaikinya secara manual.
Kami sangat sarankan untuk Kamu jika menggunakan software text editor Visual Studio Code, Kamu dapat menggunakan ekstensi bernama [PHPCS](https://marketplace.visualstudio.com/items?itemName=ikappas.phpcs). Dengan ekstensi itu, Visual Studio Code akan menunjukkan letak kesalahannya jika Kamu melakukan kesalahan penulisan. -Pastikan Kamu sudah melakukan pengecekan ini sebelum mengajukan _*Pull Request*_ karena ini termasuk salah satu workflow yang dijalankan secara otomatis oleh kami saat Kamu mengajukan _*Pull Request*_ +Pastikan Kamu sudah melakukan pengecekan ini sebelum mengajukan _Pull Request_ karena ini termasuk salah satu workflow yang dijalankan secara otomatis oleh kami saat Kamu mengajukan _Pull Request_ ### Pedoman Penulisan Lainnya untuk Pembelajaran Dasar (_Basic Learning_) @@ -155,14 +158,18 @@ Penggunaan layanan database seringkali dibutuhkan untuk kebanyakan kegunaan. Unt - Hanya ada satu database untuk melayani keseluruhan project repositori ini. - Seluruh informasi koneksi database diatur dalam satu file konfigurasi `.env` + > **_Pengecualian:_** Untuk materi basic pengenalan database, tidak perlu memuat konfigurasi .env agar mudah dipahami. Nama database menggunakan "bellshade_php" + - Default nama databasenya adalah `bellshade_php` _(yang dapat diganti di `.env`)_ -- Nama tabel mengikuti format `[nomor]_[nama materi]_[nama tabel]`, spasi bisa menggunakan `_` _(underscore)_. -> **Contoh nama tabel:** `11_database_prosedural_buku` +- Nama tabel mengikuti format `[nomor]_[nama materi]_[nama tabel]`, spasi bisa menggunakan `_` _(underscore)_. + +> **Contoh nama tabel:** `11_database_prosedural_buku` Untuk membuat koneksi database, kamu perlu membuat file koneksi sendiri terlebih dahulu di folder yang sedang kamu kerjakan. Kami sudah menyediakan `config.php` pada direktori root `/` untuk memuat seluruh konfigurasi yang tertulis di `.env` _(termasuk informasi database)_. Oleh karena itu, file koneksi kamu harus `require()` ke file `config.php` ini di root `/`. Untuk lebih mudahnya, kami menyediakan contoh file koneksi database yang dapat kamu gunakan sebagai file koneksi `connect.php`. + ```php

@@ -82,7 +83,7 @@ BASE_URL = 'http://localhost/PHP' Jika kamu menggunakan Nginx sebagai Web Server, kamu memerlukan konfigurasi tambahan karena nginx tidak mendukung konfigurasi `.htaccess`. Dan karena project ini menggunakan _rewriting dan parsing url_, kamu harus menerapkan konfigurasi web server nginx berikut ini agar dapat rewrite path url menjadi sebuah parameter get yang merujuk ke `index.php` -``` +```apacheconf location / { try_files $uri $uri/ /index.php?page=$uri; index index.php; @@ -93,7 +94,7 @@ location / { Jika kamu menggunakan _web server_ bawaan PHP. Kami telah menyediakan `router.php` untuk menangani request URL. Untuk menjalankan server, kamu dapat menggunakan command ini: -``` +```bash php -S localhost:8080 router.php ``` diff --git a/algorithms/BackTracking/PathFinding/README.md b/algorithms/BackTracking/PathFinding/README.md index 75ca67a..b5ad12f 100644 --- a/algorithms/BackTracking/PathFinding/README.md +++ b/algorithms/BackTracking/PathFinding/README.md @@ -1,6 +1,5 @@ ## Pathfinding menggunakan Backtracking - Pathfinding adalah salah satu implementasi algoritma backtracking yang tujuannya adalah menemukan jalan dari posisi awal sampai ke tujuan. @@ -10,6 +9,7 @@ kotak atau cell yang tidak dapat dilalui oleh pathfinding. Oleh karena itu, untuk mencapai tujuan, pathfinding harus mencari jalan dengan menggunakan algoritma backtracking Skenario: + - parameter variabel x dan y digunakan untuk menentukan tempat berpijak sekarang - indeks baris dan kolom terakhir ditetapkan sebagai tujuan. [n(xArray)-1, n(yArray)-1] @@ -19,7 +19,6 @@ Algoritma ini dalam kalimat bahasa indonesia adalah sebagai berikut: > Jika ya: Tandai posisi ini sebagai langkah yang benar. hentikan langkah selanjutnya > Jika tidak: lakukan langkah berikutnya - 2. cek posisi [x, y] sekarang apakah boleh dipijaki atau tidak? > jika ya: - Catat posisi sekarang [x, y] sebagai langkah yang benar diff --git a/algorithms/BackTracking/README.md b/algorithms/BackTracking/README.md index 39c8149..95cd126 100644 --- a/algorithms/BackTracking/README.md +++ b/algorithms/BackTracking/README.md @@ -1,2 +1 @@ # Algoritma Backtracking - diff --git a/algorithms/Searching/Linear/README.md b/algorithms/Searching/Linear/README.md index fb77816..3356aea 100644 --- a/algorithms/Searching/Linear/README.md +++ b/algorithms/Searching/Linear/README.md @@ -156,11 +156,11 @@ Algoritma ini memiliki kelebihan dan kekurangan, sebagai gambaran **Kelebihan** : -- Data Array yang diterima diawal tidak harus terurut, sehingga langsung bisa dapat melakukan pencarian. +- Data Array yang diterima diawal tidak harus terurut, sehingga langsung bisa dapat melakukan pencarian. **Kelemahan** : -- Jika Array yang diterima memiliki elemen yang banyak maka akan memberatkan kinerja dari perangkat kita. +- Jika Array yang diterima memiliki elemen yang banyak maka akan memberatkan kinerja dari perangkat kita. dalam hal demikian algoritma ini baik digunakan untuk pencarian dalam data kecil dengan data array berupa linear ( array satu dimensi ), walaupun dapat digunakan untuk pencarian di dalam array multi dimensi dengan metode recursive, tetapi hal tersebut dapat membebani memory perangkat. @@ -185,10 +185,10 @@ class ....... ?> ``` -[![](https://img.shields.io/static/v1?&label=Contoh%20Kode&message=%3e&color)](LinearSearch.php) +[![Tautan file untuk contoh kode Linear Search](https://img.shields.io/static/v1?&label=Contoh%20Kode&message=%3e&color)](LinearSearch.php) ### Referensi -- Programiz. _"Linear Search C, C++, Java, Python"_. [Pranala Luar](https://www.programiz.com/dsa/linear-search). -- Edy Budiman. _"Belajar Dasar: Algoritma dan Pemograman"_. Repository Unmul. -- Udy Manber. _Using Mathematical Induction to Design Computer Algorithms_, Computer Science Technical Report#660. 1986 +- Programiz. _"Linear Search C, C++, Java, Python"_. [Pranala Luar](https://www.programiz.com/dsa/linear-search). +- Edy Budiman. _"Belajar Dasar: Algoritma dan Pemograman"_. Repository Unmul. +- Udy Manber. _Using Mathematical Induction to Design Computer Algorithms_, Computer Science Technical Report#660. 1986 diff --git a/algorithms/Searching/README.md b/algorithms/Searching/README.md index 95b1162..85dfd25 100644 --- a/algorithms/Searching/README.md +++ b/algorithms/Searching/README.md @@ -1,4 +1,4 @@

Searching Algorithms

-

+

diff --git a/algorithms/Searching/Ternary/README.md b/algorithms/Searching/Ternary/README.md index 1eb4d77..628e9c5 100644 --- a/algorithms/Searching/Ternary/README.md +++ b/algorithms/Searching/Ternary/README.md @@ -456,8 +456,8 @@ public function testNumericArray() Setelah unit test kita susun, test dapat kita lakukan melalui terminal dengan perintah seperti di bawah ini. -```text -$ phpunit +```bash +phpunit ``` jika test berhasil akan menghasilkan info seperti di bawah ini. diff --git a/algorithms/Sorting/BubbleSort/README.md b/algorithms/Sorting/BubbleSort/README.md index 7765fcd..d281cd9 100644 --- a/algorithms/Sorting/BubbleSort/README.md +++ b/algorithms/Sorting/BubbleSort/README.md @@ -3,6 +3,7 @@ Bubble Sort adalah metode pengurutan algoritma dengan cara melakukan penukaran data secara terus menerus sampai bisa dipastikan dalam suatu iterasi tertentu tidak ada lagi perubahan/penukaran. Urutan Kerja Bubble Sorting sebagai berikut : + 1. Ambil dua data yang saling berdekatan. Bila susunan menaik (Ascending) dimulai dari data paling bawah (index terkecil). Sebaliknya, untuk susunan menurun mulai dari data paling atas (index terbesar). 2. Bila susunan data tidak benar maka akan dilakukan pertukaran. Untuk susunan naik nilai terkecil berada di bawah dan sebaliknya untuk susunan menurun. 3. Untuk susunan menaik ambil nilai terbesar dari kedua data tersebut dan bandingkan dengan nilai data yang berada di posisi berdekatan selanjutnya. Sebaliknya, untuk susunan menurun ambil data terkecil. @@ -21,6 +22,7 @@ Kemudian pada langkah 2 masih pada tahap 1 nilai elemen array terbesar dari taha Kemudian langkah ini kita ulangi kembali sampai tidak ada lagi elemen array dengan nomor index selanjutnya yang bisa di bandingkan. Dari alur di atas dapat kita susun sebuah Pengkondisian yaitu bila nilai elemen array pada index 1 lebih besar daripada nilai elemen array pada index 2 maka lakukan pertukaran nilai. Dimana nomor array index ke 2 adalah nomor index pertama + 1, sehingga bisa ditulis dalam pengkondisian sebagai berikut : + ```php $array[$index + 1]) @@ -31,12 +33,15 @@ Dari alur di atas dapat kita susun sebuah Pengkondisian yaitu bila nilai elemen ``` Sekarang bagaimana melakukan pertukaran nilai antara elemen, kita bisa menggunakan sebuah variabel untuk menampung salah satu data terlebih dahulu dengan cara: + ```php $temp = $array[$index]; //tampung nilai dari elemen array[index] terlebih dahulu $array[$index] = $array[$index + 1]; //pindahkan nilai dari elemen $array[index + 1] kedalam elemen $array[index] $array[$index + 1] = $temp //Kembalikan nilai yang kita tampung dari elemen $array[index] kedalam elemen $array[index + 1] ``` + dengan demikian kita dapat peroleh baris kode secara utuh seperti ini: + ```php $array[$index + 1]) @@ -47,9 +52,11 @@ dengan demikian kita dapat peroleh baris kode secara utuh seperti ini: } ?> ``` + Dari sini kita sudah bisa melakukan pertukaran susunan pada langkah 1, lalu bagaimana dengan langkah 2 dan selanjunya? dari yang kita perhatikan pada diagram diatas, langkah 2 dan selanjutnya merupakan perulangan dari langkah 1, dimana elemen array yang digunakan adalah elemen array yang memiliki nilai terbesar dari langkah sebelumnya, karena kita telah melakukan pertukaran nilai elemen array dimana nilai terbesar terletak pada elemen array dengan index lebih tinggi maka dapat kita pastikan elemen array yang kita pakai selanjutnya adalah elemen array dengan index + 1. Karena bisa kita pastikan acuan kita adalah nomor index dari array, dimana perulangan selanjutnya menggunakan index lebih besar satu langkah dan perulangan dilakukan sebanyak 3 kali dengan index awal 0. Maka kita dapat menggunakan metode Perulangan For untuk ini, dengan baris kode sebagai berikut; + ```php '; ?> ``` + Sekarang kita sudah selesaikan tahap 1, bagaimana dengan tahap 2 dan selanjutnya. Dari gambar hasil kerja dapat kita lihat bahwa ada 3 Tahap, dan setiap langkah dikerjakan dalam setiap tahap, berdasarkan hal ini kita bisa buatkan sebuah perulangan bersarang dengan metode perulangan for, dan perulangan for untuk langkah berada dalam perulangan for untuk tahap, dengan aturan for melakukan perulangan untuk tahap sebanyak 3 kali. sehingga bisa kita tulis baris kode sebagai berikut: + ```php ``` + Baris kode diatas akan menghasilkan : + ```html [2,3,4,1] //Tahap 1 [2,3,4,1] @@ -104,7 +115,9 @@ Baris kode diatas akan menghasilkan : [1,2,3,4] [1,2,3,4] ``` + Sampai di sini, baris kode yang kita buat sudah berhasil melakukan sorting terhadap array. Akan tetapi, ini hanya berlaku untuk array yang terdiri dari 4 elemen. Bagaimana jika array yang di-sorting kurang atau lebih dari 4 elemen? Tentunya kita harus mengubah kembali baris kode ini untuk menyesuaikan kebutuhan kita. Coba kita uji dengan array yang memiliki 6 elemen, sebagai contoh $array2 = [3,5,2,4,1,6]. Jika kita buat dalam bentuk ilustrasi di atas maka kita akan membuat langkah sebagai berikut: + ```html [3,5,2,4,1,6] [2,3,4,1,5,6] [2,3,1,4,5,6] [1,2,3,4,5,6] [1,2,3,4,5,6] [3,2,5,4,1,6] [2,3,4,1,5,6] [2,1,3,4,5,6] [1,2,3,4,5,6] @@ -113,7 +126,9 @@ Sampai di sini, baris kode yang kita buat sudah berhasil melakukan sorting terha [3,2,4,1,5,6] Tahap : 1 Tahap: 2 Tahap: 3 Tahap: 4 Tahap: 5 ``` -Dengan langkah hasil kerja seperti di atas dan di bandingkan dengan langkah hasil kerja array dengan 4 elemen diatas, kita bisa temukan sebuah pola yaitu: + +Dengan langkah hasil kerja seperti di atas dan di bandingkan dengan langkah hasil kerja array dengan 4 elemen diatas, kita bisa temukan sebuah pola yaitu: + 1. Tahap : - Perulangan Tahap terjadi sebanyak elemen array kurang satu, - Setiap Tahap mengurangi satu elemen array akan di disusun. @@ -122,13 +137,15 @@ Dengan langkah hasil kerja seperti di atas dan di bandingkan dengan langkah hasi - Setiap tahap mengurangi banyaknya langkah penyusunan yang disebabkan oleh berkurangnya elemen array yang disusun. - Langkah dimulai dari index `0` atau index terkecil. -**Solusi** - - Nomor Tahap ditambah banyaknya langkah sama dengan banyaknya elemen array, dapat ditulis | $tahap + $langka = count($array). - - Tahap dimulai dari nilai 1 dan berakhir dengan banyak elemen array - 1. | 0 < $tahap <= count($array) - 1 | 0 < $tahap < count($array). - - Langkah pertama dimulai dari `0` sesuai dengan index elemen. | $langkah = `0`. - - Banyaknya langkah tiap tahap tidak akan melebihi dari jumlah elemen array dikurangi tahap, | $langkah <= count($array) - $tahap. +Solusi: + +- Nomor Tahap ditambah banyaknya langkah sama dengan banyaknya elemen array, dapat ditulis | $tahap + $langka = count($array). +- Tahap dimulai dari nilai 1 dan berakhir dengan banyak elemen array - 1. | 0 < $tahap <= count($array) - 1 | 0 < $tahap < count($array). +- Langkah pertama dimulai dari `0` sesuai dengan index elemen. | $langkah = `0`. +- Banyaknya langkah tiap tahap tidak akan melebihi dari jumlah elemen array dikurangi tahap, | $langkah <= count($array) - $tahap. + +dari solusi diatas bisa kita tuliskan kedalam kode sebagai berikut - dari solusi diatas bisa kita tuliskan kedalam kode sebagai berikut ```php $array[$langkah - 1]. -4. setiap tahap mengurangi index elemen yang akan diurutkan, yaitu elemen dengan index terendah | indexTerendah = $tahap - 1. -3. Langkah berada pada index elemen tertinggi ke yang index elemen terendah setiap tahap | $tahap - 1 < $langkah < count($array) | $tahap <= $langkah < count(array). +3. setiap tahap mengurangi index elemen yang akan diurutkan, yaitu elemen dengan index terendah | indexTerendah = $tahap - 1. +4. Langkah berada pada index elemen tertinggi ke yang index elemen terendah setiap tahap | $tahap - 1 < $langkah < count($array) | $tahap <= $langkah < count(array). + +Baris kode: -Baris kode : ```php '; ``` Akhirnya algoritma kita selesai dan dapat kita panggil dengan syntax: + ```php BubbleSort(array $array[, bool $desc = false]); ``` + dengan parameter $desc bersifat opsional jika menginginkan pengurutan secara menurun. Hasil dari baris kode diatas adalah: + ```html Sebelum Pengurutan : Array @@ -270,5 +292,4 @@ Untuk algoritma parameter dan nilai parameter tidaklah baku, baris kode diatas d Baris kode kita diatas bila kita susun diagram alur nya akan terbentuk seperti ini : ![bubble chart](../../../assets/content/algorithms/Sorting/Bubble/BubbleSort.svg) - -

*** Terima Kasih ***

+

### Terima Kasih ###

diff --git a/algorithms/Sorting/CountingSort/README.md b/algorithms/Sorting/CountingSort/README.md index a543d2e..f2ab7c8 100644 --- a/algorithms/Sorting/CountingSort/README.md +++ b/algorithms/Sorting/CountingSort/README.md @@ -7,19 +7,24 @@ Konsep utama dari counting sort adalah sesuai dengan namanya yaitu menghitung ju Berikut mekanisme sederhana dari counting sort: - Sebuah array yang tidak berurutan didefinisikan, nilai maksimum yang diasumsikan diawal adalah `9` + ```php [2, 5, 1, 2, 9, 6, 4, 7] ``` + - Dari deretan itu dilakukan satu _loop_ untuk menghitung tiap nilai dan menyimpan nilai itu dalam sebuah array tersendiri, array tersebut dapat berbentuk seperti ini + ```php // 1 2 3 4 5 6 7 8 9 // --------------------------- [0, 1, 2, 0, 1, 1, 1, 1, 0, 1] ``` + > _Perhatikan array akumulasi penghitungan diatas, pada index ke 2 bernilai `2` karena pada array yang akan diurutkan, nilai 2 muncul dua kali._
> _Dan begitu pula dengan nilai deretan array yang lain._ - Untuk dilakukan penempatan tiap nilai agar tersusun secara urut, array akumulasi perhitungan diatas dimodifikasi dengan sum secara bertahap. Jadi tiap nilai pada array akumulasi itu dijumlahkan dengan nilai sebelumnya. + ```php // 1 2 3 4 5 6 7 8 9 // --------------------------- @@ -27,9 +32,11 @@ Berikut mekanisme sederhana dari counting sort: // ^ ^ ^ ^ ^ ^ ^ ^ ^ //+1 +2 +0 +1 +1 +1 +1 +0 +1 ``` + > _Tiap nilai dalam elemen array, dijumlahkan dengan nilai yang sebelumnya, hal ini dilakukan agar tiap nilai berkorelasi dan terbentuk offset dengan nilai yang lebih kecil sehingga nilai-nilai itu dapat digunakan sebagai acuan index penempatan count array._ - Lakukan pengurutan dengan menempatkan nilai array berdasarkan acuan index diatas. + ```php # array yang akan diurutkan (arr) [2, 5, 1, 2, 9, 6, 4, 7] @@ -61,4 +68,4 @@ Berikut mekanisme sederhana dari counting sort: **Demo / Contoh kode:**
- \ No newline at end of file + diff --git a/algorithms/Sorting/PopSort/README.md b/algorithms/Sorting/PopSort/README.md index 276aa8d..8fc8d7f 100644 --- a/algorithms/Sorting/PopSort/README.md +++ b/algorithms/Sorting/PopSort/README.md @@ -24,11 +24,13 @@ Semisalnya saya mempunyai 3 array seperti di bawah ini: ![popsort](../../../assets/content/algorithms/Sorting/PopSort/popsort1.png) Ingat poin-poin di bawah ini: + - Array A merupakan input dari nilai-nilai yang akan disusun - Array B merupakan output dari nilai-nilai yang telah disusun - Array C merupakan tempat penyimpanan sementara Kira-kira semisal kita buatkan array bentuknya seperti ini: + ```php $a = [83, 10, 54, 92, 62, 47, 15, 72]; $b = []; @@ -48,12 +50,13 @@ Semisalnya, data sudah seperti ini: ![popsort](../../../assets/content/algorithms/Sorting/PopSort/popsort3.png) Logikanya, angka `62` pasti lebih besar daripada `47` dan `15`, berarti: -1. Kita harus menyimpan `15` dan `47` ke Array C -2. Bawa angka `62` dari Array A ke Array B agar dapat masuk ke Array B + +- Kita harus menyimpan `15` dan `47` ke Array C +- Bawa angka `62` dari Array A ke Array B agar dapat masuk ke Array B ![popsort](../../../assets/content/algorithms/Sorting/PopSort/popsort4.png) -3. Kita susun balik dari array C ke Array B yang kira-kira bentuknya seperti ini: +- Kita susun balik dari array C ke Array B yang kira-kira bentuknya seperti ini: ![popsort](../../../assets/content/algorithms/Sorting/PopSort/popsort5.png) @@ -112,6 +115,7 @@ public function start(): array ``` ### Referensi + - GeeksForGeeks. *Python Program for Tower of Hanoi*. [Pranala Luar](https://www.geeksforgeeks.org/python-program-for-tower-of-hanoi/). - Salman, Nur. Rev. 2020. *Struktur Data: Pengurutan Data di Python*. Makassar: Universitas Dipa Makassar. - Sedegewick, Robert. dkk. 2015. *Stacks and Queues*. Princeton: Princeton University. [Pranala Luar](https://introcs.cs.princeton.edu/python/43stack/). diff --git a/algorithms/Sorting/README.md b/algorithms/Sorting/README.md index a460dd3..56f8220 100644 --- a/algorithms/Sorting/README.md +++ b/algorithms/Sorting/README.md @@ -1 +1 @@ -# Algoritma Sorting \ No newline at end of file +# Algoritma Sorting diff --git a/algorithms/Sorting/SelectionSort/README.md b/algorithms/Sorting/SelectionSort/README.md index 607bcf7..29b4609 100644 --- a/algorithms/Sorting/SelectionSort/README.md +++ b/algorithms/Sorting/SelectionSort/README.md @@ -3,6 +3,7 @@ Selection Sort adalah salah satu algoritma untuk melakukan penyortiran nilai di dalam array yang acak dengan cara mencari nilai terkecil di dalam array dan menukarnya ke index awal dari array tersebut. ## Cara Kerja + Ketika kita ingin menggunakan Selection Sort, kita harus mengikuti beberapa langkah berikut ini: - Pertama, Set variable `min` dengan nilai index pertama dari array yang akan di sort. @@ -46,6 +47,7 @@ Kita akan terus mengulang proses proses diatas hingga array yang kita miliki sud ![9](../../../assets/content/algorithms/Sorting/SelectionSort/9.png) ## Flowchart + Proses Selection Sort dapat digambarkan menggunakan flowchart untuk menggambarkan bagaimana cara kita mengimplementasikan algoritma tersebut. Berikut ini adalah flowchart dari algoritma Selection Sort: @@ -213,6 +215,7 @@ Data setelah disort: [11,14,20,57,63,72] ``` ## Referensi + Tutorialspoint - [Data Structures and Algorithms Selection Sort](https://www.tutorialspoint.com/data_structures_algorithms/selection_sort_algorithm.htm) diff --git a/basics/12_database_dasar_prosedural/README.md b/basics/12_database_dasar_prosedural/README.md index d8a451e..ffb838f 100644 --- a/basics/12_database_dasar_prosedural/README.md +++ b/basics/12_database_dasar_prosedural/README.md @@ -19,6 +19,7 @@ Database dibutuhkan untuk menyimpan data pada sistem. Dengan menggunakan databas - [4. Mengambil data dari query](#4-mengambil-data-dari-query) - [Mysqli Fetch](#mysqli-fetch) - [Menampilkan banyak data](#menampilkan-banyak-data) + ## 1. Pengenalan Dalam pemrograman, database digunakan sebagai media penyimpanan data. Jika diibaratkan, database adalah lemari yang mampu digunakan untuk menyimpan banyak barang, kemudian rak pada lemari adalah tabel-tabel/collection yang ada pada database. pada materi ini kita akan mempelajari tentang database mysql, salah satu database yang sering digunakan dalam berbagai kondisi. @@ -59,25 +60,25 @@ Ada banyak sekali cara untuk membuat database, namun jika kamu menggunakan `XAMP 1. **Hidupkan server MySQL** -

- -

+

+ +

2. **Buka phpMyAdmin lalu buat database dengan nama `bellshade_php`** -Untuk membuka phpMyAdmin, buka `localhost/phpmyadmin` > klik `new` > tuliskan nama databasenya yaitu `bellshade_php` > kemudian klik **Create** + Untuk membuka phpMyAdmin, buka `localhost/phpmyadmin` > klik `new` > tuliskan nama databasenya yaitu `bellshade_php` > kemudian klik **Create** -

- -

+

+ +

3. **Database sudah jadi** -Database ini akan digunakan untuk keseluruhan _project repository_ Bellshade PHP sehingga kamu tidak perlu repot membuat database lagi untuk demo materi / algoritma yang lain + Database ini akan digunakan untuk keseluruhan _project repository_ Bellshade PHP sehingga kamu tidak perlu repot membuat database lagi untuk demo materi / algoritma yang lain -

- -

+

+ +

## 2. Koneksi Database @@ -93,7 +94,7 @@ Singkatnya, berikut beberapa hal yang dibutuhkan untuk terhubung kedalam sistem - Nama database : Nama dari database yang akan digunakan - Port (Opsional) : Port dari host yang melayani sistem Database, biasanya nilai _default:_ `3306`. -Untuk melakukan koneksi, PHP sejak versi 7 menyediakan 2 pilihan yaitu menggunakan mysqli atau menggunakan PDO (*PHP Data Objects*). Kita akan mulai dengan cara prosedural terlebih dahulu. +Untuk melakukan koneksi, PHP sejak versi 7 menyediakan 2 pilihan yaitu menggunakan mysqli atau menggunakan PDO (_PHP Data Objects_). Kita akan mulai dengan cara prosedural terlebih dahulu. Untuk terhubung dengan database, PHP menyediakan fungsi `mysqli_connect(host, user, pass, dbname, port)` @@ -145,7 +146,7 @@ Sama seperti `mysqli_query()`, fungsi ini memerlukan parameter berupa koneksi My 1. **Buat tabel terlebih dahulu dengan nama `12_database_dasar_prosedural_buku` di database `bellshade_php` yang dibuat tadi** -Ada banyak cara untuk membuat tabel, yaitu salah satunya adalah dengan langsung menjalankan kode SQL atau kamu juga dapat menggunakan *DB admin tool* seperti _phpMyAdmin_ untuk membuat tabel secara GUI. +Ada banyak cara untuk membuat tabel, yaitu salah satunya adalah dengan langsung menjalankan kode SQL atau kamu juga dapat menggunakan _DB admin tool_ seperti _phpMyAdmin_ untuk membuat tabel secara GUI. Berikut struktur tabel untuk materi ini sekaligus jika kamu ingin membuat database menggunakan perintah SQL. @@ -248,12 +249,11 @@ Setelah melakukan demo di atas, coba cek isi dari tabel `12_database_dasar_prose

- ## 4. Mengambil data dari query -Fitur `mysqli` pada PHP tidak hanya dapat mengeksekusi query SQL untuk melakukan operasi database, melainkan juga dapat mengambil hasil keluaran dari query SQL dan dapat menerjemahkannya menjadi informasi yang berguna bagi pengguna. +Fitur `mysqli` pada PHP tidak hanya dapat mengeksekusi query SQL untuk melakukan operasi database, melainkan juga dapat mengambil hasil keluaran dari query SQL dan dapat menerjemahkannya menjadi informasi yang berguna bagi pengguna. -Sebagai contoh skenario, jika kita melakukan query `SELECT`, bagaimana cara mendapatkan hasil keluaran dari query tersebut dan menempatkannya pada variabel array?. `mysqli` sudah menyediakan `mysqli_fetch` untuk melayani hal tersebut. Hasil keluaran itu ditempatkan pada variabel agar dapat dimanfaatkan lebih lanjut untuk menerjemahkan informasi yang berbentuk baris data database menjadi sebuah informasi yang lebih mudah dipahami yaitu misalnya ditampilkan pada halaman web. +Sebagai contoh skenario, jika kita melakukan query `SELECT`, bagaimana cara mendapatkan hasil keluaran dari query tersebut dan menempatkannya pada variabel array?. `mysqli` sudah menyediakan `mysqli_fetch` untuk melayani hal tersebut. Hasil keluaran itu ditempatkan pada variabel agar dapat dimanfaatkan lebih lanjut untuk menerjemahkan informasi yang berbentuk baris data database menjadi sebuah informasi yang lebih mudah dipahami yaitu misalnya ditampilkan pada halaman web. ### Mysqli Fetch @@ -261,8 +261,7 @@ Ada beberapa kemungkinan bentuk baris data yang dapat diterima dari database. Be - `mysqli_fetch_row()` -Yaitu menerjemahkan hasil query dari `mysqli_query()` menjadi sebuah array asosiatif yang hanya memiliki 1 baris saja. Bentuk array asosiatif yang dihasilkan memiliki key berupa angka yang merepresentasikan index kolom. Kemudian pada _value_ nya berisi data kolom yang sebenarnya dari baris data yang diambil. -berikut contoh penerapan kodenya. +Yaitu menerjemahkan hasil query dari `mysqli_query()` menjadi sebuah array asosiatif yang hanya memiliki 1 baris saja. Bentuk array asosiatif yang dihasilkan memiliki key berupa angka yang merepresentasikan index kolom. Kemudian pada _value_ nya berisi data kolom yang sebenarnya dari baris data yang diambil. Berikut contoh penerapan kodenya. ```php $query = mysqli_query($connect, "SELECT * FROM $tabel"); @@ -270,13 +269,13 @@ $data = mysqli_fetch_row($query); echo $data[0]; // menampilkan isi dari kolom pertama echo $data[1]; // menampilkan isi dari kolom kedua ``` + Pada contoh kode diatas, yang ditampilkan adalah hanya satu baris pertama dari hasil keluaran query. Kemudian seperti yang dijelaskan sebelumnya, untuk mengakses data sebenarnya dari sebuah kolom perlu dimasukkan **indeks kolom** sebagai keynya. - - `mysqli_fetch_assoc` Sama seperti `mysqli_fetch_row` yaitu menerjemahkan hasil query dari eksekusi query SQL menjadi array asosiatif yang kolomnya direpresentasikan dengan nama kolom sebenarnya sebagai key untuk mengakses isi dari kolom yang diinginkan. @@ -287,6 +286,7 @@ $data = mysqli_fetch_row($query); echo $data['id']; // menampilkan isi dari kolom id echo $data['judul']; // menampilkan isi dari kolom judul ``` + Alih-alih menggunakan urutan index kolom, kamu dapat menggunakan nama kolomnya langsung untuk mengakses nilai dari kolom tersebut. @@ -304,6 +304,7 @@ echo $data['id']; // menampilkan isi dari kolom id echo $data['judul']; // menampilkan isi dari kolom judul echo $data[3]; // menampilkan isi dari kolom deskripsi (kolom ketiga) ``` + Dengan `mysqli_fetch_array()` kamu dapat menggunakan kedua cara untuk mengakses data kolom didalamnya. @@ -312,7 +313,7 @@ Dengan `mysqli_fetch_array()` kamu dapat menggunakan kedua cara untuk mengakses - `mysqli_fetch_object` -Berbeda dengan fungsi `mysqli_fetch` yang lain, `mysqli_fetch_object` mengembalikan sebuah baris data dalam bentuk objek yang memiliki atribut berupa nama kolomnya dan didalamnya berisi data dari kolom tersebut. +Berbeda dengan fungsi `mysqli_fetch` yang lain, `mysqli_fetch_object` mengembalikan sebuah baris data dalam bentuk objek yang memiliki atribut berupa nama kolomnya dan didalamnya berisi data dari kolom tersebut. ```php $query = mysqli_query($connect, "SELECT * FROM $tabel"); @@ -320,13 +321,13 @@ $data = mysqli_fetch_row($query); echo $data->id; // menampilkan isi dari kolom id echo $data->judul; // menampilkan isi dari kolom judul ``` + Seperti kode diatas, jika ingin mengakses sebuah data dari kolom, perlu diakses atribut kolomnya dengan simbol `->`, hal yang lumrah digunakan dalam lingkungan pemrograman berorientasi objek. Fungsi ini mungkin dapat membantu kamu dalam konsistensi penulisan pemrograman dengan paradigma pemrograman berorientasi objek. - ### Menampilkan banyak data Jika kamu perhatikan contoh kode diatas hanya mengambil satu baris saja dari sebuah query yang dijalankan oleh `mysqli_query()`. Bagaimanakah caranya untuk menampilkan seluruh baris data yang dihasilkan dari query? @@ -359,6 +360,7 @@ while ($row = mysqli_fetch_assoc($query)) { echo 'judul: ' . $row['judul']; } ``` + Contoh kode kecil diatas jika diartikan adalah sebagai berikut: selagi `mysqli_fetch_assoc` bernilai valid (dan tidak kosong) nilai tersebut di berikan kepada variabel `$row` untuk bisa diakses didalam perulangan. Jika masih ada baris berikutnya, perulangan akan tetap berjalan dan `mysqli_fetch_assoc()` akan dijalankan lagi dan memberikan nilai datanya ke variabel `$row` lagi dan siklusnya akan berjalan terus menerus. Perulangan akan berakhir jika baris berikutnya tidak sudah tidak ada lagi. Kamu dapat memanfaatkan ini untuk menampilkan semua baris data kedalam tabel, seperti pada demo berikut ini: @@ -375,4 +377,4 @@ Kamu dapat memanfaatkan ini untuk menampilkan semua baris data kedalam tabel, se 11. Cookie dan Session 13. Database relasional prosedural - \ No newline at end of file + diff --git a/basics/14_oop_dasar/README.md b/basics/14_oop_dasar/README.md index 44cb21b..5fbb793 100644 --- a/basics/14_oop_dasar/README.md +++ b/basics/14_oop_dasar/README.md @@ -85,7 +85,7 @@ Perhatikan disini karena setiap _use case_ disendirikan pada tiap-tiap objek, de `Class` adalah sebuah template / blueprint. Disinilah ditentukan aturan-aturan atau apa saja yang harus ada dari sebuah objek agar selalu dijaga konsistensinya. Sementara `Object` adalah sebuah penerapan dari _class_ itu sendiri, kita menyebutnya sebagai _instance_ -Misalnya ada pengguna yang didalamnya harus ada nama, jenis kelamin, email, alamat dll. Kita bisa buat class `Pengguna` dan menentukan nama, email dll sebagai properti _(kita akan bahas di sub materi berikutnya)_. Lalu kita juga bisa buat penerapan dari class itu. misalnya ada `agus` yang merupakan penerapan dari class `Pengguna`, maka agus ini bisa kita sebut sebagai _object_. Karena `agus` merupakan objek dari class `Pengguna`, maka objek `agus` pasti mengikuti blueprint yang tertulis pada kelasnya, seperti mempunyai nama, email dsb. +Misalnya ada pengguna yang didalamnya harus ada nama, jenis kelamin, email, alamat dll. Kita bisa buat class `Pengguna` dan menentukan nama, email dll sebagai properti _(kita akan bahas di sub materi berikutnya)_. Lalu kita juga bisa buat penerapan dari class itu. misalnya ada `agus` yang merupakan penerapan dari class `Pengguna`, maka agus ini bisa kita sebut sebagai _object_. Karena `agus` merupakan objek dari class `Pengguna`, maka objek `agus` pasti mengikuti blueprint yang tertulis pada kelasnya, seperti mempunyai nama, email dsb.
@@ -108,6 +108,7 @@ Objek dapat dibuat dengan cukup buat sebuah variable, lalu isi dengan instance d ```php $agus = new Pengguna(); ``` +
## 3. Properti dan Method @@ -162,12 +163,12 @@ class NamaKelas {
- ## 4. Constructor dan Destructor -`Constructor dan destructor` adalah salah satu jenis method spesial yang disediakan PHP sebagai fitur paradigma pemrograman berorientasi objek dalam bahasa pemrograman PHP. _Constructor destructor_ ini tak hanya ditemukan dalam PHP namun juga bahasa pemrograman lainnya yang mendukung paradigma OOP. Singkatnya, `Constructor` adalah method yang akan dijalankan pertama kali saat sebuah kelas di instantiasi menjadi objek. Sementara `Destructor` adalah kebalikannya, yaitu method yang dijalankan di akhir penggunaan objeknya. +`Constructor dan destructor` adalah salah satu jenis method spesial yang disediakan PHP sebagai fitur paradigma pemrograman berorientasi objek dalam bahasa pemrograman PHP. _Constructor destructor_ ini tak hanya ditemukan dalam PHP namun juga bahasa pemrograman lainnya yang mendukung paradigma OOP. Singkatnya, `Constructor` adalah method yang akan dijalankan pertama kali saat sebuah kelas di instantiasi menjadi objek. Sementara `Destructor` adalah kebalikannya, yaitu method yang dijalankan di akhir penggunaan objeknya. Cara membuat constructor adalah mirip dengan saat membuat method biasa. Namun constructor harus dalam berbentuk method yang bernama `__construct` dan harus ditulis dalam sebuah kelas. + ```php class SebuahKelas { @@ -176,7 +177,9 @@ class SebuahKelas } } ``` + Sementara destructor dapat dibuat dengan membuat method yang bernama `__destruct()`. + ```php class SebuahKelas { @@ -185,6 +188,7 @@ class SebuahKelas } } ``` + > Source code demo ada di basics/14_oop_dasar/4_constructor_destructor.php @@ -203,6 +207,7 @@ class Anggota { } new Anggota('Budi', 'laki-laki'); ``` + > Source code demo ada di basics/14_oop_dasar/4_constructor_destructor2.php @@ -212,7 +217,8 @@ new Anggota('Budi', 'laki-laki'); Properti dan method dapat juga berbentuk static, artinya tidak ada ketergantungan antara method / properti static dengan objek dari kelasnya. Bahkan faktanya, tidak perlu dibuat objek agar dapat digunakan. Method / properti static adalah salah satu fitur dalam paradigma OOP untuk membuat method atau properti dari sebuah class yang dapat dijalankan tanpa dibuat sebuah objek dari class tersebut. -Untuk membuat properti static, cukup tambahkan keyword `static` sebelum nama variabel. Untuk membuat method static juga mirip, tambahkan keyword `static` sebelum `function` +Untuk membuat properti static, cukup tambahkan keyword `static` sebelum nama variabel. Untuk membuat method static juga mirip, tambahkan keyword `static` sebelum `function`. + ```php class Kelas { @@ -222,7 +228,9 @@ class Kelas } } ``` + untuk memanggil properti atau method static didalam kelas dapat menggunakan keyword `self::$propertinya` atau `self::methodStaticnya()`. Jika berada dalam parent class dan ingin memanggil dari class turunannya, dapat menggunakan keyword `parent::xx` _(kita akan bahas kelas turunan ini pada materi inheritance nanti)_ + ```php class Kelas { @@ -236,7 +244,7 @@ class Kelas } ``` -Properti dan method static ini pada penggunaannya seringkali digunakan untuk melakukan sesuatu yang tidak spesifik ke objek dari kelas tertentu melainkan ke sesuatu yang lebih umum namun tetap terkait dengan tujuan kelas. Misalnya pada kelas `Kasir` terdapat waktu shift yang tidak spesifik ke kasir melainkan ke seluruh kasir. Pada kasus tersebut kita bisa gunakan method dan properti static seperti berikut +Properti dan method static ini pada penggunaannya seringkali digunakan untuk melakukan sesuatu yang tidak spesifik ke objek dari kelas tertentu melainkan ke sesuatu yang lebih umum namun tetap terkait dengan tujuan kelas. Misalnya pada kelas `Kasir` terdapat waktu shift yang tidak spesifik ke kasir melainkan ke seluruh kasir. Pada kasus tersebut kita bisa gunakan method dan properti static seperti berikut: ```php Source code demo ada di basics/14_oop_dasar/5_property_dan_method_static.php diff --git a/basics/15_oop_lanjutan/README.md b/basics/15_oop_lanjutan/README.md index d14ba0e..b3e5747 100644 --- a/basics/15_oop_lanjutan/README.md +++ b/basics/15_oop_lanjutan/README.md @@ -16,7 +16,7 @@ Materi kali ini merupakan materi lanjutan dari _Object Oriented Programming_ (OO _Inheritance_ merupakan sebuah kata dalam bahasa inggris yang memiliki arti warisan. Dalam OOP _Inheritance_ bisa diartikan sebagai pewarisan sifat. Maksudnya disini adalah sebuah _Class_ yang dibuat memiliki keturunan (anak) yang mewarisi semua yang ada dalam _Class_ tadi ditambah dengan tambahan properti dan method milik _Class_ Turunan itu sendiri. -[![](https://img.shields.io/static/v1?&label=Demo&message=%3e&color)](1_inheritance_Kucing.php#L13-L23) +[![Tautan contoh kode program implementasi turunan](https://img.shields.io/static/v1?&label=Demo&message=%3e&color)](1_inheritance_Kucing.php#L13-L23)

@@ -24,7 +24,7 @@ _Inheritance_ merupakan sebuah kata dalam bahasa inggris yang memiliki arti wari Perlu diingat, ketika membuat sebuah class maka di dalam class tersebut tentu saja terdapat beberapa method yang bisa diberikan parameter apa saja. Selain dari stirng, integer, atau bahkan boolean ternyata object bisa digunakan juga sebagai sebuah parameter dalam satu method. Dengan begitu method yang ada dalam objek tersebut bisa juga digunakan di dalam method yang parameternya adalah sebuah objek. -[![](https://img.shields.io/static/v1?&label=Demo&message=%3e&color)](2_object_type.php#L13-L23) +[![Tautan contoh kode program tipe objek](https://img.shields.io/static/v1?&label=Demo&message=%3e&color)](2_object_type.php#L13-L23)

@@ -47,7 +47,7 @@ Selanjutnya, gambar berikut ini menunjukkan apa akibat yang bisa didapatkan keti

-[![](https://img.shields.io/static/v1?&label=Demo&message=%3e&color)](3_access_modifier.php#L13-L23) +[![Tautan contoh kode program access modifier](https://img.shields.io/static/v1?&label=Demo&message=%3e&color)](3_access_modifier.php#L13-L23)

@@ -55,7 +55,4 @@ Selanjutnya, gambar berikut ini menunjukkan apa akibat yang bisa didapatkan keti Class yang merupakan turunan dari satu class yang lain bisa melakukan overriding, maksudnya disini adalah mengubah method yang berasal dari class induknya sesuai dengan kebutuhan dari class itu sendiri. Akan tetapi apabila satu method dijadikan final maka method tersebut tidak akan bisa di override oleh class turunannya. Jadi ketika satu method dibuat jadi final method tersebut tidak akan bisa di override. - -[![](https://img.shields.io/static/v1?&label=Demo&message=%3e&color)](4_overriding_and_final.php#L13-L23) -
-
+[![Tautan contoh kode program overiding dan finel](https://img.shields.io/static/v1?&label=Demo&message=%3e&color)](4_overriding_and_final.php#L13-L23) diff --git a/basics/1_hello_world/README.md b/basics/1_hello_world/README.md index d325c4d..ea9b23e 100644 --- a/basics/1_hello_world/README.md +++ b/basics/1_hello_world/README.md @@ -18,7 +18,7 @@ Selain itu materi ini dibuat dengan secara runtut dan _beginner friendly_ sehing - [Gambaran Singkat](#gambaran-singkat) - [1. Persiapan](#1-persiapan) - [2. Hello World](#2-hello-world-2_hello_worldphp) - - [3. PHP dalam HTML](#3-php-dalam-html-3_php_htmlphp) + - [3. PHP dalam HTML](#3-php-dalam-html) ## Gambaran Singkat @@ -140,7 +140,8 @@ Kode PHP dieksekusi di server dan dikirimkan kembali ke Browser _client_ dalam b Untuk menambahkan tag HTML cukup tuliskan kode HTML pada file PHP, kode HTML ini harus di luar tag `` > **Perhatikan:** Kode HTML yang dimasukkan di dalam file `.php` bukan sebaliknya -Contoh kode: +Contoh kode: + ```html @@ -168,11 +169,11 @@ Contoh kode: ``` +
- @@ -182,4 +183,4 @@ Contoh kode: -
Variabel dan Tipe Data
\ No newline at end of file + diff --git a/basics/2_variable_datatype/README.md b/basics/2_variable_datatype/README.md index fb5f2d1..5a290c6 100644 --- a/basics/2_variable_datatype/README.md +++ b/basics/2_variable_datatype/README.md @@ -12,12 +12,12 @@ Variabel bisa digunakan untuk menyimpan berbagai jenis tipe data, seperti *inte - [Float](#float) - [Boolean](#boolean) - [Array](#array) - - [Object](#object) + - [Object](#object-tingkat-menengah) - [NULL](#null) - [Resource](#resource) - [Variabel dalam String](#3-variabel-dalam-string) - [Variabel Dalam String Petik Satu](#variabel-dalam-string-petik-satu) - - [Variabel Dalam Sting Petik Dua](#variabel-dalam-sting-petik-dua) + - [Variabel Dalam Sting Petik Dua](#variabel-dalam-string-petik-dua) - [Variabel Dalam String Sintaks *Heredoc*](#variabel-dalam-string-sintaks-heredoc) - [Array](#4-array) - [Membuat Array](#membuat-array) @@ -73,7 +73,7 @@ Nah, dengan melihat contoh-contoh di atas kamu telah mengetahui cara penulisan v ## 2. Tipe Data -Dalam pemrograman PHP tentang penulisan tipe data, PHP termasuk _static typing_ yang artinya tipe data tidak dituliskan secara eksplisit. Melainkan PHP sudah secara otomatis menentukan tipe datanya berdasarkan value yang telah ditentukan. Jadi kita tidak perlu menuliskan tipe datanya langsung. Tapi alangkah baiknya jika kita mengetahui berbagai jenis tipe data yang dapat dipahami oleh PHP. +Dalam pemrograman PHP tentang penulisan tipe data, PHP termasuk *static typing* yang artinya tipe data tidak dituliskan secara eksplisit. Melainkan PHP sudah secara otomatis menentukan tipe datanya berdasarkan value yang telah ditentukan. Jadi kita tidak perlu menuliskan tipe datanya langsung. Tapi alangkah baiknya jika kita mengetahui berbagai jenis tipe data yang dapat dipahami oleh PHP. Pada contoh sebelumnya kita telah menuliskan berberapa tipe data, seperti *string* dan *integer*. Selanjutnya, kita akan membahas lengkap tentang tipe data pada PHP. @@ -112,9 +112,11 @@ Ada beberapa cara untuk menulis sebuah string, berikut adalah cara yang bisa dil #### 1. Petik Satu String yang diawali dan diakhiri dengan tanda petik satu (`'`) + ```php $text = 'Hello World'; ``` + @@ -125,9 +127,11 @@ $text = 'Hello World'; #### 2. Petik Dua String yang diawali dan diakhriri dengan tanda petik dua (`"`) + ```php $text = "Hello World"; ``` + @@ -138,6 +142,7 @@ $text = "Hello World"; #### 3. Sintaks *Heredoc* String yang diawali dengan tanda `<< @@ -155,6 +161,7 @@ NAMA_BUAH; #### 4. Sintaks *Nowdoc* String yang diawali dengan tanda `<<<'LABEL'` dan diakhiri dengan `LABEL`. Perbedaannya dengan heredoc adalah pada sintaks nowdoc, tidak ada parsing variabel didalamnya sehingg tidak dapat memberikan variabel didalam. (lihat: [3. Variabel dalam String](#3-variabel-dalam-string)) + ```php $buah = <<<'NAMA_BUAH' Apel @@ -163,6 +170,7 @@ Jeruk $variabel NAMA_BUAH; ``` + @@ -175,9 +183,11 @@ NAMA_BUAH; Sesuai dengan deskripsi yang ada pada tabel di atas, **integer adalah** tipe data yang merupakan bilangan bulat positif atau negatif. Tipe data ini sering digunakan untuk operasi matematika. + ```php $x = 1; ``` + @@ -194,6 +204,7 @@ Float adalah tipe data yang berupa bilangan dengan titik (desimal). ```php $x = 1.5; ``` + @@ -204,10 +215,12 @@ $x = 1.5; ### Boolean Boolean merupakan tipe data yang isinya ada dua pilihan yaitu `true` dan `false`, ini seperti **YA** dan **TIDAK** atau **BENAR** dan **SALAH**. + ```php $x = true; $y = false; ``` + @@ -219,7 +232,7 @@ Boolean biasa digunakan pada suatu pengondisian, yang mana boolean digunakan unt ### Array -Untuk penjelasan mengenai array, kamu bisa membacanya [di sini.](#4-array-3_arrayphp) +Untuk penjelasan mengenai array, kamu bisa membacanya [di sini.](#4-array)

@@ -310,17 +323,22 @@ Pada string yang ditulis dengan petik satu, untuk merangkai string dengan variab $name = 'Feri Irawan'; $text = 'Halo ' . $name; // Output: Halo Feri Irawan ``` +

+ ### Variabel Dalam String Petik Dua -Berbeda dengan petik satu, jika menggunakan petik 2 kamu dapat menuliskan variabel didalam string langsung. + +Berbeda dengan petik satu, jika menggunakan petik 2 kamu dapat menuliskan variabel didalam string langsung. + ```php $name = 'Feri Irawan'; $text = "Halo $name"; // Output: Halo Feri Irawan ``` + @@ -329,13 +347,16 @@ $text = "Halo $name"; // Output: Halo Feri Irawan
### Variabel Dalam String Sintaks *Heredoc* + Di penulisan string heredoc, kamu dapat menuliskan langsung pada string sama seperti petik dua. + ```php $text = << @@ -345,7 +366,7 @@ TENTANG_SAYA; ## 4. Array -Sesuai dengan penjelasan pada [bagian 2](#2-tipe-data--1_data_typephp) di atas, kita sudah ketahui kalau **array merupakan** salah satu tipe data yang dapat menampung beberapa data lain di dalamnya seperti string, integer, float, dan tipe data lainnya. +Sesuai dengan penjelasan pada [bagian 2](#2-tipe-data) di atas, kita sudah ketahui kalau **array merupakan** salah satu tipe data yang dapat menampung beberapa data lain di dalamnya seperti string, integer, float, dan tipe data lainnya. ### Membuat Array @@ -374,7 +395,7 @@ Nah, dengan melihat contoh di atas, dapat kita ketahui bahwa penulisan array dap 1. Menggunakan tanda kurung siku, yang dimana tanda `[` sebagai pembuka dan tanda `]` sebagai penutup (direkomendasikan). 2. Menggunakan $function$ `array()`, yang dimana `array(` sebagai pembuka dan `)` sebagai penutup. -[![](https://img.shields.io/static/v1?&label=Lihat%20Contoh&message=%3e&color)](3_array.php#L5-L40) +[![tautan file program untuk contoh materi array 1](https://img.shields.io/static/v1?&label=Lihat%20Contoh&message=%3e&color)](3_array.php#L5-L40) > Jika kamu bingung apa itu $function$, kamu jangan khawatir, karna kamu akan mempelajarinya di meteri berikutnya. @@ -384,29 +405,29 @@ Dalam PHP, array terbagi menjadi 2 jenis, yaitu: 1. Array numerik (array yang memiliki index dan nilai). Array numerik selalu memiliki index yang dimulai dari nol (0). - [![](https://img.shields.io/static/v1?&label=Lihat%20Contoh&message=%3e&color)](3_array.php#L43-L47) + [![tautan file program untuk contoh materi array 2](https://img.shields.io/static/v1?&label=Lihat%20Contoh&message=%3e&color)](3_array.php#L43-L47) 2. Array asosiatif (array yang memiliki key dan nilai). Key digunakan sebagi pengganti dari index. - [![](https://img.shields.io/static/v1?&label=Lihat%20Contoh&message=%3e&color)](3_array.php#L50-L57) + [![tautan file program untuk contoh materi array 3](https://img.shields.io/static/v1?&label=Lihat%20Contoh&message=%3e&color)](3_array.php#L50-L57) > **INFO:** > > Array numerik dan array asosiatif dapat digabung. > -> [![](https://img.shields.io/static/v1?&label=Lihat%20Contoh&message=%3e&color)](3_array.php#L60-L69) +> [![tautan file program untuk contoh materi array 4](https://img.shields.io/static/v1?&label=Lihat%20Contoh&message=%3e&color)](3_array.php#L60-L69) ### Menambah Data ke Dalam Array -[![](https://img.shields.io/static/v1?&label=Lihat%20Contoh&message=%3e&color)](3_array.php#L72-L89) +[![tautan file program untuk contoh materi array 5](https://img.shields.io/static/v1?&label=Lihat%20Contoh&message=%3e&color)](3_array.php#L72-L89) ### Mengubah Data Array -[![](https://img.shields.io/static/v1?&label=Lihat%20Contoh&message=%3e&color)](3_array.php#L92-L127) +[![tautan file program untuk contoh materi array 6](https://img.shields.io/static/v1?&label=Lihat%20Contoh&message=%3e&color)](3_array.php#L92-L127) ### Menghapus Data Array -[![](https://img.shields.io/static/v1?&label=Lihat%20Contoh&message=%3e&color)](3_array.php#L130-L161) +[![tautan file program untuk contoh materi array 7](https://img.shields.io/static/v1?&label=Lihat%20Contoh&message=%3e&color)](3_array.php#L130-L161) ## 5. Konstanta @@ -423,14 +444,14 @@ Dalam bahasa pemrograman PHP, pembuatan konstanta berbeda dengan pembuatan varia > > Nama konstanta bersifat sensitif terhadap huruf besar dan kecil. -[![](https://img.shields.io/static/v1?&label=Lihat%20Contoh&message=%3e&color)](4_constant_variable.php#L5-L28) +[![tautan file program untuk contoh materi variabel konstan 1](https://img.shields.io/static/v1?&label=Lihat%20Contoh&message=%3e&color)](4_constant_variable.php#L5-L28) Deklarasi variabel konstanta pada PHP juga dapat dilakukan dengan menggunakan kata kunci `const` disusul dengan `NAMA_KONSTANTA` beserta `nilai` dari konstanta yang dibuat. > **INFO:** > > Deklarasi variabel konstanta ini seperti deklarasi variabel konstanta pada bahasa pemrograman JavaScript -[![](https://img.shields.io/static/v1?&label=Lihat%20Contoh&message=%3e&color)](4_constant_variable.php#L21-L46) +[![tautan file program untuk contoh materi variabel konstan 1](https://img.shields.io/static/v1?&label=Lihat%20Contoh&message=%3e&color)](4_constant_variable.php#L21-L46) ## 6. Variabel telah Ditetapkan diff --git a/basics/3_operator/README.md b/basics/3_operator/README.md index ad8f95c..0ed9696 100644 --- a/basics/3_operator/README.md +++ b/basics/3_operator/README.md @@ -40,7 +40,7 @@ Operator aritmatika digunakan untuk memanipulasi bilangan-bilangan numerik seder Secara umum operator aritmatika disusun sebagai berikut : -**Table Operator Aritmatika** +### Table Operator Aritmatika | Symbol | Nama | Contoh | Keterangan | | ------ | ----------- | -------- | ------------------------------------------------------------------ | @@ -73,6 +73,7 @@ $b = 15; echo ($a + $b); // Hasil 25 echo (12 + 15); // Hasil 27 ``` +
### Pengurangan @@ -168,7 +169,6 @@ echo (-5 % -2)."/n"; // Hasil -1
- ### Exponensial Exponensial lebih dikenal secara umum sebagai bilangan pangkat atau dalam penulisan fungsi Matematika ditulis ~ x y @@ -244,7 +244,7 @@ Operator *Bitwise* dapat dipelajari lebih lanjut [disini](#operator-bitwise) | $a .= $b | $a = $a . $b | Penggabungan string | | $a ??= $b | $a = $a ?? $b | Null Coalesce | -Untuk *Null Coalesce* dapat dipelajari lebih lanjut [disini](#null_coalesce_operator) +Untuk *Null Coalesce* dapat dipelajari lebih lanjut [disini](#null-coalesce-operator)
@@ -268,6 +268,7 @@ Operator pembanding ini digunakan untuk membandingkan dua variabel yang nilainya Contoh kodenya dapat dilihat [di sini](./3_comparison_operator.php).
+ ## Operator Logika Operator logika ini digunakan untuk menggabungkan pernyataan yang bersifat kondisional. @@ -282,6 +283,7 @@ Operator logika ini digunakan untuk menggabungkan pernyataan yang bersifat kondi Contoh kodenya dapat dilihat [di sini](./4_logical_operator.php).
+ ## Operator Bitwise *Bitwise* operator adalah operator yang disediakan oleh PHP untuk pengolahan, evaluasi dan manipulasi logika dari bilangan biner (*Binary*). @@ -703,9 +705,6 @@ Contoh di atas `(var) = (expr1) ?? (expr2)` menghasilkan `(var) = (expr2)` jika - [W3School - PHP Operator](https://www.w3schools.com/php/php_operators.asp) - [php.net - Manual](https://www.php.net/manual/en/) - - - @@ -715,4 +714,4 @@ Contoh di atas `(var) = (expr1) ?? (expr2)` menghasilkan `(var) = (expr2)` jika -
SebelumnyaVariabel dan Tipe Data Conditional Statements
\ No newline at end of file + diff --git a/basics/4_conditional_statements/README.md b/basics/4_conditional_statements/README.md index fe5ebc2..cf29eef 100644 --- a/basics/4_conditional_statements/README.md +++ b/basics/4_conditional_statements/README.md @@ -15,7 +15,6 @@ Seperti halnya bahasa pemrograman lainnya, materi pengkondisian bisa dibilang "w - [2. Switch](#2-switch) - [Cara penggunaan Switch](#cara-penggunaan-switch) - [3. Operator Ternary](#3-operator-ternary) - - [Cara penggunaan operator ternary](#cara-penggunaan-ternary-operator) ## 1. If, Else If dan Else @@ -38,7 +37,6 @@ Ada beberapa hal yang harus diperhatikan dalam penggunaan *If*, *Else If*, dan * ### Cara penggunaan If, Else If, dan Else -
#### 1. If ```php @@ -49,9 +47,8 @@ if (kondisi) { } ``` -[![](https://img.shields.io/static/v1?&label=Lihat%20Contoh&message=%3e&color)](1_if_elseif_else.php#L17-L44) +[![Tautan file kode contoh program pernyataan if 1](https://img.shields.io/static/v1?&label=Lihat%20Contoh&message=%3e&color)](1_if_elseif_else.php#L17-L44) -
#### 2. Else ```php @@ -64,9 +61,8 @@ if (kondisi) { } ``` -[![](https://img.shields.io/static/v1?&label=Lihat%20Contoh&message=%3e&color)](1_if_elseif_else.php#L49-L82) +[![Tautan file kode contoh program pernyataan if 2](https://img.shields.io/static/v1?&label=Lihat%20Contoh&message=%3e&color)](1_if_elseif_else.php#L49-L82) -
#### 3. Else If ```php @@ -81,9 +77,8 @@ if (kondisi_1) { } ``` -[![](https://img.shields.io/static/v1?&label=Lihat%20Contoh&message=%3e&color)](1_if_elseif_else.php#L87-L113) +[![Tautan file kode contoh program pernyataan if 3](https://img.shields.io/static/v1?&label=Lihat%20Contoh&message=%3e&color)](1_if_elseif_else.php#L87-L113) -
#### 4. If Else - Shorthand ```php @@ -92,9 +87,8 @@ if (kondisi_1) { (ekspresi ? /* Lakukan sesuatu di sini bila kondisi terpenuhi */ : /* Lakukan sesuatu di sini bila kondisi tidak terpenuhi */) ``` -[![](https://img.shields.io/static/v1?&label=Lihat%20Contoh&message=%3e&color)](1_if_elseif_else.php#L118-L140) +[![Tautan file kode contoh program pernyataan if 4](https://img.shields.io/static/v1?&label=Lihat%20Contoh&message=%3e&color)](1_if_elseif_else.php#L118-L140) -
## 2. Switch Switch juga merupakan salah satu cara pengkondisian yang bisa digunakan untuk banyak kondisi. Cara kerjanya adalah dengan membandingkan ekspresi PHP (operasi aritmatika, perbandingan, dll.) yang diberikan dengan kondisi-kondisinya. @@ -136,9 +130,10 @@ switch (ekspresi) { } ``` -[![](https://img.shields.io/static/v1?&label=Lihat%20Contoh&message=%3e&color)](2_switch.php#L16-L86) +[![Tautan file kode contoh program pernyataan switch](https://img.shields.io/static/v1?&label=Lihat%20Contoh&message=%3e&color)](2_switch.php#L16-L86) ## 3. Operator Ternary + Operator ternary adalah operator yang mengurangi panjang kode saat membuat conditional statement. Metode ini merupakan alternatif dari pernyataan if-else dan nested if-else. Urutan eksekusi untuk operator ini adalah dari kiri ke kanan (statement 1 ke statement 2). Syntax : @@ -146,7 +141,8 @@ Syntax : ```php (kondisi) ? (statement1) : (statement2); ``` -[![](https://img.shields.io/static/v1?&label=Lihat%20Contoh&message=%3e&color)](3_operator_ternary.php#L16-L86) + +[![Tautan file kode contoh program penggunalan operator ternary](https://img.shields.io/static/v1?&label=Lihat%20Contoh&message=%3e&color)](3_operator_ternary.php#L16-L86) - kondisi : ekpresi yang menghasilkan nilai boolean true / false - statement1 : statement yang akan dieksekusi jika kondisi bernilai true @@ -163,7 +159,8 @@ Syntax : $data = (kondisi) ? (statement1) : (statement2); ?> ``` -[![](https://img.shields.io/static/v1?&label=Lihat%20Contoh&message=%3e&color)](4_ternary_assignment.php#L16-L86) + +[![Tautan file kode contoh program penugasan nilai dengan ternary](https://img.shields.io/static/v1?&label=Lihat%20Contoh&message=%3e&color)](4_ternary_assignment.php#L16-L86) ### Ternary Shorthand @@ -176,7 +173,8 @@ Syntax : ```php ekspresi1 ?: ekspresi2 ``` -[![](https://img.shields.io/static/v1?&label=Lihat%20Contoh&message=%3e&color)](5_ternary_shorthand.php#L16-L86) + +[![Tautan file kode contoh program pintasan ternary](https://img.shields.io/static/v1?&label=Lihat%20Contoh&message=%3e&color)](5_ternary_shorthand.php#L16-L86) > *__Catatan__:* @@ -192,4 +190,4 @@ Syntax : 3. Operator 5. Perulangan - \ No newline at end of file + diff --git a/basics/5_perulangan/README.md b/basics/5_perulangan/README.md index 59abba0..5492814 100644 --- a/basics/5_perulangan/README.md +++ b/basics/5_perulangan/README.md @@ -5,13 +5,13 @@ ## Daftar Isi - [Jenis-Jenis Perulangan](#jenis-jenis-perulangan) - - [1. Perulangan For](#1-perulangan-for) - - [2. Perulangan Foreach](#2-perulangan-foreach) + - [1. Perulangan For](#1-perulangan-for) + - [2. Perulangan Foreach](#2-perulangan-foreach) - [2.1 Nested Foreach](#21-nested-foreach) - [List sebagai Pengganti Nested Foreach](#list-sebagai-pengganti-nested-foreach) - - [3. Perulangan While](#3-perulangan-while) - - [4. Perulangan Do While](#4-perulangan-do-while) - - [5. Perulangan Tak Terbatas](#5-perulangan-tak-terbatas) + - [3. Perulangan While](#3-perulangan-while) + - [4. Perulangan Do While](#4-perulangan-do-while) + - [5. Perulangan Tak Terbatas](#5-perulangan-tak-terbatas) ## Jenis-Jenis Perulangan @@ -273,7 +273,7 @@ Demikian untuk pembahasan perulangan *Foreach*. Contoh penggunaan foreach dalam php dapat dilihat [disini](./2_foreach.php) -[![](https://img.shields.io/static/v1?&label=Contoh%20Foreach&message=%3e&color)](./2_foreach.php) +[![Tautan contoh kode program dengan perulangan foreach](https://img.shields.io/static/v1?&label=Contoh%20Foreach&message=%3e&color)](./2_foreach.php) ## 3. Perulangan While @@ -311,7 +311,7 @@ Baris kode di atas akan menghasilkan nilai `01234`, jadi selama `$i` lebih kecil Contoh penggunaan *while* dalam PHP dapat dilihat [disini](./3_while.php) -[![](https://img.shields.io/static/v1?&label=Contoh%20While&message=%3e&color)](./3_while.php) +[![Tautan contoh kode program perulangan while](https://img.shields.io/static/v1?&label=Contoh%20While&message=%3e&color)](./3_while.php) ## 4. Perulangan Do While @@ -347,7 +347,7 @@ Baris kode di atas menghasilkan nilai 6, walaupun dari awal nilai `$i` sudah leb Contoh penggunaan *Do While* dalam PHP dapat dilihat [disini](./4_do_while.php) -[![](https://img.shields.io/static/v1?&label=Contoh%20Do%20While&message=%3e&color)](./4_do_while.php) +[![Tautan contoh kode program perulangan do-while](https://img.shields.io/static/v1?&label=Contoh%20Do%20While&message=%3e&color)](./4_do_while.php) Itulah 4 perulangan yang terdapat dalam PHP. @@ -458,7 +458,6 @@ Baris kode diatas tidak akan melakukan perulangan tetapi akan memunculkan pesan - [W3School - PHP Loops](https://www.w3schools.com/php/php_looping.asp) - [php.net - Manual](https://www.php.net/manual/en/) - @@ -468,4 +467,4 @@ Baris kode diatas tidak akan melakukan perulangan tetapi akan memunculkan pesan -
Sebelumnya4. Conditional Statements 6. Manipulasi String
\ No newline at end of file + diff --git a/basics/6_manipulasi_string/README.md b/basics/6_manipulasi_string/README.md index 444a567..cd5e0f1 100644 --- a/basics/6_manipulasi_string/README.md +++ b/basics/6_manipulasi_string/README.md @@ -20,16 +20,16 @@ PHP menyediakan berbagai fungsi dan fitur untuk memanipulasi _string_ agar suatu - [4. String Array](4-string-array) - [implode()](#implode) - [explode()](#explode) - - [str_split()](#str-split) + - [str_split()](#str_split) - [join()](#join) -- [5. Escape & Formatting](#5-escape-and-formatting) +- [5. Escape & Formatting](#5-escape--formatting) - [addslashes](#addslashes) - [6. Manipulasi String](#6-manipulasi-string) - - [str_pad](#strpad) + - [str_pad](#str_pad) - [wordwrap](#wordwrap) - - [str_shuffle](#strshuffle) - - [str_repeat](#strrepeat) - - [str_replace](#strreplace) + - [str_shuffle](#str_shuffle) + - [str_repeat](#str_repeat) + - [str_replace](#str_replace) - [strtr](#strtr) ## 1. Mengambil Properti String @@ -426,7 +426,7 @@ _output:_ -> _Referensi:_ https://www.w3schools.com/php/func_string_addslashes.asp +> _Referensi:_ [https://www.w3schools.com/php/func_string_addslashes.asp](https://www.w3schools.com/php/func_string_addslashes.asp) --- @@ -447,7 +447,7 @@ $text = "Ayo belajar \ di bellshade"; echo "$text"; ``` -#### Output +Output: @@ -459,12 +459,10 @@ $text1 = stripslashes($text); echo $text1; ``` -### Output +Output: -
- ## 6. Manipulasi String _String_ dalam PHP bisa di lakukan perubahan atau di manipulasi. Pada materi-materi yang diatas tadi juga sudah ditunjukkan beragam manipulasi dari _string_. Berikut ada beberapa tambahan function lagi yang ada pada PHP untuk memanipulasi string @@ -503,6 +501,7 @@ echo $text; $text1 = wordwrap('Text Target', 5); echo $text1; ``` + @@ -521,6 +520,7 @@ echo $text; $text1 = str_shuffle('Text Target'); echo $text1; ``` + @@ -585,8 +585,7 @@ echo $text1; --- > Referensi -> https://www.w3schools.com/php/func_string_stripslashes.asp - +> [https://www.w3schools.com/php/func_string_stripslashes.asp](https://www.w3schools.com/php/func_string_stripslashes.asp) @@ -597,4 +596,4 @@ echo $text1; -
5. Perulangan 7. Array Mendalam
\ No newline at end of file + diff --git a/basics/7_array_mendalam/README.md b/basics/7_array_mendalam/README.md index 0e4e1d1..efee0ee 100644 --- a/basics/7_array_mendalam/README.md +++ b/basics/7_array_mendalam/README.md @@ -62,7 +62,6 @@ Dalam materi ini kita bahas mengenai Array lebih lanjut. - ## 1. Array ### Apa itu Array @@ -150,7 +149,7 @@ Kode di atas juga bisa diganti dengan syntax yang lebih pendek dengan mendeklara $variable = ['Padang', 'Batu Sangkar', 'Payahkumbuh']; ``` -[![](https://img.shields.io/static/v1?&label=Lihat%20Contoh&message=%3e&color)](1_array.php#L10-L28) +[![Tautan contoh kode program array 1](https://img.shields.io/static/v1?&label=Lihat%20Contoh&message=%3e&color)](1_array.php#L10-L28) ### Mengakses Elemen Array @@ -172,7 +171,7 @@ echo $kota[1]; Dengan demikian kita telah bisa membuat dan mengakses sebuah Array. -[![](https://img.shields.io/static/v1?&label=Lihat%20Contoh&message=%3e&color)](1_array.php#L29-L34) +[![Tautan contoh kode program array 2](https://img.shields.io/static/v1?&label=Lihat%20Contoh&message=%3e&color)](1_array.php#L29-L34) ## 2. Jenis Array @@ -239,7 +238,7 @@ Wah.. cukup dinamis bukan!!! Untuk memahami lebih lanjut kita dapat pelajari contoh kode. -[![](https://img.shields.io/static/v1?&label=Lihat%20Contoh&message=%3e&color)](2_jenis_array.php#L11-L22) +[![Tautan contoh kode program jenis array 1](https://img.shields.io/static/v1?&label=Lihat%20Contoh&message=%3e&color)](2_jenis_array.php#L11-L22) ### 2. Array Asosiatif @@ -275,11 +274,10 @@ Untuk mengakses data tersebut sama caranya dengan Array index hanya key yang tad echo $kota['ibukota']; // Tampilkan elemen array dengan key ibukota ``` -[![](https://img.shields.io/static/v1?&label=Lihat%20Contoh&message=%3e&color)](1_jenis_array.php#L24-L29) - -**TAMBAHAN** +[![Tautan contoh kode program jenis array 2](https://img.shields.io/static/v1?&label=Lihat%20Contoh&message=%3e&color)](2_jenis_array.php#L24-L29) -Array Index dan Array Asosiatif dapat digabungkan menjadi satu, dengan aturan sama yang terdapat dalam *Array Index* bagi elemen yang key nya tidak terdefinisikan. +> **TAMBAHAN:** +> Array Index dan Array Asosiatif dapat digabungkan menjadi satu, dengan aturan sama yang terdapat dalam *Array Index* bagi elemen yang key nya tidak terdefinisikan. contoh : ```php @@ -304,7 +302,7 @@ Array ) ``` -[![](https://img.shields.io/static/v1?&label=Lihat%20Contoh&message=%3e&color)](1_array.php#L31-L45) +[![Tautan contoh kode program array](https://img.shields.io/static/v1?&label=Lihat%20Contoh&message=%3e&color)](1_array.php#L31-L45) Akhirnya kita sudah mengenal apa itu **array index** dan **array asosiasif**. @@ -341,7 +339,7 @@ Untuk mengakses nilai array tersebut kita memakai sintaks `$data[baris][kolom]` echo $data[1][0]; // Hasil BA ``` -[![](https://img.shields.io/static/v1?&label=Lihat%20Contoh&message=%3e&color)](3_1_array_multidimensi.php) +[![Tautan contoh kode program array multi dimensi](https://img.shields.io/static/v1?&label=Lihat%20Contoh&message=%3e&color)](3_1_array_multidimensi.php) Untuk lebih memahami coba kita implementasikan sebuah tabel ke dalam array. @@ -371,11 +369,11 @@ $tabelcontoh = [ Kode di atas telah menyimpan data [tabel 1. Contoh](#tabel-1-contoh) ke dalam Multi Dimensi Array (tepatnya tiga dimensi array), saat kita melakukan perintah `print_r` terhadap array tersebut akan menghasilkan tampilan seperti ini. -[![](https://img.shields.io/static/v1?&label=Lihat%20Contoh&message=%3e&color)](3_2_implementasi_table_array.php) +[![Tautan contoh kode program implementasi tabel array](https://img.shields.io/static/v1?&label=Lihat%20Contoh&message=%3e&color)](3_2_implementasi_table_array.php) Untuk mengakses data tabel tersebut ke dalam tabel kita dapat menggunakan beberapa metode perulangan. -[![](https://img.shields.io/static/v1?&label=Lihat%20Contoh&message=%3e&color)](3_3_array_kedalam_table.php) +[![Tautan contoh kode program mengakses tabel array](https://img.shields.io/static/v1?&label=Lihat%20Contoh&message=%3e&color)](3_3_array_kedalam_table.php) > **Dimensi Array** > @@ -399,18 +397,18 @@ Untuk menghitung elemen yang terdapat di dalam sebuah Array dapat menggunakan du sizeof(array $arr, int $mode = 0) : int ``` -**Parameter** +Parameter -- `$arr` Diisi dengan variable array yang akan dicari jumlah elementnya _(wajib diisi)_ -- `$mode` Diisi dengan nilai `0` atau `1` _(opsional)_ - - `0` atau `COUNT_NORMAL` - Default, tidak akan menghitung elemen dari array multidimensi di dalamnya _(linear)_. - - `1` atau `COUNT_RECURSIVE` - Akan menghitung jumlah elemen dari array multidimensi di dalamnya _(recursive)_. +- `$arr` Diisi dengan variable array yang akan dicari jumlah elementnya *(wajib diisi)* +- `$mode` Diisi dengan nilai `0` atau `1` *(opsional)* + - `0` atau `COUNT_NORMAL` - Default, tidak akan menghitung elemen dari array multidimensi di dalamnya *(linear)*. + - `1` atau `COUNT_RECURSIVE` - Akan menghitung jumlah elemen dari array multidimensi di dalamnya *(recursive)*. -**Hasil** +Hasil - Jumlah elemen pada array -**Contoh penggunaan** +Contoh penggunaan ```php Parameter -- `$arr` Diisi dengan variable array yang akan dicari jumlah elementnya _(wajib diisi)_ -- `$mode` Diisi dengan nilai `0` atau `1` _(opsional)_ - - `0` atau `COUNT_NORMAL` - Default, tidak akan menghitung elemen dari array multidimensi di dalamnya _(linear)_. - - `1` atau `COUNT_RECURSIVE` - Akan menghitung jumlah elemen dari array multidimensi di dalamnya _(recursive)_. +- `$arr` Diisi dengan variable array yang akan dicari jumlah elementnya *(wajib diisi)* +- `$mode` Diisi dengan nilai `0` atau `1` *(opsional)* + - `0` atau `COUNT_NORMAL` - Default, tidak akan menghitung elemen dari array multidimensi di dalamnya *(linear)*. + - `1` atau `COUNT_RECURSIVE` - Akan menghitung jumlah elemen dari array multidimensi di dalamnya *(recursive)*. -**Hasil** +Hasil - Jumlah elemen pada array -**Contoh Penggunaan** +Contoh Penggunaan ```php Parameter -- `$arr` array yang akan digunakan _(wajib diisi)_ -- `$value` nilai dari key yang akan kita ambil _(opsional)_ -- `$strict` apakah spesifik dengan tipe datanya atau tidak? _(opsional)_ +- `$arr` array yang akan digunakan *(wajib diisi)* +- `$value` nilai dari key yang akan kita ambil *(opsional)* +- `$strict` apakah spesifik dengan tipe datanya atau tidak? *(opsional)* -**Hasil** +Hasil - `Array` -**Contoh Penggunaan** +Contoh Penggunaan ```php Parameter -- `$arr` array yang akan digunakan _(wajib diisi)_ +- `$arr` array yang akan digunakan *(wajib diisi)* -**Hasil** +Hasil - `Array` -**Contoh Penggunaan** +Contoh Penggunaan ```php array_push($letters, 'a', 'b') > ``` -**Parameter** +Parameter - `$arr` array tujuan - `$values` nilai elemen baru, yang akan ditambahkan -**Hasil** +Hasil - Jumlah elemen setelah ditambahkan -**Contoh Penggunaan** +Contoh Penggunaan ```php Parameter - `$arr` array yang akan dikeluarkan elemen terakhirnya. -**Hasil** +Hasil - Element yang dikeluarkan. -**Contoh Pengunaan** +Contoh Pengunaan ```php > Tanda `&` pada `$arr` berarti akan mengubah nilai dari `$arr` -**Parameter** +Parameter - `$arr` array yang akan dikeluarkan elemen pertamanya. -**Hasil** +Hasil - Element yang dikeluarkan. -**Contoh Penggunaan** +Contoh Penggunaan ```php Tanda `&` pada `$arr` berarti akan mengubah nilai dari `$arr`.
> **...$values** berarti dapat diisi nilai `1,2,3`, contoh: `array_push($letters, 'a', 'b')` -**Parameter** +Parameter - `$arr` array yang akan ditambahkan elemen pertamanya. - `$values` nilai elemen baru, yang akan ditambahkan. -**Hasil** +Hasil - Jumlah elemen setelah ditambahkan -**Contoh Penggunaan** +Contoh Penggunaan ```php array_diff($arr1, $arr2, $arr3) > ``` -**Parameter** +Parameter - `$arr` array pertama yang akan dibandingkan. - `$arrs` array lain sebagai pembanding. -**Hasil** +Hasil - Elemen-elemen yang tidak terdapat di array pembanding. -**Contoh Penggunaan** +Contoh Penggunaan ```php > Tanda `?` pada `int $length` berarti boleh kosong / *null*. -**Parameter** +Parameter - `$arr` array yang akan dihapus elementnya - `$offset` urutan awal elemen yang akan dihapus - - Jika _positive_ maka `offset` akan dihitung dari **awal** array - - Jika _negative_ maka `offset` akan dihitung dari **akhir** array + - Jika *positive* maka `offset` akan dihitung dari **awal** array + - Jika *negative* maka `offset` akan dihitung dari **akhir** array - `$length` banyaknya elemen yang akan dihapus - - Jika _null_ maka dimulai dari `offset` hingga akhir array - - Jika _positive_ maka dihapus sesuai `$length` - - Jika _negative_ maka akhir dari bagian yang dihapus akan menjadi elemen dari array + - Jika *null* maka dimulai dari `offset` hingga akhir array + - Jika *positive* maka dihapus sesuai `$length` + - Jika *negative* maka akhir dari bagian yang dihapus akan menjadi elemen dari array - `$replacement` array yang akan menggantikan array yang dihapus -**Hasil** +Hasil - Array yang tersisa -**Contoh Penggunaan** +Contoh Penggunaan ```php array_merge($arr1, $arr2, $arr3) > ``` -**Parameter** +Parameter - `$arrs` array yang akan digabungkan. -**Hasil** +Hasil - Array yang telah digabungkan -**Contoh Penggunaan** +Contoh Penggunaan ```php Parameter - `$arr` array yang akan diubah -**Hasil** +Hasil - Array setelah diubah -**Contoh Penggunaan** +Contoh Penggunaan ```php Parameter - `$arr` array yang akan dibalikan -- `$preverse_keys` jika _true_ maka key tidak akan diubah +- `$preverse_keys` jika `true` maka key tidak akan diubah -**Hasil** +Hasil - Array yang telah dibalikan urutannya -**Contoh Penggunaan** +Contoh Penggunaan ```php Tanda `|` berarti "atau" -**Parameter** +Parameter - `$arr` array yang akan diambil elementnya - `$num` jumlah elemen yang akan diambil -**Hasil** +Hasil - Key dari elemen yang diambil secara acak -**Contoh Penggunaan** +Contoh Penggunaan ```php Tanda `?` pada `int $length` berarti boleh kosong / *null*. -**Parameter** +Parameter - `$arr` array yang akan diambil elementnya - `$offset` urutan awal elemen yang akan diambil - - Jika _positive_ maka urutan akan dihitung dari **awal** `offset` tersebut - - Jika _negative_ maka urutan akan dari **akhir** array hingga `offset` tersebut + - Jika *positive* maka urutan akan dihitung dari **awal** `offset` tersebut + - Jika *negative* maka urutan akan dari **akhir** array hingga `offset` tersebut - `$length` banyaknya elemen yang akan dihapus - - Jika _null_ maka diambil dari `offset` hingga akhir array - - Jika _positive_ maka diambil sesuai `length` - - Jika _negative_ maka akan berhenti sesuai `length` dari akhir array -- `$preserve_keys` jika _true_ akan mempertahankan key / tidak mengubah key pada elemen + - Jika *null* maka diambil dari `offset` hingga akhir array + - Jika *positive* maka diambil sesuai `length` + - Jika *negative* maka akan berhenti sesuai `length` dari akhir array +- `$preserve_keys` jika *true* akan mempertahankan key / tidak mengubah key pada elemen -**Hasil** +Hasil - Array yang diambil -**Contoh Penggunaan** +Contoh Penggunaan ```php 'grape', '2' => 'banana'] ``` -[![](https://img.shields.io/static/v1?&label=Lihat%20Contoh&message=%3e&color)](4_manipulasi_array_array_slice.php) +[![Tautan contoh kode program fungsi array_slice](https://img.shields.io/static/v1?&label=Lihat%20Contoh&message=%3e&color)](4_manipulasi_array_array_slice.php) ### Pengurutan pada array -Ketika menggunakan array seringkali elemen pada array tersebut memiliki urutan yang acak, maka untuk merapihkannya kita memerlukan fungsi untuk pengurutan _(order)_, seperti berikut : +Ketika menggunakan array seringkali elemen pada array tersebut memiliki urutan yang acak, maka untuk merapihkannya kita memerlukan fungsi untuk pengurutan *(order)*, seperti berikut : #### a. sort -Berfungsi untuk mengurutkan array secara _ascending_ atau **A-Z**. +Berfungsi untuk mengurutkan array secara *ascending* atau **A-Z**. ```php sort(array &$arr, int $flags = SORT_REGULAR) : bool @@ -1036,7 +1034,7 @@ sort(array &$arr, int $flags = SORT_REGULAR) : bool > Tanda `&` pada `$arr` berarti akan mengubah nilai dari `$arr` -**Parameter** +Parameter - `$arr` array yang akan diurutkan - `$flags` ketentuan dari pengurutan yang akan dilakukan @@ -1047,11 +1045,11 @@ sort(array &$arr, int $flags = SORT_REGULAR) : bool - `SORT_NATURAL` melakukan pengurutan secara huruf menggunakan pengurutan natural - `SORT_FLAG_CASE` dapat menggabungkan `SORT_STRING` atau `SORT_NATURAL` -**Hasil** +Hasil -- Nilai _true_ +- Nilai `true` -**Contoh Penggunaan** +Contoh Penggunaan ```php tanda **&** pada `$arr` berarti akan mengubah nilai dari `$arr` -**Parameter** +Parameter - `$arr` array yang akan diurutkan - `$flags` ketentuan dari pengurutan yang akan dilakukan @@ -1086,11 +1084,11 @@ rsort(array &$arr, int $flags = SORT_REGULAR) : bool - `SORT_NATURAL` melakukan pengurutan secara huruf menggunakan pengurutan natural - `SORT_FLAG_CASE` dapat menggabungkan `SORT_STRING` atau `SORT_NATURAL` -**Hasil** +Hasil -- Nilai _true_ +- Nilai `true` -**Contoh Penggunaan** +Contoh Penggunaan ```php Tanda `&` pada `$arr` berarti akan mengubah nilai dari `$arr` -**Parameter** +Parameter - `$arr` array yang akan diurutkan - `$flags` ketentuan dari pengurutan yang akan dilakukan @@ -1125,11 +1123,11 @@ asort(array &$arr, int $flags = SORT_REGULAR) : bool - `SORT_NATURAL` melakukan pengurutan secara huruf menggunakan pengurutan natural - `SORT_FLAG_CASE` dapat menggabungkan `SORT_STRING` atau `SORT_NATURAL` -**Hasil** +Hasil -- Nilai _true_ +- Nilai `true` -**Contoh Penggunaan** +Contoh Penggunaan ```php Tanda `&` pada `$arr` berarti akan mengubah nilai dari `$arr` -**Parameter** +Parameter - `$arr` array yang akan diurutkan - `$flags` ketentuan dari pengurutan yang akan dilakukan @@ -1171,11 +1169,11 @@ arsort(array &$arr, int $flags = SORT_REGULAR) : bool - `SORT_NATURAL` melakukan pengurutan secara huruf menggunakan pengurutan natural - `SORT_FLAG_CASE` dapat menggabungkan `SORT_STRING` atau `SORT_NATURAL` -**Hasil** +Hasil -- Nilai _true_ +- Nilai `true` -**Contoh Penggunaan** +Contoh Penggunaan ```php Tanda `&` pada `$arr` berarti akan mengubah nilai dari `$arr` -**Parameter** +Parameter - `$arr` array yang akan diurutkan - `$flags` ketentuan dari pengurutan yang akan dilakukan @@ -1217,11 +1215,11 @@ ksort(array &$arr, int $flags = SORT_REGULAR) : bool - `SORT_NATURAL` melakukan pengurutan secara huruf menggunakan pengurutan natural - `SORT_FLAG_CASE` dapat menggabungkan `SORT_STRING` atau `SORT_NATURAL` -**Hasil** +Hasil -- Nilai _true_ +- Nilai `true` -**Contoh Penggunaan** +Contoh Penggunaan ```php Tanda `&` pada `$arr` berarti akan mengubah nilai dari `$arr` -**Parameter** +Parameter - `$arr` array yang akan diurutkan - `$flags` ketentuan dari pengurutan yang akan dilakukan @@ -1263,11 +1261,11 @@ krsort(array &$arr, int $flags = SORT_REGULAR) : bool - `SORT_NATURAL` melakukan pengurutan secara huruf menggunakan pengurutan natural - `SORT_FLAG_CASE` dapat menggabungkan `SORT_STRING` atau `SORT_NATURAL` -**Hasil** +Hasil -- Nilai _true_ +- Nilai `true` -**Contoh Penggunaan** +Contoh Penggunaan ```php @@ -1298,4 +1295,4 @@ krsort($fruits); 6. Manipulasi String 8. Fungsi Dasar - \ No newline at end of file + diff --git a/basics/8_fungsi_dasar/README.md b/basics/8_fungsi_dasar/README.md index a173ea9..eb85668 100644 --- a/basics/8_fungsi_dasar/README.md +++ b/basics/8_fungsi_dasar/README.md @@ -389,7 +389,13 @@ Contoh mendeklarasikan variabel statis: [![Contoh Static Variable](../../assets/content/cekhere.svg)](4_Static_Variable.php) +## 5. Fungsi Tanpa Nama +> *akan hadir* + +## 6. Fungsi Rekursif + +> *akan hadir* @@ -400,4 +406,4 @@ Contoh mendeklarasikan variabel statis: -
7. Array Mendalam 9. Form Handling
\ No newline at end of file + diff --git a/basics/9_form_handling/README.md b/basics/9_form_handling/README.md index a256dc5..3e7479e 100644 --- a/basics/9_form_handling/README.md +++ b/basics/9_form_handling/README.md @@ -19,18 +19,18 @@ Selanjutnya mari kita masuk ke materinya. ## Daftar Isi -- [1. Tombol Kirim *(1_submit_button.php)*](#1-tombol-kirim-1submitbuttonphp) -- [2. Input Berdasarkan Teks *(2_text_based_input.php)*](#2-input-berdasarkan-teks-2textbasedinputphp) - - [Contoh 1 - Text dan Number](#contoh-1-text-dan-number) - - [Contoh 2 - Email dan Password](#contoh-2-email-dan-password) - - [Contoh 3 - Hidden](#contoh-3-hidden) - - [Contoh 4 - Date](#contoh-4-date) -- [3. Input Select *(3_select.php)*](#3-input-select-3selectphp) -- [4. Date Time](#4-date-time-4datetimephp) -- [5. Check Box](#5-check-box-5checkboxphp) -- [6. Radio Button](#6-radio-button-6radiophp) -- [7. File](#7-file-7filephp) -- [8. Multiple File](#8-multiple-file-8multiplefilephp) +- [1. Tombol Kirim *(1_submit_button.php)*](#1-tombol-kirim-1_submit_buttonphp) +- [2. Input Berdasarkan Teks *(2_text_based_input.php)*](#2-input-berdasarkan-teks-2_text_based_inputphp) + - [Contoh 1 - Text dan Number](#contoh-1---text-dan-number) + - [Contoh 2 - Email dan Password](#contoh-2---email-dan-password) + - [Contoh 3 - Hidden](#contoh-3---hidden) + - [Contoh 4 - Date](#contoh-4---date) +- [3. Input Select *(3_select.php)*](#3-input-select-3_selectphp) +- [4. Date Time](#4-date-time-4_datetimephp) +- [5. Check Box](#5-check-box-5_checkboxphp) +- [6. Radio Button](#6-radio-button-6_radiophp) +- [7. File](#7-file-7_filephp) +- [8. Multiple File](#8-multiple-file-8_multiple_filephp) ## 1. Tombol Kirim *([1_submit_button.php](1_submit_button.php))* @@ -56,7 +56,7 @@ if (isset($_POST['kirim'])) { } ``` -[![](https://img.shields.io/static/v1?&label=Demo&message=%3e&color)](1_submit_button.php#L13-L23) +[![Tautan contoh kode program penanganan tombol kirim pada form](https://img.shields.io/static/v1?&label=Demo&message=%3e&color)](1_submit_button.php#L13-L23) > Data yang dikirim dari formulir akan disusun sebagai array asosiatif, dan dikumpulkan oleh variabel *superglobal* yaitu `$_GET` jika metode pengirimannya `GET` dan `$_POST` jika metode pengirimannya adalah `POST` @@ -94,7 +94,7 @@ if (isset($_POST['kirim'])) { } ``` -[![](https://img.shields.io/static/v1?&label=Demo&message=%3e&color)](2_input_based_text.php#L20-L36) +[![Tautan contoh kode program penanganan input 1 pada form](https://img.shields.io/static/v1?&label=Demo&message=%3e&color)](2_input_based_text.php#L20-L36) ### Contoh 2 - Email dan Password @@ -120,7 +120,7 @@ if (isset($_POST['kirim'])) { } ``` -[![](https://img.shields.io/static/v1?&label=Demo&message=%3e&color)](2_input_based_text.php#L39-L56) +[![Tautan contoh kode program penanganan input 2 pada form](https://img.shields.io/static/v1?&label=Demo&message=%3e&color)](2_input_based_text.php#L39-L56) ### Contoh 3 - Hidden @@ -142,7 +142,7 @@ if (isset($_POST['kirim'])) { } ``` -[![](https://img.shields.io/static/v1?&label=Demo&message=%3e&color)](2_input_based_text.php#L59-L72) +[![Tautan contoh kode program penanganan input 3 pada form](https://img.shields.io/static/v1?&label=Demo&message=%3e&color)](2_input_based_text.php#L59-L72) ### Contoh 4 - Date @@ -164,7 +164,7 @@ if (isset($_POST['kirim'])) { } ``` -[![](https://img.shields.io/static/v1?&label=Demo&message=%3e&color)](2_input_based_text.php#L75-L88) +[![Tautan contoh kode program penanganan input 4 pada form](https://img.shields.io/static/v1?&label=Demo&message=%3e&color)](2_input_based_text.php#L75-L88) ## 3. Input Select *([3_select.php](3_select.php))* @@ -194,7 +194,7 @@ if (isset($_POST['btn_contoh1'])) { } ``` -[![](https://img.shields.io/static/v1?&label=Demo&message=%3e&color)](3_select.php#L19-L37) +[![Tautan contoh kode program penanganan select 1 pada form](https://img.shields.io/static/v1?&label=Demo&message=%3e&color)](3_select.php#L19-L37) **Contoh 2:** Tanpa menggunakan atribut `value` @@ -221,7 +221,7 @@ if (isset($_POST['btn_contoh2'])) { } ``` -[![](https://img.shields.io/static/v1?&label=Demo&message=%3e&color)](3_select.php#L40-L61) +[![Tautan contoh kode program penanganan select 2 pada form](https://img.shields.io/static/v1?&label=Demo&message=%3e&color)](3_select.php#L40-L61) Dengan melihat kedua contoh di atas, kamu dapat mengetahui bahwa menggunakan tag `option` tanpa atribut `value` pada input `select` juga dapat dikirim. @@ -245,7 +245,8 @@ if (isset($_POST['btn_contoh1'])) { echo "Saya memilih: $specialTime sebagai hari spesial saya"; } ``` -[![](https://img.shields.io/static/v1?&label=Demo&message=%3e&color)](4_datetime.php#L21-L34) + +[![Tautan contoh kode program penanganan input datetime pada form](https://img.shields.io/static/v1?&label=Demo&message=%3e&color)](4_datetime.php#L21-L34) ## 5. Check Box *([5_checkbox.php](5_checkbox.php))* @@ -275,7 +276,8 @@ if (isset($_POST['btn_contoh1'])) { echo "sebagai hari spesial saya"; } ``` -[![](https://img.shields.io/static/v1?&label=Demo&message=%3e&color)](5_checkbox.php#L21-L42) + +[![Tautan contoh kode program penanganan input checkbox pada form](https://img.shields.io/static/v1?&label=Demo&message=%3e&color)](5_checkbox.php#L21-L42) ## 6. Radio Button *([6_radio.php](6_radio.php))* @@ -303,7 +305,7 @@ if (isset($_POST['btn_contoh1'])) { } ``` -[![](https://img.shields.io/static/v1?&label=Demo&message=%3e&color)](6_radio.php#L21-L38) +[![Tautan contoh kode program penanganan input radio pada form](https://img.shields.io/static/v1?&label=Demo&message=%3e&color)](6_radio.php#L21-L38) ## 7. File *([7_file.php](7_file.php))* @@ -347,7 +349,7 @@ if (isset($_POST['btn_contoh1'])) { } ``` -[![](https://img.shields.io/static/v1?&label=Demo&message=%3e&color)](7_file.php#L32-L72) +[![Tautan contoh kode program penanganan input file pada form](https://img.shields.io/static/v1?&label=Demo&message=%3e&color)](7_file.php#L32-L72) ## 8. Multiple File *([8_multiple_file.php](8_multiple_file.php))* @@ -388,8 +390,7 @@ if (isset($_POST['btn_contoh1'])) { } ``` -[![](https://img.shields.io/static/v1?&label=Demo&message=%3e&color)](8_multiple_file.php#L32-L62) - +[![Tautan contoh kode program penanganan input file berganda pada form](https://img.shields.io/static/v1?&label=Demo&message=%3e&color)](8_multiple_file.php#L32-L62) @@ -400,4 +401,4 @@ if (isset($_POST['btn_contoh1'])) { -
8. Fungsi dasar 10. File Handling
\ No newline at end of file + diff --git a/basics/README.md b/basics/README.md index 3b9899d..324b129 100644 --- a/basics/README.md +++ b/basics/README.md @@ -23,16 +23,16 @@ [9. Form Handling](https://github.com/bellshade/PHP/tree/main/basics/9_form_handling) -10. File Handling - On Progress +`10. File Handling - On Progress` -11. Cookie & Session - On Progress +`11. Cookie & Session - On Progress` [12. Database Dasar Prosedural](https://github.com/bellshade/PHP/tree/main/basics/12_database_dasar_prosedural) -13. Database Relasional Prosedural - On Progress +`13. Database Relasional Prosedural - On Progress` -14. OOP Dasar - On Progress +`14. OOP Dasar - On Progress` -15. OOP Lanjutan - On Progress +`15. OOP Lanjutan - On Progress` -16. Database Dasar (PDO) - On Progress +`16. Database Dasar (PDO) - On Progress` diff --git a/utilities/Kalkulator_sederhana/kalkulator_syzkii/README.md b/utilities/Kalkulator_sederhana/kalkulator_syzkii/README.md index 6dea544..3a5d987 100644 --- a/utilities/Kalkulator_sederhana/kalkulator_syzkii/README.md +++ b/utilities/Kalkulator_sederhana/kalkulator_syzkii/README.md @@ -1,6 +1,6 @@ ## Kode kalkulator sederhana PHP -``` +```php - + @@ -32,30 +32,30 @@ login_form_index.php Setelah Memasukkan Username dan Password, akan dicek benar tidaknya Username & Password yang kita masukkan seperti dibawah ini : - ```PHP login_cek.php - ``` @@ -70,4 +70,5 @@ logout.php echo "

Anda telah logout!

"; echo ""; ``` -Inti dari file ini adalah skrip session_destroy() yang akan menghapus data session **username** dan **password** yang dibuat pada file login_cek.php. \ No newline at end of file + +Inti dari file ini adalah skrip session_destroy() yang akan menghapus data session **username** dan **password** yang dibuat pada file login_cek.php. diff --git a/utilities/README.md b/utilities/README.md index 0c231bc..b768fa0 100644 --- a/utilities/README.md +++ b/utilities/README.md @@ -3,7 +3,7 @@

Utilities

-## Index: +## Index ### D @@ -29,4 +29,4 @@ ### S - [simple unit test](https://github.com/bellshade/PHP/tree/main/utilities/SImple_UnitTest) -- [simple CURL](https://github.com/bellshade/PHP/tree/main/utilities/simple_curl) \ No newline at end of file +- [simple CURL](https://github.com/bellshade/PHP/tree/main/utilities/simple_curl) diff --git a/utilities/SImple_UnitTest/README.md b/utilities/SImple_UnitTest/README.md index 5de2a01..44bbc07 100644 --- a/utilities/SImple_UnitTest/README.md +++ b/utilities/SImple_UnitTest/README.md @@ -1,6 +1,6 @@ # PHPUnit Installation -### Install PHPUnit +## Install PHPUnit - Installation Download the PHPUnit package from the official website [PHPUnit](https://phpunit.de/) @@ -8,12 +8,15 @@ > Customize PHPUnit version - Install PHPUnit + ```bash composer require phpunit/phpunit ``` + - Creating Example Class `WordCount.php` - Making Test `SimpleTest.php` - Run Test + ```bash ./vendor/bin/phpunit --bootstrap vendor/autoload.php SimpleTest.php - ``` \ No newline at end of file + ``` diff --git a/utilities/datetime/README.md b/utilities/datetime/README.md index 7a6c0d2..508e89b 100644 --- a/utilities/datetime/README.md +++ b/utilities/datetime/README.md @@ -1 +1 @@ -## Date Time untuk PHP \ No newline at end of file +## Date Time untuk PHP diff --git a/utilities/datetime/datetime_php/README.md b/utilities/datetime/datetime_php/README.md index bf30cf2..8a8a1a8 100644 --- a/utilities/datetime/datetime_php/README.md +++ b/utilities/datetime/datetime_php/README.md @@ -1,7 +1,5 @@ # DateTime - ## DateTime Basic - -## DateTime Operation \ No newline at end of file +## DateTime Operation diff --git a/utilities/mpdf/README.md b/utilities/mpdf/README.md index b47cfbd..f9f392a 100644 --- a/utilities/mpdf/README.md +++ b/utilities/mpdf/README.md @@ -3,11 +3,12 @@ > mpdf website [https://mpdf.github.io/](https://mpdf.github.io/) - Install v7+ + ```sh composer require mpdf/mpdf --ignore-platform-reqs ``` -- examples +- examples > mpdf.php ```php @@ -22,4 +23,4 @@ - output - \ No newline at end of file + diff --git a/utilities/random_password/readme.md b/utilities/random_password/readme.md index f4b7f5e..857b0f9 100644 --- a/utilities/random_password/readme.md +++ b/utilities/random_password/readme.md @@ -1,6 +1,8 @@ # Fungsi Untuk Membuat Password Acak + Kode untuk membuat password acak/random dengan panjang yang bisa kita tentukan sendiri: -``` + +```php function generate_password($length = 8) { $chars = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789 !@#$%^&*()_-=+;:,.?{}[]/|\\-"; @@ -9,4 +11,4 @@ function generate_password($length = 8) } ``` -Untuk penggunaannya sangat mudah, cukup panggil fungsi `generate_password()` dan masukkan parameternya sebagai panjang password yang diinginkan, jika tidak dimasukkan apapun maka panjang defaultnya adalah 8. \ No newline at end of file +Untuk penggunaannya sangat mudah, cukup panggil fungsi `generate_password()` dan masukkan parameternya sebagai panjang password yang diinginkan, jika tidak dimasukkan apapun maka panjang defaultnya adalah 8. diff --git a/utilities/reCAPTCHA/README.md b/utilities/reCAPTCHA/README.md index 531079c..c36e569 100644 --- a/utilities/reCAPTCHA/README.md +++ b/utilities/reCAPTCHA/README.md @@ -2,4 +2,4 @@
reCAPTCHA adalah sebuah sistem CAPTCHA yang dapat membedakan antara akses manusia dan otomatis di situs-situs web. Versi aslinya meminta para pengguna untuk membaca teks atau mencocokkan gambar. Versi 2 juga meminta pengguna untuk mengetik teks atau mencocokkan gambar-gambar. -
\ No newline at end of file + diff --git a/utilities/reCAPTCHA/google_reCAPTCHA/README.md b/utilities/reCAPTCHA/google_reCAPTCHA/README.md index 353bc04..310d3f4 100644 --- a/utilities/reCAPTCHA/google_reCAPTCHA/README.md +++ b/utilities/reCAPTCHA/google_reCAPTCHA/README.md @@ -1,14 +1,15 @@ ## Cara Membuat Captcha dengan Menggunakan Google reCAPTCHA -- step 1 - - setting google rechptcha - - Buka link ini : [https://www.google.com/recaptcha](https://www.google.com/recaptcha) +- step 1 + - setting google rechptcha + - Buka link ini : [https://www.google.com/recaptcha](https://www.google.com/recaptcha) - step 2 - - Untuk Label bisa Anda isikan bebas sesuai nama aplikasi yang Anda buat. Untuk kali ini kita beri label `Bellshade`. Kemudian untuk tipe reCAPTCHA nya kita pilih yang reCAPTCHA v2. + - Untuk Label bisa Anda isikan bebas sesuai nama aplikasi yang Anda buat. Untuk kali ini kita beri label `Bellshade`. Kemudian untuk tipe reCAPTCHA nya kita pilih yang reCAPTCHA v2. - step 3 - - Implementsi dengan PHP - - Buat file chaptcha.php - ``` + - Implementsi dengan PHP + - Buat file chaptcha.php + + ```php