-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathmedium.json
219 lines (219 loc) · 48.7 KB
/
medium.json
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
{
@version: "2.0",
channel: {
title: "Stories by Syofyan Zuhad on Medium",
description: "Stories by Syofyan Zuhad on Medium",
link: [
"https://medium.com/@syofyanzuhad?source=rss-d7cef7a111e9------2",
{
@href: "https://medium.com/@syofyanzuhad/feed",
@rel: "self",
@type: "application/rss+xml"
},
{
@href: "http://medium.superfeedr.com",
@rel: "hub"
}
],
image: {
url: "https://cdn-images-1.medium.com/fit/c/150/150/0*s7nMoVDiYJNShVds.jpg",
title: "Stories by Syofyan Zuhad on Medium",
link: "https://medium.com/@syofyanzuhad?source=rss-d7cef7a111e9------2"
},
generator: "Medium",
lastBuildDate: "Tue, 10 Aug 2021 00:51:39 GMT",
webMaster: "[email protected]",
item: [
{
title: "Find errors, before they find you- Laravel Set-Up #1",
link: "https://medium.com/easyread/find-errors-before-they-find-you-laravel-set-up-1-f7e1e6ffd537?source=rss-d7cef7a111e9------2",
guid: {
@isPermaLink: "false",
#text: "https://medium.com/p/f7e1e6ffd537"
},
category: [
"error-handling",
"backend",
"grumphp",
"laravel",
"php"
],
creator: "Syofyan Zuhad",
pubDate: "Wed, 28 Jul 2021 09:39:42 GMT",
updated: "2021-07-28T09:57:14.717Z",
encoded: "<h3>Find errors, before they find you - Laravel Set-Up #1</h3><p>Assalamu’alaikum Warahmatullahi Wabarakatuh..</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/512/0*dbu5vdWyXarkSKHA" /><figcaption>find error</figcaption></figure><p>Jadi, kali ini kita akan membuat suatu set-up atau boilerplate. Bahasa sederhananya adalah “rancangan jadi” untuk aplikasi laravel kita. Yang pertama, yang akan kita siapkan adalah menjadikan aplikasi laravel kita bisa mencari atau menunjukkan error (kesalahan) sebelum meluncurkan perubahan baru pada project kita.</p><p>Proses ini sangat berguna agar kita bisa melakukan <em>debugging </em>di fase paling awal bahkan sebelum menjalankan testing untuk aplikasi kita.</p><blockquote>Untuk melanjutkan membaca, perlu pengetahuan dasar tentang:<br>- php<br>- git — version control<br>- laravel<br>- composer — dependency manager</blockquote><h4>create project</h4><p>Untuk membuat project baru, kita bisa meng-install menggunakan composer secara langsung, atau bisa juga menggunakan laravel-installer. Kali ini saya contohkan menggunakan laravel-installer versi 4.2.7.</p><pre>laravel new setup-laravel</pre><figure><img alt="" src="https://cdn-images-1.medium.com/max/600/0*lzNyIP38OUCt2AGF.gif" /><figcaption>laravel-installer</figcaption></figure><p>kemudian kita bisa melakukan initial commit untuk meng-inisialisasi repo baru.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/875/1*MgZkKY6H-e1zdM91TxXibA.png" /><figcaption>git init</figcaption></figure><h4>install phpro/grumphp</h4><p>Kita akan meng-install library <a href="https://github.com/phpro/grumphp">phpro/grumphp</a>, library/package ini berfungsi untuk melakukan sniffing (meng-endus) perubahan yang terjadi, setiap kali kita akan melakukan commit menggunakan git.</p><p>Untuk meng-install nya kita jalankan:</p><pre>composer require phpro/grumphp --dev</pre><p>*kita kembali menggunakan flag --dev karena kita hanya menginstallnya untuk proses development saja.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/437/0*yy1KNmKD_DqvPyWX.gif" /><figcaption>require phpro/grumphp</figcaption></figure><p>disini kita juga membuat sebuah file grumphp.yml untuk memilih task yang akan kita jalankan saat melakukan commit. Kita cukup menambahkan 2 task yaitu phpcsfixer dan phpstan.</p><p>Sekarang, kita memiliki sebuah file grumphp.yml</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/444/1*vGkVvfEIE92nhPPJE0RPFQ.png" /><figcaption>grumphp.yml</figcaption></figure><p>untuk bisa melakukan sniffing dengan dua package diatas, kita perlu meng-install keduanya terlebih dahulu.</p><h4>install phpcsfixer</h4><p>Package ini berfungsi untuk melakuan pengecekan terhadap style code dari kode php kita. Ini menjadikannya seperti bahasa static typing.</p><p>Untuk meng-install nya kita bisa jalankan:</p><pre>composer require friendsofphp/php-cs-fixer --dev</pre><figure><img alt="" src="https://cdn-images-1.medium.com/max/490/0*8n-R_IPg2dKlGeU2.gif" /><figcaption>require phpcsfixer</figcaption></figure><p>untuk detail instalasi bisa menuju link berikut <a href="https://github.com/phpro/grumphp/blob/master/doc/tasks/phpcsfixer.md">ini</a>.</p><p>kemudian, sekarang kita sudah bisa menggunakan package phpcsfixer ini di dalam file grumphp.yml yang sudah dibuat di awal tadi.</p><p>Ubah isi file grumphp.yml menjadi seperti ini:</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/368/1*YH1J3Iq86iu_JPksDRbJwA.png" /><figcaption>grumphp-phpcsfixer</figcaption></figure><pre>grumphp:<br> tasks:<br> phpcsfixer2:<br> config: .php-cs-fixer.php</pre><p>disitu tertulis bahwa konfigurasi dari phpcsfixer2 adalah dari file .php-cs-fixer.php , lalu dimana file ini?? Tenang, kita akan membuatnya sekarang 😅</p><p>buatlah file dengan nama .php-cs-fixer.php yang berisi kode berikut:</p><iframe src="" width="0" height="0" frameborder="0" scrolling="no"><a href="https://medium.com/media/5e46c9d93ea9620e4b051f1fa69f68d5/href">https://medium.com/media/5e46c9d93ea9620e4b051f1fa69f68d5/href</a></iframe><p>sampai disini kita sudah selesai dalam meng konfigurasi phpcsfixer untuk bisa dijalankan menggunakan grumphp.yml.</p><p>Untuk mengecek apakah kita sudah bisa menjalankan phpcsfixer ini, kita bisa menjalankan perintah berikut:</p><pre>vendor/bin/php-cs-fixer fix --dry-run --diff</pre><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*nvWBkYHo6JI1XLZCxbPabA.png" /><figcaption>phpcsfixer check</figcaption></figure><p>Dan ketika kita melakukan commit , pesan sukses dari grumphp sudah bisa kita lihat disini:</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/539/0*rO4nj2JxLH2kJq3Z.gif" /></figure><h4>install phpstan (with larastan)</h4><p>Package phpstan, berfungsi untuk menemukan kesalahan dalam kode, tanpa harus benar-benar menjalankannya. Jadi ketika ada fungsional dari kode yang tidak sesuai, maka akan muncul peringatan saat kita melakukan commit.</p><p>Untuk menginstalnya, kita bisa menjalankan perintah:</p><pre>composer require phpstan/phpstan --dev</pre><figure><img alt="" src="https://cdn-images-1.medium.com/max/296/0*wvsmnOjNrNRDaUXF.gif" /><figcaption>require phpstan/phpstan</figcaption></figure><p>Kemudian, untuk menggunakan phpstan kita bisa menjalankan perintah:</p><pre>vendor/bin/phpstan analyse app tests</pre><figure><img alt="" src="https://cdn-images-1.medium.com/max/298/0*eJ_41z-l3XwvUyyv.gif" /></figure><p>Implementasi phpstan ke grumphp :</p><p>Ubah sintaks di dalam file grumphp.yml menjadi seperti ini:</p><pre>grumphp:<br> tasks:<br> phpcsfixer:<br> config: .php-cs-fixer.php<br> phpstan:<br> configuration: phpstan.neon<br> use_grumphp_paths: false</pre><p>Sekarang, jika kita lakukan commit maka akan muncul error bahwa file phpstan.neon doesn't exist atau tidak ada.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/301/0*dRps1BTFygjPSy0s.gif" /><figcaption>error phpstan.neon</figcaption></figure><p>Kita perlu membuat sebuah file dengan nama phpstan.neon yang berisi seperti dibawah ini:</p><pre>includes:<br> - ./vendor/<strong>nunomaduro/larastan</strong>/extension.neon<br><br>parameters:<br><br> paths:<br> - app<br><br> # The level 8 is the highest level<br> level: 5<br><br> ignoreErrors:</pre><pre> excludePaths:<br><br> checkMissingIterableValueType: false</pre><p>Kemudian kita juga perlu meng-install nunomaduro/larastan, untuk menyesuaikan rules dari phpstan agar sesuai dengan project laravel kita.</p><pre>composer require nunomaduro/larastan --dev</pre><figure><img alt="" src="https://cdn-images-1.medium.com/max/299/0*_p4ugPN_E969MwCZ.gif" /><figcaption>require nunomaduro/larastan</figcaption></figure><p>Jika kita lakukan commit , maka akan tampil hasil dari pengecekan menggunakan dua package diatas.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/299/0*-TrWatiou9j2QljT.gif" /><figcaption>commit with grumphp</figcaption></figure><p>Sampai disini, kita sudah selesai untuk set-up project kita menggunakan grumphp untuk menjalankan phpcsfixer dan phpstan .</p><p>Tips untuk menjalankan manual kedua library diatas, kita bisa menambahkan script di composer.json agar perintahnya lebih singkat.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/573/1*aZGUNLoefamv21VC-Os54g.png" /><figcaption>add script</figcaption></figure><pre>"scripts": {</pre><pre> ...OTHER COMMAND...<br><br> "cs-check": [<br> "vendor/bin/php-cs-fixer fix --dry-run --diff"<br> ],<br> "cs-fix": [<br> "vendor/bin/php-cs-fixer fix --diff"<br> ],<br> "analyze": [<br> "vendor/bin/phpstan analyze"<br> ],<br>}</pre><p>Ini akan mempermudah menjalankan pengecekan satu-per-satu package diatas.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/297/0*KU0OqjieyO10dvf1.gif" /><figcaption>composer cs-check</figcaption></figure><figure><img alt="" src="https://cdn-images-1.medium.com/max/297/0*2HFqPBNQNJ0si56m.gif" /><figcaption>composer cs-fix</figcaption></figure><figure><img alt="" src="https://cdn-images-1.medium.com/max/297/0*d7uqMgLx3aWgapCt.gif" /><figcaption>composer analyze</figcaption></figure><p>Sekian. Semoga bermanfaat.</p><p>Reponya bisa dilihat di github:</p><p><a href="https://github.com/syofyanzuhad/laravel-setup">https://github.com/syofyanzuhad/laravel-setup</a></p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=f7e1e6ffd537" width="1" height="1" alt=""><hr><p><a href="https://medium.com/easyread/find-errors-before-they-find-you-laravel-set-up-1-f7e1e6ffd537">Find errors, before they find you- Laravel Set-Up #1</a> was originally published in <a href="https://medium.com/easyread">Easyread</a> on Medium, where people are continuing the conversation by highlighting and responding to this story.</p>"
},
{
title: "Melihat kompleksitas, style, arsitektur project Laravel",
link: "https://syofyanzuhad.medium.com/melihat-kompleksitas-style-arsitektur-project-laravel-6ff84fc64fcd?source=rss-d7cef7a111e9------2",
guid: {
@isPermaLink: "false",
#text: "https://medium.com/p/6ff84fc64fcd"
},
category: [
"laravel",
"insights",
"backend",
"php",
"complexity"
],
creator: "Syofyan Zuhad",
pubDate: "Tue, 27 Jul 2021 10:42:51 GMT",
updated: "2021-07-27T10:42:51.030Z",
encoded: "<p>Assalamu’alaikum Warahmatullahi Wabarakatuh…</p><p>Ini adalah tips yang sederhana, tapi diperlukan untuk project dengan skala yang besar. Dengan ini, kita bisa menyederhanakan analisis kode langsung dari terminal.</p><blockquote>Kita asumsikan, kamu sudah memiliki sebuah project dengan framework laravel</blockquote><p>Caranya adalah menggunakan library nunomaduro/phpinsights. Langsung saja kita install menggunakan composer :</p><pre>composer require nunomaduro/phpinsights --dev </pre><ul><li>kita beri flag --dev karena kita hanya menggunakannya sebegai keperluan development, bukan untuk production.</li></ul><p>Lalu kita lakukan publish vendor milik library nunomaduro/phpinsights nya dengan perintah:</p><pre>php artisan vendor:publish --provider="NunoMaduro\PhpInsights\Application\Adapters\Laravel\InsightsServiceProvider"</pre><p>Selanjutnya kita sudah bisa menganalisis project laravel kita mengunakan perintah</p><pre>php artisan insight</pre><figure><img alt="" src="https://cdn-images-1.medium.com/max/870/1*n6j9W9CKVPaaLz4DNBrMdA.png" /><figcaption>insight</figcaption></figure><p>Hasilnya seperti diatas.</p><blockquote>Jika kita menekan enter, maka akan tampil juga issue dari masing-masing hasil analisis di atas.</blockquote><p>Sekian. Semoga bermanfaat…</p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=6ff84fc64fcd" width="1" height="1" alt="">"
},
{
title: "How to set up ECS on Alibaba Cloud",
description: "<div class="medium-feed-item"><p class="medium-feed-image"><a href="https://syofyanzuhad.medium.com/how-to-set-up-ecs-on-alibaba-cloud-739132befbae?source=rss-d7cef7a111e9------2"><img src="https://cdn-images-1.medium.com/max/1366/1*1sAE7h_3BjgSpxuxKIbxbQ.png" width="1366"></a></p><p class="medium-feed-snippet">Peace be upon you, and Allah’s mercy and blessings… Okay, friends this time we will learn how to set up ECs Alibaba Cloud for the first…</p><p class="medium-feed-link"><a href="https://syofyanzuhad.medium.com/how-to-set-up-ecs-on-alibaba-cloud-739132befbae?source=rss-d7cef7a111e9------2">Continue reading on Medium »</a></p></div>",
link: "https://syofyanzuhad.medium.com/how-to-set-up-ecs-on-alibaba-cloud-739132befbae?source=rss-d7cef7a111e9------2",
guid: {
@isPermaLink: "false",
#text: "https://medium.com/p/739132befbae"
},
category: [
"ec",
"alibabacloud",
"elastic-compute-service",
"servers",
"alibaba"
],
creator: "Syofyan Zuhad",
pubDate: "Sun, 18 Jul 2021 10:16:19 GMT",
updated: "2021-07-18T10:16:19.251Z"
},
{
title: "Kirim Notifikasi Telegram untuk Melacak Pengunjung Website",
link: "https://syofyanzuhad.medium.com/kirim-notifikasi-telegram-untuk-melacak-pengunjung-website-84118efe862f?source=rss-d7cef7a111e9------2",
guid: {
@isPermaLink: "false",
#text: "https://medium.com/p/84118efe862f"
},
category: [
"web-development",
"splitbee",
"life-long-learner",
"telegram",
"notifications"
],
creator: "Syofyan Zuhad",
pubDate: "Thu, 01 Jul 2021 09:06:32 GMT",
updated: "2021-07-01T09:06:32.790Z",
encoded: "<figure><img alt="" src="https://cdn-images-1.medium.com/max/336/1*XYDMGW-IRDoMYMCA2XMeiA.png" /><figcaption>splitbee notification</figcaption></figure><p>Assalamu’alaikum Warahmatullahi Wabarakatuh..</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/336/1*vM1czEwUyq8yALnfv4XCig.png" /><figcaption>splitbee telegram notification</figcaption></figure><p>Kali ini kita akan bahas salah satu cara yang menurut ana, ini cukup berguna bagi kalian yang pingin tau :</p><ul><li>kapan aja si website kamu dilihat orang ?</li><li>siapa aja yang berkunjung ke website kamu ?</li><li>dari negara mana aja mereka ?</li><li>dan platform apa aja yang mereka pakai ?</li></ul><p>Nah lo gimana coba caranya ? Jadi nantinya, setiap kali ada orang lain yang membuka website kalian. Akan ada notifikasi yang dikirim lewat bot telegram milik kalian…</p><p>Untuk bisa mengirim ke telegram, kalian harus sudah punya :</p><ul><li>Pastinya website milik kalian sendiri. (contohnya seperti <a href="https://syofyanzuhad.my.id">ini</a>)</li><li>Satu lagi, kalian perlu daftar di website <a href="https://splitbee.io/">splitbee</a></li></ul><p>Kemudian kalian bisa membuat sebuah dashboard untuk project baru dari website kalian.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/288/1*ifjLp-ziRgkO1M_dC04gHA.png" /><figcaption>create project</figcaption></figure><p>Lalu menambahkan script milik splitbee dibawah ini, ke dalam blok <head> dari website kalian. Ini berguna untuk melacak halaman apa saja yang berada di website kalian. Jadi, jika script nya belum di letakkan, splitbee tidak bisa mendeteksi halaman website milik kalian.</p><pre><head></pre><pre>...</pre><pre> <script async src="https://cdn.splitbee.io/sb.js"></script></pre><pre>...</pre><pre></head></pre><p>Jika semua step diatas sudah kalian lakukan, langkah selanjutnya sebenernya tinggal mengaktifkan fitur (automation) dari aplikasi <a href="https://splitbee.io/">splitbee</a> untuk mengirimkan notifikasi lewat telegram seperti dibawah ini :</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*HGf5uH3F7wJIxlKrGayDkQ.png" /><figcaption>Automation Splitbee</figcaption></figure><p>Walaupun sebenarnya, kita bisa mengirim notifikasi tidak hanya lewat telegram. Tapi juga bisa via email, webhook, ataupun via <a href="https://www.notion.so/">notion</a>. Jika sudah, isikan halaman diatas dan pilih notifikasi via telegram.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*bO-9R0rK-LGzqSjH0UWtMg.png" /><figcaption>Telegram notification</figcaption></figure><p>Pertama, kita pilih jenis tracking yang akan kita gunakan. Kali ini kita akan menggunakan page sebagai point untuk tracking nya.</p><blockquote>daftar halaman akan tampil jika kalian sudah menempatkan script milik splitbee di halaman website kalian.</blockquote><figure><img alt="" src="https://cdn-images-1.medium.com/max/525/1*A7do4dFr9sHB2UMrDVbaxA.png" /><figcaption>page tracking</figcaption></figure><p>Disini, kita harus mengetahui chat id yang akan kita jadikan sebagai tempat menampung notifikasi. Ada 2 cara untuk mengirim notifikasinya ke akun / group chat kita:</p><h4>Group chat</h4><p>Caranya, buat lah sebuah group chat yang ber-anggotakan :</p><ul><li>akun telegram kalian contoh : <a href="https://t.me/Syofyan_zuhad">@Syofyan_zuhad</a></li><li>bot telegram <a href="https://t.me/@myidbot">@myidbot</a> (untuk melihat id_chat nya)</li><li>bot telegram dari aplikasi <a href="https://splitbee.io">splitbee</a> : <a href="https://t.me/SplitbeeBot">@SplitbeeBot</a></li></ul><p>Jika kalian menggunakan group chat milik kalian sendiri, maka kalian harus melihat id_chat nya lewat bot telegram kalian. Dengan cara mengetikan perintah /getgroupid@myidbot di dalam group yang sudah kalian buat.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/602/1*EHXXOKRH4GcDqBHufyq5Wg.png" /><figcaption>chat_id</figcaption></figure><p>Lalu, id_chat tersebut bisa kita gunakan saat membuat automation di dashboard Splitbee.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/777/1*Rv8zKC1OUtZy6i7ReFNcMg.png" /><figcaption>make automation splitbee</figcaption></figure><h4>SplitbeeBot</h4><p>Cara kedua adalah dengan mengirim chat terlebih dahulu ke bot milik splitbee dengan username: <a href="https://t.me/@SplitbeeBot">@SplitbeeBot</a>. Kemudian kita bisa mengetik perintah /start untuk melihat id_chat dari chat kita dengan <a href="https://t.me/@SplitbeeBot">@SplibeeBot</a>.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/603/1*kdBTzrs6ww0J_DqwvUqIjA.png" /><figcaption>splitbeebot id_chat</figcaption></figure><p>Dan menggunakannya saat membuat automation.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/792/1*DKQBVWjs1U0c24NA-isewA.png" /></figure><p>Langkah terakhir adalah membuat pesan dari notifikasi yang akan dikirimkan splitbee ke telegram kita.</p><p>Disini, kita bisa menggunakan (templating) format semacam menggunakan variabel global. Dengan cara mengetik kata user diantara tanda {{ ... }} seperti ini:</p><pre>{{ user.id }}</pre><p>Ini adalah contoh dari pesan yang saya gunakan untuk mengirim notifikasi:</p><pre>New visitor {{user.id}}, from {{user.country}} with {{user.deviceType}} on {{user.browser}}</pre><pre>check it : {{user.link}}</pre><p>Dari format pesan diatas, kita akan menerima notifikasi kurang lebih seperti ini:</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/613/1*AlSBYh-NjllG9H544R-uwQ.png" /><figcaption>Splitbee notification</figcaption></figure><p>Yap kita sudah selesai untuk mendapatkan notifikasi ketika ada pengunjung baru yang membuka halaman website kalian.</p><p>Cara ini sangat tidak disarankan untuk melihat tracking website dengan page-view diatas 1000 per harinya. Karena bukannya senang saat ada yang membuka website, tapi kalian akan mendapatkan spam notifikasi yang membanjiri hp kalian. 😅</p><p>OK, mungkin sekian dulu sharing2 kita kali ini.</p><p>Silahkan klik icon 👏 ‘tepuk tangan’ (<em>clap</em>) jika kalian suka dengan tulisan ini. Dan jangan lupa, share ke temen2 yang lain jika kalian merasa tulisan ini bermanfaat.</p><p>Sekian.</p><p>Wassalamu’alaikum Warahmatullahi Wabarakatuh…</p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=84118efe862f" width="1" height="1" alt="">"
},
{
title: "Berapakah umur google ? | How old google is ?",
link: "https://syofyanzuhad.medium.com/berapakah-umur-google-how-old-google-is-2772919fd86b?source=rss-d7cef7a111e9------2",
guid: {
@isPermaLink: "false",
#text: "https://medium.com/p/2772919fd86b"
},
category: [
"google",
"gabut",
"history",
"umur",
"kepo"
],
creator: "Syofyan Zuhad",
pubDate: "Thu, 17 Jun 2021 00:32:41 GMT",
updated: "2021-07-08T01:31:19.156Z",
encoded: "<h3>Berapakah umur google ?</h3><figure><img alt="" src="https://cdn-images-1.medium.com/max/856/1*LLqAd5424x3dawZ-hBMaKA.png" /><figcaption>berapa umur google</figcaption></figure><p>Assalamu’alaikum Warahmatullahi Wabarakatuh…</p><p>Di kesempatan kali ini, kita gk bahas hal yang berat-berat dulu. Sekedar sharing santai. Sampai detik ini, adakah dari kalian yang penasaran berapa umur perusahaan raksasa <a href="http://google.com">google.com</a> ? Terus nyarinya di gugel juga 😅</p><p>Bagi kalian yang sempet nyari, ok fiks kalian sama gabutnya sama ane.. 🤣<br>Ok tapi gak papa, itu artinya kalian bener-bener penasaran. So jadi, Berapakah umur gugel ?</p><p>Tapi sebelumnya, sekedar info. Google adalah perusahaan yang didirikan oleh 2 orang yaitu <a href="https://www.google.com/search?safe=strict&biw=1366&bih=637&sxsrf=ALeKk00PXaKofJZDUKMgCaF-xcKSsv8ZGQ:1623606127187&q=Larry+Page&stick=H4sIAAAAAAAAAOPgE-LUz9U3MDFNNk9S4gAx07MKCrXUs5Ot9JNKizPzUouL4Yz4_ILUosSSzPw8q7T80ryU1KJFrFw-iUVFlQoBiempO1gZAVk5LP9QAAAA&sa=X&ved=2ahUKEwid1dyTlJXxAhUJU30KHZ_VBiYQmxMoATAfegQIIxAD">Larry Page</a>, <a href="https://www.google.com/search?safe=strict&biw=1366&bih=637&sxsrf=ALeKk00PXaKofJZDUKMgCaF-xcKSsv8ZGQ:1623606127187&q=Sergey+Brin&stick=H4sIAAAAAAAAAOPgE-LUz9U3MDFNNk9S4gAx07MKzbTUs5Ot9JNKizPzUouL4Yz4_ILUosSSzPw8q7T80ryU1KJFrNzBqUXpqZUKTkWZeTtYGQGjz0MqUQAAAA&sa=X&ved=2ahUKEwid1dyTlJXxAhUJU30KHZ_VBiYQmxMoAjAfegQIIxAE">Sergey Brin</a>. Di sebuah garasi di California, Amerika yang mereka sewa seharga 1700 USD atau Rp.23,7 Jt per bulannya. Dan ternyata garasi itu adalah milik <a href="https://en.wikipedia.org/wiki/Susan_Wojcicki">Susan Wojcicki</a> yang merupakan CEO Youtube sekarang !</p><p>Dan sekarang, Google di pimpin oleh seorang CEO bernama <a href="https://www.google.com/search?safe=strict&biw=1366&bih=637&sxsrf=ALeKk00PXaKofJZDUKMgCaF-xcKSsv8ZGQ:1623606127187&q=Sundar+Pichai&stick=H4sIAAAAAAAAAOPgE-LUz9U3MDFNNk9S4gIxLdNTis1NtBSzk63084vSE_MyqxJLMvPzUDhWyan5i1h5g0vzUhKLFAIykzMSM3ewMgIAaDP0OE8AAAA&sa=X&ved=2ahUKEwid1dyTlJXxAhUJU30KHZ_VBiYQmxMoATAaegQIHxAD">Sundar Pichai</a> dan memiliki Induk Perusahaan yaitu <a href="https://id.wikipedia.org/wiki/Alphabet_Inc.">Alphabet Inc</a> dan kedua pendiri gugel itu lah yang memimpin perusahaan Alphabet ini dengan Larry Page sebagai CEO, dan Sergey Brin menjadi Presiden nya.</p><p>Balik lagi ke topik kita diawal, ini adalah jawaban resmi dari website gugel itu sendiri. Yang diambil pada Juni 2021 (14/06/2021)</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/858/1*Np1EWGBch7p00BWAbglXlQ.png" /><figcaption>22 Tahun Google</figcaption></figure><p>Bahwa, umurnya adalah <strong>22 Tahun </strong>! Atau didirikan pada <strong>4 September 1998</strong>. Wah ternyata ane masih sebaya sama gugel.</p><p>Tapi, adakah yang tahu tampilan dari website gugel itu pertama kalinya ?</p><p>Ini adalah rekaman dari website gugel pertama, yang diambil pada 11 November 1998.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*emuamxuubfxo6me-vHhJpg.png" /><figcaption>11 Nov 1998 Google</figcaption></figure><p>Dan kemudian baru tampilannya diubah sesuai dengan fungsinya untuk melakukan pencarian (searching) menjadi seperti ini pada 02 Desember 1998.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*jLHYfEbixnneBCXjJXXmmw.png" /><figcaption>02 Desember 1998</figcaption></figure><p>Meskipun begitu. Saat mencoba mengusut kapan domain google.com itu ada di internet, ternyata sudah ada lebih dulu dari pada keterangan diatas. Bahkan 1 tahun lebih dulu, Pada 15 September 1997.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/807/1*gwM1IvGpcmnUXq9mS9u-vQ.png" /><figcaption>domain google.com</figcaption></figure><p>Dan sudah berusia 23 tahun, 272 hari pada tanggal artikel ini ditulis (06/2021).</p><p>Sampai disini dulu sharing kita kali ini.</p><p>Silahkan beri <em>clap </em>👏 sebanyak-banyaknya jika kalian suka dengan tulisan ini.<br>Dan share jika kalian merasa artikel ini bermanfaat.</p><p>Wassalamu’alaikum Warahmatullahi Wabarakatuh..</p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=2772919fd86b" width="1" height="1" alt="">"
},
{
title: "Laravel Custom Pagination Style",
link: "https://syofyanzuhad.medium.com/laravel-custom-pagination-style-d03e72f7822c?source=rss-d7cef7a111e9------2",
guid: {
@isPermaLink: "false",
#text: "https://medium.com/p/d03e72f7822c"
},
category: [
"backend",
"laravel",
"style",
"php",
"pagination"
],
creator: "Syofyan Zuhad",
pubDate: "Sat, 12 Jun 2021 03:02:15 GMT",
updated: "2021-06-12T03:02:15.230Z",
encoded: "<figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*P5DmRJ0RabD2XYS9XOyFmA.png" /><figcaption>Custom Pagination Style</figcaption></figure><p>Assalamu’alaikum Warahmatullahi Wabarakatuh</p><p>Kali ini, kita akan oprek laravel di bagian pagination nya.</p><p>Ok, Jadi pertama. Karna secara default, semua tampila dari si laravel, termasuk bagian pagination itu sendiri ada di dalam direktori vendor . Atau, bisa kita bilang area <strong>NO-EFFECT</strong> alias tidak ada gunanya kita mengubah apa yang ada di dalam direktori vendor .</p><p>Maka, hal pertama yang harus kita lakukan adalah mem-publish bagian pagination itu sendiri dengan command berikutt :</p><pre>php artisan vendor:publish --tag=laravel-pagination</pre><p>Sekarang, kita sudah mempunyai folder baru di dalam resource/views .</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/267/1*iyWb5Rb7UUv56AOmTkiWJg.png" /><figcaption>views/pagination</figcaption></figure><p>Ada banyak macam contoh dari style pagination bawaan dari laravel. Setelah ini, kita bisa memilih mana yang akan kita gunakan untuk pagination sesuai dengan framework css dari project kita. Diantaranya ada styling menggunakan <a href="https://getbootstrap.com/">bootstrap</a>, <a href="https://semantic-ui.com/">semantic-ui</a>, dan <a href="https://tailwindcss.com/">tailwind</a>.</p><p>Langsung saja, jika kita ingin mengubah style default. Maka yang harus kita buka adalah file default.blade.php yang kurang lebih isinya seperti ini :</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1002/1*W0bIAY3EYn0ZVDOUfBu4Lg.png" /><figcaption>default.blade.php</figcaption></figure><p>Jika kita sudah selesai dalam urusan styling, secara otomatis, tampilan dari pagination di halaman kita akan berubah mengikuti kodingan yang kita tulis di file tersebut.</p><h4>#bonus</h4><p>ada 2 cara jika kita ingin membuat file pagination.blade.php milik kita sendiri.</p><p><strong>Pertama</strong>, kita bisa setting secara default, dengan mengubah file app/Providers/<strong>AppServiceProvider.php </strong>seperti ini :</p><pre>use Illuminate\Pagination\Paginator;<br><br>public function boot()<br>{<br> Paginator::defaultView('<strong>vendor.your-pagination-view-name</strong>');<br><br> Paginator::defaultSimpleView('<strong>vendor.your-pagination-view-name</strong>');<br>}</pre><p>Arahkan ke file pagination milik kalian.</p><p><strong>Kedua</strong>, jika kita hanya ingin mengubah style pagination <strong>pada halaman tertentu</strong>, maka kita cukup menuliskan sintaks berikut, saat membuat pagination di dalam file ---.blade.php</p><pre>{{ $users->links('<strong>vendor.pagination.bootstrap-4</strong>') }}</pre><p>Sekian.<br>Jika ada pertanyaan, Silahkan tulis di kolom komentar.<br>Dan jika kamu merasa, tips ini berguna, jangan sungkan untuk membagikannya ke temen-temen yang lain.</p><p>Wassalamu’alaikum Warahmatullahi Wabarakatuh..</p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=d03e72f7822c" width="1" height="1" alt="">"
},
{
title: "Coding Interview: vowelCheck() in php",
link: "https://syofyanzuhad.medium.com/coding-interview-vowelcheck-in-php-e84fcc727733?source=rss-d7cef7a111e9------2",
guid: {
@isPermaLink: "false",
#text: "https://medium.com/p/e84fcc727733"
},
category: [
"php",
"interview-questions",
"vowels",
"coding-interviews",
"vowelcheck"
],
creator: "Syofyan Zuhad",
pubDate: "Sat, 08 May 2021 11:33:01 GMT",
updated: "2021-05-08T11:33:01.596Z",
encoded: "<figure><img alt="Vowel" src="https://cdn-images-1.medium.com/max/600/0*8762YN4_dbX8DRP7.png" /><figcaption>Source : <a href="https://www.englishhints.com/images/short-vowels-4-FB.png">https://www.englishhints.com/images/short-vowels-4-FB.png</a></figcaption></figure><p>Assalamu’alaikum Warahmatullahi Wabarakatuh..</p><p>Pada kesempatan kali ini, kita akan belajar sama-sama mengenai salah satu soal yang biasa diujikan ketika coding-interview. Ya, mungkin ini akan jadi salah satu series dari tulisan ana, yaitu Coding Interview.</p><p>Ok langsung saja, karna menurut penerawanan ana, kalian yang buka tulisan ini pasti pengin tau gimana caranya membuat sebuah function untuk mengecek setiap huruf vokal dalam satu kalimat, bener ?</p><h4>Soal / Question</h4><pre>Buatlah sebuah function untuk mengecek setiap huruf vokal yang terdapat pada sebuah kata / kalimat.<br>*Setiap huruf yang sama hanya dihitung sebagai satu huruf!</pre><p>Atau dalam bahasa inggrisnya :</p><pre>Make a function to check every vowel in a word / sentence.<br>*Each letter that is the same is only counted as one letter!</pre><h4>Pembahasan / Discussion of questions</h4><p>Jadi, dari soal diatas. Kita bisa memperhatikan beberapa poin berikut :</p><ol><li>Mengecek setiap huruf vokal.<br>- bisa kita gunakan perulangan. (looping)</li><li>Menghasilkan nilai unik dari hasil yang didapat.<br>- kita akan menyeleksi hasil akhir dari perulangan (looping) diatas.</li></ol><h4>Jawaban / Answer</h4><p>Saya sudah menyiapkan potongan kode utuhnya adalah seperti ini :</p><iframe src="" width="0" height="0" frameborder="0" scrolling="no"><a href="https://medium.com/media/976072f78fb16ff48b0d157c042e6e46/href">https://medium.com/media/976072f78fb16ff48b0d157c042e6e46/href</a></iframe><h4>Penjelasan Kode / Code Explanation</h4><ol><li>Kita menjadikan kata / kalimat menjadi huruf kecil semua menggunakan <em>function </em>strtolower().</li><li>Kita pisahkan setiap huruf menjadi sebuah <em>array </em>menggunakan str_split().</li><li>Kemudian kita seleksi tiap <em>value </em>dari <em>array </em>tadi berdasarkan huruf vokal menggunakan preg_match(). Dengan statment /^[aiueo]/i untuk menyeleksi huruf vokal.</li><li>Lalu, kita tambahkan setiap nilai yang memenuhi kondisi dari if() diatas kedalam variabel $vowel yang sudah kita buat pada baris 9.</li><li>Maka sekarang kita sudah memiliki semua huruf vokal yang terdapat pada kata “Indonesia”, dalam sebuah <em>array</em> dalam variabel $vowel yaitu [i, o, e, i, a]. Akan tetapi, nilainya belum unik.</li><li>Untuk menghapus nilai yang sama, bisa kita gunakan <em>function </em>array_unique() sehingga menciptakan hasil akhir seperti yang kita inginkan.</li><li>Selanjutnya, tinggal kita tampilkan jumlahnya menggunakan <em>function </em>count() untuk menghitung jumlah <em>value </em>dari sebuah <em>array. </em>Dan kita gunakan join() untuk menampilkan tiap <em>value </em>dengan pemisah , (koma).</li></ol><p>Sampai disini dulu untuk pembahasan coding-interview kita kali ini, jangan lupa beri clap jika kamu suka membaca tulisan ini.</p><p>Sekian.</p><p>Wassalamu’alaikum Warahmatullahi Wabarakatuh..</p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=e84fcc727733" width="1" height="1" alt="">"
},
{
title: "Coding Interview?",
link: "https://syofyanzuhad.medium.com/coding-interview-9a325834fe61?source=rss-d7cef7a111e9------2",
guid: {
@isPermaLink: "false",
#text: "https://medium.com/p/9a325834fe61"
},
category: [
"interview-tips",
"livecoding",
"coding-interviews",
"interview",
"programming"
],
creator: "Syofyan Zuhad",
pubDate: "Thu, 06 May 2021 06:38:57 GMT",
updated: "2021-05-06T06:38:57.334Z",
encoded: "<figure><img alt="" src="https://cdn-images-1.medium.com/max/790/1*-Y3wurjx-8FRhNZOhnWvKg.png" /><figcaption>coding interview? are you ready?</figcaption></figure><p>Assalamu’alaikum Warahmatullahi Wabarakatuh..</p><p>Kali ini, Ana akan <em>release </em>satu kategori baru dari tulisan ini, karna berdasarkan pengalaman pribadi dan temen-temen ana yg lain, ini bermanfaat banget dan kepake kalo kalian mau ngelamar di sebuah perusahaan yang tentunya sebagai programmer.</p><p>Jadi, <em>Coding Interview</em> itu udah jadi sesuatu hal yang bisa dibilang wajib, jika kalian akan melamar sebagai programmer di sebuah perusahaan yang berfokus pada <em>software development. </em>Biasanya, ini menjadi penentuan juga apakah kalian layak atau tidak untuk mendapat pekerjaan disana. Walaupun ada beberapa test lain yang mungkin diujikan juga seperti talent mapping, psikologi, dll.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/300/1*ipxcOgWdXffHzejjYhfkQw.png" /></figure><p>Ok jadi seperti apa gambarannya saat mengerjakan interview ini ?</p><p>Pertama, perusahaan akan menginfokan kapan agenda nya dan cara untuk megikuti interview nya. Bisa lewat email atau pun chat.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/703/1*Fqq0womHOl0p7K9WHBI6Vw.png" /><figcaption>Contoh Invitation via email</figcaption></figure><p>Kemudian, mereka akan memulai wawancara menggunakan platform yang ditetapkan di email tadi. Setelah itu, barulah dimulai <em>live coding </em>menggunakan platform online. Ada banyak macam yang tersedia, bisa menggunakan <a href="https://hackerrank.com">hackerrank</a>, <a href="https://codility.com">codility</a>, <a href="https://coderbyte.com">coderbyte</a>, <a href="https://medium.com/coderbyte/the-best-platforms-for-live-coding-interviews-in-2020-19fb3661df84">dll</a>.</p><p>Dan disitulah kalian akan diberikan soal, kemudian menyelesaikannya secara <em>online </em>lewat <em>platform </em>interview tadi.</p><p>Sebagai pembukaan, ana akan sharing-sharing mengenai tips-tips untuk mengarjakan test coding interview.</p><h4>Perbanyak Latihan</h4><p>Yang pasti, seperti saat kita mengerjakan test-test lainnya yang harus menggunakan kejelian dalam mengerjakannya. Selain untuk mengasah kemampuan kita dalam <em>problem solving</em>, perbanyak latihan juga meningkatkan kepercayaan diri kita saat mengerjakan <em>live coding </em>tadi.</p><blockquote>Kalo kalian sibuk, atau tidak punya banyak waktu untuk latihan, setidaknya luangkan waktu satu sampai tiga jam untuk latihan sebelum mengikuti Coding Interview<em>.</em></blockquote><h4>Kerjakan dengan Jujur</h4><p>Kerjakanlah, sesuai dengan kemampuan kalian. Perhatikan juga, peraturan untuk mengerjakan soalnya. Jadi, kalian bisa mengerjakan sesuai perintah dan tidak melanggar peraturan yang disepakati. Adapun untuk <em>copy-paste</em>, jika perusahaan membolehkan untuk mengerjakan di IDE atau <em>code editor, </em>maka tidak apa-apa kalian kerjakan dulu di <em>code editor (offline) </em>kalian, lalu setelah selesai baru di copas hasil akhirnya. Tapi jika tidak, maka jangan lakukan <em>copy-paste </em>meskipun dikerjakan sendiri.</p><p>Untuk perusahaan yang membolehkan copas, biasanya ada dua media untuk melakukan <em>interview</em>, satu untuk merekam layar (milik si kandidat), satu lagi untuk merekam <em>live coding</em> lewat <em>platform online</em> tadi.</p><blockquote>Platform Coding Interview Online, biasanya memiliki rekaman dari proses pengerjaan live coding dan bisa melihat playback, jadi jangan berfikir untuk copas, apalagi mencontek !</blockquote><h4>Jangan Meremehkan</h4><p>Meskipun hal yang diujikan (biasanya) merupakan teknik dasar, tapi tetap kita tidak boleh meremehkan. Karena kebanyakan orang gagal (termasuk saya sendiri 😜) karena terlalu memnganggap enteng soal yang diujikan.</p><blockquote>Sekalipun kalian sudah terbiasa, tidak ada salahnya belajar dengan mengulang kembali materi dasar.</blockquote><h4>Berdo’a, Minta Do’a, dan Mendo’akan</h4><p>Ada tiga konsep dalam berdo’a yang ana pernah dapatkan dari pondok dulu. Yaitu <strong>berdo’a</strong>: kita berdo’a untuk diri kita sendiri dalam segala urusan di dunia maupun di akhirat. Kemudian <strong>minta do’a</strong>: kita juga bisa meminta teman, atau lebih afdhol ke orang tua untuk mendo’akan diri kita. Dan yang terakhir <strong>mendo’akan</strong>: tidak lupa juga kita do’akan semua orang yang turut berdo’a, kita do’akan agar dilancarkan segala urusannya, diberikan kesehatan.</p><p>Terakhir, terimakasih untuk kalian yang udah baca tulisan ini sampai akhir, jangan lupa untuk berikan clap jika menurut kalian, tulisan ini bermanfaat. Dan komentar jika ada yang ingin ditanyakan.</p><p>Sekian.</p><p>Wassalamu’alaikum Warahmatullahi Wabarakatuh..</p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=9a325834fe61" width="1" height="1" alt="">"
},
{
title: "Cara membuat dokumentasi API dengan postman",
link: "https://syofyanzuhad.medium.com/cara-membuat-dokumentasi-api-dengan-postman-45f448488ea4?source=rss-d7cef7a111e9------2",
guid: {
@isPermaLink: "false",
#text: "https://medium.com/p/45f448488ea4"
},
category: [
"backend-development",
"front-end-development",
"postman",
"documentation",
"api"
],
creator: "Syofyan Zuhad",
pubDate: "Fri, 09 Apr 2021 14:48:46 GMT",
updated: "2021-04-09T14:48:46.193Z",
encoded: "<p>API (Application Programming Interface) adalah salah satu cara sistem / program untuk saling berkomunikasi antara <em>server</em> dan <em>client</em>. Dalam pembuatannya, seorang programmer biasa melakukan testing ke <em>endpoint</em> API yang sedang dibuatnya menggunakan <em>software</em> seperti <a href="https://postman.com">postman</a>, <a href="https://insomnia.rest">insomnia</a>, <a href="https://hoppscotch.io">hoppscotch</a>.</p><p>Dari software-software di atas, memiliki keunggulan dan kelemahannya masing-masing. Tapi kali ini yang akan kita bahas adalah cara mendokumentasikan API kita agar mudah dibaca / dipahami untuk <em>client </em>yang akan mengkonsumsinya.</p><h4>requirement</h4><p>Pastikan sudah meng-<em>install :<br>- </em>Postman : download <a href="https://www.postman.com/downloads/">disini</a><br>- Akun Postman : daftar <a href="https://identity.getpostman.com/signup">disini</a><br>- Pemahaman tentang RESTful API</p><h4>why ?</h4><p>Kenapa harus postman ? sebenarnya bukan suatu keharusan juga, namun lebih direkomendasikan menggunakan postman karena :<br>1. <strong>GRATIS</strong>. Ya software ini gratis untuk didownload dan digunakan sepenuhnya.<br>2. <strong>Mendukung semua jenis API dan skema nya</strong>. Semuanya bisa ditest menggunakan satu aplikasi, yaitu postman.<br>3. <strong>Bisa dikembangkan sendiri.</strong> Jadi postman ini juga bisa disesuaikan untuk kebutuhan kalian sendiri.<br>4. <strong>Dukungan dan Komunitas. </strong>Penggunanya sekarang mencapai 13 juta user di seluruh dunia.</p><h4>postman documentation</h4><p>OK langsung saja kita mulai, pertama kita buka aplikasi postman nya. Pastikan semuanya sudah memiliki software postman nya. Saya memakai postman versi 7.36.5</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/744/1*lx2eGwYGIxNiFJxZv_zIWA.png" /><figcaption>post man about</figcaption></figure><p>Untuk contohnya kita akan menggunakan contoh api yang sudah ada (sample API) yaitu : <a href="https://reqres.in">https://reqres.in</a>.</p><h4><strong>Create new collection</strong></h4><p>Yang harus kita buat pertama adalah membuat collection baru. Caranya dengan meng-klik tombol +New kemudian pilih Collection</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*Bevv9GTIht66Wvweo05FVw.png" /><figcaption>home</figcaption></figure><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*tuuyO9MFq49mBsBZOlDgxw.png" /><figcaption>New -> Collection</figcaption></figure><p>atau langsung menekan tombol + New Collection</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/330/1*SxLlB_jn4FMfKATFo3Afyw.png" /><figcaption>Create a collection</figcaption></figure><p>Kemudian isi nama collection (wajib) dan deskripsinya (opsional). Lalu tekan create</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/820/1*r-OK7DPCFPRpedjiB439Ng.png" /><figcaption>Input Collection</figcaption></figure><h4>Publish Collection</h4><p>Selanjutnya, kita bisa langsung mem-publish collection yang kita buat dengan menekan Publish Docs seperti pada gambar dibawah ini :</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/819/1*QUsoouyCeN0MEOr3wUPsyA.png" /><figcaption>Publish Docs</figcaption></figure><p>Selanjutnya, kalian akan diarahkan ke website untuk persiapan mem-publish dokumentasi dari collection yang kita buat. (<strong>Pada tahap ini, pastikan kalian sudah login menggunakan akun postman kalian masing-masing</strong>)</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*XZ90PfGxhROFV2Yplimhnw.png" /><figcaption>Publish web</figcaption></figure><p>Lalu kita bisa sesuaikan dengan apa yang kita inginkan. Setelah itu kita tekan tombol Publish Collection.</p><p>Sampai disini kita sudah berhasil membuat dokumentasi yang masih kosong, dari collection yang kita miliki di komputer kita.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*DncMVlG95z5LrfUq8AEMZg.png" /><figcaption>Collection is published</figcaption></figure><p>Untuk melihat dokumentasinya, klik bagian URL.</p><p>Contohnya seperti dibawah ini :</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*j_Ihtc6vVwuDFhrKgvB6mQ.png" /><figcaption>Postman documentation</figcaption></figure><p>Lalu, bagaimana cara menambahkan <em>endpoint</em> nya ?</p><h4>Add Request</h4><p>Kita buka lagi software postman yang sudah dibuka, lalu klik collection yang tersedia di sidebar, dan tekan Add request.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/331/1*eRavWcycGRlSxI952w-3TQ.png" /><figcaption>Add Request</figcaption></figure><p>Kemudian isi Request name (<strong>Wajib</strong>), dan deskripsinya (<strong>Opsional</strong>). Lalu tekan Save.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/494/1*_OIwgvXf8eZe_38zz5H21w.png" /></figure><p>Nah, setelah kita tekan Save , maka postman akan sinkronisasi yang ditandai dengan icon yang berwarna biru dan berputar.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/338/1*yJS6-HYcYV-GgNiQbI-2pg.png" /><figcaption>syncronize</figcaption></figure><p>Artinya, request yang barusan kita buat, sudah ada di dokumentasi online tadi.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*ujjDF9XCQdPjloUU9YdQCA.png" /><figcaption>Login Doc</figcaption></figure><p>Tapi disitu masih belum ada endpoint nya ? karena kita baru saja membuatnya, dan belum menambahkan apapun didalamnya.</p><p>Sekarang kita buka software postman lagi, dan klik request yang baru saja kita buat. Lalu isi kolom Request URL dengan https://reqres.in/api/login dan ubah methodnya menjadi POST.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*f-hwcJ82qK9SSOybQ1sRBg.png" /><figcaption>Request URL</figcaption></figure><p>Jika kita langsung tekan Send , maka akan menampilkan pesan error seperti ini :</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*XDisuaEbVug4Mkaq560gVA.png" /><figcaption>Send empty parameter</figcaption></figure><p>Karena, kita belum mengisi email atau username dan password dari akun yang akan kita gunakan untuk login.</p><p>Untuk menambahkannya, kita buka tab Body > pilih x-www-form-urlencode (<strong>ini disesuaikan dengan apa yang diinginkan oleh server API</strong>) Lalu kita isikan email dan password yang disediakan oleh <a href="https://reqres.in">reqres.in</a></p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*pI0RdNTAFgs5DbS7tJhQ5g.png" /><figcaption>User reqres.in</figcaption></figure><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*V32Va6jdiU3Urun3PtxZLg.png" /><figcaption>Input request</figcaption></figure><p>Kemudian, kita kirim lagi requestnya dengan menekan tombol Send.</p><p>Dan kita akan mendapatkan response berupa token.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*pdBxNfF7LeAjhXYewrb9UA.png" /><figcaption>Response token</figcaption></figure><p>Sampai disini, bisa kita tekan tombol Save yang ada di sebelah tombol Send. Untuk menyimpan perubahan dari request Login, dan menguploadnya ke dokumentasi online.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*nTDEj03xXQCWWssIWyUE3Q.png" /><figcaption>Save</figcaption></figure><p>Maka sekarang, dokumentasi postman kita akan berubah sesuai dengan yang kita inginkan.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*0LZbLyY0NNVz30OHa5x6FA.png" /><figcaption>Online Docs</figcaption></figure><p>Seperti itulah tahap-tahap pembuatan dokumentasi api menggunakan postman. Jika ingin menambahkan request baru, tinggal ulangi langkah untuk membuat request tadi, dan postman akan secara otomatis membuatkan dokumentasinya.</p><p>Penting untuk membuat dokumentasi dari API kita agar kolaborasi antara backend sebagai server dan frontend atau mobile sebagai client yang ingin menggunakan endpoint nya tidak bingung dan bertanya berkali2 pada si backend. Apalagi dengan kondisi sekarang yang mengharuskan untuk bekerja jarak jauh, dengan ini bisa mempercepat kinerja pembuatan project kita.</p><p>Sekian. dan Terima kasih.</p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=45f448488ea4" width="1" height="1" alt="">"
},
{
title: "TypeError: Argument 3 passed to Lcobucci\JWT\Signer\Hmac::doVerify() must be an instance of…",
link: "https://syofyanzuhad.medium.com/typeerror-argument-3-passed-to-lcobucci-jwt-signer-hmac-doverify-must-be-an-instance-of-24c802242773?source=rss-d7cef7a111e9------2",
guid: {
@isPermaLink: "false",
#text: "https://medium.com/p/24c802242773"
},
category: [
"jwt-secret",
"api",
"jwt",
"api-token",
"laravel"
],
creator: "Syofyan Zuhad",
pubDate: "Tue, 05 Jan 2021 09:01:13 GMT",
updated: "2021-04-07T09:07:17.540Z",
encoded: "<h3>TypeError: Argument 3 passed to Lcobucci\JWT\Signer\Hmac::doVerify() must be an instance of Lcobucci\JWT\Signer\Key, null given,</h3><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*p5HedoW9tj4nBr3Fyv5l7g.png" /><figcaption>error</figcaption></figure><p>OK, Kali ini kita akan membahas error saat pemakaian JWT (JSON Web Token) yang biasa digunakan untuk autentikasi berbasis API (Application Programming Interface).</p><p>Jadi, biasanya saat kita meng-<em>clone</em> project yang sudah di-<em>set-up </em>oleh orang lain. Dan di dalam project tersebut sudah ter-<em>install </em>library JWT nya. Biasanya kita akan menjalankan langkah2 berikut :</p><ol><li>composer install</li><li>cp .env.example .env untuk meng-<em>copy </em><em>.env.example</em> Menjadi .env</li></ol><p>Setelah dua langkah diatas, barulah kita bisa menggunakan command artisan milik <a href="https://laravel.com"><strong>Laravel</strong></a></p><p>Langsung aja kembali ke judul artikel ini, error diatas sebenarnya terjadi karena kita lupa belum menjalankan :</p><pre>php artisan jwt:secret</pre><figure><img alt="" src="https://cdn-images-1.medium.com/max/709/1*mQTKUHnczoIpKJLM1j7L7g.png" /><figcaption>jwt:secret</figcaption></figure><p>karena jwt butuh sebuah variabel yang bernama JWT_SECRET di dalam file .env milik si <a href="https://laravel.com"><strong>Laravel</strong></a></p><figure><img alt="" src="https://cdn-images-1.medium.com/max/732/1*TKVIFbl93zXklqk3z6fL0g.png" /><figcaption>JWT_SECRET</figcaption></figure><p>Jadi, mungkin sekian tutorial singkat kali ini.</p><p>#updated: 07–04–2021</p><p>Sebagai tambahan, jika kalian menggunakan <a href="https://id.wikipedia.org/wiki/Platform_as_a_service"><em>platform as a service (PaaS)</em></a><em></em>atau layanan komputasi awan (<em>cloud computing</em>) yang memungkinkan pelanggan untuk mengembangkan, menjalankan, dan mengelola aplikasi tanpa kompleksitas membangun dan memelihara infrastruktur yang biasanya terkait dengan pengembangan dan peluncuran aplikasi. Sebagai contoh adalah <a href="https://heroku.com">heroku</a> yang mana semua <em>environment</em> variabel yang terdapat di dalam file .env, maka semua variabel yang digunakan untuk jalannya sistem laravel juga harus diisikan sebagai konfigurasi dari laravel yang kita <em>deploy.</em></p><p>Untuk menambahkannya, kita bisa buka halaman Settings / Config Vars</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/656/1*nVUP2dtUUR4-ULtajh_p-g.png" /><figcaption>Settings</figcaption></figure><figure><img alt="" src="https://cdn-images-1.medium.com/max/707/1*guZunnpEgPWr0eRwyu8vug.png" /><figcaption>Config Vars</figcaption></figure><p>Kemudian, tekan tombol Reveal Config Vars untuk menampilkan config variabel dari heroku. Kalian bisa menambahkan secara manual tiap2 config vars yang ada pada file .env milik aplikasi laravel kalian ke kolom input yang sudah disediakan.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/820/1*xHJJtMh1cPWoXjwskfRnHg.png" /><figcaption>Add Config Var</figcaption></figure><figure><img alt="" src="https://cdn-images-1.medium.com/max/806/1*lKK07F7iH5CilPi2_K90yQ.png" /><figcaption>Add JWT_SECRET</figcaption></figure><p>Sekian.</p><p>Kurang-lebihnya mohon-maaf, dan terima kasih.</p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=24c802242773" width="1" height="1" alt="">"
}
]
}
}