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: