Jekyll2021-09-01T03:12:40+00:00https://phpid-jakarta.github.io/feed.xmlPHP Indonesia Chapter JakartaKomunitas PHP Indonesia Regional Jakarta
Onesignal Push Notification2017-09-30T13:04:27+00:002017-09-30T13:04:27+00:00https://phpid-jakarta.github.io/kulwap/2017/09/30/onesignal-push-notification-sasono-gumelar<p><img src="/assets/images/kulwap/onesignal_push_notification.jpeg" alt="OneSignal Push notification" /></p>
<p><a name="more"></a></p>
<p>Haloo semua..</p>
<p>Kita mulai kulwap kita malam ini yaa..</p>
<p>Perkenalkan nama saya Sasono Gumelar saya sekarang bekerja di <strong>Terralogiq</strong> sebagai <em>backend dev</em>.
malam ini saya akan bawakan materi tentang <strong>OneSIgnal - Push Notification</strong>.</p>
<p>Bagi yang mau join nanti di implementasi harap siapkan android SDK, Cordova, sama Code Editor yang paling nyaman buat kalian semua.. hehehee..</p>
<p>Oke saya mulai dulu yaa.. Kita mulai dari teori-teori dulu kok..</p>
<p>Kita mulai dari…</p>
<h2 id="definisi-push-notif">Definisi Push Notif</h2>
<p><strong><em>Push notification</em></strong> adalah pesan yang di <em>push</em> dari backend server ke user interface aplikasi mobile, desktop maupun web.
Skenario yang biasanya terjadi adalah di sisi front-end aplikasi client muncul pop up message disertai dengan bunyi alert.</p>
<p>Push notification memberikan kenyamanan kepada pengguna app dalam bentuk informasi yang menarik dan sesuai dengan kebutuhan mereka. Kalau meraka tidak tertarik dengan topik tertentu pastinya mereka tidak akan menginstall app yang berhubungan dengan topik tersebut. Misalnya:</p>
<ol>
<li>Hasil pertandingan segera setelah suatu pertandingan selesai atau bahkan saat pertandingan itu berjalan. Misalnya anda penggemar Persib, namun saat satu pertandingan penting yang dilakoni Persib anda sedang mengikuti event penting yang tidak bisa ditinggalkan. Lumayan kan kalau sewaktu-waktu muncul di handphone anda informasi seperti “Gol oleh Konate lewat tendangan penalty, posisi sekarang 1-0 untuk Persib Bandung”.</li>
<li>Informasi lalu lintas yang sangat penting untuk mereka yang sering berkendara di kota-kota besar yang banyak kemacetan. Kalau anda sedang bersiap-siap pulang dari kantor anda di pusat bisnis Jakarta, akan bermanfaat kalau tiba-tiba di ponsel anda muncul informasi “Kemacetan di depan gedung DPR akibat demo, sebaiknya ambil rute lain”.</li>
<li>Informasi perjalanan. Misalnya anda sudah memesan tiket pesawat terbang untuk tujuan tertentu. Akan bermanfaat jika kemudian anda diingatkan melalui smartphone anda “Untuk penerbangan anda CX880 tujuan Taipei sudah bisa check in secara online sekarang”.</li>
</ol>
<p>Dari penjelasan dan contoh yang aku kasih diatas adakah pertanyaan yang mau disampaikan??</p>
<p>tanya:</p>
<blockquote>
<p>Dari penjelasan ini, berarti push notification bersifat broadcast? Bisakah push server memberikan notification secara spesifik hanya untuk user tertentu ?</p>
</blockquote>
<p>jawab:</p>
<blockquote>
<p>Bisa sih.. Semua smartphone dapat mengidentifikasi lokasi, dan jika pemilik smartphone mengijinkan, informasi lokasi ini dapat dibagikan, termasuk kepada app publisher. Dengan mengidentifikasi lokasi itu app publisher dapat mengirimkan push notification yang relevan dengan lokasi. Kemarin kita sempat sedikit membahas mengenai location-based marketing.</p>
</blockquote>
<p>oke kita lanjut yaa..</p>
<p>Sejarah Push Notification bisa ditelusuri sejak Apple pertama kali mengenalkan service ini pada tahun 2009. Kemudian diikuti Google setahun kemudian dengan servicenya yang bernama Google Cloud to Device Messaging. Mei 2013 google memperkenalkan “rich notification”. Rich notif dapat berisi image yang berfungsi sebagai action button. Dengan action button user dapat dengan cepat untuk mengeksekusi sebuah procedure seperti memainkan lagu, membuka aplikasi tertentu, dan lainnya. September 2014 Apple menambahkan interactive button pada servicenya. Button ini memberi akses user untuk segera memberikan respon cepat ke app publisher sejenak setelah APNS mempush notif ke device.</p>
<p>Aktor-aktor dalam Push Notification :</p>
<ol>
<li><strong>OSPNS</strong> : Operating System Push Notification Service. Setiap OS di masing-masing mobile pasti memiliki servicenya sendiri-sendiri.</li>
<li><strong>App Publisher</strong> : App Publisher meng-enable’kan aplikasi client dengan OSPNS, kemudian mempublish aplikasi ke cloud store</li>
<li><strong>Client App</strong> : Menerima noification dari service server</li>
</ol>
<p>oke kita mulai masuk ke one signal yaa..</p>
<h2 id="onesignal">OneSignal</h2>
<p><strong><em>OneSignal</em></strong> adalah service push notification untuk website dan aplikasi mobile. OneSignal mensupport sebagian besar native dan mobile platform dengan menyediakan SDK untuk masing-masing platform, RESTful server API, dan online dashboard untuk melihat performa, statistik penggunaan maupun operasi push notif.</p>
<p>Beberapa kelebihan jika kita menggunakan OneSignal :</p>
<ol>
<li><strong>Kemudahan</strong> : Implementasi interface ke GCM/FCM(Google), APNS(Apple). dan web porotocol terkadang susah bagi developer pemula. OneSignal berusaha mengatasi kesulitan-kesulitan tersebut dengan memberikan interface yang mudah.</li>
<li><strong>Fungsionalitas tambahan</strong> : OneSignal menyediakan tools untuk marketing seperti A/B Testing, segment targeting, variable-subtitution, localization, drip marketing, dan konversi tracking.</li>
<li><strong>Support platform</strong> : OneSignal menyediakan SDK untuk sebagian besar cross-platform mobile development seperti Unity, PhoneGap, Cordova, Ionic, React Native, Intel XDK, Corona, Xamarin, Marmalade, Adobe Air, dan Web Push</li>
<li>Tawaran terbaik bagi developer adalah <strong>ITS FREE</strong>.. Yaa, OneSignal adalah service tidak berbayar yang memberikan support jumlah notification di berbagai device UNLIMITED. OneSignal menghasilkan uang dari menjual data pada pihak yang hendak pasang iklan dan research company. OneSIgnal juga menawarkan service berbayar pada client yang membutuhkan level privacy data yang lebih tinggi</li>
</ol>
<p>oke.. Kita lanjut ke implementasi yaa..</p>
<h2 id="implementasi-menggunakan-cordova">Implementasi menggunakan Cordova</h2>
<p>Sekarang saya akan coba praktekan secara langsung juga implemetasi OneSignal menggunakan cordova.. Karena cordova multi-platform maka saya batasi hanya untuk android saja.. Untuk Apple atau platform lainnya bisa dilanjut lain waktu yaa.. hehehee..</p>
<p>Jika memang ada yang mau coba praktek sekarang silahkan buka CLI di laptopnya..</p>
<p>Pertama saya akan create project baru bernama <strong>cobaonesignal</strong>, package name : <strong>com.coba.onesignal</strong>, nama aplikasinya : <strong>cobaonesignal</strong></p>
<p>syntax di CLI :</p>
<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>cordova create cobaonesginal com.coba.onesignal cobaonesignal
</code></pre></div></div>
<p><img src="/assets/images/kulwap/cordova_create_project.jpeg" alt="cordova create project" title="cordova create project" /></p>
<p>setelah itu kita pindah folder ke project yang dibuat tadi dengan syntax : <code class="language-plaintext highlighter-rouge">cd cobaonesignal</code></p>
<p>kita bisa chek platform yang sudah terinstall di project cordova yang telah kita buat dengan syntax : <code class="language-plaintext highlighter-rouge">cordova platform ls</code></p>
<p><img src="/assets/images/kulwap/cordova_platform_ls.jpeg" alt="cordova check platform" title="cordova check platform" /></p>
<p>jika belum terinstall apapun maka outputnya di bagian <code class="language-plaintext highlighter-rouge">Installed paltforms</code> akan kosong</p>
<p>Cordova menggunakan plugin-plugin yang sudah dibuat oleh para developer-developer dunia untuk mengakses resource-resource local platform mobile kita..</p>
<p><img src="/assets/images/kulwap/cordova_plugin_ls.jpeg" alt="cordova check plugin" title="cordova check plugin" /></p>
<p>Dengan syntax <code class="language-plaintext highlighter-rouge">cordova plugin ls</code> kita mengechek plugin-plugin apa saja yang sudah terinstall di project folder kita.. jika masih kosong maka akan muncul output seperti diatas.</p>
<p>Sekarang kita tambahkan platform android di project folder kita dengan syntax : <code class="language-plaintext highlighter-rouge">cordova platform add android</code></p>
<p><img src="/assets/images/kulwap/cordova_platform_add_android.jpeg" alt="cordova add platform android" title="cordova add platform android" /></p>
<p>Jika berhasil maka akan keluar output seperti diatas.</p>
<p>Berikutnya kita masukkan plugin cordova dengan syntax : <code class="language-plaintext highlighter-rouge">cordova plugin add onesignal-cordova-plugin --save</code></p>
<p><img src="/assets/images/kulwap/cordova_plugin_add_onesignal.jpeg" alt="cordova menambahkan plugin onesignal" title="cordova menambahkan plugin onesignal" /></p>
<p>chek dengan : <code class="language-plaintext highlighter-rouge">cordova plugin ls</code></p>
<p>berikutnya kita buka halaman web <a href="https://onesignal.com" title="OneSignal's Homepage" target="_blank">OneSignal</a></p>
<p>langsung dibagian login.. karena saya termasuk pemalas jadi saya langsung pake akun google saya langsung untuk login.. 😅</p>
<p>Setelah login kita akan masuk ke dashboard akun kita</p>
<p><img src="/assets/images/kulwap/dashboard_onesignal.jpeg" alt="dashboard onesignal" title="dashboard onesignal" /></p>
<p>klik Add a New app</p>
<p><img src="/assets/images/kulwap/onesignal_add_new_app.jpeg" alt="onesignal add new app" title="onesignal add new app" /></p>
<p>Saya membuat nama project name nya sama seperti nama project cordova saya yaitu : <strong>cobaonesignal</strong>,
namanya boleh beda kok..</p>
<p>Setelah itu akan muncul form select platform..</p>
<p>Saya akan pilih <strong>Google Android(GCM)</strong> sebagai setting inisiasi.. Nantinya bisa kita setting untuk platform lainnya..</p>
<p><img src="/assets/images/kulwap/onesignal_select_platform.jpeg" alt="onesignal select platform" title="onesignal select platform" /></p>
<p>Stetelah itu masuk ke bagian Configure Platform..</p>
<p><img src="/assets/images/kulwap/onesignal_configure_platform.jpeg" alt="onesignal configure platform" title="onesignal configure platform" /></p>
<p>Nahh di step ini kita berhenti dulu sejenak di OneSignal untuk loncat ke Firebase Console Developer</p>
<p>tanya:</p>
<blockquote>
<p>wah, mesti pake firebase juga ya</p>
</blockquote>
<p>jawab:</p>
<blockquote>
<p>iyaa mas.. OneSignal kan sebenarnya cuma third party aja.. Pengolah sebenarnya ya service di masing2 plaformnya.. Kalo android yaa pake firebase, kalo Ios yaa pake APNS..</p>
</blockquote>
<p>tanya:</p>
<blockquote>
<p>mesti pake google cloud juga kah ?</p>
</blockquote>
<p>jawab:</p>
<blockquote>
<p>iyaa mas.. google cloud yang sekarang udah berganti nama jadi firebase</p>
</blockquote>
<p>tanya:</p>
<blockquote>
<p>GCP sama firebase adalah service yang berbeda dari pak google.?🤔🤔</p>
</blockquote>
<p>jawab:</p>
<blockquote>
<p>maksud saya google cloud messaging (GCM)
kalau GCP(Google Cloud Platform) beda lagi mas.. hehehee..</p>
</blockquote>
<p>tanya:</p>
<blockquote>
<p>Firebase setau saya untuk push notification nya berbayar..
Free nya hanya untuk jumlah tertentu saja</p>
</blockquote>
<p>jawab:</p>
<blockquote>
<p>firebase setau saya free. .tapi memang dibatasi lifetime message sama message size’nya.. saya cuman agak lupa berapa angka2’nya.. hehehee..</p>
</blockquote>
<h2 id="firebase">Firebase</h2>
<p><img src="/assets/images/kulwap/firebase_create_project.jpeg" alt="Firebase create project" title="Firebase create project" /></p>
<p>di akun saya bikin project sama namanya : <code class="language-plaintext highlighter-rouge">cobaonesignal</code></p>
<p>tanya:</p>
<blockquote>
<p>setelah masuk firebase kita pilih mana ?</p>
</blockquote>
<p>jawab:</p>
<blockquote>
<p>kan ada link dokumentasi di Configure Platform tadi <a href="https://documentation.onesignal.com/docs/generate-a-google-server-api-key">https://documentation.onesignal.com/docs/generate-a-google-server-api-key</a></p>
</blockquote>
<p><img src="/assets/images/kulwap/firebase_project_settings.jpeg" alt="Firebase project settings" title="Firebase project settings" /></p>
<p>Sekarang sudah masuk di dashboard project firebase.. Klik di bagian setting (icon gear bergerigi) di bagian <strong>project settings</strong></p>
<p>masuk ke tab <strong>CLOUD MESSAGING</strong> perhatikan parameter server key dan sender id..</p>
<p><img src="/assets/images/kulwap/firebase_server_key.jpeg" alt="Firebase server key" title="Firebase server key" /></p>
<p>Nahh copy server key firebase, ke field Google Server API key OneSignal.. copy juga nilai Sender ID firebase ke Google Project Number OneSignal.</p>
<p><img src="/assets/images/kulwap/onesignal_copy_firebase_server_key.jpeg" alt="copy Firebase server key" title="copy Firebase server key" /></p>
<p>Setelah save masukkan masuk ke form <strong>Select SDK</strong>, pilih <strong>PhoneGap, Cordova, Ionic</strong>…</p>
<p><img src="/assets/images/kulwap/onesignal_select_sdk.jpeg" alt="OneSignal select SDK" title="OneSignal select SDK" /></p>
<p>Setelah itu di form Install SDK kita mendapat App ID</p>
<p><img src="/assets/images/kulwap/onesignal_install_sdk_app_id.jpeg" alt="OneSignal install SDK app ID" title="OneSignal install SDK app ID" /></p>
<p>Setelah itu kita edit file index di folder <code class="language-plaintext highlighter-rouge">./cobaonesignal/www/index.html</code></p>
<p><img src="/assets/images/kulwap/cordova_edit_file_index.jpeg" alt="Cordova edit file index" title="Cordova edit file index" /></p>
<p>paste source code dasar cordova dibawah ini :</p>
<div class="language-html highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="cp"><!DOCTYPE html></span>
<span class="nt"><html></span>
<span class="nt"><head></span>
<span class="nt"><title></span>Device Ready Example<span class="nt"></title></span>
<span class="nt"><script </span><span class="na">type=</span><span class="s">"text/javascript"</span> <span class="na">charset=</span><span class="s">"utf-8"</span> <span class="na">src=</span><span class="s">"cordova.js"</span><span class="nt">></script></span>
<span class="nt"><script </span><span class="na">type=</span><span class="s">"text/javascript"</span> <span class="na">charset=</span><span class="s">"utf-8"</span><span class="nt">></span>
<span class="c1">// Wait for device API libraries to load</span>
<span class="c1">//</span>
<span class="kd">function</span> <span class="nx">onLoad</span><span class="p">()</span> <span class="p">{</span>
<span class="nb">document</span><span class="p">.</span><span class="nx">addEventListener</span><span class="p">(</span><span class="dl">"</span><span class="s2">deviceready</span><span class="dl">"</span><span class="p">,</span> <span class="nx">onDeviceReady</span><span class="p">,</span> <span class="kc">false</span><span class="p">);</span>
<span class="p">}</span>
<span class="c1">// device APIs are available</span>
<span class="c1">//</span>
<span class="kd">function</span> <span class="nx">onDeviceReady</span><span class="p">()</span> <span class="p">{</span>
<span class="c1">// Now safe to use device APIs</span>
<span class="p">}</span>
<span class="nt"></script></span>
<span class="nt"></head></span>
<span class="nt"><body</span> <span class="na">onload=</span><span class="s">"onLoad()"</span><span class="nt">></span>
<span class="nt"></body></span>
<span class="nt"></html></span>
</code></pre></div></div>
<p>pada function <code class="language-plaintext highlighter-rouge">onDeviceReady()</code> masukkan souce code dibawah ini :</p>
<div class="language-javascript highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="nb">window</span><span class="p">.</span><span class="nx">plugins</span><span class="p">.</span><span class="nx">OneSignal</span>
<span class="p">.</span><span class="nx">startInit</span><span class="p">(</span><span class="dl">"</span><span class="s2">a14331c7-be5b-49df-aaf7-e65d7286d779</span><span class="dl">"</span><span class="p">)</span>
<span class="p">.</span><span class="nx">handleNotificationReceived</span><span class="p">(</span><span class="kd">function</span> <span class="p">(</span><span class="nx">jsonData</span><span class="p">)</span> <span class="p">{</span>
<span class="nx">alert</span><span class="p">(</span><span class="dl">"</span><span class="s2">Notification received:</span><span class="se">\n</span><span class="dl">"</span> <span class="o">+</span> <span class="nx">JSON</span><span class="p">.</span><span class="nx">stringify</span><span class="p">(</span><span class="nx">jsonData</span><span class="p">));</span>
<span class="nx">console</span><span class="p">.</span><span class="nx">log</span><span class="p">(</span><span class="dl">'</span><span class="s1">Did I receive a notification: </span><span class="dl">'</span> <span class="o">+</span> <span class="nx">JSON</span><span class="p">.</span><span class="nx">stringify</span><span class="p">(</span><span class="nx">jsonData</span><span class="p">));</span>
<span class="p">})</span>
<span class="p">.</span><span class="nx">endInit</span><span class="p">();</span>
</code></pre></div></div>
<p>di parameter <code class="language-plaintext highlighter-rouge">.startInit()</code> —> itu adalah appId onesignal saya..
paste-kan idApp kalian ke parameter startInit(“appId”)…</p>
<p><img src="/assets/images/kulwap/index_ondeviceready.jpeg" alt="index on device ready" title="index on device ready" /></p>
<p>ini punya saya..</p>
<p>setelah itu kembali ke CLI jalankan command : <code class="language-plaintext highlighter-rouge">cordova run android</code> untuk menginstall ke android..</p>
<p><em>jika terjadi</em></p>
<blockquote>
<p>Error: Could not find an installed version of Gradle either in Android Studio, bla bla bla…</p>
</blockquote>
<p>how to solve</p>
<blockquote>
<p>install gradle, <a href="https://gradle.org/install">https://gradle.org/install</a></p>
</blockquote>
<p>oke.. saya sudah sukses mendeploy ke hp saya.. sekarang kembali ke hal OneSignal klik <strong>Chek Subscribed Users</strong>..
Jika Sukses maka akan muncul jenis hp yang terinstal aplikasi OneSignal</p>
<p><img src="/assets/images/kulwap/check_subscribed_users.jpeg" alt="onesignal check subscribed users" title="onesignal check subscribed users" /></p>
<p>Nahh pindah ke tab <strong>All Users</strong> maka kia bisa melihat list device yang telah menggunakan service OneSignal di project yg telah kita buat tadi..</p>
<p><img src="/assets/images/kulwap/onesignal_list_devices.jpeg" alt="onesignal melihat list device" title="onesignal melihat list device" /></p>
<p>Sekarang pndah ke tab New Message kalau saya pilih Send to Everyone..</p>
<p><img src="/assets/images/kulwap/onesignal_new_messages.jpeg" alt="onesignal new message" title="onesignal new message" /></p>
<p>ini isi header sama isi message yang saya inputkan.. setelah itu klik next.. next aja..</p>
<p><img src="/assets/images/kulwap/onesignal_title_message.jpeg" alt="onesignal message" title="onesignal message" /></p>
<p>Ini hasil push di hp saya..</p>
<p><img src="/assets/images/kulwap/onesignal_push_message.jpeg" alt="onesignal push message" title="onesignal push message" /></p>
<p>Dan ini hasil json yang saya dapat dari OneSignal..</p>
<p><img src="/assets/images/kulwap/onesignal_json.jpeg" alt="onesignal json" title="onesignal json" /></p>
<p>tanya:</p>
<blockquote>
<p>Klo sdk nya bermaslah gmn ya. Lisensinya sih yg brmaslh. Apakah hrus update</p>
</blockquote>
<p>jawab:</p>
<blockquote>
<p>iyaa setau saya emang harus terus diupdate.. commandnya : <code class="language-plaintext highlighter-rouge">cordova plugin update onesignal-cordova-plugin</code></p>
</blockquote>
<p>tanya:</p>
<blockquote>
<p>Trus ketik cordova run android lg ?</p>
</blockquote>
<p>jawab:</p>
<blockquote>
<p>yaa mas.. jangan lupa hp nyolok ke USB.. 😁</p>
</blockquote>
<p>tanya:</p>
<blockquote>
<p>Oke tp iphone mas gmn😇</p>
</blockquote>
<p>jawab:</p>
<blockquote>
<p>aduuhhh… kalo iphone next petemuan aja yaa.. Soalnya saya lagi gak pake mac.. saya lagi pake ‘jendela’ jadi gak bisa praktek yg Ios.. kalo mau Ios mas harus punya akun apple developer which is berbayar, dan buat deploy ke device saya biasanya pake X-Code dari macbook/I-mac..</p>
</blockquote>
<p>Oke waktu udah menunjukkan tengah malam.. sepertinya cukup untuk kali ini dulu dan saatnya untuk istirahat sejenak. Semisal masih ada yang penasaran dan masih ingin explore OneSignal silahkan bisa japri saya besok.. Gak usah nunggu2 next pertemuan yaa.. hehehee.. Saya dengan senang hati diskusi tentang hal ini.. Semisal ada salah kata tadi saya mohon maaf yaa.. 🙏🙏</p>
<p>Selamat malam and have a nice weekend semuanya.. Salam.. 🙏</p>
<p>Ohh yaaa.. Satu lagi.. Semua yang bisa dioprek di OneSignal sudah di dokumentasikan dengan sangat jelas dan sangat mudah di : <a href="https://documentation.onesignal.com/docs">https://documentation.onesignal.com/docs</a></p>Sasono GumelarInstallasi dan Remote Raspberry Pi 32017-09-09T13:02:27+00:002017-09-09T13:02:27+00:00https://phpid-jakarta.github.io/kulwap/2017/09/09/raspberry-pi-3-wafa-wafiyaa<p><img src="/assets/images/kulwap/kulwap-raspi.jpg" alt="raspberry-pi-3-wafa-wafiyaa" /></p>
<p><a name="more"></a></p>
<p>selamat malam semuanya, mari di mulai kulwapnya ya</p>
<p>jadi untuk kulwap kali ini saya akan berbagi sedikit ilmu mengenai installasi dan remote raspinya</p>
<p>sebelum masuk ke pembahasan kemarin om @RONALD sempat tanya maksud remote itu bagaimana ?</p>
<p>jadi begini karena saya disini menggunakan peralatan yang minimalis dalam installasi dan memasukan program ke raspinya, jadi saya melakukan remote terhadap raspi dengan menggunakan putty</p>
<p>untuk software yang digunakan :</p>
<ol>
<li>Etcher Portable 1.1.2 64 bit</li>
<li>EXT Win Trial</li>
<li>Notepad++</li>
<li>Putty</li>
</ol>
<p>karena tadi terjadi kendala teknis pada SD card jadi video saat instalasi akan saya upload nanti yaaa….</p>
<h2 id="sekilas-tentang-raspi">sekilas tentang Raspi</h2>
<p>raspi adalah mini komputer yang berukuran sebesar kartu kredit, meskipun ukurannya sangat kecil raspi telah dilengkapi dengan semua fungsi layaknya sebuah komputer lengkap.
raspi menggunakan prosesor ARM, yang dikemas dan diintegrasikan di papan PCBnya</p>
<p>prosesor ARM sendiri biasanya digunakan sebagai prosesor mobile seperti perangkat android.</p>
<p>kenapa raspi menggunakan ARM sebagai prosesornya? karena ARM memiliki konsumsi daya yang kecil dan lebih murah, input/output dalam raspi tediri dari HDMI, video analog, audio analog, port USB, pin digital, camera serial interface portt, display serial interface port, lan port, sd card port dll.</p>
<p>kelebihan raspi bisa digunakan untuk media server, file server berbasis IP, print server, home automation bahkan bisa dijadikan console game</p>
<p>harga raspi dari pertama muncul masih sama yaitu $35</p>
<p>hal-hal yang perlu diperhatikan saat menggunakan raspi yaitu :</p>
<ol>
<li>gunakan power supply dengan kebutuhan arus yang sesuai. Raspi 3 menggunakan power supply 5V 3A ( kapasitas MAX)</li>
<li>gunakan SD card berkapassitas minimal 8 GB class 10</li>
<li>jangan menyentuh komponen raspi secara langsung ketika masih terhubung dengan arus listrik</li>
</ol>
<p>[interrupt: by ejs] direkomendasikan matikan raspi sebelum disentuh ato dibolakbalik. 😃</p>
<p><img src="/assets/images/kulwap/raspi-teknik-memegang-raspi.jpeg" alt="Teknik memegang komponen raspi" title="Teknik memegang komponen raspi" /></p>
<p>Teknik memegang komponen raspi saat terhubung dengan arus listrik</p>
<h2 id="cara-menginstall-os">cara menginstall OS</h2>
<p>lanjut ke cara menginstall OS pada Raspi ya, OS yang saya gunakan dalam instalasi kali ini yaitu Raspbian Jessie desktop , teman-teman bisa mendownload OS nya di web raspi https://www.raspberrypi.org/downloads/raspbian/</p>
<p>setelah mendowload OS, copy kan OS tersebut ke SD card dengan mengunakan aplikasi Etcher
<img src="/assets/images/kulwap/raspi-tampilan-etcher.jpeg" alt="tampilan etcher" title="tampilan etcher" />
tampilan etcher seperti ini</p>
<p>klik select image, untuk memilih OS raspi yang akan di copy ke SD Card, select drive untuk memiliih SD card yang akan di copy-kan OS raspinya</p>
<p>lalu klik flash untuk memulai proses copy OS ke SD Card</p>
<p>setelah selesai di flash, SD card nya jangan dulu dicabut ya</p>
<p>langkah selanjutnya yaitu mengaktifkan SSH, set IP static dan SSID agar nantinya kita dapat berkomunikasi dengan raspi melalui aplikasi Putty</p>
<p>karena saya menggunakan OS win 8 dan laptop saya tidak dapat membaca boot SD card maka kita bisa menggunakan aplikasi EXT win trial</p>
<p>aplikasi EXT win trial ini sebetulnya berbayar, tapi kita dapat menggunakannya selama 30 hari</p>
<p>setelah itu aplikasi tersebut meminta key untuk mengaktifkannya, tapi kita masih bisa menggunakan versi trialnya lagi untuk 30 hari ke depan namun performanya dalam membaca boot SD card atau external memory lainnya akan berkurang</p>
<p>jika teman-teman menggukan linux, tidak usah menginnstall aplikasi EXT win ini</p>
<p>[interrupt by ronald] <em>Ada aplikasi alternatif selain EXT itu kah ?</em></p>
<p><em>ada ka itu bisa menggunakan minitool atau easeUS</em></p>
<p>[interrupt by el] <em>Kek tool buat partisi 🤔</em></p>
<p><em>yap memang fungsinya EXT win ini untuk membaca pastisi Sd card nya</em></p>
<p>sebelum mengaktifkan SSH, set IP dan set SSID + Password</p>
<p>buka notepad++, setting show end of line pada n++ nya agar syntax di n++ OS win 8 sama dengan syntax bisa dibaca di linux</p>
<p>[interrupt by Ferdyansyah] <em>Mengapa komponen raspi harus dipegang kak @wafa</em></p>
<p><em>Sebetulnya raspi itu ada covernya, ini lebih aman sih untuk pegang, tapi kemarin cover raspi saya copot karena saya mau membuat perangkat IoT dengan raspi</em></p>
<p>[interrupt by el]</p>
<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>Kalo nggak ?
-Takut ngrusak komponen(konslet dll)
Apa
-Takut ksetrum
?
Arusx gde ga sih itu ?
#gakPernahPegang🤔😌
</code></pre></div></div>
<p><em>Lumayan sih bikin seger hhi, apalagi kalo udah pegang raspi, buka pintu gagangnya besi uh segerrr banget</em>
<em>5 volt 3 Ampere</em></p>
<p>Jadi kalo udah pegang raspi usahin grounding dulu ke tembok atau ke kayu</p>
<p>Bisa pakai charger hp sih buat nyalain raspinya</p>
<p>[topanmaulana] <em>tp tegangan charger hp kn ma cm 2A</em></p>
<p><em>Kemarin aku pake yg 2.5 A, Bisa nyala</em></p>
<p>Itu 3 A sebener kapasitas max nya</p>
<p>[ronald] <em>Kalau pegang raspi, usahakan badan gak nyentuh tanah / lantai / pakai sendal, bisa juga pakai plastik pembungkus nya yg abu-abu, itu anti-static</em></p>
<p>Ini hasil dari copy OS ke sd card nya</p>
<p><img src="/assets/images/kulwap/raspi-hasil-copy-OS.jpeg" alt="hasil dari copy OS ke sd card" title="hasil dari copy OS ke sd card" /></p>
<p>[topanmaulana] <em>partisinya yg G kak?</em></p>
<p><em>partisinya yang H</em></p>
<p><img src="/assets/images/kulwap/raspi-hasil-copy-OS-1.jpeg" alt="hasil dari copy OS ke sd card" title="hasil dari copy OS ke sd card" /></p>
<p>di drive bootnya kita buat folder SSID</p>
<p>lanjut untuk setting SSH dan static IP nya</p>
<p>masuk ke partisi SD cardnya lalu cari folder etc</p>
<p>cari file dengan nama dhcpcd.conf</p>
<p>Setelah itu masukan kode berikut ke dalam file <code class="language-plaintext highlighter-rouge">dhcpcd.conf</code></p>
<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>interface wlan0
static ip_address = masukan ip staticnya
static routers = masukan ip routers
static domain_name_servers=8.8.8.8
</code></pre></div></div>
<p>Masuk lagi ke partisi sd cardnya cari folder <code class="language-plaintext highlighter-rouge">etc\wpa_supplicant</code>
Dan cari file <code class="language-plaintext highlighter-rouge">wpa_supplicant.conf</code></p>
<p>Masukan kode berikut</p>
<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>network={
ssid="nama ssid"
psk="masukan password ssidnya"
}
</code></pre></div></div>
<p>Setelah menyimpan file tersebut, Buka EXT win dan unmount partisi sd cardnya</p>
<p>Unmount disini dimaksudkan agar si partisi sd card dipaksa untuk menulis codingan yang telah kita buat tadi</p>
<p>Eject sd card dan masukan ke perangkat raspinya</p>
<p>Colok adaptornya dan test dengan ping ip static yang telah kita set tadi menggunakan cmd, Jika sudah dapat terkoneksikan maka dipastikan bisa di remote Melalui putty</p>
<p>Buka aplikasi putty dan masukan ip static yang telah di setting tadi, Masukan username dan password raspinya yaitu username : <code class="language-plaintext highlighter-rouge">pi</code> password : <code class="language-plaintext highlighter-rouge">raspberry</code></p>
<p>[andana] <em>maaf, ini default kah?</em></p>
<p><em>Iyap betul itu defaultnya</em></p>
<p>Username dan password ini berlaku untuk semua perangkat raspi ya</p>
<p>Dan setelah itu kita dapat meremote raspinya dengan menggunakan command linux</p>
<p>Mungkin itu saja yang dapat saya share kepada teman-teman</p>
<p>Mohon maaf ada banyak kekurangan dalam penyampaian materinya</p>
<h2 id="diskusi">diskusi</h2>
<p><img src="/assets/images/kulwap/raspi-3-1-ampere.jpeg" alt="3.1A recommended tidak?" title="3.1A recommended tidak?" /></p>
<p>[hengky] <em>3.1A recommended tidak?</em></p>
<p><em>Kapasitas maximal yang saya tau dari raspi nya 5V 3 A, jika menggunakan 3.1 A belum pernah dicoba hhi</em></p>
<p>Untuk raspi sendiri jujur wafa baru kenalan akhir agustus ini, sebelumnya pernah main di arduino</p>
<p>Btw ada sedikit tips nyari contoh-contoh membuat percobaan dengan raspi dan bahasanya bisa dengan contoh kata kunci “raspi dht11 nodejs”</p>
<p>[el] <em>Bedax raspi m arduino apa ?trutama pemanfaatanx</em></p>
<p><em>Perbedaan paling mencolok ada di perangkatnya, Kalo di arduino ada pin analog dan pin digital, kalo di rapi adanya pin digital aja, Dan masih banyak lagi bedany di perangkat rapi dan arduino</em></p>
<p>[riyo] <em>Apa Raspberry Pi ini bisa menjadi Seperti Arduino? Maksudnya bisa langsung konek ke io/sensor ?</em></p>
<p><em>Bisa ka, raspi juga bisa dijadikan perangkat IoT</em></p>
<p>Contohnya tadi kan ada komponen camera serial interface port. Kita bisa beli modul camera dan di masukan ke perangkat raspinya</p>
<p>[abubakar] <em>Installasi ini via kabel data kah? Apa sperti flash smartphone??</em></p>
<p><em>Melalu card reader ka, jadi osnya itu dimasukan ke sd card denganaplikasi etcher</em></p>
<p>[ejs] <em>Biasanya pin analog digunakan untuk apa ya ? Pin digital untuk apa ? Apa beda dr keduanya ?</em></p>
<p><em>Di arduino sendiri pin analog itu digunakan untuk input output digital, jadi signal analog yang masuk nantinya akan diterjemahkan ke nilai digital yang mudah diukur, kalo pin digital. Di arduino itu hanya bisa menangkap signal berupa 1 dan 0</em></p>
<p><em>Kalo di raspi itu pin digitalnya itu disebut juga GPIO singkatan dari general input output, Untuk raspi 3 model b+ punya 40 pin dengan fungsi masing - masing yang sampai sekarang pun saya belum hafal banget wjwkkw</em></p>Wafa WafiyaaTips dan Trik Khitbah2017-06-10T02:49:07+00:002017-06-10T02:49:07+00:00https://phpid-jakarta.github.io/sharing/2017/06/10/tips-and-trik-khitbah<p><img src="/assets/images/kulwap/tips-trik-khitbah.jpg" alt="Tips dan Trik Khitbah" /></p>
<p><a name="more"></a></p>
<p>Selamat malam semuanya…</p>
<p>Sebelum saya mulai sharing, mau tau dong siapa disini yang
aktif ngikutin sharing dr gw..</p>
<ol>
<li>Frankky</li>
<li>Aida</li>
<li>Gie</li>
<li>Arfi yang mau menghalalkanmu</li>
<li>Fred</li>
<li>Deroh</li>
<li>Suci</li>
<li>Siti</li>
<li>Topan</li>
<li>Dinda</li>
</ol>
<p>Okey berhubung sudah 10 ane akan sedikit sharing pengalaman
gw …</p>
<p> </p>
<p><strong>R</strong> -> Dinda : Cieee
yang mau menuju halal. Colek @Gie </p>
<p> </p>
<p>Oke terima kasih sudah dikasih waktunya. Saya akan share
sedikit <strong>Tips and Trick Mengkhitbah</strong>. </p>
<p><strong>1. </strong> <strong>Pilih calonnya dulu</strong></p>
<p>Nah kalau saya tidak pernah
mengenal pacaran tetapi langsung tembak ke jantung hatinya. </p>
<p>-
Pilihlah beberapa wanita ( 3 minimal ) untuk
perbandingan. Bukannya bermaksud merendahkan wanita, tetapi kita mencari
terbaik diantara yang baik.</p>
<p>-
Kemudian dekatilah wanita dengan mahromnya (jangan
sendirian ya), katakan kalau ingin mencari wanita yang mau kalian nikahi. </p>
<p>-
Dari pihak wanita membawa minimal 1 teman wanita
dan pria membawa 1 teman pria.</p>
<p> </p>
<p><strong>T</strong> -> Dinda : Trus kalo dari sisi wanita gimana? Suruh
pilih 3 calon pria juga?</p>
<p><strong>J</strong> -> Frankky Fadholi : Dari segi wanita juga begitu, jangan
hanya menunggu pria yang ga adakejelasannya.</p>
<p>-
Seorang pria harus berani, setelah itu obrolkan
apa yang anda ketahui tentang wanita itu.</p>
<p>-
Anda keep jawaban-jawaban mereka semuanya.</p>
<p>-
Dari ketiga wanita, pilihlah 2 wanita dan eksekusi 1 wanita yang tidak
dipilih.</p>
<p>-
Setelah itu sholat istiqorohlah si pria dan
wanita.</p>
<p>-
Apabila pria memilih wanita 1 maka wanita 2
harus mengalah dan sebaliknya. </p>
<p>-
Untuk dari sisi wanita apabila kalian kesulitan
cobalah untuk meminta dicarikan pria yang menurut temenmu baik.</p>
<p><strong>R</strong> -> Arfi Bintang : Kamu cari tiga
pria yang paling dekat .. trus tanyakan arah kejelasan hubungan ini </p>
<p><strong>J</strong> -> Frankky Fadholi : Ini salah </p>
<p><strong>R</strong> -> Dinda : Wanita milih dengan pertimbangan matang dong.
Liat keseriusanya…Liat perjuanganya..Liat niat baiknya..ehh </p>
<p><strong>R</strong> -> Frankky Fadholi: Jangan lupa
eksekusi juga </p>
<p><strong>R</strong> -> Arfi Bintang : Oo pantes gw belum nikah.. </p>
<p><strong>R</strong> -> Frankky Fadholi : Jangan curhat hahaha </p>
<p>
Ketika pria memilih, wanita berhak menolak.
Seorang pria apabila belum ada kepastian dari wanita jangan tolak yang lain dulu.
Setelah pria mendapat persetujuan dari wanita, saatnya eksekusi langkah selanjutnya </p>
<p> </p>
<p><strong>2. </strong> <strong> Datangi Orang Tuanya</strong></p>
<p><strong>T</strong> -> Arfi Bintang : Perlu
bawa martabak ga Mas?
Atau langsung to the point? </p>
<p><strong>R</strong> -> Adzim: Bawa kue buaya </p>
<p><strong>J</strong> -> Frankky Fadholi : To the point.
Karena kalo bertele-tele dianggap biasa aja terus ortunya juga biasa aja. </p>
<p><strong>R</strong> -> Rhizka : Datangi
orang tuanya (walinya) sendiri baru besoknya bawa serombongan </p>
<p><strong>R</strong> -> Siti : Setujuuu </p>
<p><strong>J</strong> -> Frankky Fadholi: Gak begitu.
Nah ini yang ditakuti semua pria.
Banyak pikiran negatif sehingga banyak dari pria gagal disini. </p>
<p><strong>R</strong> -> Hamida: Tuh pemikiran cowo beda</p>
<p><strong>R</strong> -> Dinda : Ada yang begituu kokk..eehh </p>
<p><strong>R</strong> -> Arfi Bintang : Buaya darat dilarang bawa kue buaya </p>
<p><strong>R</strong> -> Siti : Iya
ada yang begitu, temen Siti pada gitu </p>
<p><strong>J</strong> -> Frankky Fadholi : Kalo
sudah jelas sih bisa aja Sit </p>
<p><strong>R</strong> -> Dinda : Biasany kalau udah bawa serombongan mah yang ngobrol bapaknya si cewe sama bapaknya si cowo…</p>
<p>
Yang niat khitbah mah diem aja nunggu instruksii…😄 </p>
<p><strong>J</strong> -> Frankky Fadholi : Ini saya yang menghitbah sendiri sebelum sama ortu </p>
<p>
Sebelum ortu dateng yah… </p>
<p><strong>R</strong> -> Adzim : Fi tanya dong Fi,, cara khitbah bagi yang mau poligami ? </p>
<p><strong>J</strong> -> Arfi Bintang :
- Restu istri pertama
- Restu mertua
- Restu orang tua
- Restu calon mertua
- Sama rezeki mesti lebih banyak </p>
<p><strong>R</strong> -> Hamida : Yang mau poligami</p>
<ol>
<li>Cari yang janda</li>
<li>Yang tua</li>
<li>Yang hidupnya sengsara ga ada sanak saudara
Intinya mau poligami jangan melebihi istri tua </li>
</ol>
<p> </p>
<p><strong>Untuk triknya, persiapkan apa yang anda harus siapkan waktu ketemu ortunya</strong></p>
<p> <strong>a. Persiapkan kerabat dekat pria (saudara laki-laki)</strong></p>
<p>Buatlah janji dengan kerabat apabila
tidak berani datang sendiri. Tapi waktu itu saya datang sendiri dan memberanikan ngomong langsung dengan ayah
sang calon. Kalau memang berani dan gentle datang sendiri dulu </p>
<p><strong>T</strong> -> Siti : Berhasil? </p>
<p><strong>J</strong> -> Frankky Fadholi : Alhamdulillah
berhasil, walau agak nervous. </p>
<p><strong>R</strong> -> Siti : Kerenn….
Alhamdulillah </p>
<p><strong>b. Persiapkan kata-kata awal untuk ngobrol dengan ortu (ayah)</strong> </p>
<p>Obrolan antara sesama lelaki harus
tegas dan jelas yah.</p>
<p>Untuk pertama katakanlah obrolkan mengenai background dari si ayah atau
ibunya. </p>
<p><strong>c. Persiapkan jawaban kira-kira pertanyaan apa saja yang akan ditanyakan</strong> </p>
<p>Nah ini yg agak krusial banget. </p>
<p>Kalo ane pas dateng ke ortu dia
ditanya macem-macem :</p>
<ol>
<li>Ditanya kerja dimana terus gaji berapa</li>
</ol>
<p>Yaudah ane jawab aja kerja di Jakarta dan gaji xxxx </p>
<p>2. Ane kan long distance ditanya nanti tinggal dimana
dan gimana soalnya dia itu udah kerja disini
(di kota X)</p>
<p>Jawaban
ane simple aja, kalo memang boleh saya mau ajak dia ke Jakarta. Karena istri
harus ikut dengan suami </p>
<p> </p>
<p><strong>R</strong> -> Siti : Itu pasti selalu ditanya.
Setujuu, kalau udah nikah lebih baik jangan LDR </p>
<p><strong>J</strong> -> Frankky Fadholi : Iya betul Siti
Pasti Siti, sebelum ngomong aja udah ditanya duluan lho
Lu dateng mau apa?
Ada sesuatu?
Yaudah gw bilang mau ngobrol serius sama Bapak. </p>
<p><strong>T</strong> -> Dinda : Terus janji macem-macem ga sama camer.??
Misal, jagain baik-baik anak gadisnya </p>
<p><strong>J</strong> -> Gie : Diajak tinggal dikontrakan dan makan sepiring berdua</p>
<p><strong>R</strong> -> Frankky Fadholi : Nah kalo ini gak bagus..
Kontrakan sendiri-sendiri tapi
laki-laki harus jagain wanitanya </p>
<p><strong>T</strong> -> Siti : Kontrakan sendiri-sendiri? </p>
<p><strong>J</strong> -> Frankky Fadholi : Iya
sendiri-sendiri. Kan belom resmi.
Cari kontrakannya yang deketan dengan
wanitanya..
Laki-laki harus ngalah
jarak jauh dari kerjaannya demi jagain wanitanya </p>
<p><strong>T</strong> -> Siti
: Ini status ceweknya kerja juga di Jakarta? </p>
<p><strong>R</strong> -> Gie : Si
cewe kan udah gede ini, bisa jaga diri sendiri,, </p>
<p><strong>R</strong> -> Dinda :
Ya Allah jahatnya ini anak </p>
<p><strong>J</strong> -> Frankky Fadholi : Sebelumnya
masih di daerah </p>
<p><strong>T</strong> -> dzim : Kalo cowo
ga mau ngalah gimna dong.???? </p>
<p><strong>J</strong> -> Frankky Fadholi : Tapi
harus dijagain.
Harus dibicarakan lagi…. </p>
<p><strong>T</strong> -> Siti
: Nah kalau ceweknya di daerah tapi Masnya di Jakarta apa
hubungannya sama kontrakan? </p>
<p><strong>R</strong> -> Arfi : Ti… Kocak banget sihhh….. </p>
<p><strong>J</strong> -> Frankky Fadholi : Nanti saya ceritakan dibawah ya Sit </p>
<p><strong>R</strong> -> Siti : Siap Mas.
Hehe…..
Soalnya agak rancu </p>
<p><strong>R</strong> -> Rifky : Yuk nikah </p>
<hr />
<p><strong>T</strong> -> Dinda : Rasanyaaa
ketemu wali kayak lari dari kutup utara ke Gurun Sahara bolak balik yaaa.???😆😆😆 </p>
<p><strong>J</strong> -> Frankky Fadholi : Lebih
ribet dari itu Din </p>
<p><strong>R</strong> -> Dinda : Haha
ada yang bilang gitu soalnya waktu ituu</p>
<p> </p>
<p>
———————————————————————- </p>
<p>
<strong>d. Buka pembicaraan dengan camer</strong></p>
<p>Ane speak-spek, dulunya ayahnya kek gimana, dari kerjaanya atau lainnya.</p>
<p>Sang ayah bicara mengenai pengalamannya waktu dulu bekerja di kota daerahnya sampai merantau jauh, dan ayahnya juga cerita mengenai keluarganya dulu sampai sekarang.</p>
<p>Ceritanya bisa jadi contoh untuk kita. </p>
<p> </p>
<p><strong>T</strong> -> Arfi : Kalo ortu calon minta uang panai
gimana Om? </p>
<p><strong>T</strong> -> Siti : Uang Panai itu apa? </p>
<p><strong>J</strong> -> Frankky Fadholi
: Uang panai itu uang yang dikasih ke pihak wanita </p>
<dl>
<dt><strong>R</strong> -> Arfi</dt>
<dd>Yapp.. itu yang dipake di adat Bugis </dd>
</dl>
<p>
Nominalnya
ga kecil soalnya 😂😂😂 </p>
<p> </p>
<p><strong>e. Obrolkan dengan orang tua sendiri</strong> </p>
<p>Setelah ane minta sama ortunya,
ane beranikan diri bilang ke ortu ane, tapi
terjadi penolakan dari keluarga ane. Kemudian
ayahku menjabarkan mengapa belom boleh.</p>
<p>Karena calon aku harus kerja di
Jakarta. Aku, ibu gw dan adek-adek gw udah
bilang bahwa rejeki itu ada yang ngatur dan nanti juga yang menafkahi kan gw.</p>
<p>Tapi ayah tetep aja bilang calon
aku harus kerja di Jakarta.</p>
<p>Okey akhirnya aku oke-in ke ayahku.</p>
<p>Tapi ternyata dari pihak calonku
juga tidak membolehkan kalo kita di Jakarta… </p>
<p><strong>T</strong> -> Arfi :
Di minta nikah buru-buru apa engga.??? </p>
<p><strong>J</strong> -> Frankky Fadholi : Engga
kok </p>
<p><strong>R</strong> -> Dinda
: Lohhh dirimu belom ada omongan sama
ortu sendiri, malah langsung ke
ortu doi??? weww </p>
<p><strong>T</strong> -> Siti : Oh
gitu..Solusi dari Mas gimana? </p>
<p><strong>J</strong> -> Frankky Fadholi
: Tapi udah sedikit speak sih ke ortu.
Yaudah akhirnya gw nyariin kerjaan di Jakarta atau gw yang pulang ke kampung halaman.
Kita hampir menyerah kalau sampai akhir tahun tidak dapet kerja, yaudah kita
sepakat putus saja daripada gak di restui keduanya malah gak baik.</p>
<p>Gw suruh calon gw bikin surat lamaran dan lengkapi surat-surat lainnya dan dipaketkan ke Jakarta. Kemudian gw masukin ke tempat-tempat kerja di Jakarta.</p>
<p><strong>T</strong> -> Siti
: Tapi bukannya keluarga cewek ga mengizinkan kerja di Jakarta? </p>
<p>Kenapa
engga Masnya aja yang ngalah?
Kan katanya tadi ada kata-kata “cowok harus ngalah meskipun dari sisi
jarak kerja.” </p>
<dl>
<dt><strong>R</strong> -> Dinda </dt>
<dd>Yahh kok gampang banget nyerahnya… </dd>
</dl>
<p><strong>J</strong> -> Frankky Fadholi
: Iya betul…</p>
<p>
Kita saling mencari pekerjaan.. gw nyariin kerjaan buat dia di Jakarta, dan gw nyari kerjaan di kampung halaman.
Suatu hari calon gw bikin janji maen ke jakarta dan rencana masukin lamaran. Pas pagi hari masukin lamaran, siang hari ada panggilan dan langsung tes. </p>
<p><strong>R</strong> -> Siti : Bukannya
dari keluarga ceweknya ga setuju kalau
ceweknya kerja di Jakarta? </p>
<p><strong>J</strong> -> Frankky Fadholi
: Iya ortu gak setuju, Siti. Cuma si wanita berusaha meyakinkan sambil gw nyariin kerja disini</p>
<p><strong>T</strong> -> Siti : Hasil tesnya? </p>
<p><strong>J</strong> -> Frankky Fadholi : Antara kebetulan atau sudah ada yang
ngatur, Alhamdulillah Allah memberikan jalan,
calon gw dapet juga kerja di Jakarta, dan calon gw meyakinkan ayahnya supaya boleh
dan merestui di Jakarta. Entah ada angin apa akhirnyaa meridhoi dan akhirnya keterima
kerja di Jakarta.</p>
<p>
Semua sudah diatur jalan ceritanya sama Allah </p>
<dl>
<dt><strong>R</strong> -> Siti </dt>
<dd>Alhamdulillah
Prinsipnya kalau ortu ga setuju,
sebagai anak ngikutin </dd>
</dl>
<p><strong>J</strong> -> Frankky Fadholi: Saya kurang
setuju. Karena kita harus berbicara dengan ortu kita.</p>
<p>Kalo kita berusaha Allah pasti
kasih jalan kok. Buktinya Allah membalikkan hati dari gak setuju dengan
pembicaraan-pembicaraan akhirnya setuju.
</p>
<p>Namanya orang berbeda-beda, kalau mau jadi satu pasti ada aja halangannya.</p>
<p>Dan ingat setiap kita punya niat
menikah, rejeki selalu ada dan selalu ada jalan. Akhirnya ortu gw datang
kerumah calon gw untuk melamarkan gw..</p>
<p>Alhamdulillah ortu calon gw sudah
memberikan tanggal pernikahan gw.. </p>
<p><strong>R</strong> -> iti : Alhamdulillah </p>
<p><strong>R</strong> -> Adoh
: Tergantung sih Mas Franky.</p>
<p>Lihat pertimbangan orang tua apa
dulu. Ga melulu anak harus memperjuangkan kehendaknya </p>
<p><strong>J</strong> -> Frankky Fadholi
: Iya betul…kita harus inget betul apa yang dibilang ortu kita.</p>
<p>
Tapi semua harus dibicarakan bersama</p>
<h2> </h2>
<dl>
<dt><strong>R</strong> -> Dinda </dt>
<dd>Emang harus banget kerjaa cewe nyaa.??? </dd>
</dl>
<p><strong>J</strong> -> Gie
: Kalo cowo wajib punya kerjaan, tapi kalo si cewe kan… bisa di rumah. Bagi bagi tugas nanti nya </p>
<p> <strong>R</strong> -> Dinda
: Tapi bagus juga sih kalo
cewe bisa jadi wanita karier + ibu rumah tangga…kayaknya jaman sekarang seperti ituu… </p>
<p><strong>R</strong> -> Siti
: Lebih berat syaratnya itu masalah suku</p>
<p> Tapi
tetep porsi kerja cewek jangan ngelebihin suami
————————————————————————————————</p>
<p><strong>R</strong> -> Rifky : Yang
penting tau hak dan kewajiban, mahar semampunya aja Mas . </p>
<h2 id="-1"> </h2>
<p><strong>T</strong> -> Arfi :
Kalo casenya beda keyakinan, perlu dibahas ga nih? </p>
<p><strong>R</strong> -> Adoh : Kalo berani sih. Tp ini case sensitive. </p>
<p><strong>J</strong> -> Frankky Fadholi
: Ada beberapa pendapat yang
membolehkan dan ada yang tidak,</p>
<p> tapi ane belom berani menjelaskan. Kalo ane
sih, kalo bisa jangan </p>
<p> <strong>R</strong> -> Ira
: Kalau ini, bukanya di agama islam tidak diperbolehkan untuk
menikah beda keyakinan </p>
<p><strong>J</strong> -> Frankky Fadholi
: Secara jelas sih tidak boleh </p>
<p><strong>R</strong> -> Deroh :
Diusahakan cari yang seiman dulu..</p>
<p>Beberapa pendapat ada yang memperbolehkan
tapi pendapat lain ada yang menentang keras…</p>
<p>Karena ini masalah
keyakinan…jadi silahkan pertimbangkan dan cari sendiri jawabannya pada
keyakinan masing-masing.</p>
<p>Namun di suatu hari nanti pasti
akan ada konflik, nah untuk meminimalisir kemungkinan yang terjadi, akan lebih
baik kalau cari yang seiman dulu…</p>
<p>Tapi itu semua balik ke pribadi
masing-masing.</p>
<p>
Karena anda dan kalian yang akan menjalankannya nanti.</p>
<p>#eeeaaaa </p>
<p><strong>R</strong> -> Ira
: Bukan diusahakan sih. Lebih tepatnya diwajibkan. </p>
<p> <strong>R</strong> -> Arfi :
Iya.. kalo si cewe ga yakin kita ganteng sedangkan kita yakin kalo kita
ganteng. Maka akan timbul perbedaan
keyakinan </p>
<dl>
<dt><strong>R</strong> -> Nasir </dt>
<dd>Uuueeee…… </dd>
</dl>
<p><strong>R</strong> -> Frankky Fadholi
: Plis deh Fi…. </p>
<p><strong>R</strong> -> Deroh :
Yang bilang lo ganteng kan…</p>
<p> Pertama
emak mu…</p>
<p>Kedua dirimu sendiri …. </p>
<p><strong>R</strong> -> doh
: Kalo gitu bisa perang dunia tiap hari. Makanya jangan. </p>
<p><strong>R</strong> -> Frankky Fadholi
: Seringnya emaknya bilangnya kaga </p>
<dl>
<dt><strong>R</strong> -> Deroh </dt>
<dd> Nah berarti emaknya jujur. </dd>
</dl>
<p>
Udah
terima nasib aja… </p>
<p> Kali
ada cewek yang khilaf bilang lu ganteng.. </p>
<p><strong>R</strong> -> Frankky Fadholi
: Kalo ini mungkin ceweknya di sirep </p>
<p><strong>R</strong> -> Deroh : Disirep cinta</p>
<p> #eeeaaaa </p>
<p><strong> </strong></p>
<p><strong> </strong></p>
<p><strong>Sessi tanya jawab :</strong></p>
<p>**
**</p>
<p><strong>T</strong> -> Deroh :
Kriteria apa yang dilihat dari laki-laki
untuk menentukan calon??</p>
<p>
Diawal sudah dijelaskan
kalau pilihlah minimal 3 orang untuk dibandingkan
dan dicari yang terbaik? </p>
<p><strong>J</strong> -> Frankky Fadholi : Kalo
kriteria kan sendiri-sendiri… </p>
<p>Biasanya…</p>
<ol>
<li>Agamanya</li>
<li>Kecantikan atau ketampanan</li>
<li>Kalau laki-laki pilih wanita yang bisa masak, kalau wanita cari yang mau
bertanggung jawab dan setia </li>
</ol>
<p>Selain itu biasanya kriteria dari masing-masing. </p>
<p><strong>T</strong> -> Deroh :
Kalo gak bisa masak gimana? </p>
<p><strong>J</strong> -> Frankky Fadholi : Bisa
kursus kan? haha </p>
<p> Tapi
kalo laki-laki bisa menerima yang ga bisa masak sih gapapa. Kan ada pembantu. hahaha </p>
<p><strong>R</strong> -> Ira
: Iya kalo mampu bayar pembantu</p>
<p> Kalo
engak…..</p>
<p> Gaji
pembantu sekarang mahal dan belum tentu kerjaanya beres.</p>
<p>
Intinya, mau wanita karir atau engak kalau sudah menikah wajib ngurus suami dan anak. Ada
atau ngak ada pembantu. </p>
<p><strong>T</strong> -> Muhammad Nasir : Kalo yang
gak bisa kursus gimana? </p>
<p><strong>J</strong> -> Deroh :
Kamu yang ajarin donk Kaka…. </p>
<p> Kamu
kursus duluan….</p>
<p> Terus
ajarin deh ilmunya ke dia…</p>
<p> Lebih sweet kan😊 </p>
<p><strong>R</strong> -> Siti
: Setujuu</p>
<p><strong>R</strong> -> Adoh
: Betul sekali :) </p>
<p><strong>T</strong> -> XXX :
Kalau casenya menunda menikah karena
masih menunggu saudara yang belum menikah gimana tuh ? </p>
<p><strong>J</strong> -> Frankky Fadholi
: Tunggu dulu saja….Allah pasti memberikan jalan kok </p>
<p><strong>R</strong> -> XXX
: Syipp. Thanks Om Franky. </p>
<p><strong>R</strong> -> Adoh
: Enaknya kalo
langsung khitbah itu, si anak
pertimbangannya ga memihak perasaan😁 </p>
<p> —————————————————————————————</p>
<p><strong>T</strong> -> YYYY : Kalo
ada cowo yang ga pernah ketemu dan janji mau nikah itu gimana? Tapi no hpnya aja ga punya…</p>
<p>
Chat FB aja…wkwkwkw</p>
<p><strong>J</strong> -> Frankky Fadholi
: Harus jelas bibit bebet dan bobotnya </p>
<p><strong>R</strong> -> Deroh
: Wah jangan percaya sama FB dan janji-janji manis cowok tanpa bukti …</p>
<p>Nanti KAMU sakit sendiri…</p>
<p>Jadi cari yang pasti-pasti aja</p>
<p>#eeeaaaa </p>
<p>Demikian sharing dari gw supaya bermanfaat buat kalian
semuanya. Semoga cepat dapet jodoh yang
terbaik buat kalian semuanya.</p>
<p>Amin </p>Muhammad FrankkyBasic Database2017-05-11T06:14:07+00:002017-05-11T06:14:07+00:00https://phpid-jakarta.github.io/kulwap/2017/05/11/basic-database<p><img src="/assets/images/kulwap/Basic-Database.jpg" alt="Basic-Database" /></p>
<p><a name="more"></a></p>
<p><strong>Basic Database</strong>
<strong>By Eko Junaidi Salam</strong>
<strong>Kulwap 6 Agustus 2016 bersama EJS <code class="language-plaintext highlighter-rouge">Basic Database</code></strong></p>
<p>Selamat malam, materi kali ini membahas pengetahuan dasar tentang database.</p>
<p><strong>Apa itu database ?</strong></p>
<p>Database atau basis data adalah sekumpulan informasi yang didesain secara terstruktur sedemikian rupa, sehingga dapat diolah atau dimanipusi. Database itu sendiri terdiri dari beberapa objek yakni skema, tabel, view, sequence, dan objek-objek lainnya.</p>
<p><strong>Berdasarkan tipenya, database dibagi menjadi beberapa tipe :</strong></p>
<ol>
<li>
<p>Flat File Database</p>
</li>
<li>
<p>Relational Database</p>
</li>
<li>
<p>Object Database</p>
</li>
</ol>
<p>4. Object Relational Database</p>
<p><strong>Apa itu Flat File Database ?</strong></p>
<p>Flat file database adalah tipe database yang biasanya disimpan pada komputer host. Tipe ini biasanya disimpan dalam bentuk plain text, atau binary file. Tipe database ini biasanya tidak memiliki struktur indexing dan biasanya tidak memiliki relasi antar record. Contoh Flat file database biasanya disimpan dalam format *.txt, *.dat, *.csv, *.vcf dan masih banyak format lainnya</p>
<p><strong>Apa itu Relational Database ?</strong></p>
<p>Relational database adalah tipe database yang telah memiliki struktur relasi antar model pada datanya, biasanya kita menggunakan bahasa terstruktur seperti SQL (Structured Query Language) yang biasa digunakan dalam RDBMS (Relational Database Management System). Contoh dari tipe database ini sangat beragam, seperti MySql, Postgres, dll.</p>
<p>Tipe ke 3 adalah Object Database.</p>
<p><strong>Apa itu Object Database ?</strong></p>
<p>Object Database atau yang biasa disebut <strong>Object Oriented Database (OODBMS)</strong> adalah tipe database yang berbentuk object yang hampir mirip dengan object oriented programming. Kalo relational database berorientasi pada tabel, maka object database adalah hybrid database yang menggunakan pendekatan relational dan object database. Kalo RDBMS menggunakan SQL, maka OODBMS menggunakan OQL untuk mengakses datanya. Contoh OODBMS lumayan banyak, namun saya tidak akan membahasa lebih mendalam untuk tipe database ini. Contoh dari Object Database : db4o, florid, framerD, H-pcte, lincks, Ke texpress, mood sx, O2 Object Database, Objectify/DB, ozone, dan banyak lainnya.</p>
<p>Tipe ke 4 adalah object-relational database.</p>
<p><strong>Apa itu Object-Relational Database ?</strong></p>
<p>Object-relational database adalah tipe database yang mirip dengan relational database, tapi dengan model yang mirip dengan object-oriented database.</p>
<p>Tipe object-relational database ini katanya sebagai jembatan yang mengakomodasi relational database dan object database.</p>
<p>Tipe jenis ini bisa dikata penggabungan relational database dan object database, dimana tipe ini mendukung object, class, dan inheritance.</p>
<p>Oh iya jangan salah, 2 database diatas adalah database yang juga mendukung tipe flat file database, database relational, object database dan object-relational database.</p>
<p><strong>Untuk tipe database sudah… materi ini akan saya kerucutkan hanya ke relational database.</strong></p>
<p>Berbicara database, juga pasti kita berbicara dengan UML (unified modelling language) bahasa yang digunakan dalam mendesain relational database. Ada banyak UML, yang biasa saya pake mysql workbench dan powerdesigner. UML biasa kita gunakan untuk mendesain conceptual data model (CDM) maupun physical data model (PDM) pada suatu relational database.</p>
<p>Dalam mendesain database, kita perlu memahami beberapa hal tentang database.</p>
<ul>
<li>pertama kita harus mengenal object-object pada database</li>
<li>Kedua kita perlu tahu bagaimana melakukan normalisasi database.</li>
</ul>
<p><strong>Yang Pertama… *Object-Object Database*</strong></p>
<p>Object database ada : tabel, view, query, function, prosedur, package, sequence, dll. silahkan ditanyakan nanti bila ada yang ingin ditanyakan.</p>
<p><strong>Yang Kedua… *Normalisasi Database*</strong></p>
<p>Normalisasi database memiliki 3 bentuk normalisasi.</p>
<ol>
<li>
<p>Bentuk pertama, meliputi pembuatan objek data kedalam bentuk tabel.</p>
</li>
<li>
<p>Bentuk kedua, mendefinisikan relasi 2 antar tabel yang berelasi.</p>
</li>
<li>
<p>Bentuk Ketiga, melakukan pemetaan dari hasil relasi-relasi tabel tersebut.</p>
</li>
</ol>
<p>Mempelajari normalisasi database berarti juga kita mempelajari Database Relationship.</p>
<p><strong>Apa saja relasi pada database ?</strong></p>
<ol>
<li>
<p>Relasi one to one relationship</p>
</li>
<li>
<p>Relasi one to many dan many to one relationship</p>
</li>
<li>
<p>Relasi many to many relationship, dan</p>
</li>
<li>
<p>Self Referencing relationship, relasi yang mereferensikan dirinya sendiri.</p>
</li>
</ol>
<p>Berbicara Relationship, kita juga pasti berbicara bahasa query yang digunakan untuk multiple database yang berelasi yakni <strong>JOIN</strong>.</p>
<p><strong>Tipe join meliputi cross join, natural join, inner join, left join dan right join</strong>.</p>
<p>Oke sekarang kembali lagi to the top, database…</p>
<p>Berbicara database kita juga perlu berbicara tentang performa, security dan availabilty dari database itu sendiri. Performa disini kita bisa lihat ** Storage** salah satunya. Storage dari masing-masing database bisa berbeda diantara satu sama lain, namun pada dasarnya storage ini uda pasti meliputi internal maupun eksternal level dari arsitektur database itu sendiri.</p>
<p>Secara level internal database menyimpan berbagai macam informasi terkait metadata dari setiap objek yang ada pada database. Secara level eksternal biasanya objek data pada database disimpin secara permanen didalam sebuah permanent storage, dan biasanya proses ini ditangani oleh database engine atau bisa disebut storage engine.</p>
<p>Selanjutnya ada yang namanya <strong>Materialized View</strong> atau saya singkat <strong>MV.</strong></p>
<p>MV biasa digunakan untuk meningkatkan performa dalam menyajikan data pada database, penggunaan MV ini sendiri ada kekurangan maupun kelebihan, sehingga perlu disesuaikan pemakaiannya.</p>
<p><strong>Selanjutnya ada istilah replikasi/mirror/clone biasa digunakan dalam database.</strong></p>
<p><em>Apa tujuannya ?</em></p>
<p>Tujuannya biasa digunakan dalam proses backup database. Replikasi/Mirror/Clone biasa disebut dengan Cold Backup karena tidak dilakukan setiap saat.</p>
<p><em>Lha terus yang dilakukan setiap saat itu apa namanya ?</em></p>
<p>Namanya adalah <strong>Sinkronisasi atau Database Synchronization.</strong> Biasanya disebut dengan <strong>Hot Backup</strong> karena database akan selalu tersinkronisasi dengan database utama (inti/ primary database).</p>
<p>Replikasi maupun Sinkronisasi adalah 2 hal yang berbeda sesuai penjelasan saya diatas, dan penanganannnya pun juga berbeda..</p>Eko Junaidi SalamHow To Build Front-End Application Using React2017-05-09T02:49:07+00:002017-05-09T02:49:07+00:00https://phpid-jakarta.github.io/kulwap/2017/05/09/how-to-build-front-end-application-using-react<p><img src="/assets/images/kulwap/How-To-Build-Front-End-Application-Using-React.jpg" alt="How-To-Build-Front-End-Application-Using-React" /></p>
<p><a name="more"></a></p>
<p><strong>How To Build Front-End Application Using React</strong></p>
<p><strong>BY M.Insan Rizky</strong></p>
<p><strong>April 2017</strong></p>
<p>Bismillah..</p>
<p>Assalamu ‘alaikum sadayana.. ??</p>
<p>Selamat malam dan salam sejahtera bagi kita semua..</p>
<p>Mungkin banyak yang belum kenal saya karena saya jarang nongol di grup atau meetup wkwk..</p>
<p>jadi saya perkenalan dulu..</p>
<p>Nama saya Muhamad Insan Rizky, panggilannya Insan. Masih mahasiswa semester 8 jurusan Pendidikan Teknik Informatika dan Komputer di UNJ (J => Jakarta != Jones) .. ??</p>
<p>Saya juga sambil kerja di Pustikom UNJ, IT Kampus lah.. udah 1 tahun lebih di sana.</p>
<p>Tinggal di Rawamangun (ngontrak).. aslinya Warunggunung, Lebak, Banten .. pokoknya ujungnya Provinsii Banten deh..</p>
<p>Base saya di PHP, kerja di kantor pake Laravel. Tapi sering juga silaturahim ke maenan yang lain kayak golang, nodejs, angular, swift, java dkk..yang lagi bikin saya tertarik adalah React.js</p>
<p>Dengan adanya kulwap ini, bukan berarti saya expert di React.js, justru saya ingin belajar lebih jauh soal React. Toh saya baru banget belajar lho.. beneran.. baru nyicip2 doang.. kita sama-sama belajar yah.. kalau ada salah, ya dikoreksi.. ?????</p>
<p>Oke, kita mulai ke point nya ya..</p>
<p><strong>Pengertian React</strong></p>
<p>React adalah sebuah library javascript yang digunakan untuk membuat aplikasi web dan mobile. React dikembangkan oleh Facebook. Bisa dilihat web whatsapp juga menggunakan react. Untuk membuat aplikasi mobile (IOS/Android) bisa menggunakan React-Native. Ini sama aja sebenernya kayak React, cuma beda di komponen aja.</p>
<p>Dulu, orang-orang pake jQuery buat ngelola DOM atau data dari front-end.. pake Ajax buat request ke servernya.</p>
<p><strong>Kenapa sih kita belajar React?</strong></p>
<p>Ini pertanyaan paling mainstream ketika kita mendengar teknologi baru di telinga kita. Kalau buat saya pribadi, keuntungan menggunakan React adalah kecepatan untuk membangun aplikasi web based dan mobile, karena teknologinya sama. Jadi gak usah belajar lagi. React-native katanya memiliki performa yang cukup baik mendekati aplikasi mobile aslinya, misal android pake java.. iOS pake swift.. beda dengan angular, yang merupakan aplikasi hybrid untuk mobilenya.. which is hybrid itu performanya tidak lebih baik ketimbang aplikasi native.</p>
<p>Oke sampe sini ada pertanyaan kah?</p>
<p><strong>T</strong> –> R-Suretno: Mau tanya Kang, apa sekarang bahas soal redux juga?</p>
<p><strong>J</strong> –> M Insan Rizky: belum om.. masih pengenalan aja.. ??</p>
<p><strong>R</strong> –> R-Suretno: Oke om, kebetulan lagi coba” juga ?</p>
<p>Lanjut……</p>
<p><strong>React native itu seperti apa sih ?</strong></p>
<p>Banyak developer yang ngomongin redux, tapi sebenernya ada teknologi sejenis lainnya yang katanya lebih mudah yaitu MobX.</p>
<p>React-native itu sama persis dengan react biasa, cuma nama komponennya aja yang beda.</p>
<p>Jadi kayak kita ngoding bikin web pake react, tapi ini bisa dicompile buat mobile -> apk dan iOS</p>
<p>Kalau pernah nyoba react, pasti bisa react-native…</p>
<p><strong>Saat kapan/kondisi yang bagaimana bisa dicompile buat mobile ?</strong></p>
<p>Kalau kita mau bikin aplikasi mobile Om ..</p>
<p>Jadi nanti kita render view nya pake emulator kayak xCode atau Genymotion, cuma beda platform aja..</p>
<p>Jadi react dan react-native itu 2 hal yang berbeda tapi sama. Kalau mau bikin web based, ya react..</p>
<p>Kalau mau bikin mobile based, ya react-native..</p>
<p>oke kita lanjut ya..</p>
<p><strong>Yang akan kita buat ini sederhana, antara lain:</strong></p>
<ol>
<li>
<p>Component,</p>
</li>
<li>
<p>State dan Prop,</p>
</li>
<li>
<p>Routing,</p>
</li>
<li>
<p>Rest</p>
</li>
</ol>
<p>Dalam kasus ini, kita akan membuat front-end CRUD dengan React.. terdengar so pretty ez kan yah? ??</p>
<p><strong>Bahan-bahan yang kita butuhkan adalah:</strong></p>
<ol>
<li>
<p>Node Js -> buat npm npm-an wkwk</p>
</li>
<li>
<p><code class="language-plaintext highlighter-rouge">create-react-app</code> -> semacem <code class="language-plaintext highlighter-rouge">angular-cli</code>.. atau <code class="language-plaintext highlighter-rouge">composer</code>..</p>
</li>
<li>
<p><code class="language-plaintext highlighter-rouge">json-server</code> -> buat backend nya.. jadi gak usah bikin manual..</p>
</li>
</ol>
<p>kita coba pelan-pelan dulu aja :D</p>
<p><strong>Silakan install dulu bahan-bahan di atas kalau belum diinstall..utamakan nodejs dulu</strong>..</p>
<table>
<tbody>
<tr>
<td>Karena semua dependencies yang kita pake akan kita download menggunakan npm Download</td>
<td>Node.jsnodejs.org</td>
</tr>
</tbody>
</table>
<p><strong>node js bisa didownload di sini:</strong></p>
<p><em>https://nodejs.org/en/download/</em></p>
<p><strong>kalau udah diinstall, silakan buka terminal/cmd ..</strong></p>
<p>lalu ketik <code class="language-plaintext highlighter-rouge">npm --version</code></p>
<p>…………………………gambar…………………………………………………</p>
<p>Kalau hilal sudah terlihat, berarti sudah terinstall</p>
<p><strong>R</strong> –> Remo Harsono: > <code class="language-plaintext highlighter-rouge">node --version</code></p>
<p><em>v6.10.0</em></p>
<p><strong>R</strong> –> Remo Harsono: udah juragaan</p>
<p><strong>Selanjutnya kita siapkan bahan kedua dan ketiga..</strong></p>
<p><code class="language-plaintext highlighter-rouge">npm install -g create-react-app</code></p>
<p>dan</p>
<p><code class="language-plaintext highlighter-rouge">npm install -g json-server</code></p>
<p>…………………………gambar…………………………………………………</p>
<p><strong>R</strong> –> R-Suretno: muhibbudin@katana:<code class="language-plaintext highlighter-rouge">~$ node --version</code></p>
<p><em>v7.7.2</em></p>
<p>ready gan</p>
<p><strong>Pastikan semua sudah terinstall dengan menjalankan perintah:</strong></p>
<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>npm --version
create-react-app --version
json-server --version
</code></pre></div></div>
<p>Katakan sudah jika semua bahan telah terpasang :D</p>
<p><strong>R</strong> –> X : node -v</p>
<p><em>v4.2.6</em></p>
<p>nodejs siap</p>
<p><strong>T</strong> –> _Z : kira-kira ada spek minimum ga ? kayak nodenya versi berapa ? npmnya ? dll ?</p>
<p><strong>J</strong> –> M Insan Rizky: mmm saya kurang tau.. so far pake latest version gak ada masalah kok..</p>
<p><strong>R</strong> –> Y : node sgtu cukup om</p>
<p>**Create-react-app dan json-server nya sudah kah? **</p>
<p><strong>R</strong> –> Remo Harsono: <code class="language-plaintext highlighter-rouge">npm install -g create-react-app</code></p>
<p><em>done</em></p>
<p><strong>R</strong> –> Remo Harsono: <code class="language-plaintext highlighter-rouge">npm install -g json-server</code></p>
<p><em>done</em></p>
<p><strong>R</strong> –> Y : in progress ….</p>
<p><strong>R</strong> –> Y: <code class="language-plaintext highlighter-rouge">npm -v && create-react-app --version && json-server -v</code></p>
<p><em>3.5.2</em></p>
<p><em>1.3.0</em></p>
<p><em>0.9.6</em></p>
<p><em>SUDAH</em></p>
<p><strong>Oke..</strong></p>
<p><strong>Selanjutnya sesuaikan direktori pada terminal terlebih dahulu. Karena kita akan membuat project directory react</strong></p>
<p><strong>R</strong> –> _Y : gile mastah ini wkwk</p>
<p><strong>J</strong> –> M Insan Rizky: gapapa , saya juga pake ini… enak soalnya.. ringan</p>
<p><strong>create-react-app react-kulwap</strong></p>
<p>**untuk membuat direktori project react .. **</p>
<p>Nanti akan muncul folder dengan nama react-kulwap yang isinya bundle react siap dikembangkan.</p>
<p><strong>R</strong> –> Juan : w nyimak ya om lagy selesaiin project dlu nih larapel API, dan front pke guzzle</p>
<p><strong>R</strong> –> M Insan Rizky: gile pake guzzle.. ggwp pisan juan..</p>
<p><strong>R</strong> –> Z : oke *In progress…* create-react</p>
<p><strong>R</strong> –> Z : wkwkwkkw GGWP lagy master data ada 10 modul plus login logout dan jwt hrus kelar senin dan w baru selesaiin 2 modul wkwk</p>
<p><strong>R</strong> –> Remo Harsono: sekalian pake requests, beautifulsoup</p>
<p><strong>R</strong> –> Remo Harsono: lanjut juragan rizky</p>
<p>eh masih progress ding</p>
<p><strong>R</strong> –> Z : oke sudah</p>
<p><strong>R</strong> –> Remo Harsono: done…</p>
<p>We suggest that you begin by typing:</p>
<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>cd react-kulwap
npm start
</code></pre></div></div>
<p>Happy hacking! Salam begal</p>
<p><strong>T</strong> –> Y : ini kenapa ya ?</p>
<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>npm WARN optional Skipping failed optional dependency /react-scripts/fsevents:
npm WARN notsup Not compatible with your operating system or architecture: fsevents@1.0.17
npm WARN optional Skipping failed optional dependency /chokidar/fsevents:
npm WARN notsup Not compatible with your operating system or architecture: fsevents@1.1.1
Success! Created belajar-react at /home/ekojs/Documents/my\_program/react/belajar-react
Inside that directory, you can run several commands:
npm start
Starts the development server.
npm run build
Bundles the app into static files for production.
npm test
Starts the test runner.
npm run eject
Removes this tool and copies build dependencies, configuration files
and scripts into the app directory. If you do this, you can't go back!
We suggest that you begin by typing:
belajar-react
npm start
Happy hacking!
</code></pre></div></div>
<p><strong>J</strong> –> Remo Harsono: fsevent mah cuekin secara itu buat mac</p>
<p><strong>J</strong> –> M Insan Rizky: gak masalah kok</p>
<p><strong>Ok kalau udah, masuk ke dir nya..</strong></p>
<p><code class="language-plaintext highlighter-rouge">cd belajar-react</code></p>
<p><strong>Terus jalanin servernya</strong></p>
<p><code class="language-plaintext highlighter-rouge">npm start</code></p>
<p><strong>R</strong> –> Remo Harsono: kok ga ada tulisan salam begal ya?</p>
<p><strong>J</strong> –> M Insan Rizky: nanti muncul di <code class="language-plaintext highlighter-rouge">http://localhost:3000</code></p>
<p><strong>R</strong> –> Z : oke lanjut klo begitu ?</p>
<p>**Kalau working, maka ketika diakses di browser, akan muncul tampilan default react app **</p>
<p>…………………………gambar…………………………………………………</p>
<p><strong>R</strong> –> Y : Yang terakhir ngeri kali happy hacking</p>
<p><strong>R</strong> –> Z : Oke berhasil…</p>
<p><strong>Kurang lebih strukturnya kayak gini:</strong></p>
<p>Ada node_modules buat dependencies nya.. public buat html nya.. dan src tempat kita nyimpen component nya..</p>
<p>…………………………gambar…………………………………………………</p>
<p><strong>R</strong> –> Remo Harsono: berhasiiil. Installer-nya versi begal ya kaya gini ini</p>
<p><strong>Kemudian coba buka src/index.js</strong></p>
<div class="language-javascript highlighter-rouge"><div class="highlight"><pre class="highlight"><code>
<span class="nx">ReactDOM</span><span class="p">.</span><span class="nx">render</span><span class="p">(</span>
<span class="o"><</span><span class="nx">App</span> <span class="o">/></span><span class="p">,</span>
<span class="nb">document</span><span class="p">.</span><span class="nx">getElementById</span><span class="p">(</span><span class="dl">'</span><span class="s1">root</span><span class="dl">'</span><span class="p">)</span>
<span class="p">);</span>
</code></pre></div></div>
<p>syntax ini berarti bahwa komponen App akan ditaruh di DOM dengan id=”root”</p>
<p>syntax import di atasnya untuk memasukkan hal-hal yang dibutuhkan.. :D</p>
<p>Karena react berbasis komponen, maka harus ada 1 komponen utama yang mengayomi semua komponen lainnya. Dalam hal ini, komponen App adalah komponen utamanya. Komponen App diambil dari src/App.js</p>
<p>Setiap komponen harus memiliki method render yang berguna untuk membuat isinya seperti apa.</p>
<p><strong>R</strong> –> X : Mirip angular 2 ya</p>
<p><strong>T</strong> –> Y : Dy bisa pake template url.gak ?</p>
<p><strong>J</strong> –> M Insan Rizky: Dalam render, dom yang dikembalikan harus dalam 1 tag.. tidak boleh banyak tag..
misal:</p>
<div class="language-html highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="nt"><div></span>
<span class="nt"><h3></span>Hai<span class="nt"></h3></span>
<span class="nt"><h4></span>Jomblo<span class="nt"></h4></span>
<span class="nt"></div></span>
</code></pre></div></div>
<p>ini contoh benar</p>
<p>…………………………gambar…………………………………………………</p>
<p><strong>J</strong> –> M Insan Rizky: tidak boleh seperti ini:</p>
<div class="language-html highlighter-rouge"><div class="highlight"><pre class="highlight"><code> <span class="nt"><h3></span>Hai<span class="nt"></h3></span>
<span class="nt"><h4></span>Jomblo<span class="nt"></h4></span>
</code></pre></div></div>
<p><strong>BTW , ini bukan HTML lho..</strong></p>
<p>Ini namanya JSX… kepanjangannya cek di internet ajah.. wkwk</p>
<p>Syntax javascript namun mirip dengan HTML</p>
<p><strong>R</strong> –> Suretno: wkwkwk lanjut gan</p>
<p>Untuk pemanggilan class CSS, menggunakan property className. Bukan class</p>
<p>Untuk css nya sendiri, bisa di-import di komponen atau di public/index.html langsung.</p>
<p><strong>R</strong> –> Suretno: Btw bantu jawab om @M Insan Rizky , mungkin bedanya kalau angular 2 base on typescript kalau react es6. dan kalau di react mainnya component kalau di angular 1 namanya directive ??</p>
<p><strong>J</strong> –> M Insan Rizky: kalau diimport di komponen, sama seperti <code class="language-plaintext highlighter-rouge">import './App.css';</code></p>
<p><strong>J</strong> –> M Insan Rizky: iya benar.. angular pake typescript.. react pake javascript ES5/ES6</p>
<p><strong>J</strong> –> M Insan Rizky: angular 1 gak pake komponen.. tapi angular 2 udah pake komponen</p>
<p><strong>T</strong> –> X : Mski ts tp pke es6 jga ?? bedanya kalau angular gak ada v-domnya kaya react</p>
<p><strong>J</strong> –> M Insan Rizky: directive lebih mirip ke properties di react</p>
<p><strong>R</strong> –> emo Harsono: angular 3 malah ga pake apa2</p>
<p><strong>R</strong> –> Remo Harsono: orang barangnya ada juga kaga, tau2 loncat ke versi 4</p>
<p><strong>R</strong> –> R-Suretno: Kata siapa yey</p>
<p>http://angularjs.blogspot.co.id/2016/12/ok-let-me-explain-its-going-to-be.html</p>
<p>Dalam komponen ada namany state dan prop. State bisa dikatakan sebagai variabel yang akan digunakan di class tersebut untuk mengolah data. Sedangkan prop diberikan pada saat komponen tersebut dipanggil.</p>
<p><strong>Kita coba state dulu ya</strong></p>
<p>Untuk membuat state, kita harus membuat constructor terlebih dahulu. Pada setiap constructor harus ada super() untuk construct parent class nya. Untuk memanggil state pada DOM, cukup gunakan curly braces .</p>
<div class="language-javascript highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="p">{</span><span class="k">this</span><span class="p">.</span><span class="nx">state</span><span class="p">.</span><span class="nx">title</span><span class="p">}</span>
</code></pre></div></div>
<p><strong>Pantengin ini deh..</strong></p>
<p>https://codepen.io/insanrizky/project/editor/XJpLJD/</p>
<p><strong>Ketika state diubah, maka dia langsung membinding ke DOM yang memanggilnya.</strong></p>
<p><strong>Silakan buat input text di dalam App-intro</strong></p>
<div class="language-html highlighter-rouge"><div class="highlight"><pre class="highlight"><code>_<span class="nt"><input</span> <span class="na">type=</span><span class="s">"text"</span> <span class="na">onChange=</span><span class="s">{this.handleTitle}/</span><span class="nt">></span>_
</code></pre></div></div>
<p>Ini artinya, ketika input tersebut berubah, maka ia menjalankan method handleTitle</p>
<p><strong>Yang isinya adalah:</strong></p>
<div class="language-javascript highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="nx">handleTitle</span><span class="p">(</span><span class="nx">event</span><span class="p">){</span>
<span class="k">this</span><span class="p">.</span><span class="nx">setState</span><span class="p">({</span>
<span class="na">title</span><span class="p">:</span> <span class="nx">event</span><span class="p">.</span><span class="nx">target</span><span class="p">.</span><span class="nx">value</span>
<span class="p">})</span>
<span class="p">}</span>
</code></pre></div></div>
<p><strong>setState berguna untuk mengubah nilai state</strong>. <strong>Namun ketika state ini diubah, state tidak akan langsung berubah hingga method tsb selesai dijalankan..</strong></p>
<p><strong>T</strong> –> N : Apa itu state ? apakah mirip kaya SPA
<strong>J</strong> –> M Insan Rizky: kalau di angular, cuma variabel biasa..</p>
<p>model kali yah..</p>
<p><strong>Method handleTitle tidak bisa dijalankan apabila belum di-*bind* ..</strong></p>
<p><strong>maka di constructor kita taruh perintah:</strong></p>
<div class="language-javascript highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="k">this</span><span class="p">.</span><span class="nx">handleTitle</span> <span class="o">=</span> <span class="k">this</span><span class="p">.</span><span class="nx">handleTitle</span><span class="p">.</span><span class="nx">bind</span><span class="p">(</span><span class="k">this</span><span class="p">);</span>
</code></pre></div></div>
<p><strong>yang artinya, method tsb di-binding pada class itu sendiri</strong></p>
<p><strong>R</strong> –>M Insan Rizky: kalau ada yang mau ditanyakan , langsung aja ya…</p>
<p><strong>R</strong> –>X : hmmm binding gtu?</p>
<p><strong>J</strong> –> M Insan Rizky: iya.. binding membinding..</p>
<p><strong>R</strong> –> Suretno: mungkin semacam <code class="language-plaintext highlighter-rouge">$scope / $rootScope</code> kali hehe</p>
<p><strong>J</strong> –> M Insan Rizky: betul.. <code class="language-plaintext highlighter-rouge">$scope</code> di angular 1 ..</p>
<p><strong>R</strong> –> M Insan Rizky: ini kayaknya dev angular semua yah? :v</p>
<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code> Akan kuracuni kalian semua ??
</code></pre></div></div>
<p><strong>R</strong> –> Suretno: haha pernah make angular 1 tapi udah lupa_ sekarang</p>
<p><strong>Oke sekarang kita coba menggunakan prop</strong></p>
<p>Buat komponen baru dengan nama Sample.js</p>
<p>yang isinya bisa dicek di codepen:</p>
<p>https://codepen.io/insanrizky/project/editor/XJpLJD/</p>
<p>**Kurang lebih Sample.js isinya seperti ini **</p>
<p>…………………………gambar…………………………………………………</p>
<p><strong>Intinya kalau mau buat Component, tinggal import React dan Component, bikin class, render, di akhir export, lalu panggil component Sample.js di App.js dengan cara:</strong></p>
<div class="language-javascript highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="k">import</span> <span class="nx">Sample</span> <span class="k">from</span> <span class="dl">'</span><span class="s1">./Sample</span><span class="dl">'</span><span class="p">;</span>
</code></pre></div></div>
<p><strong>Kemudian sisipkan komponen Sample di dalam render App seperti ini.</strong></p>
<div class="language-html highlighter-rouge"><div class="highlight"><pre class="highlight"><code>_<span class="nt"><Sample</span> <span class="na">something=</span><span class="s">"INI SAMPLE"</span><span class="nt">/></span>_
</code></pre></div></div>
<p>Artinya kita memanggil komponent Sample dan menaruh props di dalamnya. Penamaan props itu bebas. Nanti props ini dipanggil dengan cara :</p>
<div class="language-javascript highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="k">this</span><span class="p">.</span><span class="nx">props</span><span class="p">.</span><span class="nx">something</span>
</code></pre></div></div>
<p>**Gampang kan yah? ?? **</p>
<p>**Next kita mau pake json-server yang tadi kita buat **</p>
<p><strong>Pertama, buat file json dulu di directory react yang sama.</strong></p>
<p>misal:</p>
<p>api.json</p>
<p><strong>Isi dengan:</strong></p>
<div class="language-javascript highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="p">{</span>
<span class="dl">"</span><span class="s2">posts</span><span class="dl">"</span><span class="p">:</span> <span class="p">[</span>
<span class="p">{</span>
<span class="dl">"</span><span class="s2">title</span><span class="dl">"</span><span class="p">:</span> <span class="dl">"</span><span class="s2">Belajar Gak Mesti di Kampus</span><span class="dl">"</span><span class="p">,</span>
<span class="dl">"</span><span class="s2">author</span><span class="dl">"</span><span class="p">:</span> <span class="dl">"</span><span class="s2">Farid</span><span class="dl">"</span><span class="p">,</span>
<span class="dl">"</span><span class="s2">content</span><span class="dl">"</span><span class="p">:</span> <span class="dl">"</span><span class="s2">Lorem ipsum dolor sit ame</span><span class="dl">"</span><span class="p">,</span>
<span class="dl">"</span><span class="s2">id</span><span class="dl">"</span><span class="p">:</span> <span class="mi">2</span>
<span class="p">}</span>
<span class="p">]</span>
<span class="p">}</span>
</code></pre></div></div>
<p><strong>json-server ini akan membuat restul API dari file json yang kita buat. Nanti kita bisa post, get, put, delete, etc ke server ini.</strong></p>
<p><strong>R</strong> –> R-Suretno: di folder root gan?_ /react-kulwap_ ?</p>
<p>J – > M Insan Rizky: yap..</p>
<p>react-kulwap/api.json</p>
<p><strong>kalau udah, coba dijalankan json-servernya:</strong></p>
<p><code class="language-plaintext highlighter-rouge">json-server --watch api.json --port 3004</code></p>
<p><strong>kita set portnya biar gak bentrok sama react..</strong></p>
<p><em>https://github.com/typicode/json-server#add-custom-routes</em></p>
<p><em>https://github.com/typicode/json-server</em></p>
<p>** coba cek servernya**</p>
<p>** buka di browser**</p>
<p><code class="language-plaintext highlighter-rouge">http://localhost:3004/posts/2</code></p>
<p><strong>kalau muncul datanya, berarti server udah jalan</strong></p>
<p><strong>R</strong> –> -Suretno: sip udah gan :)</p>
<p><strong>Oke, sekarang kita install lagi dependencies</strong>..</p>
<p>Namanya fetch-on-rest untuk berinteraksi dengan json server tadi</p>
<p><code class="language-plaintext highlighter-rouge">https://www.npmjs.com/package/fetch-on-rest</code></p>
<p>Sebenernya ada banyak open source untuk interaksi ini, tapi saya pake ini karena terbilang mudah pakenya.
<strong>CodePen Project Editorcodepen.io</strong></p>
<p><strong>Kemudian cek lagi</strong></p>
<p><em>https://codepen.io/insanrizky/project/editor/XJpLJD/</em></p>
<p>Pertama, kita buat dulu variabel untuk interaksi ke server..</p>
<div class="language-javascript highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="k">this</span><span class="p">.</span><span class="nx">api</span> <span class="o">=</span> <span class="k">new</span> <span class="nx">Rest</span><span class="p">(</span><span class="dl">'</span><span class="s1">http://localhost:3004</span><span class="dl">'</span><span class="p">);</span>
<span class="nx">componentDidMount</span><span class="p">()</span>
</code></pre></div></div>
<p>Akan berjalan ketika component akan dibuat. Di dalamnya kita jalanya fungsi <code class="language-plaintext highlighter-rouge">getPost()</code>;</p>
<p>Yang isinya untuk mengambil data dari server dan menyimpannya ke state. Lalu kita binding datanya. Maka ketika data sudah berhasil diambil, ia akan langsung muncul di DOM nya</p>
<p><code class="language-plaintext highlighter-rouge">insanrizky/react-kulwapreact-kulwap - Front End using Reactgithub.com</code></p>
<p>Mungkin cukup sekian dulu kulwapnya..Mohon maaf routing nya gak sempet dibahas..</p>
<p>Buat yang masih penasaran, bisa cek:</p>
<p><strong>https://github.com/insanrizky/react-kulwap</strong></p>
<p>Terima kasih semuanya.. selamat malam.. :)</p>
<p><strong>R</strong> –> R-Suretno: Wkwkwk oke gan terima kasih banyak ilmunya, semoga lain kali bahas yg lebih deep hehe</p>
<p><strong>J</strong> –>M Insan Rizky: sip ????</p>
<p><strong>J</strong> –> M Insan Rizky: iya sama2 semuanya .. maaf cuma segitu dulu .. semoga bisa jadi trigger untuk belajar lebih dalam</p>M.Insan RizkyBasic Bash Programming2017-05-04T02:49:07+00:002017-05-04T02:49:07+00:00https://phpid-jakarta.github.io/kulwap/2017/05/04/basic-bash-programming<p><img src="/assets/images/kulwap/Basic-Bash-Programming.jpg" alt="Basic-Bash-Programming" /></p>
<p><a name="more"></a></p>
<p>Assalamu’alaikum Wr. Wb.
Sebelum kita mulai, mari kita berdo’a menurut agama dan kepercayaan masing2. Berdo’a mulai….</p>
<p>Berdo’a selesai… <br />
Sebelumnya kita akan membahas mengenai Basic Bash Programming… <br />
Oke kita mulai. <br />
Basic Bash Programming adalah salah satu bahasa bash program dan merupakan bahasa umum yang digunakan dalam distro linux. Di dalam UNIX Systems terdapat beberapa jenis tipe bash itu sendiri, misal saya menggunakan Distro Ubuntu 16.x maka ketika saya jalankan perintah :</p>
<div class="language-bash highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="nb">cat</span> /etc/bashs
<span class="c"># /etc/bashs: valid login bashs</span>
/bin/sh
/bin/dash
/bin/bash
/bin/rbash
</code></pre></div></div>
<p>hasilnya seperti itu</p>
<p>Ada <code class="language-plaintext highlighter-rouge">/bin/sh, dash,bash, rbash</code></p>
<p>Selain dari itu, ada pula jenis bash yang lain seperti :</p>
<ol>
<li><code class="language-plaintext highlighter-rouge">csh</code></li>
<li><code class="language-plaintext highlighter-rouge">tcsh</code></li>
<li><code class="language-plaintext highlighter-rouge">ksh</code></li>
</ol>
<p>Apa itu ?
Mungkin dari sebagian yang disebutkan ada beberapa yang familiar ada yang unfamiliar.</p>
<p><strong>R</strong> –> Fredy : Gue cuma tau <code class="language-plaintext highlighter-rouge">bash</code> dan <code class="language-plaintext highlighter-rouge">sh</code>. Sisa nya nga pernah denger</p>
<p>Apa sih itu semua ?</p>
<ol>
<li><code class="language-plaintext highlighter-rouge">sh</code> atau <em>bourne bash</em> adalah bash original dari UNIX Systems, bahkan android masih murni menggunakan <code class="language-plaintext highlighter-rouge">sh</code>, dalam konsolnya.</li>
<li><code class="language-plaintext highlighter-rouge">bash</code> atau <em>bourne again bash</em> adalah bash standard milik GNU bash, disebut juga superset karena dia telah memiliki fitur dan addon yg lebih banyak dari sh.</li>
<li><code class="language-plaintext highlighter-rouge">csh</code> atau C bash adalah bash yang menggunakan bahasa pemrograman menyerupai bahasa pemrograman C.</li>
<li><code class="language-plaintext highlighter-rouge">tcsh</code> atau TENEX C bash adalah superset dari C bash yang biasa namun memiliki kemampuan lebih dari csh, bash jenis ini banyak disebut Turbo C bash</li>
<li><code class="language-plaintext highlighter-rouge">ksh</code> atau Korn bash adalah superset bash tingkat lanjut dari Bourne bash yang tidak direkomendasikan untuk pemula, dimana bash ini dibangun oleh orang2 dengan background UNIX user.</li>
<li><code class="language-plaintext highlighter-rouge">dash</code> atau Debian Almquist bash adalah bash yang mengimplementasikan POSIX yang sangat kecil dan ringan, merupakan turunan dari <code class="language-plaintext highlighter-rouge">ash</code> (the Almquist bash) dimana dash ini mulai digunakan saat DebianSqueeze dan Ubuntu 6.10.</li>
<li><code class="language-plaintext highlighter-rouge">rbash</code> atau Restricted Bash adalah salah satu Linux bash yang melakukan restrict terhadap beberapa fitur pada bash bash.</li>
</ol>
<p>Restriction pada <code class="language-plaintext highlighter-rouge">rbash</code> :</p>
<ul>
<li>cd command (Change Directory)</li>
<li>PATH (setting/ unsetting)</li>
<li>ENV aka BASH_ENV (Environment Setting/ unsetting)</li>
<li>Importing Function</li>
<li>Specifying file name containing argument ‘/’</li>
<li>Specifying file name containing argument ‘-‘</li>
<li>Redirecting output using <code class="language-plaintext highlighter-rouge">></code>, <code class="language-plaintext highlighter-rouge">>></code>, <code class="language-plaintext highlighter-rouge">>|</code>, <code class="language-plaintext highlighter-rouge"><></code>, <code class="language-plaintext highlighter-rouge">>&</code>, <code class="language-plaintext highlighter-rouge">&></code></li>
<li>turning off restriction using <code class="language-plaintext highlighter-rouge">set +r</code> or <code class="language-plaintext highlighter-rouge">set +o</code></li>
</ul>
<p>Nah itu adalah jenis2 bash pada UNIX Systems yang pada bahasan kali ini kita akan persempit materi pada bash.
Sebelumnya, adakah yang disini pengguna bash ? atau senantiasa menggunakan bash sehari-harinya ?</p>
<p><strong>R</strong> Adzim: belum pernah Mas</p>
<p>Oke lanjut klo gitu. Bash, saya biasa menggunakan bash untuk melakukan otomasi terhadap sistem Linux yang saya pakai. Mulai dari untuk backup, untuk check security system dll. Nah disini akan kita bahas, bagaimana menggunakan basic bash itu sendiri.
Saya anggap semua uda didepan komputer masing2. <br />
kita buat folder belajar dan buat file <code class="language-plaintext highlighter-rouge">tes.sh</code>:</p>
<div class="language-bash highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="nb">mkdir </span>belajar
<span class="nb">touch </span>tes.sh
</code></pre></div></div>
<p><strong>T</strong> #tanya, ini menggunakan win/linux? <br />
<strong>J</strong> pake weddus monggo pake linux monggo. klo weddus silahkan pake mingw ato git-bash dll</p>
<p>kalau sudah kita <code class="language-plaintext highlighter-rouge">vim tes.sh</code> monggo gunakan editor kesukaan masing-masing, pake <code class="language-plaintext highlighter-rouge">nano, vim, geany, npp</code>, dll dan isikan konten berikut :</p>
<div class="language-bash highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="c">#!/bin/bash</span>
<span class="nb">echo</span> <span class="s2">"Hello World"</span>
<span class="nb">echo </span>Hello World
<span class="nb">echo</span> <span class="s1">'Hello World'</span>
</code></pre></div></div>
<p><strong>R</strong> Adzim: Enggak chmod om.? <br />
<strong>J</strong> nanti dulu, klo sudah monggo di execute : bash tes.sh <br />
<strong>R</strong> Adzim: Siappp om</p>
<p>Untuk melihat step by step execute monggo gunakan <code class="language-plaintext highlighter-rouge">bash -x tes.sh</code><br />
Apa hasilnya ?</p>
<p><strong>R</strong> Adzim: Ada plus nya om di depan echo <br />
<strong>J</strong> : uda dicoba belum ? ya itu adalah instruksi yang dieksekusi oleh bash. <br />
<strong>R</strong> + instruksi
bla.. bla… -> ini adalah outputnya</p>
<p>Sekarang kita ganti kontennya sbb:</p>
<div class="language-bash highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="c">#!/bin/bash</span>
<span class="nb">echo </span>Hallo <span class="nv">$USER</span>
<span class="nb">echo</span> <span class="s2">"Hallo </span><span class="nv">$USER</span><span class="s2">"</span>
<span class="nb">echo</span> <span class="s1">'Hallo $USER'</span>
</code></pre></div></div>
<p>Silahkan, sampaikan argumen masing-masing hasil dari eksekusi diatas.
Apa kesimpulan yg bisa didapat dari command diatas?</p>
<p><strong>R</strong> Ashokani: lg ngetik sambil makan, bntar om <br />
<strong>R</strong> Adzim: $USER nge-get user si laptop yak om.? <br />
<strong>T</strong> lah hasilnya gimana ? apa kesimpulannya ? <br />
<strong>R</strong> Adzim: ehh USER yang aktif yak om.? <br />
<strong>R</strong> Adzim: Hallo jukir</p>
<div class="language-bash highlighter-rouge"><div class="highlight"><pre class="highlight"><code>Hallo jukir
Hallo <span class="nv">$USER</span>
</code></pre></div></div>
<p>karena user nya jukir <br />
<strong>R</strong> Adzim: Hallo root</p>
<div class="language-bash highlighter-rouge"><div class="highlight"><pre class="highlight"><code> Hallo root
Hallo <span class="nv">$USER</span>
</code></pre></div></div>
<p>ini kalo root om <br />
<strong>T</strong> trus apa kesimpulan dari 3 perintah itu ? <br />
<strong>R</strong> Om Ronald Simanjuntak: Kalau pakai ‘ variable sistem tidak diproses, tapi dianggap sebagai string biasa <br />
<strong>R</strong> Adzim: 1. <code class="language-plaintext highlighter-rouge">$USER</code> berarti ngambil user aktif,
2. jika menggunakan ‘(petik satu) maka tidak bisa menampilkan isi variabel <br />
<strong>R</strong> Ashokani: tapi kog kalo double quote gak dianggak string juga ya ? <br />
<strong>R</strong> Om Ronald Simanjuntak: Seperti di php saja <br />
<strong>J</strong> Oke, Kesimpulannya quotes, double quotes, tanpa berbeda perlakuannnya dalam bash yak.</p>
<p>Kita lanjut materinya.
Dalam bash ada istilah <code class="language-plaintext highlighter-rouge">STDIN</code>, <code class="language-plaintext highlighter-rouge">STDOUT</code>, <code class="language-plaintext highlighter-rouge">STDERR</code> <br />
Ada yang tahu tentang ketiganya ?</p>
<p><strong>R</strong> Ashokani: stdin itu input, stdout itu buat output ?? <br />
<strong>R</strong> Adzim: kalo ga salah ngambil atau ngeluarin param dari command bash <br />
<strong>R</strong> Om Ronald Simanjuntak: I/O stream , To read / write input <br />
<strong>J</strong> : Semuanya benar. stderr adalah output berupa error bila ada error maka stderr ada valuenya.</p>
<p>oke lanjut…</p>
<p><strong>T</strong> pernah ga menggunakan 3 descriptor diatas ? <br />
<strong>R</strong> di bash ? <br />
<strong>R</strong> Adzim: kalo <code class="language-plaintext highlighter-rouge">cat file_name.txt</code> termasuk ga om.? <br />
<strong>R</strong> Ashokani: belum tau <br />
<strong>T</strong> nah itu yg mana stdin, stdout, dan stderr nya ? <br />
<strong>J</strong> ketika kita melakukan cat fliename.txt maka stdout dia akan berisi hasil dari cat tersebut. <br />
stdin dimana ? stderr dimana ? <br />
stdin akan berisi value bila ia menerima input dari user.
sedangkan stderr akan berisi value bia command yang dilakukan ternyata menghasilkan error. <br />
<strong>T</strong> Ashokani: stdin itu perintah yang diberikan bukan ? <code class="language-plaintext highlighter-rouge">cat fliename.txt</code>
<strong>J</strong> bukan</p>
<p>Balik lagi ke bash. Sekarang kita uban kontent <code class="language-plaintext highlighter-rouge">tes.sh</code>
mari kita ubah konten tes.sh menjadi :</p>
<div class="language-bash highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="c">#!/bin/bash</span>
</code></pre></div></div>
<div class="language-bash highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="nb">read</span> <span class="nt">-p</span> <span class="s2">"Masukkan nama anda (</span><span class="nv">$USER</span><span class="s2">) : "</span> nama
<span class="nb">echo</span> <span class="s2">"Nama anda : </span><span class="nv">$nama</span><span class="s2">"</span>
<span class="nb">printf</span> <span class="s2">"%s : %s</span><span class="se">\n</span><span class="s2">"</span> <span class="s2">"Nama anda (printf)"</span> <span class="nv">$nama</span>
</code></pre></div></div>
<p>Nanti kita akan masuk dan melihat dimana sih <code class="language-plaintext highlighter-rouge">stdin</code>, <code class="language-plaintext highlighter-rouge">stdout</code>, dan <code class="language-plaintext highlighter-rouge">stderr</code>
Apa hasilnya ? Setelah dieksekusi ?
<strong>R</strong> Ashokani: bash test.sh</p>
<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>Masukkan nama anda (ashoka) : tukimin
Nama anda : tukimin
Nama anda (printf) : tukimin
</code></pre></div></div>
<p><strong>R</strong> Ashokani: itu printf dalam kurung nya buat apa ? <br />
<strong>T</strong> kira-kira buat apa ? <br />
<strong>J</strong> itu ga ada artinya kok… wkwk <br />
<strong>R</strong> Ashokani: oh itu cuma penanda aja ya,jadi ada 2 macam perintahuntuk menampilkan nya
pake echo dan printf . <br />
<strong>J</strong> yap, jangan lupa. printf ada format string disitu. <br />
<strong>R</strong> Adzim: enggak beda om kalau dipake huruf atau angka <br />
Kesimpulan dari konten echo dan printf:</p>
<ol>
<li>Kita mengambil input dari user, itu adalah stdin.</li>
<li>Kita menampilkan variable hasil stdin itu adalah stdout.</li>
<li>penggunaan echo dan printf berbeda.</li>
</ol>
<p>Trus gimana menggunakan <code class="language-plaintext highlighter-rouge">stdin</code>, <code class="language-plaintext highlighter-rouge">stdout</code> dan <code class="language-plaintext highlighter-rouge">stderr</code> ini dalam bash script ?</p>
<p>Menggunakan <code class="language-plaintext highlighter-rouge">stdin</code> biasa dimulai dengan <code class="language-plaintext highlighter-rouge">0<</code>
Menggunakan <code class="language-plaintext highlighter-rouge">stdout</code> biasa dimulai dg <code class="language-plaintext highlighter-rouge">1></code>
Menggunakan <code class="language-plaintext highlighter-rouge">stderr</code> biasa dimulai dg <code class="language-plaintext highlighter-rouge">2></code></p>
<p>Mari kita tes, silahkan eksekusi perintah berikut:</p>
<div class="language-bash highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="nb">echo</span> <span class="s2">"Hallo bro"</span> <span class="o">></span> tes.txt
<span class="nb">cat </span>tes.txt
<span class="nb">cat </span>0< tes.txt
</code></pre></div></div>
<p><strong>T</strong> apa hasilnya ? <br />
<strong>R</strong> Ashokani: hasilnya ya Hallo bro <br />
<strong>T</strong> apa kesimpulannya ? <br />
<strong>R</strong> Ashokani: enggak ada error nya <br />
<strong>T</strong> kok bisa <code class="language-plaintext highlighter-rouge">cat 0< tes.txt</code> hasilnya Hallo bro ? <br />
<strong>R</strong> Adzim: nah ini mas.? <br />
<strong>T</strong> sekarang coba eksekusi las “hallo” <br />
<strong>R</strong> Ashokani: las nya nggak ada <br />
<strong>R</strong> Adzim: command not found mas <br />
<strong>T</strong> pasti error, sy ingin menyimpan hasil stderrnya, gimana hayo caranya ? <br />
sudah seharusnya, nah saya ingin menyimpan hasil error itu ke file error_log gimana carany ?</p>
<p>caranya gampang :</p>
<div class="language-bash highlighter-rouge"><div class="highlight"><pre class="highlight"><code>las <span class="s2">"hallo"</span> 2>error_log
<span class="nb">cat </span>error_log
</code></pre></div></div>
<p>coba gimana hasilnya ? <br />
<strong>R</strong> Adzim: las: command not found Om</p>
<p><strong>R</strong> Adzim: itu <code class="language-plaintext highlighter-rouge">2></code> stderr om .? <br />
<strong>J</strong> iya itu aplikasi stderr, coba diperhatikan secara seksama ketika kita eksekusi las “hello”, maka error akan langsung keluar kan ?</p>
<p>ketika eksekusi las “hello” <code class="language-plaintext highlighter-rouge">2>error_log</code>, maka tidak muncul apa2. namun ketika kita cat error_log errornya ternyata ada disitu. ya ga ?</p>
<p>hasilnya <code class="language-plaintext highlighter-rouge">error las command not foud</code> memanggil <code class="language-plaintext highlighter-rouge">error_log las</code> td</p>
<p>nah kita lanjut…
Sekarang variable dan local variable.</p>
<p>Sekarang kita ganti konten tes.sh menjadi :</p>
<div class="language-bash highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="c">#!/bin/bash</span>
<span class="nv">HELLO</span><span class="o">=</span>Hello
<span class="k">function </span>hello <span class="o">{</span>
<span class="nb">local </span><span class="nv">HELLO</span><span class="o">=</span>World
<span class="nb">echo</span> <span class="nv">$HELLO</span>
<span class="o">}</span>
<span class="nb">echo</span> <span class="nv">$HELLO</span>
hello
<span class="nb">echo</span> <span class="nv">$HELLO</span>
</code></pre></div></div>
<p>apa hasilnya ? trus coba dihapus tulisan local apa hasilnya ?</p>
<p><strong>R</strong> Ashokani: <code class="language-plaintext highlighter-rouge">bash test.sh</code> pake local</p>
<div class="language-bash highlighter-rouge"><div class="highlight"><pre class="highlight"><code>Hello
World
Hello
</code></pre></div></div>
<p><strong>R</strong> Adzim: tanpa local <br />
<strong>R</strong> Ashokani: gak pake local</p>
<div class="language-bash highlighter-rouge"><div class="highlight"><pre class="highlight"><code>bash test.sh
Hello
World
World
</code></pre></div></div>
<p><strong>R</strong> Adzim: Hello</p>
<div class="language-bash highlighter-rouge"><div class="highlight"><pre class="highlight"><code>World
World
</code></pre></div></div>
<p><strong>T</strong> Adzim: di bash itu sepasi dianggap delemiter ya om.? <br />
<strong>J</strong> tergantung . <br />
paham yak beda global variable dan local variable.</p>
<p>Kita lanjut coba bikin simple backup pake bash script.
Eh sebelum masuk situ, kita belajar dulu command subtitution
ubah kontent <code class="language-plaintext highlighter-rouge">tes.sh</code> menjadi :</p>
<div class="language-bash highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="c">#!/bin/bash</span>
<span class="nv">mydir</span><span class="o">=</span><span class="si">$(</span><span class="nb">pwd</span><span class="si">)</span>
<span class="nb">echo</span> <span class="s2">"Lokasi mydir : </span><span class="nv">$mydir</span><span class="s2">"</span>
<span class="nb">echo</span> <span class="s2">"Lokasi mydir : </span><span class="si">$(</span><span class="nb">pwd</span><span class="si">)</span><span class="s2">"</span>
<span class="nb">echo</span> <span class="s2">"Lokasi mydir : </span><span class="sb">`</span><span class="nb">pwd</span><span class="sb">`</span><span class="s2">"</span>
</code></pre></div></div>
<p>coba cek hasilnya.</p>
<p><strong>R</strong> Ashokani: hasilnya ngeprint perintah pwd</p>
<div class="language-bash highlighter-rouge"><div class="highlight"><pre class="highlight"><code>bash test.sh
Lokasi mydir : <span class="sb">`</span>/mnt/c/Users/Ashokani/belajar<span class="sb">`</span>
Lokasi mydir : <span class="sb">`</span>/mnt/c/Users/Ashokani/belajar<span class="sb">`</span>
Lokasi mydir : <span class="sb">`</span>/mnt/c/Users/Ashokani/belajar<span class="sb">`</span>
</code></pre></div></div>
<p><strong>R</strong> Adzim:</p>
<div class="language-bash highlighter-rouge"><div class="highlight"><pre class="highlight"><code>Lokasi mydir : <span class="sb">`</span>/Users/jukir/Desktop<span class="sb">`</span>
</code></pre></div></div>
<p>Nah, itu adalah command subtitution <br />
<strong>R</strong> Adzim: sebanyak 3 kali</p>
<p>Bila ingin menyimpan hasil suatu perintah kedalah variable gunakan <code class="language-plaintext highlighter-rouge">$(command)</code>
Lanjut sekarang tambahkan di konten tes.sh:</p>
<div class="language-bash highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="nb">echo </span>1+1
<span class="nb">echo</span> <span class="k">$((</span><span class="m">1</span><span class="o">+</span><span class="m">1</span><span class="k">))</span>
<span class="nb">echo</span> <span class="nv">$[</span>1+1]
</code></pre></div></div>
<p>apa hasilnya ? <br />
itu adalah penerapan arithmetic evaluation</p>
<p><strong>R</strong> Ashokani: 1+1</p>
<div class="language-bash highlighter-rouge"><div class="highlight"><pre class="highlight"><code>2
2
</code></pre></div></div>
<p><strong>R</strong> Adzim: 1+1 (dianggap string yak mas.?)</p>
<div class="language-bash highlighter-rouge"><div class="highlight"><pre class="highlight"><code>2
2
</code></pre></div></div>
<p><strong>J</strong> yup <br />
Apa bedanya ? <code class="language-plaintext highlighter-rouge">$((param))</code> dan <code class="language-plaintext highlighter-rouge">$[param]</code> ? <br />
itu bedanya cuma cara panggilnya, secara fungsi sama. <br />
<strong>R</strong> Adzim: waduuh, <br />
Oke. kita coba bikin script backup pake bash script, ubah tes.sh:</p>
<div class="language-bash highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="c">#!/bin/bash</span>
<span class="nv">backupdir</span><span class="o">=</span><span class="si">$(</span><span class="nb">pwd</span><span class="si">)</span>
<span class="nv">outputfile</span><span class="o">=</span><span class="nv">$HOME</span>/my_backup_<span class="si">$(</span><span class="nb">date</span> +%Y%m%d<span class="si">)</span>_<span class="si">$(</span><span class="nb">date</span> +%H%M%S<span class="si">)</span>.tar.gz
<span class="nb">echo</span> <span class="s2">"Backup </span><span class="nv">$backupdir</span><span class="s2"> in progress..."</span>
<span class="nb">echo
tar</span> <span class="nt">-czvf</span> <span class="nv">$outputfile</span> <span class="nv">$backupdir</span> <span class="o">></span> /dev/null 2>&1
<span class="nb">echo</span> <span class="s2">"Lokasi hasil backup : </span><span class="nv">$outputfile</span><span class="s2">"</span>
</code></pre></div></div>
<p>Apa hasilnya ? dimana hasilnya ?</p>
<p>Oh iya buat momod jam 23.00 kita nanti sudahi ya. <br />
lumaya 3 jam cuma bahas basic.</p>
<p><strong>R</strong> Ashokani: keburu pada ngantuk om ?? <br />
<strong>R</strong> Ashokani: Lokasi hasil backup : /home/ashoka/my_backup_20170415_222103.tar.gz</p>
<p>Silahkan di evaluasi scriptnya. Untuk PR :
Buatlah script backup tersebut hanya akan backup folder belajar. bila didalam folder ada filenya.??</p>
<p><strong>T</strong> Adzim: tapi dicari file nya ga ada om <br />
<strong>J</strong> di folder <code class="language-plaintext highlighter-rouge">$HOME</code> Dzim</p>
<p>ywd, mungkin karena sudah malam. Mungkin kita sudahi kulwap kali ini. Sesi tanya jawab, silahkan bila ada yg ingin bertanya. <br />
yang penting tag #Tanya jangan lupa. Ada panggilan dedek nih, jadi kepada momod saya kembalikan. Terima kasih atas perhatiannya, semoga bermanfaat.</p>
<p>Wassalamu’alaikum Wr. Wb.</p>
<p><strong>Luphy Phaluphy Poetryjatmiko</strong> : Thanks mas <strong>@Eko Junaidi Salam</strong> Ilmu nya ..</p>
<p>Semoga manfaat amiinn…</p>Eko Junaidi SMembangun Software House Sendiri2017-05-02T02:49:07+00:002017-05-02T02:49:07+00:00https://phpid-jakarta.github.io/kulwap/2017/05/02/membangung-software-house-sendiri<p><img src="/assets/images/kulwap/Membangun-Software-House-Sendiri.jpg" alt="Membangun-Software-House-Sendiri" /></p>
<p><a name="more"></a></p>
<p>Selamat malam semua, malam ini kita kulwap Bareng mas <strong>@Franky Fadholi</strong>.
Yuhuu kita bakal bahas tentang Membangun Softwere House Sendiri.
Okelaahh yuuk kita kenalan dulu sama pematerinya…</p>
<p>Terima kasih atas waktunya saudari Luphi, salam kenal saya Franky , malam ini saya akan sharing sedikit mengenai <strong>Membangun Software House Sendiri</strong>.</p>
<p>Sudah banyak orang yang punya software house sendiri, tapi tidak apa apa, saya akan share sedikit pengalaman yang saya punya.</p>
<p>Sebelumnya kita bahas dulu tentang apa itu Software House?</p>
<h3 id="apa-itu-software-house">Apa itu Software House?</h3>
<p>Software house merupakan suatu perusahaan yang menyediakan jasa dalam melayani pemesanan, pembuatan software atau aplikasi yang sesuai dengan keinginan dari client. Namun, tak jarang juga suatu software house membuat suatu aplikasi atau software yang bersifat umum seperti aplikasi toko, supermarket, rental dan lain sebagainya. Contoh software house besar yang kita kenal seperti Microsoft, Apple Inc, Oracle Corporation, dll.</p>
<p>Ada beberapa hal yang harus disiapkan untuk membangun software house sendiri yaitu:</p>
<ol>
<li>Perijinan</li>
<li>Tempat Usaha</li>
<li>Karyawan</li>
<li>Client</li>
</ol>
<p>Untuk masalah perijinan bisa menggunakan jasa perijinan agar cepat selesai tapi ya lumayan untuk harganya.. tapi kalo untuk mengurus perijinan gampang kok ya walaupun harus beribet.</p>
<p>Kemudian tentukan bentuk badan usahanya. Kalian harus memilih dulu ingin membangun dengan CV ataupun PT, tetapi banyak perijinan-perijinan lainnya.</p>
<p>Sebelum mencari perijinan kalian harus mempunyai logo perusahaan sendiri, tempat untuk usaha, dan struktur organisasi yang akan kalian buat dan juga produk apa saja yang akan kalian jual (misal pembuatan web, aplikasi, jaringan atau lainnya ). Jangan lupa persiapkan proposal untuk penawaran untuk clients.</p>
<h3 id="lalu-bagaimana-prosesnya-">Lalu Bagaimana Prosesnya ?</h3>
<ul>
<li>
<p>Pertama, kalian mendatangi notaris untuk membuatkan akta notaris, waktu itu karena usaha saya sendiri, maka untuk Komisaris dipegang ayah dan Direktur Utama saya yang pegang. Karena rekan saya memang waktu itu belum bisa menerima amanat sebagai partner dalam hal legalitas. Okelah gapapa yang penting siap jalan. Cimiwwww. Apabila kalian berdua bertiga atau berempat harus salah satu menjadi Komisaris dan Direktur Utama yang harus ditulis dalam akta notaris. Kalo dalam PT ada macem-macem, cuma yang saya ajukan yaitu CV.</p>
</li>
<li>
<p>Setelah itu kalian bisa ajukan untuk penetapan keabsahan ijin. Nanti kalian akan mendapat asli dan copy dari notaris. Untuk biaya macem-macem ya, dulu tahun 2012 waktu itu saya kena 800rb udah bersih sampai pengadilan. Ini hanya untuk keabsahan akta notaris saja dan masih panjang ya jalannya.</p>
</li>
<li>
<p>Setelah itu kalian harus daftarkan tempat usaha. Tempat usaha boleh rumah, ruko, ataupun bangunan lainnya.Untuk ijin tempat saya sarankan jangan terlalu besar karena lumayan mahal. Waktu itu teras rumah saya saja yg kecil bisa 3jt an.</p>
</li>
<li>
<p>Proses ijin tempat agak lama karena harus di survey dan harus digambar ,dll. nanti kalian ikutin aja aturannya. Setelah jadi kalian ajukan untuk proses perijinan mendapatkan SIUP. Misalnya kalian sewa gedung usahakan ada ijinnya dulu ya agar gampang dan gak ribet ketika perijinan nanti. Sebenarnya gak harus nyari SIUP untuk usaha, tapi biasanya kalau proyek-proyek besar harus ada SIUP. kalau untuk awal gak perlu sampai SIUP dulu yang penting jalan usahanya dulu sambil jalan.</p>
</li>
<li>
<p>Waktu itu saya hanya ijin sampai akta notaris sah saja cukup untuk memulai usaha.</p>
</li>
<li>
<p>Setelah itu kalian bisa mencari project-project dari online marketing atau terjun langsung. Tetapi sebelum membuat ijin saya sudah punya beberapa project.</p>
</li>
<li>
<p>Langkah berikutnya adalah harus mempunyai karyawan atau partner kerja.</p>
</li>
<li>
<p>Yang pasti harus punya programmer dan marketing. Untuk programmer bisa freelancer atau temen-teman kita sendiri yang mau mengerjakan project-project kita.</p>
</li>
</ul>
<h3 id="perhitungan-gaji-karyawan">Perhitungan Gaji Karyawan</h3>
<p>Nah sekarang kita sudah punya ijin, programmer dan tempatnya. Maka kita hanya perlu untuk memikirkan gaji untuk karyawan atau partner kita. Kalau saya untuk awal dengan sistem komisi. Misal kita punya project senilai 10jt. Perhitungannya sebagai berikut :</p>
<ul>
<li>Direktur 20% = (20/100)*10jt = 2jt</li>
<li>Programmer 50% = (50/100)*10jt = 5jt</li>
<li>Marketing 10% = (10/100)*10jt = 1jt</li>
<li>CV 20% = (20/100)*10jt = 2jt</li>
</ul>
<p>Tetapi untuk nilai project dibawah 10jt komisi semakin besar untuk programmer & marketing dan semakin kecil untuk perusahaan atau direktur .</p>
<p><strong><em>Kenapa???</em></strong></p>
<p>Supaya marketing dan programmer betah sama kita. <br />
Itu contoh untuk komisi per project. Apabila kalian sudah yakin dengan pendapatan kalian atau sudah yakin dengan banyak project maka bisa dengan sistem gaji agar pendapatan bisa maksimal. Tetapi apabila belum yakin bisa dengan sistem komisi.</p>
<p><strong><em>Saya berikan contoh untuk sistem gaji:</em></strong></p>
<p><strong>T</strong> : Saya ingin bertanya mas @Frankky Fadholi apakah ini pembagian hasil sepertinya halnya membangun usaha - bisnis atau startup kah ?</p>
<p><strong>J</strong> : Ini membangun bisnis, kalau startup beda lagi. Kalau startup berbagai pihak lebih luas</p>
<p>Ok lanjut dulu ya…</p>
<p>Misalkan kita punya project besar senilai 200jt maka kita mencari 2 programmer untuk onsite dengan gaji 4jt/bulan. Maka harus ditentukan project ditentukan kapan harus selesai. Misalkan harus selesai 5 bulan berarti 4jt x 5 = 20jt.</p>
<p><strong>Ingat hrus dihitung juga biaya-biaya lainnya seperti operational dll, yang sifatnya sepele justru itu yangg bisa membengkak.</strong></p>
<p>Pendapatan kita semakin besar untuk mengeluarkan programmer 20jt/bulan. <br />
Sory salah… 2 programmer gaji 4jt per bln.
Jadi per bulan 8jt.</p>
<p>Nah untuk biaya programmer 8jt X 5bln jadi biayanya 40jt <br />
Atau bisa ditambahkan sperti frontend dan juga mobile dev</p>
<p><strong>Ingat, pengeluaran harus diminimalkan dan waktu harus di maksimalkan…</strong></p>
<p>Untuk struktur organisasi yang saya terapkan sebagai berikut :</p>
<ul>
<li>Direktur</li>
<li>Bagian Keuangan</li>
<li>Bagian Admin</li>
<li>Project Manager</li>
<li>Web dev (full stack)</li>
<li>Software dev (full stack)</li>
<li>Networking</li>
<li>Animation Creator</li>
<li>Consultant IT</li>
<li>Marketing</li>
</ul>
<h3 id="sessi-tanya-jawab">SESSI TANYA JAWAB</h3>
<p><strong>T</strong> - <strong>Fredy</strong> : Kalau tidak terkejar di sebuah project bagaimana cara handle nya? <br />
<strong>J</strong> - <strong>Frankky Fadholi</strong> :</p>
<ol>
<li>
<p>Marketing mencari order, marketing paling tidak harus tau sedikit saja tentangg dunia IT.Marketing bisa dari siapapun tidak harus dari kita. Ketika sudah mendapatkannya consultant menerjemahkan apa yang client mau. Kalau tidak terkejar atau overload kita tetap ambil, namun kita bisa lempar ke developer lain dengan konsekuensi komisi kita sedikit.</p>
</li>
<li>
<p>Nah setelah itu diserahkan ke Project Manager. Kemudian diusulkan tawaran harga. Setelah itu diajukan ke bagian keuangan dan di ACC oleh Direktur untuk approve harga. Setelah mendapatkan harga maka akan dikembalikan lagi ke marketing untuk nego harga dengan client. Tugas marketing yang berat, yaitu deal harga sesuai approve direktur. Apabila tidak ya pastinya bisa diskusi lagi sampai dicapai kesepakatan harga.</p>
</li>
<li>
<p>Selanjutnya ketika sudah approved kemudian consultant menganalisa sesuai kebutuhan client. Ketemu tidak hanya sekali untuk bicara masalah flow.</p>
</li>
<li>
<p>Apabila sudah maka dibuatlah perjanjian kontrak antara client dengan perusahaan . Dalam isi perjanjian tersebut berisikan menu-menu, fitur-fiture, module-module yang diinginkan client.</p>
</li>
<li>
<p>Setelah itu proses pembuatan , Eh sory salah setelah itu client transfer DP dulu ya jangan sampai lupa..!!!!</p>
</li>
<li>
<p>Baru masuk pembuatan. Jangan sampai balik ke analisa lagi, karena akan memakan waktu dan biaya. Makanya harus fix pada fase analisa, baik itu menu, module, ataupun perhitungan-perhitungannya.</p>
</li>
<li>
<p>Setelah itu testing user….User test program atau system yang telah dibuat. Apabila sudah fix maka dianggap finish.</p>
</li>
<li>
<p>Setelah finish maka membuat tutorial singkat di buat dokumen atau help.</p>
</li>
<li>
<p>Kemudian memberikan berita acara serah terima program yang sudah selesai dikerjakan.</p>
</li>
<li>
<p>Selanjutnya proses training. Untuk training biasanya 2x per 3 jam. Apabila lebih maka kena cash lagi untuk training.</p>
</li>
</ol>
<p>Nah semua sudah saya jelaskan, semua terserah bagaimana kalian akan menerapkan sistemnya baik dengan gaji maupun dengan komisi, ada plus minusnya. Baik dengan sistem bagaimanapun kalian yang jalankan .</p>
<p>Cukup sekian materi yang bisa saya kasih pada malam ini. barang kali ada yg ditanyakan?? Bila bisa saya jawab bisa saya jwab apabila tidak berarti pr buat gw hahaha.</p>
<p><strong>T</strong> - <strong>X</strong> : Mau tanya kalo menentukan harga program gimana ya apa berdasarkan teknologi yg dipakai ? <br />
<strong>J</strong> - <strong>Frankky Fadholi</strong> : Kalau mnentukan hrga..</p>
<ol>
<li>Waktu</li>
<li>Bahasa yg digunakan</li>
<li>Tingkat kesulitan system</li>
</ol>
<p>Ini untuk system ya..
Kalau yang standard seperti company profile yah itungan per menu</p>
<p><strong>T</strong> - <strong>Muhammad Nasir</strong> : Klo untuk yg baru mulai bkin usaha bgtu, apa harus ada smua divisi itu ? <br />
<strong>J</strong> - <strong>Frankky Fadholi</strong> : Kan sudah saya jelaskan di awal…Yang penting ada 3 orang..Komisaris, Direktur dan programmer. Marketing anda sendiri . Ijin itu untuk memperkuat legalitas saja .Untuk project-project yang butuh SIUP, dll.</p>
<p><strong>T</strong> - <strong>X</strong> : Komisaris bukannya kalau perusahaan kecil belum membutuhkan ya? <br />
<strong>J</strong> - <strong>Frankky Fadholi</strong> : Cv kan ada 2 orang minimal yang terlibat, Komisaris dan Direktur</p>
<p>Oke cukup ya…</p>
<p>Terima kasih atas waktunya…</p>
<p>Saya tutup kulwap malam ini…</p>Franky FadholiSelamat datang di Php Indonesia Chapter Jakarta2017-04-25T02:49:07+00:002017-04-25T02:49:07+00:00https://phpid-jakarta.github.io/community/2017/04/25/selamat-datang-di-php-indo-chapter-jakarta<p><img src="/assets/images/phpid-jakarta.png" alt="php-indo-chapter-jakarta" /></p>
<p><a name="more"></a></p>
<p><a href="https://phpid-jakarta.github.io"><strong>PHP Indonesia Chapter Jakarta</strong></a> merupakan sub-regional dari komunitas PHP Indonesia untuk daerah Jakarta dan sekitarnya. Meskipun kami memiliki nama yang terkait dengan salah satu bahasa pemrograman web paling terkenal <strong>PHP</strong>, namun kami selalu terbuka terhadap semua kontribusi dari semua member. Member kami berasal dari berbagai kalangan dan latar belakang baik programmer dengan bahasa A, B atau C, baik seorang network engineer, manager bahkan sampai mahasiswa.</p>
<p>Kami memiliki beberapa program kerja seperti Kuliah WhatsApp setiap malam minggu, meetup rutin yang menjadi sharing knowledge juga bagi member yang ada, serta sharing juga dalam berbagai hal terkait teknologi, hidup, atau bahkan pasangan.</p>
<p>Tujuan dibuatnya website ini sendiri antara lain :</p>
<ol>
<li>Sebagai media publikasi program kerja PHP Indonesia Chapter Jakarta.</li>
<li>Sebagai media belajar dan saling berbagi pengetahuan.</li>
<li>Sebagai media interaksi antar member PHP Indonesia</li>
</ol>
<p>Bila Anda ingin turut serta berkontribusi dalam mengembangkan website ini atau berbagi tulisan atau tutorial kepada website ini, Silahkan baca <a href="https://github.com/phpid-jakarta/phpid-jakarta.github.io/wiki/Aturan-dan-Cara-Berkontribusi">cara berkontribusi</a> terlebih dahulu.</p>PhpId-JakartaK-Means Clustering Algorithm2017-03-17T00:00:00+00:002017-03-17T00:00:00+00:00https://phpid-jakarta.github.io/tutorial/2017/03/17/kmeans-clustering-algorithm<p><strong>Contoh Input Data :</strong></p>
<div class="language-javascript highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="nx">N</span> <span class="nx">Dimension</span> <span class="p">(</span><span class="nx">n</span><span class="p">,</span><span class="nx">m</span><span class="p">)</span> <span class="p">:</span> <span class="mi">2</span><span class="p">,</span><span class="mi">2</span>
<span class="nx">Samples</span> <span class="p">:</span> <span class="mf">5.09</span><span class="p">,</span><span class="mf">5.80</span><span class="p">,</span><span class="mf">3.24</span><span class="p">,</span><span class="mf">5.90</span><span class="p">,</span><span class="mf">1.68</span><span class="p">,</span><span class="mf">4.90</span><span class="p">,</span><span class="mf">1.00</span><span class="p">,</span><span class="mf">3.17</span><span class="p">,</span><span class="mf">1.48</span><span class="p">,</span><span class="mf">1.38</span><span class="p">,</span><span class="mf">2.91</span><span class="p">,</span><span class="mf">0.20</span><span class="p">,</span><span class="mf">4.76</span><span class="p">,</span><span class="mf">0.10</span><span class="p">,</span><span class="mf">6.32</span><span class="p">,</span><span class="mf">1.10</span><span class="p">,</span><span class="mf">7.00</span><span class="p">,</span><span class="mf">2.83</span><span class="p">,</span><span class="mf">6.52</span><span class="p">,</span><span class="mf">4.62</span>
<span class="nx">Centroids</span> <span class="p">:</span> <span class="mf">1.48</span><span class="p">,</span><span class="mf">1.38</span><span class="p">,</span><span class="mf">4.76</span><span class="p">,</span><span class="mf">0.10</span>
</code></pre></div></div>
<h4 id="keterangan-">Keterangan :<a name="more"></a></h4>
<p>N,M Dimensions : Dimensi Array dari data samples dan centroids.</p>
<p>Contoh : <code class="language-plaintext highlighter-rouge">N,M Dimension = 2,2</code>, maka <code class="language-plaintext highlighter-rouge">samples = [5.09,5.80],[3.24,5.90],[1.68,4.90],[1.00,3.17],[1.48,1.38],[2.91,0.20],[4.76,0.10],[6.32,1.10],[7.00,2.83],[6.52,4.62].</code>
<code class="language-plaintext highlighter-rouge">centroids = [[1.48,1.38],[4.76,0.10]]</code></p>
<p>Samples : Data yang akan dipartisi</p>
<p>Centroids (Optional) : Nilai awal set point pada tiap cluster, bila <code class="language-plaintext highlighter-rouge">n,m</code> dimensions <code class="language-plaintext highlighter-rouge">2,2</code> maka centroid haruslah berisi <code class="language-plaintext highlighter-rouge">2*m</code> float number (4 angka) seperti contoh diatas. Bila tidak diisi, maka centroid akan diambil dari nilai awal samples.</p>
<p>Contoh bila N,M Dimensions : <code class="language-plaintext highlighter-rouge">2,3</code> maka samples akan dibagi 2 dimensi dan centroid 3 dimensi <code class="language-plaintext highlighter-rouge">(2*3 angka)</code> menjadi <code class="language-plaintext highlighter-rouge">[[5.09,5.80],[3.24,5.90],[1.68,4.90]]</code></p>
<p><strong>Baca artikel selengkapnya di :</strong> <a href="http://bit.ly/ejs_k-means">http://bit.ly/ejs_k-means</a></p>
<h4 id="masukkan-sumber-data">Masukkan sumber data</h4>
<p style="text-align:center;"><input name="txt_dim" type="text" placeholder="N,M Dimensions..." /><input name="txt_samples" type="text" placeholder="Samples..." /><input name="txt_centroids" type="text" placeholder="Centroids..." /><button id="btn_hitung" class="btn btn-default" type="button">Hitung !!!</button></p>
<p id="samples"></p>
<p id="result"></p>
<script type="text/javascript" src="https://cdn.rawgit.com/ekojs/machine_learning/master/unsupervised/ejs_kmeans.js"></script>
<script src="https://code.jquery.com/jquery-3.2.0.slim.min.js" integrity="sha256-qLAv0kBAihcHZLI3fv3WITKeRsUX27hd6upBBa0MSow=" crossorigin="anonymous"></script>
<script>
$(function(){
$('#btn_hitung').click(function(){
var dim = $('[name="txt_dim"]').val().replace(/ +/g,'');
var str = $('[name="txt_samples"]').val().replace(/ +/g,'');
if(dim === '' || str === '' || dim === ' ' || str === ' '){
alert('N Dimensions dan Samples harus diisi !!!');
return;
}else if(!dim.match(/[\d,.]/g) || !str.match(/[\d,.]/g)){
alert('Data haruslah number atau float !!!');
return;
}
dim = dim.split(',');
var str_centroid = $('[name="txt_centroids"]').val().replace(/ +/g,'');
var buff = str.split(',');
var samples = [],centroids = [],tmp = [];
for(i=0;i<buff.length;i++){
if(i != 0 && (i%dim[0] == 0)){
samples.push(tmp);
tmp = [];
tmp.push(parseFloat(buff[i]));
}else{
tmp.push(parseFloat(buff[i]));
}
}
samples.push(tmp);
if(str_centroid.length > 0 && (str_centroid != '' || str_centroid != ' ')){
if(!str_centroid.match(/[\d,.]/g)){
alert('Data centroids haruslah number atau float !!!');
return;
}
tmp = [];
buff = str_centroid.split(',');
if(buff.length%dim[1] != 0){
alert('Dimensi m : '+dim[1]+' tidak sesuai dengan jumlah data centroid. Jumlah data haruslah 2*'+dim[1]+' bukan '+buff.length+' !!!');
return;
}
for(i=0;i<buff.length;i++){
if(i != 0 && (i%dim[0] == 0)){
centroids.push(tmp);
tmp = [];
tmp.push(parseFloat(buff[i]));
}else{
tmp.push(parseFloat(buff[i]));
}
}
centroids.push(tmp);
}else{
for(i=0;i<dim[1];i++){
centroids.push(samples[i]);
console.log('iterasi %d',i);
console.log(samples[i]);
}
}
console.log(samples);
console.log(centroids);
var k_means = new ejs_kmeans.k_mean_cluster(samples);
k_means.initialize(centroids);
k_means.calculate();
var res = k_means.result();
var t = 'Samples Data : ('+samples.join('), (')+')<br />';
$('#samples').replaceWith('<p id="samples">'+t+'</p>');
$('#result').replaceWith("<p id='result'>"+res+"</p>");
});
});
</script>Eko Junaidi SContoh Input Data : N Dimension (n,m) : 2,2 Samples : 5.09,5.80,3.24,5.90,1.68,4.90,1.00,3.17,1.48,1.38,2.91,0.20,4.76,0.10,6.32,1.10,7.00,2.83,6.52,4.62 Centroids : 1.48,1.38,4.76,0.10 Keterangan :Membuat CRUD dengan Codeigniter2017-01-07T01:00:00+00:002017-01-07T01:00:00+00:00https://phpid-jakarta.github.io/kulwap/2017/01/07/membuat-crud-dengan-codeigniter<p><img src="/assets/images/logo/phpid-jakarta-500x200.png" alt="logo php id chapter jkt" /></p>
<p><a name="more"></a></p>
<h2 id="intro">Intro</h2>
<p>Halo Selamat datang di sesi sharing <strong>Kulwap Php Indonesia</strong> membangun aplikasi CRUD website menggunakan <strong>CodeIgniter</strong>.
Perkenalkan saya adalah <strong>Hendra Purnama</strong> yang akan jadi instruktur anda dalam beberapa jam ke depan</p>
<h2 id="mengenal-konsep-mvc">Mengenal konsep MVC</h2>
<p>Sebelum masuk lebih jauh mengenai CRUD Codeigniter ada baiknya kita semua mengenal lebih dalam konsep MVC.
<strong>MVC</strong> yang dimaksud adalah <em>model view dan controller</em>.</p>
<ul>
<li><strong>Model</strong> yang mewakili semua hal yang berhubungan dengan database. Seperti insert, select, update, delete.</li>
<li><strong>View</strong> yg berhubungan dengan front end. View ini biasa nya di kerjakan oleh seorang web designer. Biasanya view ini berhubungan dengan kode <strong>html</strong>, <strong>css</strong>, <strong>javascript</strong>.</li>
<li><strong>Controller</strong> menjembatani <em>view</em> dan <em>model</em>. Semua yang berhubungan dengan alur atau logika dari sebuah fitur yg kita buat. Controller cocok dikerjakan oleh seorang backend developer. Karena semua berhubungan dengan coder, berhubungan dengan alur fitur yang akan kita buat. Untuk lebih jelasnya di praktekin aja ya nanti.
Dibawah.</li>
</ul>
<h2 id="basic-codeigniter-crud">Basic Codeigniter CRUD</h2>
<p>Download code igniter disini yaa <a href="https://codeigniter.com/">codeigniter.com</a></p>
<p>Kalau sudah didownload silahkan di extract Codeingiter yang udah kalian download. Contohnya seperti gambar dibawah ini:</p>
<p>[gambar ekstrak codeigniter.zip]</p>
<ol>
<li>Pindahin hasil download codeigniter kedalam folder xampp -> hdocs</li>
<li>Klik kanan mouse pada file zip code igniter.</li>
<li>Pilih extract here.</li>
</ol>
<p>Setelah selesai <em>extract here</em>, selanjutnya kita buat database nya di <strong>localhost/phpmyadmin</strong>. Nama databasenya <em>mahasiswa</em> dan nama tablenya <em>tbl_mahasiswa</em> untuk lebih jelasnya bisa lihat screenshot dibawah:</p>
<p>[screenshot tbl_mahasiswa]</p>
<p>Setelah selesai buat database dan nama tabelnya. Selanjutnya langsung aja yaa.. kita ke folder <em>CodeIgniter-3.1.2</em> <em>/application/config/autoload.php</em></p>
<p>Nah di bagian <strong>autoload.php</strong> kita harus meload dulu databasenya. Supaya bisa kita pake fungsi database yang ada di codeigniter-nya.</p>
<p>Yang perlu di load ada dua:</p>
<ol>
<li><strong>url</strong> buat memakai fungsi <em>base_url</em> di codeigniter,</li>
<li><strong>database</strong> untuk memakai query pemanggilan antar table yg udh tersedia di codeigniter.
Untuk lebih jelasnya bisa dilihat di screen shot ini ya.</li>
</ol>
<p>[gambar setting autoload libraries database, dan helper url]</p>
<p>Setelah selesai meload library database dan helper url. Selanjut nya ke file <strong>database.php</strong>. Ini path foldernya <em>CodeIgniter-3.1.2 /application/config/database.php</em>.</p>
<p>Dan ini screen shot nya ikutin aja yaa. Kalau belum mengerti silahkan ditanya.</p>
<p>[gambar setting database di database.php]</p>
<p>Setelah selesai membuat koneksi databasenya. Selanjutnyaa kita setting base url nya di file yg bernama <em>*config.php</em>. Nii path foldernya <em>CodeIgniter-3.1.2 /application/config/config.php</em>. Dan ini screenshot nya yg harus di tambahin.</p>
<p>[gambar setting base_url di config.php]</p>
<p>Setelah selesai setting base_url, selanjut buat sebuah file di folder controller. Nama filenya <strong>Mahasiwa.php</strong>.</p>
<p>Nii path foldernya <em>CodeIgniter-3.1.2 /application/controller/Mahasiswa.php</em>. Ingat buat file baru di dalam folder controller. Nama filenya Mahasiswa.php.</p>
<p>Dan nii kode nya.</p>
<div class="language-php highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="cp"><?php</span>
<span class="kd">class</span> <span class="nc">Mahasiswa</span> <span class="kd">extends</span> <span class="nc">CI_Controller</span> <span class="p">{</span>
<span class="k">public</span> <span class="k">function</span> <span class="n">__construct</span><span class="p">()</span> <span class="p">{</span>
<span class="k">parent</span><span class="o">::</span><span class="nf">__construct</span><span class="p">();</span>
<span class="nv">$this</span><span class="o">-></span><span class="n">load</span><span class="o">-></span><span class="nf">helper</span><span class="p">(</span><span class="s1">'form'</span><span class="p">);</span> <span class="c1">//lupa ngeload form helper autoload, saya ngeloadnya</span>
<span class="c1">//disini aja yaa nii gunanya untuk memanggil <form></form> dibagian viewnya</span>
<span class="p">}</span>
<span class="k">public</span> <span class="k">function</span> <span class="n">index</span><span class="p">()</span> <span class="p">{</span>
<span class="nv">$this</span><span class="o">-></span><span class="n">load</span><span class="o">-></span><span class="nf">view</span><span class="p">(</span><span class="s1">'form_input'</span><span class="p">);</span> <span class="c1">//mengload file form_input.php yg ada di folder view. masih ingat kan konsep MVC</span>
<span class="c1">//folder berhubungan dengan frontend sedangkan controller berhubungan dengan alur pemograman.</span>
<span class="p">}</span>
<span class="p">}</span>
</code></pre></div></div>
<p>[gambar file Mahasiswa.php]</p>
<p>Setelah selesai membuat file baru Mahasiswa.php di controller selanjutnya nii kebagian view. yup ke folder views. Buat lah file baru dengan nama <strong>form_input.php</strong></p>
<p>Liat aja scriptnya <code class="language-plaintext highlighter-rouge">$this->load->view(‘form_input’)</code> berarti kita harus membuat file baru yg namanya <code class="language-plaintext highlighter-rouge">form_input</code> didalam folder views yaa. Jangan lupa nama filenya <em>form_input</em>.</p>
<p>Nii path folder/lokasi foldernya <em>CodeIgniter-3.1.2 /application/views/form_input.php</em>
Dan isi script file form_input.php ini liat di screenshootnya berserta penjelasan scriptnya :D.</p>
<div class="language-php highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="cp"><?php</span> <span class="k">echo</span> <span class="nf">form_open</span><span class="p">(</span><span class="nf">base_url</span><span class="p">(</span><span class="s1">'mahasiswa/simpan'</span><span class="p">));</span> <span class="cp">?></span>
<span class="c"><!--
form_open tau kan? ini lho <form method='post' action='mahasiswa/simpan'></form>
karena tadi kita udah load helper ('form') maka kita bisa make plugin form yg ada di codeigniter $this->load->helper('form') masih inget kan yg ada di dalam file Mahasiswa.php
oh ya terus base_url yg ada di file config.php tadi.
masih inget kan yg tadi kita setting base_urlnya :)
--></span>
<span class="nt"><table></span>
<span class="nt"><tr></span>
<span class="nt"><td></span>Nim<span class="nt"></td></span>
<span class="nt"><td><input</span> <span class="na">type=</span><span class="s">"text"</span> <span class="na">name=</span><span class="s">"nim"</span><span class="nt">></td></span>
<span class="nt"></tr></span>
<span class="nt"><tr></span>
<span class="nt"><td></span>Nama<span class="nt"></td></span>
<span class="nt"><td><input</span> <span class="na">type=</span><span class="s">"text"</span> <span class="na">name=</span><span class="s">"nama"</span><span class="nt">></td></span>
<span class="nt"></tr></span>
<span class="nt"><tr></span>
<span class="nt"><td></span>Jurusan<span class="nt"></td></span>
<span class="nt"><td><input</span> <span class="na">type=</span><span class="s">"text"</span> <span class="na">name=</span><span class="s">"jurusan"</span><span class="nt">></td></span>
<span class="nt"></tr></span>
<span class="nt"><tr></span>
<span class="nt"><td</span> <span class="na">colspan=</span><span class="s">"2"</span><span class="nt">><input</span> <span class="na">type=</span><span class="s">"submit"</span> <span class="na">value=</span><span class="s">"simpan"</span><span class="nt">></td></span>
<span class="nt"></tr></span>
<span class="nt"></table></span>
</code></pre></div></div>
<p>[gambar file form_input.php]</p>
<p>Setelah selesai buat form input. Coba deh kalian buka browser trus masukin url ini http://localhost/CodeIgniter-3.1.2/index.php/mahasiswa
MASUKAN URL dibrowser yaa.. jangan lupaa liat hasilnya..</p>
<p>Setelah muncul tampilan form inputan . back lagi ke script form_input.php</p>
<p>Liat script diline ke 1</p>
<p><code class="language-plaintext highlighter-rouge"><?php echo form_open(base_url('mahasiswa/simpan')); ?></code></p>
<p>Mahasiswa ← nama controller nya atau nama class
simpan ← nama function nya yg ada di dalam class Mahasiswa.</p>
<p>Biar lebih paham kalian ke file Mahasiswa.php</p>
<div class="language-php highlighter-rouge"><div class="highlight"><pre class="highlight"><code>
<span class="cp"><?php</span>
<span class="kd">class</span> <span class="nc">Mahasiswa</span> <span class="p">{</span>
<span class="k">public</span> <span class="k">function</span> <span class="n">__construct</span><span class="p">(){</span>
<span class="k">parent</span><span class="o">::</span><span class="nf">__construct</span><span class="p">();</span>
<span class="nv">$this</span><span class="o">-></span><span class="n">load</span><span class="o">-></span><span class="nf">model</span><span class="p">(</span><span class="s1">'mahasiswa_model'</span><span class="p">);</span> <span class="c1">//buat file baru Mahasiswa_model.php //didalam folder model yaa</span>
<span class="nv">$this</span><span class="o">-></span><span class="n">load</span><span class="o">-></span><span class="nf">helper</span><span class="p">(</span><span class="s1">'form'</span><span class="p">);</span> <span class="c1">//lupa ngeload form helper autoload, saya ngeloadnya //disini aja yaa nii gunanya untuk memanggil <form></form> dibagian viewnya</span>
<span class="p">}</span>
<span class="k">public</span> <span class="k">function</span> <span class="n">index</span><span class="p">(){</span>
<span class="nv">$data</span> <span class="o">=</span> <span class="k">array</span><span class="p">(</span><span class="s1">'record'</span> <span class="o">=></span> <span class="nv">$this</span><span class="o">-></span><span class="n">mahasiswa_model</span><span class="o">-></span><span class="nf">show</span><span class="p">());</span> <span class="c1">//buat menampilkan isi table</span>
<span class="nv">$this</span><span class="o">-></span><span class="n">load</span><span class="o">-></span><span class="nf">view</span><span class="p">(</span><span class="s1">'form_input'</span><span class="p">,</span><span class="nv">$data</span><span class="p">);</span> <span class="c1">//mengload file form_input.php yg ada di folder view. masih ingat kan konsep MVC</span>
<span class="c1">//folder berhubungan dengan frontend sedangkan controller berhubungan dengan alur pemograman.</span>
<span class="p">}</span>
<span class="k">public</span> <span class="k">function</span> <span class="n">simpan</span><span class="p">(){</span>
<span class="nv">$data</span> <span class="o">=</span> <span class="k">array</span><span class="p">(</span>
<span class="s1">'nim'</span> <span class="o">=></span> <span class="nv">$this</span><span class="o">-></span><span class="n">input</span><span class="o">-></span><span class="nf">post</span><span class="p">(</span><span class="s1">'nim'</span><span class="p">),</span>
<span class="s1">'nama'</span> <span class="o">=></span> <span class="nv">$this</span><span class="o">-></span><span class="n">input</span><span class="o">-></span><span class="nf">post</span><span class="p">(</span><span class="s1">'nama'</span><span class="p">),</span>
<span class="s1">'jurusan'</span> <span class="o">=></span> <span class="nv">$this</span><span class="o">-></span><span class="n">input</span><span class="o">-></span><span class="nf">post</span><span class="p">(</span><span class="s1">'jurusan'</span><span class="p">)</span>
<span class="p">);</span>
<span class="nv">$this</span><span class="o">-></span><span class="n">mahasiswa_model</span><span class="o">-></span><span class="nf">insert</span><span class="p">(</span><span class="nv">$data</span><span class="p">);</span> <span class="c1">//buat simpan data</span>
<span class="nf">redirect</span><span class="p">(</span><span class="nf">base_url</span><span class="p">(</span><span class="s1">'mahasiswa'</span><span class="p">));</span>
<span class="p">}</span>
<span class="p">}</span>
</code></pre></div></div>
<p>Sekarang buat file baru didalam folder model. Nama filenya Mahasiswa_model.php
Ini lokasi foldernya. CodeIgniter-3.1.2 /application/models/Mahasiswa_model.php
Dan ini scriptnya</p>
<div class="language-php highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="cp"><?php</span>
<span class="kd">class</span> <span class="nc">Mahasiswa_model</span> <span class="kd">extends</span> <span class="nc">CI_Model</span><span class="p">{</span>
<span class="k">public</span> <span class="k">function</span> <span class="n">insert</span><span class="p">(</span><span class="nv">$data</span><span class="p">){</span>
<span class="nv">$this</span><span class="o">-></span><span class="n">db</span><span class="o">-></span><span class="nf">insert</span><span class="p">(</span><span class="s1">'tbl_mahasiswa'</span><span class="p">,</span><span class="nv">$data</span><span class="p">);</span>
<span class="p">}</span>
<span class="k">public</span> <span class="k">function</span> <span class="n">show</span><span class="p">(){</span>
<span class="nv">$this</span><span class="o">-></span><span class="n">db</span><span class="o">-></span><span class="nf">select</span><span class="p">(</span><span class="s1">'*'</span><span class="p">);</span>
<span class="nv">$this</span><span class="o">-></span><span class="n">db</span><span class="o">-></span><span class="nf">from</span><span class="p">(</span><span class="s1">'tbl_mahasiswa'</span><span class="p">);</span>
<span class="nv">$query</span> <span class="o">=</span> <span class="nv">$this</span><span class="o">-></span><span class="n">db</span><span class="o">-></span><span class="nf">get</span><span class="p">();</span>
<span class="c1">//script di atas sama dengan $query = mysql_query(SELECT * FROM tbl_mahasiswa) </span>
<span class="k">if</span><span class="p">(</span><span class="nv">$query</span><span class="o">-></span><span class="nf">num_rows</span><span class="p">()</span> <span class="o">></span> <span class="mi">0</span><span class="p">){</span>
<span class="k">foreach</span><span class="p">(</span><span class="nv">$query</span><span class="o">-></span><span class="nf">result_array</span><span class="p">()</span> <span class="k">as</span> <span class="nv">$row</span><span class="p">){</span>
<span class="nv">$data</span><span class="p">[]</span> <span class="o">=</span> <span class="nv">$row</span><span class="p">;</span>
<span class="p">}</span>
<span class="nv">$query</span><span class="o">-></span><span class="nf">free_result</span><span class="p">();</span>
<span class="p">}</span> <span class="k">else</span><span class="p">{</span>
<span class="nv">$data</span> <span class="o">=</span> <span class="kc">NULL</span><span class="p">;</span>
<span class="p">}</span>
<span class="k">return</span> <span class="nv">$data</span><span class="p">;</span>
<span class="p">}</span>
<span class="p">}</span>
</code></pre></div></div>
<p>Setelah selesai coba ke browser ada yg error gaa ? http://localhost/CodeIgniter3.1.2/index.php/mahasiswa coba test input beberapa data trus simpan.. klau munculnya begini kosong</p>
<p>[gambar object not found]</p>
<p>Berarti index.php perlu di hapus atau di hilangin. Cara hilangin nya..
Buat file baru .htaccess didalam folder project kita yaa
Nii lokasi foldernya CodeIgniter-3.1.2/.htaccess</p>
<p>Masukin script ini didalam folder .htaccess buat hilangin index.php</p>
<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php/$1 [L]
</code></pre></div></div>
<p>Terus ke bagian lokasi CodeIgniter-3.1.2 /application/config/config.php nah yg diline 38 index.php di hapus seperti gambar dibawah</p>
<p>[gambar lagi]</p>
<p>Terus kita balik lagi view ada penambahan script di form_input.php .</p>
<div class="language-php highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="nt"><table></span>
<span class="nt"><thead></span>
<span class="nt"><tr></span>
<span class="nt"><td></span>Nim<span class="nt"></td></span>
<span class="nt"><td></span>Nama<span class="nt"></td></span>
<span class="nt"><td></span>Jurusan<span class="nt"></td></span>
<span class="nt"></tr></span>
<span class="nt"></thead></span>
<span class="nt"><tbody></span>
<span class="cp"><?php</span> <span class="k">if</span><span class="p">(</span><span class="o">!</span><span class="nb">empty</span><span class="p">(</span><span class="nv">$record</span><span class="p">))</span><span class="o">:</span> <span class="cp">?></span>
<span class="cp"><?php</span> <span class="k">foreach</span><span class="p">(</span><span class="nv">$record</span> <span class="k">as</span> <span class="nv">$row</span><span class="p">)</span><span class="o">:</span> <span class="cp">?></span>
<span class="nt"><tr></span>
<span class="nt"><td></span><span class="cp"><?php</span> <span class="k">echo</span> <span class="nv">$row</span><span class="p">[</span><span class="s1">'nim'</span><span class="p">];</span> <span class="cp">?></span><span class="nt"></td></span>
<span class="nt"><td></span><span class="cp"><?php</span> <span class="k">echo</span> <span class="nv">$row</span><span class="p">[</span><span class="s1">'nama'</span><span class="p">];</span> <span class="cp">?></span><span class="nt"></td></span>
<span class="nt"><td></span><span class="cp"><?php</span> <span class="k">echo</span> <span class="nv">$row</span><span class="p">[</span><span class="s1">'jurusan'</span><span class="p">];</span> <span class="cp">?></span><span class="nt"></td></span>
<span class="nt"><td></span>
<span class="nt"><a</span> <span class="na">href=</span><span class="s">"</span><span class="cp"><?php</span> <span class="k">echo</span>
<span class="nf">base_url</span><span class="p">(</span><span class="s2">"mahasiswa/editmahasiswa/</span><span class="nv">$row[nim]</span><span class="s2">"</span><span class="p">);</span><span class="cp">?></span><span class="s">"</span><span class="nt">></span>Edit<span class="nt"></a></span> |
<span class="nt"><a</span> <span class="na">href=</span><span class="s">"</span><span class="cp"><?php</span> <span class="k">echo</span>
<span class="nf">base_url</span><span class="p">(</span><span class="s2">"mahasiswa/hapusmahasiswa/</span><span class="nv">$row[nim]</span><span class="s2">"</span><span class="p">);</span><span class="cp">?></span><span class="s">"</span><span class="nt">></span>Hapus<span class="nt"></a></span>
<span class="nt"></td></span>
<span class="nt"></tr></span>
<span class="cp"><?php</span> <span class="k">endforeach</span><span class="p">;</span> <span class="cp">?></span>
<span class="cp"><?php</span> <span class="k">endif</span><span class="p">;</span> <span class="cp">?></span>
<span class="nt"></tbody></span>
<span class="nt"></table></span>
<span class="cp"><?php</span> <span class="k">echo</span> <span class="nf">form_open</span><span class="p">(</span><span class="nf">base_url</span><span class="p">(</span><span class="s1">'mahasiswa/simpan'</span><span class="p">));</span> <span class="cp">?></span> <span class="c"><!--
form_open tau kan? ini lho <form method='post' action='mahasiswa/simpan'></form>
karena tadi kita udah load helper ('form') maka kita bisa make plugin form yg ada di codeigniter $this->load->helper('form') masih inget kan yg ada di dalam file Mahasiswa.php
oh ya terus base_url yg ada di file config.php tadi.
masih inget kan yg tadi kita setting base_urlnya :)
--></span>
<span class="nt"><table></span>
<span class="nt"><tr></span>
<span class="nt"><td></span>Nim<span class="nt"></td></span>
<span class="nt"><td><input</span> <span class="na">type=</span><span class="s">"text"</span> <span class="na">name=</span><span class="s">"nim"</span><span class="nt">></td></span>
<span class="nt"></tr></span>
<span class="nt"><tr></span>
<span class="nt"><td></span>Nama<span class="nt"></td></span>
<span class="nt"><td><input</span> <span class="na">type=</span><span class="s">"text"</span> <span class="na">name=</span><span class="s">"nama"</span><span class="nt">></td></span>
<span class="nt"></tr></span>
<span class="nt"><tr></span>
<span class="nt"><td></span>Jurusan<span class="nt"></td></span>
<span class="nt"><td><input</span> <span class="na">type=</span><span class="s">"text"</span> <span class="na">name=</span><span class="s">"jurusan"</span><span class="nt">></td></span>
<span class="nt"></tr></span>
<span class="nt"><tr></span>
<span class="nt"><td</span> <span class="na">colspan=</span><span class="s">"2"</span><span class="nt">></span>
<span class="nt"><input</span> <span class="na">type=</span><span class="s">"submit"</span> <span class="na">value=</span><span class="s">"simpan"</span><span class="nt">></span>
<span class="nt"></td></span>
<span class="nt"></tr></span>
<span class="nt"></table></span>
</code></pre></div></div>
<p>Tuh tau kan maksudnya apa ? menampilkan data yg ada di dalam table tbl_mahasiswa.
Coba kalian buka url ini http://localhost/CodeIgniter-3.1.2/mahasiswa
Tanpa index.php pun udah bisa jalan ga akan error lagi. Karena tadi kita udh hilangin index.php masih inget kan tadi ktia buat file .htaccess</p>
<p>Yuk lanjut lagi sekarang ke bagian update yaa…</p>
<p>Balik lagi ke folder Controller file Mahasiswa.php
Dibawahnya tambahin lagi sebuah function yg bernama editmahasiswa.
Kenapa nama functionnya harus editmahasiswa karena di bagian form_input.php di bagian action nya <a href=”<?php echo base_url(“mahasiswa/editmahasiswa/$row[nim]”);?>”>Edit</a> kita udh kasih edit mahasiswa. Bentar yaa saya kasih screen shotnya biar pada ngerti.</p>
<p>[gambar 15]</p>
<p>Keliatan kan yg di lingkarin merah tuh..
Ok kalau sudah mengerti balik lagi ke folder controller Mahasiswa.php
Ini lokasi filenya yaa CodeIgniter-3.1.2 /application/controller/Mahasiswa.php
Ok sekarang tambahin function baru nama function nya editmahasiswa scriptnya bisa diliat di bawah yaa.. penjelasan nya udah ada. Saya udah kasih komentar di scriptnya. Kalau ga ngerti silahkan di Tanya ok. Remote make teamviewer juga bole lho..</p>
<div class="language-php highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="k">public</span> <span class="k">function</span> <span class="n">editmahasiswa</span><span class="p">(){</span>
<span class="nv">$nim</span> <span class="o">=</span> <span class="nv">$this</span><span class="o">-></span><span class="n">uri</span><span class="o">-></span><span class="nf">segment</span><span class="p">(</span><span class="mi">3</span><span class="p">);</span>
<span class="c1">//penjelasan kita akan menggambil url ini 11122541</span>
<span class="c1">//gimana caranya ?</span>
<span class="c1">//localhost/CodeIgniter-3.1.2/mahasiswa/editmahasiswa/11122541</span>
<span class="c1">//ya pake $this->uri->segment.</span>
<span class="c1">//mahasiswa segment ke 1</span>
<span class="c1">//editmahasiswa segment ke 2</span>
<span class="c1">//11122541 segment ke 3</span>
<span class="nv">$data</span> <span class="o">=</span> <span class="k">array</span><span class="p">(</span>
<span class="s1">'show'</span> <span class="o">=></span> <span class="nv">$this</span><span class="o">-></span><span class="n">mahasiswa_model</span><span class="o">-></span><span class="nf">edit_show</span><span class="p">(</span><span class="nv">$nim</span><span class="p">)</span>
<span class="p">);</span>
<span class="nv">$this</span><span class="o">-></span><span class="n">load</span><span class="o">-></span><span class="nf">view</span><span class="p">(</span><span class="s1">'form_editmahasiswa'</span><span class="p">,</span><span class="nv">$data</span><span class="p">);</span>
<span class="p">}</span>
</code></pre></div></div>
<p>Ok setelah udah dibuat function baru. Selanjut nya modelnya nii model buat nampilin editnya lum ada.</p>
<p>yuk kita buat dulu..
Model ini lho: $this->mahasiswa_model->edit_show($nim);
Di bagian folder model nama file nya Mahasiswa_model.php
Tambahin function baru lagi public function edit_show($nim)</p>
<p>Variable $nim adalah parameter nya. Masih inget kan penjelasan nya kita ambil nim berdasarkan uri segment ke 3.</p>
<p>Ok next.</p>
<p>Kebagian Mahasiswa_model tambahin script ini yaa..
Maksudnya tambahin function baru. penjelasan script udah ada. Dibawah</p>
<div class="language-php highlighter-rouge"><div class="highlight"><pre class="highlight"><code> <span class="k">public</span> <span class="k">function</span> <span class="n">edit_show</span><span class="p">(</span><span class="nv">$nim</span><span class="p">){</span>
<span class="nv">$this</span><span class="o">-></span><span class="n">db</span><span class="o">-></span><span class="nf">where</span><span class="p">(</span><span class="s1">'nim'</span><span class="p">,</span><span class="nv">$nim</span><span class="p">);</span>
<span class="nv">$query</span> <span class="o">=</span> <span class="nv">$this</span><span class="o">-></span><span class="n">db</span><span class="o">-></span><span class="nf">get</span><span class="p">(</span><span class="s1">'tbl_mahasiswa'</span><span class="p">);</span>
<span class="k">if</span><span class="p">(</span><span class="nv">$query</span><span class="o">-></span><span class="nf">num_rows</span><span class="p">()</span> <span class="o">></span> <span class="mi">0</span><span class="p">)</span>
<span class="p">{</span>
<span class="nv">$data</span> <span class="o">=</span> <span class="nv">$query</span><span class="o">-></span><span class="nf">row</span><span class="p">();</span>
<span class="c1">//row sama result_array bedanyaa result array buat nampilin banyak data di</span>
<span class="n">dalam</span> <span class="n">table</span>
<span class="c1">//sedangkan row hanya menampilkan 1 data di dalam table database //result_array ada dibagian public function show di atas liat kan.</span>
<span class="nv">$query</span><span class="o">-></span><span class="nf">free_result</span><span class="p">();</span> <span class="c1">//free result wajib di masukin yaa</span>
<span class="p">}</span><span class="k">else</span><span class="p">{</span>
<span class="nv">$data</span> <span class="o">=</span> <span class="kc">NULL</span><span class="p">;</span>
<span class="p">}</span>
<span class="k">return</span> <span class="nv">$data</span><span class="p">;</span>
<span class="p">}</span>
</code></pre></div></div>
<p>Next sekarang kan view edit nya udh muncul nii..</p>
<p>[gambar 16]</p>
<p>Coba liat form nya mengarah kemana. Masih inget setiap ada inputan submit button pasti ada<br />
<form method=”post” action nya mengarah kemana.. yuk diliat di bagian view nya nama file nya form_editmahasiwa.php></p>
<p>Saya screenshot aja biar paham :D</p>
<p>[gambar 17]</p>
<p><?php echo form_open(‘mahasiswa/update’); ?> ←nii ya form action nya berarti mengarah ke class Mahasiswa function nya update.</p>
<p>Berarti buka lagi nii folder Controller nama filenya Mahasiswa.php Nah didalam class Mahasiswa tambahin function update. Nii scriptnya</p>
<div class="language-php highlighter-rouge"><div class="highlight"><pre class="highlight"><code>
<span class="k">public</span> <span class="k">function</span> <span class="n">update</span><span class="p">(){</span>
<span class="nv">$nim</span> <span class="o">=</span> <span class="nv">$this</span><span class="o">-></span><span class="n">input</span><span class="o">-></span><span class="nf">post</span><span class="p">(</span><span class="s1">'nim'</span><span class="p">);</span>
<span class="nv">$data</span> <span class="o">=</span> <span class="k">array</span><span class="p">(</span>
<span class="s1">'nama'</span> <span class="o">=></span> <span class="nv">$this</span><span class="o">-></span><span class="n">input</span><span class="o">-></span><span class="nf">post</span><span class="p">(</span><span class="s1">'nama'</span><span class="p">),</span>
<span class="s1">'jurusan'</span> <span class="o">=></span> <span class="nv">$this</span><span class="o">-></span><span class="n">input</span><span class="o">-></span><span class="nf">post</span><span class="p">(</span><span class="s1">'jurusan'</span><span class="p">)</span>
<span class="p">);</span>
<span class="nv">$this</span><span class="o">-></span><span class="n">mahasiswa_model</span><span class="o">-></span><span class="nf">update</span><span class="p">(</span><span class="nv">$nim</span><span class="p">,</span><span class="nv">$data</span><span class="p">);</span>
<span class="nf">redirect</span><span class="p">(</span><span class="nf">base_url</span><span class="p">(</span><span class="s1">'mahasiswa'</span><span class="p">));</span>
<span class="p">}</span>
</code></pre></div></div>
<p>Yg ini udah pada paham kan.. penjelasan nya sama seperti di awal.</p>
<p>Oh ya kan kita udah make $this->mahasiswa_model->update nah berarti buat bikin query update nya harus di bagian folder model nama file nya Mahasiswa_model.php nii</p>
<p>Buat lagi yaa nama function baru nya update. Tenang yg ga ngerti bilang yaa. Langsung team viewer atau lngsung saya jelasin.
Nii function update yg harus di tambahin di file Mahasiswa_model.php Tambahin function update baru yaa.. nii scriptnya..</p>
<div class="language-php highlighter-rouge"><div class="highlight"><pre class="highlight"><code>
<span class="k">public</span> <span class="k">function</span> <span class="n">update</span><span class="p">(</span><span class="nv">$nim</span><span class="p">,</span><span class="nv">$data</span><span class="p">){</span>
<span class="c1">//query php native nya seperti ini</span>
<span class="c1">//UPDATE tbl_mahasiswa SET nama='$data', jurusan='$jurusan' WHERE nim='$nim'</span>
<span class="nv">$this</span><span class="o">-></span><span class="n">db</span><span class="o">-></span><span class="nf">where</span><span class="p">(</span><span class="s1">'nim'</span><span class="p">,</span><span class="nv">$nim</span><span class="p">);</span>
<span class="nv">$this</span><span class="o">-></span><span class="n">db</span><span class="o">-></span><span class="nf">update</span><span class="p">(</span><span class="s1">'tbl_mahasiswa'</span><span class="p">,</span><span class="nv">$data</span><span class="p">);</span>
<span class="p">}</span>
</code></pre></div></div>
<p>Ok update udah selanjutnya kita ke bagian delete nii..
Dicoba aja dulu running kok ga error :P
Kalau udah lanjut yaa ke bagian delete.
Nyontek lagi yaa A href=’’ nya menuju ke function apa, msh inget kan di bagian form_input.php saya udah buat action delete.</p>
<p>Nah di cek ahrefnya mengarah kemana ok</p>
<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code> <a href="<?php echo base_url("mahasiswa/hapusmahasiswa/$row[nim]");?>">Hapus</a>
</code></pre></div></div>
<p>Berarti kita harus buat function baru hapusmahasiswa di dalam class Mahasiswa yaa.. Nama filenya Mahasiswa.php yg ada di dalam controller itu lho.. Tambahin function baru hapusmahasiswa ok
Ni scriptnya</p>
<div class="language-php highlighter-rouge"><div class="highlight"><pre class="highlight"><code>
<span class="k">public</span> <span class="k">function</span> <span class="n">hapusmahasiswa</span><span class="p">(){</span>
<span class="nv">$nim</span> <span class="o">=</span> <span class="nv">$this</span><span class="o">-></span><span class="n">uri</span><span class="o">-></span><span class="nf">segment</span><span class="p">(</span><span class="mi">3</span><span class="p">);</span>
<span class="nv">$this</span><span class="o">-></span><span class="n">mahasiswa_model</span><span class="o">-></span><span class="nb">delete</span><span class="p">(</span><span class="nv">$nim</span><span class="p">);</span>
<span class="c1">//nii model nya belum dibuat nnti kita buat ok..</span>
<span class="nf">redirect</span><span class="p">(</span><span class="nf">base_url</span><span class="p">(</span><span class="s1">'mahasiswa'</span><span class="p">));</span>
<span class="p">}</span>
</code></pre></div></div>
<p>Scriptnya kalian udah paham kan fungsinya buat apa? Sama kok penjelasan saya di atas.. kalau ga ngerti liat atas lagi yaa..</p>
<p>Terus kita buat modelnya nii model buat hapus nya</p>
<p><code class="language-plaintext highlighter-rouge">$this->mahasiswa_model->delete($nim);</code></p>
<p>Nah berarti harus buat function delete nii di file Mahasiswa_model.php</p>
<p>Yuk langsung aja yaa..</p>
<p>Nii scriptnya</p>
<div class="language-php highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="k">public</span> <span class="k">function</span> <span class="n">delete</span><span class="p">(</span><span class="nv">$nim</span><span class="p">){</span>
<span class="c1">//query php native nya seperti ini</span>
<span class="c1">//DELETE tbl_mahasiswa WHERE nim='$nim'</span>
<span class="nv">$this</span><span class="o">-></span><span class="n">db</span><span class="o">-></span><span class="nf">where</span><span class="p">(</span><span class="s1">'nim'</span><span class="p">,</span><span class="nv">$nim</span><span class="p">);</span>
<span class="nv">$this</span><span class="o">-></span><span class="n">db</span><span class="o">-></span><span class="nb">delete</span><span class="p">(</span><span class="s1">'tbl_mahasiswa'</span><span class="p">);</span>
<span class="p">}</span>
</code></pre></div></div>
<p>Ok dan done. Kalau ga ngerti di ulangin lagi yaa.. baca nya.. terus Tanya ke saya bole. Lebih enakan sih team viewer yaa.. thanks lho yg udah ikutin kulwapnya dari awal sampai akhirnya moga kalian jadi developer yg bisa buat startup yaa SEMANGATT !! :D</p>
<p>download full tutorial <a href="https://goo.gl/P3fRD8">disini</a></p>Hendra Purnama