Pertama kali saya terjun di dunia kerja langsung menghadapi banyak materi yang asing. Namun materi pertama dan selalu saya gunakan sampai sekarang adalah suatu proses menjalankan aplikasi dan proses jalannya secara client dan server side, hal utama yang menurut saya perlu dipelajari adalah Synchronus dan Asynchronus. Materi ini menurut saya sangat diperlukan untuk dasar pemrograman (walaupun saat kuliah tidak pernah ada :3). Walaupun secara tidak langsung hampir semua Web Developers menggunakannya namun perlu Pengetahuan lebih dalam karena proses ini sederhana dan berdampak ke semua aspek kehidupan program Anda.
Apakah yang di maksud dengan Synchronouse?
Synchronous adalah proses jalannya program secara sequential , disini yang dimaksud sequential ada berdasarkan antrian ekseskusi program. Pada dasarnya semua Bahasa pemrograman menggunakan Asynchronouse terutama PHP.
Cotoh Synchronous di Bahasa Perograman PHP:
beri nama file synchronous.php
<?php
$now = date(‘Y-m-d’);
// antrian 1
echo$now.‘ |’;
$yesterday = date(‘Y-m-d’,strtotime(‘-1 days’));
// antrian 2
echo$yesterday.‘ |’;
$week = date(‘Y-m-d’,strtotime(‘-1 week’));
// antrian 3
echo$week.‘ |’;
?>
Hasil Eksekusi:
Hasil eksekusi file php sync
Penjelasan: Pada saat file synchronouse.php dieksekusi maka proses nya adalah membaca antrian 1 terlebih dahulu kemudian antrian 2 dan terakhir adalah antrian 3.
Apakah yang dimaksud dengan Asynchronous?
Asynchronous adalah proses jalannya program bisa dilakukan secara bersamaan tanpa harus menunggu proses antrian. Synchronous merupakan bagian dari Asynchronous (1 antrian) dimana proses akan dieksekusi secara bersamaan dan untuk hasil tergantung lama proses suatu fungsi synchronous . Asynchronouse hampir disemua Bahasa pemrograman ada namun untuk PHP masih belum ada. PHP sebagai server side hanya menyediakan synchronous namun bisanya di WEB Developers tetap digunakan namun menggunakan AJAX (Asynchronous Javascript And XML) untuk proses Asynchronouse.
Nilai terus berjalan Secara bersamaan tanpa ada AntrianPenjelasan: Counter Nilai terus berjalan tanpa ada antrian.
Berikut Source Code Link Gitlab apabila anda ingin mencoba: Link
Contoh Asynchronous di NODE JS
Di artikel saya sebelumnya pernah membahas chat menggunakan Socket.io dimana basic dari Realtime Chat dengan socket.IO ada Synchronous. Silahkan lihat di Artikel saya berikut : Realtime Chat dengan Html, Javascript dan Socket.io
Berikut Link Artikel untuk mempelajari Asynchronous di beberapa Bahasa pemrograman:
Note: Synchronous dan Asynchronous saling berkisambungan jadi apabila anda ingin lebih detail bisa Anda pahami lebih dalam. Kegunakan juga sesuai kebutuhan.
Halo teman-teman! Saya menulis artikel ini untuk membantu developer iOS lain yang pada artikel lalu sempat bertanya langsung ke saya cara membuat Generic Class untuk HTTP Request 😉.
Sedikit Disclaimer❗️, Generic Class bukan hanya ditujukan untuk membuat HTTP Request / Networking saja. Tapi bisa untuk semua fungsi dengan input yang generic/umum. Silakan baca dokumentasi lebih lengkap disini.
Networking sudah menjadi sesuatu yang paling sering dilakukan pada Mobile Apps, khususnya pada iOS Developement. Ya, you know right gimana Mobile Apps tanpa ada networking.
Menggunakan Generic Class ini gambaran umumnya adalah membuat box yang dapat menyimpan dan menjaga semua inputnya. Dengan batasan sesuai dengan ukuran box nya dan tidak merusak komposisi box. Bagaimana? Sedikit lebih jelas bukan.
So, Let’s see how the code works!
Untuk networking akan menggunakan Alamofire😁, untuk kalian pengguna Moya atau URLSession bisa menyesuaikan .
Pada dasarnya ini mirip class dengan function seperti biasa
Yang membuat berbeda adalah simbol <T>. simbol tersebut adalah simbol generic yang mengindikasikan bahwa fungsi tersebut merupakan fungsi generic.
Selanjutnya, tuliskan kode request seperti biasa
And yes! fungsi generic kita selesai! sangat mudah kan? Eits, jangan lupa untuk merubah fungsi menjadi static function agar fungsi dapat diakses tanpa pembuatan objek kelas terlebih dahulu.
Bagaimana cara menggunakan kelas ini? cara menggunakan nya cukup mudah
Yap! Hanya seperti itu cara menggunakan nya. Kalian tidak perlu baris kode untuk setiap kali request. Dengan menggunakan Generic Class untuk networking, dapat memangkas kode request hingga 30% . Tentunya sangat membantu untuk proses development kalian.
Tapi, jika kalian membutuhkan bantuan untuk pembuatan fungsinya. Feel free untuk menghubungi saya di @nandamochammad
Beberapa minggu yang lalu saya mulai belajar Svelte JS. Mengapa saya belajar Svelte JS, ini dikarenakan saya kebiasaan hunting library atau framework baru dan tolak ukur saya Fremework atau library yang mendapat bintang banyak di github maka dilihat dari segi ekosistemnya akan bagus pula. Svelte JS mendapat 33.7 Ribu Bintang dalam kurun waktu 3 Tahun di thaun 2020 dan akan terus naik setiap harinya. Dari segi pengertian dan penggunaan Hampir sama dengan React dan Vue Js yang lebih dahulu rilis dengan usia 6 tahun di tahun 2020. Svelte JS memberikan warna Baru. Salah satu perbedaan jelas Svelte JS dengan React Js dan Vue JS adalah Tanpa menggunakan Virtual DOM.
Tokopedia juga menggunaan Svelte JS untuk aplikasi yang mereka gunakan, ada beberapa alas an mengapa mereka menggunaan Svelte JS silakan baca Artikel berikut: http://shorturl.at/elrV4 .
Tokopedia tertera sebagai salah satu platform yang menggunakan Svelte
Mari kita explore Svelte JS:
1. Apa itu Svelte JS.
Svelte adalah cara baru untuk membangun user interface dengan cepat. Sementara framework seperti React dan Vue melakukan semua task mereka di browser, Namun Svelte melakukan Compile Step secara berkala sehingga tidak semua Task langsung di load di Browser.
2. Menulis Kode Lebih Sedikit
Dari segi penulisan Svelte JS lebih pendek dibandingkan React dan Vue. Berikut contoh Aplikasi dan codenya:
Aplikasi yang dibuat akan tampil seperti berikut:
Aplikasi dari hasil code
Script code aplikasi tersebut di Svelte sebagai berikut:
Script Code Svelte
Script Code di React sebagai berikut:
Script code di React
Terakhir Script code di Vue sebagai berikut:
Script code di Vue
Terlihat bukan perbedaannya dari segi panjang Script Code yang dibuat untuk aplikasi sederhana tersebut, Svelte lebih seditkit dibandingkan dengan React dan Vue.
DOM merupakan singkatan dari Document Object Model. Artinya, dokumen (HTML) yang dimodelkan dalam sebuah objek. Objek dari dokumen ini menyediakan sekumpulan fungsi dan atribut/data yang bisa kita manfaatkan dalam membuat program Javascript. Virtual DOM memang lebih cepat dari pada Real DOM. namun mengan Svelte dikatakan lebih cepat walau tanpa menggunakan DOM? silahkan baca di sini : https://svelte.dev/blog/virtual-dom-is-pure-overhead
4. Sangat Reaktif
Yang dimaksud dengan reactif adalah tidak diperlukan banyak library untuk proses di javascript. Kebalikannya Svelte klaim memudahkan fungsi dari javascript. Untuk lebih jelasnya silakan baca di : https://svelte.dev/blog/svelte-3-rethinking-reactivity
Lebih dalam lagi mari kita coba ulik2 untuk beberapa fungsionalitas namun disini saya akan membahas contoh script tentang : Declaration, Reactivity, Props, Logic, dan Event.
Dikarenakan ini masih awal saya akan membahas Script menggunakan REPL dari Svelte JS.
Declaration
Pendeklarasian varial dan pemanggilan variable di Svelte mudah seperti di Javascript namun ingat tanpa DOM atau menggunaan innerHTML sehingga script menjadi lebih Pendek. Berikut contohnya:
Contoh Deklarasi Svelte JS
Reactivity
Reactivity disini mengunakan huum aksi reaksi di javascript kita biasa menggunakan onclick=”myFunction()” berbeda dan lebih easy dan lebih pendek pendeklarasian onclick di Svelte. Silahkan lihat Contoh berikut:
Contoh Reactivity
Props
Props adalah property ata variable yang berasal dari luar class atau parent. Berikut contoh untuk props di Svelte:
Contoh untuk Props Svelte
Logic
Pada dasarnya semua logic sama namun perbedaan hanya di penulisan. Berikut penulisan Logic untuk Svelte:
Logic If
{#if args}
<p>{content}</p>
{/if}
Logic If-Else
{#if args}
<p>{content}</p>
{:else}
<p>{content else}</p>
{/if}
Logic Else-If
{#if x > 10}
<p>{content}</p>
{:else if 5 > x}
<p>{content}</p>
{:else}
<p>{content}</p>
{/if}
Logic Looping
<script>
letcats = [
{ id:‘J—aiyznGQ’, name:‘Keyboard Cat’ },
{ id:‘z_AbfPXTKms’, name:‘Maru’ },
{ id:‘OUtn3pvWmpg’, name:‘Henri The Existential Cat’ }
Event digunakan untuk melakukan suatu perintah. Event di Svelte dibuat cukup sederhana berikut contoh untuk onclick dan onMousemove:
Contoh Event Svelte
Sebenarnya masih banyak yang perlu dibahas atau dipelajari di Svelte JS ini namun menurut saya Artikel ini cukup untuk mengenal Svelte JS sesuai dengan judulnya. Untuk developer yang sudah bosan dengan React dan Vue saya sarankan mempelajari Svelte karena menurut saya pribadi cukup berguna untuk PWA(Progressive Web Apps) dan mudah untuk dipelajari. Karena usia masih 3 tahun di 2020 masih belum banyak yang mengetahui tentang Framework Svelte ini. Sejujurnya saat saya pelajari React dan Vue diawal lumayan kesulitan namun untuk Svelte ini lebih mudah dan memberikan perbandingan hasil yang cukup besar. Semoga bermanfaat.
Halo teman-teman, terimakasih telah membuka artikel ini. Well, kenapa saya menulis cara mendaftar akun Apple Developer ini karena saya baru memperbarui akun developer saya dan selain itu akun developer adalah syarat sah agar kita bisa belajar Apple Development lebih deep lagi 🔥.
Mungkin banyak yang bertanya, emang kenapa harus mendaftar akun developer? Berbeda dengan pemrograman mobile sebelah yang semua fitur developmentnya dapat diakses, Apple sangat selektif untuk aplikasi yang di publish begitu juga dengan developernya 😎. Dengan akun developer kemudahan yang paling bisa dengan mudah rasakan selain dapat mempublish di Apps Store adalah kebebasan akses di semua development support apple seperti notification, CloudKit, CoreML, ARKit, HealthKit, SiriKit, dan semua development stuff milik apple. Sehingga dalam satu environment kita cukup menggunakan produk apple saja.
Jadi, bagaimana cara mendaftar nya?
Oh iya, saya akan menuliskan cara mendaftar untuk Individual Account ya, bukan untuk company 😉 hanya membutuhkan kartu debit/kredit (untuk payment) dan kartu identitas (hanya jika diminta)
[SATU]: Silakan buka registration page pada halaman ini: https://developer.apple.com/enroll. Jika kamu sudah memiliki Apple ID silakan langsung Sign In seperti dibawah ini
[DUA]: Periksa Agreement Apple, centang kotak yang mengonfirmasi bahwa kalian telah membacanya dan klik ‘Submit‘.
[TIGA]: Konfirmasikan bahwa semua informasi yang kalian masukkan sudah benar (email, nama, lokasi), lalu pilih entitas. Ingat! Kita mendaftar untuk Individual Account
[EMPAT]: Isi semua informasi yang diminta, biasanya membutuhkan waktu sekitar 10-15 menit untuk mengisinya, jadi yang sabar ya!
[LIMA]: Jangan lupa untuk membaca License Agreement pada halaman paling akhir! Jika setuju, jangan lupa mencentang box kecil dibawah License Agreement nya.
[ENAM]: Pilih “Purchase” untuk membayar akun developer kalian.
Perlu diketahui akun ini bersifat subscription per tahun.
Sehingga jangan salah untuk harga $99 tersebut harus kalian bayar kan setiap tahun ya. Jangan khawatir ada Auto Renewal jika kalian ingin untuk otomatis pembayaran subscriptionnya.
So, that’s the steps! Cukup mudah kan?
Tapi, jika kalian membutuhkan bantuan untuk pendaftaran akun developer. Feel free untuk menghubungi saya di media sosial saya di @nandamochammad
API Endpoint hampir pasti digunakan di Aplikasi Android maupun IOS, tentunya misal pembaca adalah program akan penasaran apakah API yang dibuat kita aman dan apakah mungkin ter ekspose. Jawabannya iya sangat mungkin untuk di capture. Kali ini kita akan membahas tuntas salah satu cara untuk Capture atau sniffing API yang jalan di Aplikasi Smart Phone menggunakan Postman. Cara ini bisa dilakukan untuk Optimasi API yang kita Buat untuk menghindari data leaks. Di akhir akan saya jelaskan bagaimana cara untuk menghindari data leaks.
Berikut pengetahuan Dasar sebelum kita Bermain main lebih dalam:
1. API Endpoint.
API(Application Programming Interface) merupakan sekumpulan (method, fungsi atau URL endpoint) yang digunakan untuk mengembangkan aplikasi lebih dari satu platform yang berbeda. Lalu apa kegunaan API ini? dengan menggunakan API maka kita dapat mengunakan sumber daya dari aplikasi lain tanpa perlu mengetahui bagaimana aplikasi itu dibuat.
2. Postman.
POSTMAN adalah sebuah aplikasi (berupa plugin) untuk browser chrome, fungsinya adalah sebagai REST Client atau istilahnya adalah aplikasi yang digunakan untuk melakukan uji coba REST API yang telah kita buat. silakan download di link berikut: https://www.postman.com/downloads/
3. Proxy.
Proxy server (peladen proxy) adalah sebuah komputer server atau program komputer yang dapat bertindak sebagai komputer lainnya untuk melakukan request terhadap content dari Internet atau intranet. disini yang akan kita gunaan sebagai proxy server adalah PC.
Ayo kita Praktikan untuk lebih mudahnya:
Keterangan : Pastikan menyiapkan PC dan Smart Phone. PC dan Smart Phone harus dalam satu Jaringan. PC sebagai alat Capture sedangkan Smart Phone yang di Capture.
Setting Postman klik tombol Capture Request and Cookies.Menu untuk Capture Request and CookiesSetting seperti Gambar berikut: Setting Capture requests an cookies Postman
Cek terlebih dahulu IP Address PC kita berapa, IP ini yang akan digunakan sebagai Hostname di proxy Smart Phone saya yaitu : 192.168.53.234IP Address PC
Setting Proxy di Smart Phone dengan menggunakan Hostname / IP PC kita dan masukan Port yang sudah kita setting di Postman(saya menggunakan Smart Phone Vivo Y31).Setting Proxy di Smart Phone
Setting selesai. Sekarang waktunya Capture API, saya ingin Capture API dari Aplikasi KAI Access, buka aplikasi KAI access.Aplikasi KAI Access
Setelah dibuka dan melakukan beberapa proses di Aplikasi KAI Access, maka semua request akan ter Capture di Postman lengkap dengan URL, Header, Request dan response.
Hasil Capture API saya taruh di History.Salah satu API Endpoint yang saya dapat dari Capturing.
Kesimpulan:
Ini adalah salah satu cara yang saya gunakan untuk mencari celah / bug dari suatu aplikasi karena kebanyakan aplikasi API tidak ter bundle atau tidak double encrypt dan tidak ada ssl security sehingga sangat mudah data leaks atau rusak, tentu environment dasar dari sisi backend diperlukan untuk memperkuat suatu system. Salah satu cara preventif dasar adalah pastikan URL End Point API menggunakan ssl security dan pastikan data public dan private dibedakan dengan auth.
Email Real Checker adalah salah satu cara untuk menghindari apakah Email pengguna Real atau tidak sebelum kita kirim menggunakan Commercial Email provider. Salah satu masalah yang muncul apabila email yang kita kirim baik secara Transactional atau Campaign adalah Tidak ter Delivered dan Bouncing, sehingga kita sebagai pengguna akan terkena dampaknya yaitu suspend. Kali ini kita akan membahas dan praktikkan Native REST API Email Checker menggunakan PHP.
Berikut Pengetahuan dasar sebelum kita coding:
1. MX Record
MX Record merupakan salah satu tipe record untuk menyatakan kemana dan bagaimana e-mail harus diarahkan. Untuk diarahkan tentu apabila suatu DNS atau hostname ter recrd maka akan vali dan sebaliknya. Apa Bisa Pointing MX Record menggunakan IP Address? Pointing mx record harus menggunakan hostname dan tidak bisa menggunakan ip address, tapi bagaimana caranya jika mx ingin dipointing ke ip tertentu? Caranya tentu saja harus membuat hostname dengan cara membuat record dns misalnya record mail dengan type A dan di pointing ke ip tersebut. Selanjutnya hostname yang telah didapatkan di test apakah sudah resolve ke ip yang tepat dan kemudian di setting pada mx recordnya.
2. REST API
REST (REpresentational State Transfer) merupakan standar arsitektur komunikasi berbasis web yang sering diterapkan dalam pengembangan layanan berbasis web. Umumnya menggunakan HTTP (Hypertext Transfer Protocol) sebagai protocol untuk komunikasi data. Pada arsitektur REST, REST server menyediakan resources (sumber daya/data) dan REST client mengakses dan menampilkan resource tersebut untuk penggunaan selanjutnya. Setiap resource diidentifikasi oleh URIs (Universal Resource Identifiers) atau global ID. Resource tersebut direpresentasikan dalam bentuk format teks, JSON atau XML.
Mari kita praktikan:
1. Buat Script dengan nama getStatusEmail.php dan simpan di directory XAMPP atau apache yg anda gunakan dan Run Apachenya. di script ada commant silahkan Anda pelajari script saya ini. :v
<?php
//Get Request untuk dari JSON rubah dahulu, disini tidak perlu api Key Dll karena takde auth
NOTE: untuk Real Email Checker ini kemungkinan berhasil tidaklah Persen. Dikarenakan ini hanya akan check email Checker, untuk kemungkinan 100 Persennya masih dalam riset (selama ini masih harus PING domain dan harus ada allow dari host, apabila tidak ada allow maka akan failed berarti masih belum 100%). Mungkin untuk Next Artikel bisa coba untuk PING Email menggunakan PHP.
Selamat datang teman – teman, artikel ini merupakan materi sharing dari event KMM Webinar yang dilaksanakan pada tanggal 25 April 2020. Selamat membaca 🙂
Jadi, sesuai dengan judul cara coding iOS agar lebih cepat dari biasanya adalah pastinya dengan sudah menyiapkan kode-kode yang mungkin akan dipakai. Dalam software development kita mengenal Library atau Dependencyatau Third Party.
Berikut beberapa library yang bisa membantu kita mempercepat proses develoment iOS:
1. Alamofire
Alamofire ini menyiapkan banyak function yang bisa digunakan untuk mempercepat proses development teman – teman. Diantaranya seperti pada dokumentasi diatas, function yang ditawarkan meliputi:
URL / JSON Parameter Encoding
Upload File / Data / Stream / MultipartFormData
Download File using Request or Resume Data
Untuk Alamofire yang berfungsi sebagai HTTP Request, secara native Swift sudah memiliki fitur untuk HTTP Request, yaitu URLSession
2. SwiftyJSON
SwiftyJSON digunakan untuk handle JSON result dari method request. Swifty JSON dapat di implement pada variasi library ios seperti Cocoapods, Carthage, dan Swift Package Manager. Seperti pada dokumentasi, function yang bisa digunakan pada SwiftyJSON meliputi Merge JSON, Looping, dan Literal Convertibles.
Untuk SwiftyJSON yang berfungsi sebagai JSON Handling, secara native Swift sudah memiliki fitur serupa yaitu JSONSerialization, yang dapat digunakan sebagai media convert untuk JSON model tujuan.
3. SDWebImage
SDWebImage merupakan library yang dapat digunakan untuk request image secara asyncronous. Penggunaan SDWebImage lebih sering diterapkan pada request image pada link image dari hasil request. Seperti pada Carrousel, Katalog, atau List.
4. MBProgressHUD
MBProgressHUD banyak dipakai untuk menggantikan activity indicator yang sudah ada natively pada Swift. Hal itu dikarenakan MBProgressHUD memiliki banyak varian progress yang interaktif dan deskriptif, akan tetapi masih sesuai dengan Human Interface Guidelines (HIG) Apple.
5. SnapKit
SnapKit merupakan cara ringkas untuk membuat programmatically autolayout pada iOS. Keunggulan yang sangat terlihat adalah keringkasan pada baris kode yang dibutuhkan untuk membuat layout pada satu objek.
Pada Webinar lalu, juga dilakukan live coding untuk pembuatan reusable function untuk generic network request, silakan di cek pada git yang ada dibawah ini
Tentunya masih banyak library lain yang dapat digunakan untuk mempercepat iOS Development. Seperti FBLoginSDK, Firebase, dan GoogleLoginSDK.
So, because of that, saya invite teman – teman juga untuk berbagi library yang sering dipakai dengan comment pada artikel ini nama library yang dipakai, link dokumentasi, dan tujuan implementasinya. Hopefully, artikel ini akan bermanfaat bagi developer iOS lain.
ODataAtau Open Data Protocol merupakan salah satu best practice untuk membangun atau menggunakan sebuah web api, OData sendiri dapat digunakan secara optional untuk membantu memanipulasi atau mengimplementasikan data secara khusus, kita dapat menggunakan query dalam protokol OData melalui endpointnya, Odata dalam Asp .Net Sendiri dapat diakses secara optional misalkan data yang ada di web api endpoint default kita tidak akan diubah seluruhnya ke OData, sehingga data tersebut masih dapat diakses secara default. berikut merupakan langkah untuk konfigurasinya
Konfigurasi OData di ASP .Net Core 3.1
Pertama, Tambahkan “Microsoft.AspNetCore.OData” reference di NuGet Packages ke project kita
Buka file Startup.cs pada project kita, Tambahkan “services.AddOData();” di dalam Method ConfigureServices untuk mengenalkan aplikasi kita tentang OData
public void ConfigureServices(IServiceCollection services)
{
services.AddControllers();
services.AddOData();
}
jangan lupa untuk menambahkan reference pada file startup.cs juga
using Microsoft.AspNet.OData.Extensions;
Kemudian kita perlu menambahkan dependency Injection pada method Configure di file yang sama pada UseMvcnya, dan juga tambahkan funsi query -query yang akan kita gunakan untuk memanipulasi data kita nantinya.
Hal yg perlu dilakukan selanjutnya adalah membuat route untuk mengakses ke format ODatanya sendiri sehingga data dalam endpoint kita masih bisa di akses dalam format default.
Buat method baru pada file startup.cs untuk menentukan Entity data model untuk ODatanya
IEdmModel GetEdmModel()
{
var odataBuilder = new ODataConventionModelBuilder();
odataBuilder.EntitySet<BDFEntitlement>("IniPegawai");
return odataBuilder.GetEdmModel(); }
Tambahkan reference pada file startup.cs
using Microsoft.OData.Edm;
using Microsoft.AspNet.OData.Builder;
nb: dalam code diatas “BDFEntitlement” adalah model yang akan menjadi format result dari data kita, “IniPegawai” adalah web api controller kita. jadi kita dapat menambahkan Entityset seperlu kita.
Kemudian Kembali ke Method Configure untuk comment fungsi UseEndpointsnya karena kita akan menggunakan route dari ODatanya.
sama seperti alasan diatas, pada UseMvc kita perlu menambahkan
Kemudian karena kita menggunakan mvc di sini perlu untuk mendisable EndpointRoutingnya di method ConfigureServices pada service “AddController”, Rubah seperti dibawah ini.
2. Dengan OData dan mencoba querying pada endpoint nya
https://localhost:44383/odata/inipegawai?$Select=ProgramName,Remark,id&$filter=ProgramName eq 'Program Algostudio A'
Konklusi : OData bisa berguna untuk membantu kita memanipulasi data sesuai yang kita butuhkan tanpa harus membuat endpoint lain, selain itu banyak query-query OData yang berguna misalkan expand yang memiliki fungsi untuk dapat menggabungkan lebih dari 1 data di endpoint berbeda dan banyak lainnya. mudahnya memanipulasi di data dari resultnya ini yang menurut Saya menjadikan Entity Framework yang menggunakan OData lebih fleksibel dari Entity Framework yang tidak menggunakan OData, untuk pembahasan lebih perbandingannya mungkin akan ada di artikel selanjutnya.
Jika Anda sering menggunakan Google Colab, maka pasti sudah terbiasa menggunakan Jupyter Notebook. Jupyter Notebook adalah aplikasi web open source yang memungkinkan kita untuk membuat dan berbagi dokumen yang berisi kode program, text, visualisasi, dan komponen dokumen lainnya. Yang paling menarik adalah, kita bisa menuliskan kode program dan menjalankannya dalam dokumen yang sama.
Dalam tulisan ini, saya akan menunjukkan cara instalasi Jupyter Notebook dengan menggunakan Anaconda tanpa user root. Tujuannya nanti adalah kita bisa menggunakan Jupyter Notebook yang dapat digunakan untuk menjalankan program Python.
Instalasi Anaconda tanpa user root
Langkah pertama andalah melakukan instalasi Anaconda. Anda dapat melakukannya tanpa user root seperti yang sudah saya jelaskan pada artikel sebelumnya.
Membuat conda environments baru
Jalankan perintah berikut untuk membuat conda environments baru dengan nama jupyter.
$ conda create --name jupyter
Anda aka diminta melakukan konfirmasi proses instalasi.
Proceed ([y]/n)?
Tekan y lalu tekan ENTER untuk melakukan konfirmasi.
Preparing transaction: done
Verifying transaction: done
Executing transaction: done
#
# To activate this environment, use
#
# $ conda activate jupyter
#
# To deactivate an active environment, use
#
# $ conda deactivate
conda environments baru dengan nama jupyter telah berhasil dibuat. Jalankan perintah berikut untuk mengaktifkannya.
$ conda activate jupyter
Prompt dari command line anda akan berubah. Kurang lebih seperti ini
(jupyter) saya@algostudio:~$
Instalasi Jupyter Notebook
Jalankan perintah berikut ini di dalam conda environments yang telah dibuat sebelumnya.
$ conda install -c conda-forge jupyterlab
Anda aka diminta melakukan konfirmasi proses instalasi.
Proceed ([y]/n)?
Tekan y lalu tekan ENTER untuk melakukan konfirmasi.
Menjalankan Jupyter Notebook
Bila komputer Anda menggunakan GUI
Jalankan Jupyter Notebook dengan perintah
$ jupyter notebook
Tab baru akan terbuka di browser anda dengan alamat http://localhost:8888/tree dan root directory yang terbuka akan sama dengan directory tempat Anda menjalankan perintah jupyter notebook. Berikut contoh tampilan Jupyter Notebook pada browser.
Gambar 1. Contoh tampilan Jupyter Notebook
Selesai, Jupyter Notebook sudah dapat digunakan di komputer Anda. Bila ingin mematikan Jupyter Notebook, kembalilah ke command line tempat anda menjalankan perintah jupyter notebook lalu tekan Ctrl+C. Sebuah pesan konfirmasi akan muncul.
The Jupyter Notebook is running at:
http://localhost:8888/?token=a09e55951acd598fa3428da676d1fbe5678a1712506ca673
or http://127.0.0.1:8888/?token=a09e55951acd598fa3428da676d1fbe5678a1712506ca673
Shutdown this notebook server (y/[n])?
Tekan y lalu tekan ENTER untuk melakukan konfirmasi.
Bila komputer Anda menggunakan CLI
Bila komputer anda hanya menggunakan CLI, maka Jupyter Notebook harus dibuka menggunakan komputer lain yang memiliki browser berbasis GUI. Berikut adalah langkah-langkah untuk dapat mengakses Jupyter Notebook melalui browser komputer lain
Konfigurasi Jupyter Notebook
Jalankan perintah berikut untuk melakukan generate file konfigurasi
$ jupyter notebook --generate-config
Di layar akan muncul lokasi file konfigurasi yang telah dibuat.
Writing default config to: /home/saya/.jupyter/jupyter_notebook_config.py
Bukalah file tersebut dengan text editor, lalu modifikasi baris
#c.NotebookApp.ip = 'localhost'
menjadi
c.NotebookApp.ip = '*'
lalu simpan perubahan tersebut.
Menjalankan Jupyter Notebook tanpa browser
Jalankan Jupyter Notebook dengan perintah
$ jupyter notebook --no-browser
Anda harus mengakses URL dan token yang muncul di layar CLI anda setelah menjalankan perintah perintah jupyter notebook. Contoh pesan yang muncul di layar adalah
To access the notebook, open this file in a browser:
file:///home/dataq/.local/share/jupyter/runtime/nbserver-12801-open.html
Or copy and paste one of these URLs:
http://thinkpad:8888/?token=c7bda8412d7e21ad9c7510a563616efb9ffcf8333da79f2c
or http://127.0.0.1:8888/?token=c7bda8412d7e21ad9c7510a563616efb9ffcf8333da79f2c
Bila IP komputer Anda dalah 192.168.56.101, maka anda dapat mengakses alamat http://192.168.56.101:8888/?token=c7bda8412d7e21ad9c7510a563616efb9ffcf8333da79f2c dari komputer lain.
Bila Anda tidak dapat membuka alamat tersebut, maka kemungkinan akses anda ditolak oleh firewall. Mintalah kepada system administrator untuk membuka port 8888 tersebut.
Menambahkan Package Baru
Ada beberapa cara menambahkan package ke dalam Jupyter Notebook Anda. Cara yang saya pilih adalah dengan menggunakan perintah conda install.
Berikut ada contoh langkah menambah package tensorflow ke dalam Jupyter Notebook yang berada di conda environmentsjupyter yang kita buat sebelumnya.
Bila Jupyter Notebook masih berjalan, tutup dengan menekan Crtl+C. Kemudian install tensorflow dengan perintah
$ conda install -c conda-forge tensorflow
Daftar conda package yang akan ditambahkan akan ditampilkan.
Realtime Chat atau Realtime Data sering disebut dalam dunia programing adalah suatu hal akan sering digunakan dan sangat diperlukan. Dalam kesempatan ini kita akan membahas dan langsung mem praktik kan Realtime Data dengan Chat App.
Senjata yang akan kita gunakan adalah:
1. HTML
Sebuah bahasa markah yang digunakan untuk membuat sebuah halaman web. Platform umum yang sering digunakan sehingga akan mudah untuk di praktik kan.
2. Javascript
Javascript adalah bahasa pemrograman tingkat tinggi dan dinamis. JavaScript biasanya digunakan untuk olah data secara Client ke server namun juga bisa sebagai server ke client. Disini Javascript akan berfungsi GET POST data dari client atau HTML.
3. Socket.io
Apa itu Socket.Io? Socket.io ada suatu library dari Node.JS yang berfungsi untuk menjembatani realtime data, Namun jangan salah socket.io tidak hanya bisa digunakan di Node.js. Socket.io bisa digunakan di multiplatform dan yang Paling penting Gratis tanpa Batasan jumlah / Unlimited.