CategoriesProgramming

Mengenal Svelte JS

         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.

Untuk lebih jelasnya silakah Baca di link berikut: https://svelte.dev/blog/write-less-code

3. Tidak menggunakan Virtual DOM

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>
    let cats = [
        { id: ‘J—aiyznGQ’name: ‘Keyboard Cat’ },
        { id: ‘z_AbfPXTKms’name: ‘Maru’ },
        { id: ‘OUtn3pvWmpg’name: ‘Henri The Existential Cat’ }
    ];
</script>
{#each cats as { id, name }, i}
    <li><a target=“_blank” href=“https://www.youtube.com/watch?v={id}”>
        {i + 1}: {name}
    </a></li>
{/each}
 

Event

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. 

Wassalamualaikum

CategoriesProgramming

Daftar Akun Apple Developer? Mudah!

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

That's All! See you on the next line!
CategoriesUX Design

UX Design untuk Aplikasi Enterprise

Pengenalan UX

User Experience Design (UX, UXD, atau XD) merupakan proses yang membawa aspek interaksi manusia kepada teknologi dan design. UX adalah campuran dari proses berpikir kreatif, perilaku, dan analitis agar bisa menciptakan solusi design yang sesuai dengan mental manusia sehingga menggapai objektif secara efektif. Pengertian UX secara mudahnya menurut saya adalah ilmu yang mempelajari bagaimana membangun produk yang memudahkan pengguna saat menggunakan suatu produk.

“Don’t make me think”

Steve Krug

Kalimat tersebut mungkin adalah quotes yang sering Anda baca dan dengar ketika terjun ke dunia UX. Karena UX yang dikatakan berhasil salah satu kuncinya adalah tidak membuat pengguna berpikir ketika menggunakan suatu produk.

Tiga Konteks Concept of Use

Semua aplikasi alarm harus bisa memenuhi tujuan utama yaitu berdering pada waktu yang ditentukan

Setidaknya ada tiga konteks pada concept of use UX yaitu useful, usable, dan used. Sebuah produk bisa dikatakan useful ketika berhasil membuat pengguna menyelesaikan suatu objektif. Contohnya adalah produk aplikasi alarm pada smartphone. Alarm tersebut bisa dikatakan useful ketika pengguna bisa mengatur jam alarm berdering tepat waktu. Jika alarm di atur untuk berbunyi pada jam 4 pagi misalnya, namun alarm baru berbunyi pada jam 5 pagi, maka aplikasi alarm tersebut bisa dikatakan tidak useful.

Dengan UX, obeng bisa digunakan dengan lebih mudah

Konteks selanjutnya adalah usable yang berkaitan dengan usability (kegunaan) sebuah produk. Cakupan dari usable lebih besar dari useful karena mementingkan faktor perilaku manusia dimana pengguna bisa merasakan “emosi” dalam bentuk kepuasan, kemudahan, dan efektifitas dalam menggunakan sebuah produk. Contoh dari usability bisa dilihat pada obeng. Ujung obeng yang menjadi pegangan tangan manusia mayoritas memiliki ujung bulat dan permukaan yang dapat dicengkeram. Kenapa? Tentu agar memudahkan untuk memegang pegangan ketika melakukan gerakan memutar obeng.

Penggunaan Segway yang menjadi trobosan baru pada masanya

Lalu yang terakhir adalah used. Konteks used mencerminkan apakah pada akhirnya, produk mau digunakan atau tidak oleh pengguna. Produk boleh useful dan usable, namun jika produk tidak dibutuhkan oleh pengguna, tetap saja produk tersebut akan gagal. Bisa diambil contoh pada kendaraan Segway. Pada awal launching, Segway diprediksi akan terjual berjuta-juta unit namun pada kenyataannya, hanya terjual 30.000 unit selama 6 tahun dari awal perilisan. Perusahaan yang menciptakan Segway tidak bisa menjamin bahwa kendaraan tersebut legal digunakan sehingga pada beberapa wilayah, Segway dilarang digunakan pada tempat publik.

Lima proses UX

Dalam standar prakteknya, UX dirancang dalam beberapa langkah mulai dari empathize, define, ideate, prototype, dan test. Langkah tersebut bisa dibilang kompleks khususnya untuk aplikasi organisasi atau enterprise. Mengingat aplikasi internal enterprise dituntut untuk bisa digunakan secepat mungkin dan biasanya tanpa langkah memahami atau riset customer terlebih dahulu.

UX untuk Aplikasi Enterprise

Bisnis seringkali menyadari bahwa mereka tidak teralu mementingkan UX karena aplikasi yang mereka kembangkan tidak langsung digunakan oleh customer melainkan digunakan oleh tim internal mereka sendiri. Namun perlu disadari pula bahwa jika aplikasi yang dikembangkan tidak useful, usable, dan used, maka produktivitas pengguna akan stuck dan berkutat dalam penjara inefisiensi. Inefisiensi menyebabkan banyak waktu dan uang yang hilang ketika perusahaan tidak menggunakan aplikasi secara produktif. Selain itu, pada era saat ini yang mementingkan simplicity, para pegawai akan merasa malas untuk menggunakan aplikasi yang susah digunakan.

Salah satu konteks yang sering menjadi issue ketika mendesain UX untuk aplikasi Enterprise adalah usability. Usability bisa dipetakan ketika langkah riset user dan riset pasar dilakukan. Namun permasalahannya adalah seringkali tidak ada analisis pengguna, tidak ada feedback, dan tidak ada usability testing kepada real user. Issue umum usability ketika mendesain aplikasi enterprise adalah sebagai berikut:

Too many Features

Contoh terlalu banyak fitur pada satu halaman

Kebanyakan perusahaan terlau berfokus dengan fitur dan fungsionalitas dibanding user goals.

Inconsistent

Tidak adanya standar dan guideline sehingga memperbesar peluang inkonsistensi.

Old Fashioned Look

UI/UX Design Trends

Hal ini berhubungan dengan User Interface. Hal ini bisa terjadi ketika technology stack yang sudah bersifat obsolete dan tidak mengikuti trend desain yang modern.

Cluttered Information

Merupakan hasil ketika perusahaan terlalu mementingkan fungsionalitas sehingga semua informasi disajikan tanpa filtering dan tanpa strategi konten.

CategoriesData Science

Mengolah Intrusion Detection Evaluation Dataset (CICIDS2017) Menggunakan ANN

Bidang keahlian saya sebenarnya adalah jaringan komputer. Namun saat ini saya harus mempelajari Artificial Neural Network (ANN) untuk diimplementasikan dalam jaringan komputer, khususnya dalam Intrusion Detection System (IDS). Awalnya sangat sulit bagi saya untuk mempelajari ANN karena saya sebelumnya tidak memiliki latar belakang sama sekali dalam bidang ini dan tidak ada contoh praktis tentang bagaimana mengolah data jaringan hingga dapat menjadi dataset yang dapat diolah menggunakan ANN.

Setelah belajar sekian lama, sempat mengalami kebuntuan, akhirnya saya berhasil membuat satu program yang sangat sederhana dan jauh dari ideal, namun akan sangat berguna sebagai contoh praktis tentang bagaimana mengolah dataset IDS agar dapat diproses menggunakan ANN.

Dataset yang digunakan dalam contoh ini adalah Intrusion Detection Evaluation Dataset (CICIDS2017) yang dapat Anda akses di https://www.unb.ca/cic/datasets/ids-2017.html. Dataset CICIDS2017 tersedia dalam bentuk pcap atau csv. PCAP data adalah data hasil capture jaringan yang perlu diolah terlebih dahulu untuk diambil feature-nya. Dalam website tersebut telah disediakan dataset dalam bentuk csv yang berisi feature dari hasil pengolahan file pcap.

Dalam contoh ini, yang kita gunakan adalah dataset dalam bentuk csv. Program berikut ini akan mengolah file csv tersebut menggunakan program ANN sederhana.

Gambar 1 berikut ini menunjukkan F1 score masing-masing class dalam dataset CICIDS2017. Walaupun secara umum hasilnya cukup bagus, namun terdapat 2 kelas yang semuanya salah deteksi dan terdapat 4 kelas dengan F1 score di bawah 0.7.

Gambar 1. F1 score masing-masing class dalam dataset CICIDS2017

Semoga bermanfaat.

CategoriesInternetProgramming

Capture API Endpoint yang jalan di Aplikasi Smart Phone menggunakan Postman

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.

  1. Setting Postman klik tombol Capture Request and Cookies.
    Menu untuk Capture Request and Cookies
    Setting seperti Gambar berikut:
    Setting Capture requests an cookies Postman
  2.  Cek terlebih dahulu IP Address PC kita berapa, IP ini yang akan digunakan sebagai Hostname di proxy Smart Phone saya yaitu : 192.168.53.234
    IP Address PC
  3.   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
  4. Setting selesai. Sekarang waktunya Capture API, saya ingin Capture API dari Aplikasi KAI Access, buka aplikasi KAI access.
    Aplikasi KAI Access
  5.            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.

Semoga Bermanfaat

Wasallamualaikum.

CategoriesLinux

Tips dan Trik Menggunakan VIM

Tulisan ini akan membahas tips dan trik menggunakan editor VIM.

Command Mode

Tekan ESC sebelum menjalankan perintah-perintah berikut ini.

Mencari string

Misalnya ingin mencari kata mode , maka perintahnya adalah

/mode

Untuk mencari kata tersebut di lokasi berikutnya, cukup menjalankan perintah

/

Mencari dan mengganti string

Misalnya ingin mengganti seluruh kata mode menjadi MODE, maka perintahnya adalah

:%s/mode/MODE/g

Mengecek encoding

:set fileencoding

Mengubah encoding

Misalnya ingin mengganti encoding file yang kita buka menjadi utf8, maka perintahnya adalah

:set fileencoding=utf8

Menyimpan lalu keluar

:wq

Keluar tanpa menyimpan perubahan

:q!

CategoriesProgramming

Native REST API Sederhana menggunakan PHP untuk Email Real Checker

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
$request = (arrayjson_decode(file_get_contents(‘php://input’), TRUE);
//Function untuk Check email Domain apakah sudah terdaftar atau disebut dengan Mx Record.
function mxrecordValidate($email, $domain){
    $arr = dns_get_record($domain, DNS_MX);
    if(isset($arr[0]) && $arr[0][‘host’] == $domain && !empty($arr[0][‘target’])){
        return $arr[0][“target”];
    }
}
// Check GET Request sudah benar atau belum
if(isset($request[“resource”])){
    //Kita pecah dalam bentuk Array
    foreach($request[“resource”] as $k=>$item){
        //identifikasi Email
        $email =$request[“resource”][$k][“email”];
        //pecah domain dan email name
        $domain = substr(strrchr($email“@”),1);
        //proses apakah email Valid atau Invalid dengan menjalankan fungsi mxrecordValidate.
        if(mxrecordValidate($email$domain)){
            //check dns Record
            $data = dns_get_record($domain, DNS_MX);
            //masukan hasil ke Response
            foreach($data as $key1){
                $response[“resource”][$k][“host”]=$key1[‘host’] ;
                $response[“resource”][$k][“class”]=$key1[‘class’] ;
                $response[“resource”][$k][“ttl”]=$key1[‘ttl’] ;
                $response[“resource”][$k][“type”]=$key1[‘type’] ;
                $response[“resource”][$k][“pri”]=$key1[‘pri’] ;
                $response[“resource”][$k][“target”]=$key1[‘target’] ;
                $response[“resource”][$k][“target”]=gethostbyname($key1[‘target’]) ;
            }
            //Status untuk Valid
            $response[“resource”][$k][“email”] = $request[“resource”][$k][“email”];
            $response[“resource”][$k][“status”] = ‘Valid Email’;
        } else {
            //Status untuk Invalid
            $response[“resource”][$k][“email”] = $request[“resource”][$k][“email”];
            $response[“resource”][$k][“status”] = ‘Invalid Email’;
        }
    }
else {
    //Berikan Error untuk orang yang input sembarangan, dengan status 500 Internal Server 
Error.
    header(‘HTTP/1.1 500 Internal Server Error’);
    //Response untuk Error.
    $response[“message”] = “Error fix your Brain.”;
}

 

header(‘Content-Type: application/json’);
$json_string = json_encode($response, JSON_PRETTY_PRINT);
die($json_string);
?>

2.   Testing Setelah itu silakan menggunakan POSTMAN atau sebagai REST Client Lain yang familiar bagi Anda.

  • Pilih Method POST, input path http://localhost/Email%20Checker/getStatusEmail.php . Pakai header Content-Type => application/json.

  • Masukan Body Request atau email yang akan kita cek, jangan lupa pakai Body Request JSON.
  • Berikut Respon atau hasil dari Email Checker.

Untuk Code silakan clone Git Repository: https://gitlab.com/Sendok/php-native-rest-api-email-checker.git

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.

Wasalamualaikum..

CategoriesLinux

Cara kompresi dan ekstrak file .tar.bz2

Di artikel sebelumnya saya membahas tentang cara kompresi dan ektstrak file gzip (.tar.gz). Kali ini saya akan membahas hal serupa namun dengan berbeda jenis kompresi, yaitu bzip2. Ada beberapa ekstensi file yang umum digunakan oleh bzip2, yaitu .tar.bz2, .tar.bz, .tar.tb.

Keuntungan kompresi bzip2 adalah ukuran kompresi yang lebih kecil bila dibandingkan dengan gzip, namun dengan konsekuensi waktu kompresi dan ekstrak yang lebih lama.

Cara kompresi dan ekstrak file gzip dan bzip2 sangatlah mirip, perbedaannya hanyalah terletak pada parameter -z untuk gzip dan -j untuk bzip2.

Artikel singkat berikut akan membahas cara kompresi dan ekstrak file tersebut.

Kompresi file

Kompresi satu directory

Perintah untuk melakukan kompresi satu directory secara recursive ke dalam satu file .tar.bz2 adalah

$ tar -cjf nama-file.tar.bz2 /path/ke/directory-target

Gambar 1 berikut menjelaskan fungsi dari masing-masing parameter.

Gambar 1. Penjelasan parameter (sumber: explainshell.com)

Kompresi beberapa directory

Perintah untuk melakukan kompresi beberapa directory sekaligus sangat mirip dengan perintah sebelumnya, cukup menambahkan beberapa directory path target di akhir parameter, misalnya

$ tar -cjf nama-file.tar.bz2 /path/target1/ /path/target2/

Kompresi dengan pengecualian

Kita bisa melakukan kompresi satu directory dengan menambahkan pengecualian, misalnya tidak menyertakan file .mp4 dengan perintah:

$ tar -cjf nama-file.tar.bz2 /path/ke/directory-target --exclude=*.mp4

Gambar 2 berikut menjelaskan fungsi dari masing-masing parameter.

Gambar 2. Penjelasan parameter (sumber: explainshell.com)

Ekstrak file

Ekstrak ke current directory

Untuk melakukan ekstrak file ke dalam dalam current directory, gunakan perintah:

$ tar -xjf nama-file.tar.bz2

Gambar 3 berikut menjelaskan fungsi dari masing-masing parameter.

Gambar 3. Penjelasan parameter (sumber: explainshell.com)

Ekstrak ke directory tertentu

Untuk melakukan ekstrak file ke dalam dalam directory tertentu, tambahkan parameter -C, misalnya:

$ tar -xjf nama-file.tar.bz2 -C /path/directory-tujuan

Gambar 4 berikut menjelaskan fungsi dari masing-masing parameter.

Gambar 4. Penjelasan parameter (sumber: explainshell.com)

Semoga artikel ini dapat membantu.

CategoriesLinux

Cara kompresi dan ekstrak file .tar.gz

File .tar.gz adalah bentuk kompresi file yang sangat sering dijumpai di Linux. Artikel singkat berikut akan membahas cara kompresi dan ekstrak file tersebut.

Kompresi file

Kompresi satu directory

Perintah untuk melakukan kompresi satu directory secara recursive ke dalam satu file .tar.gz adalah

$ tar -czf nama-file.tar.gz /path/ke/directory-target

Gambar 1 berikut menjelaskan fungsi dari masing-masing parameter.

Gambar 1. Penjelasan parameter (sumber: explainshell.com)

Kompresi beberapa directory

Perintah untuk melakukan kompresi beberapa directory sekaligus sangat mirip dengan perintah sebelumnya, cukup menambahkan beberapa directory path target di akhir parameter, misalnya

$ tar -czf nama-file.tar.gz /path/target1/ /path/target2/

Kompresi dengan pengecualian

Kita bisa melakukan kompresi satu directory dengan menambahkan pengecualian, misalnya tidak menyertakan file .mp4 dengan perintah:

$ tar -czf nama-file.tar.gz /path/ke/directory-target --exclude=*.mp4

Gambar 2 berikut menjelaskan fungsi dari masing-masing parameter.

Gambar 2. Penjelasan parameter (sumber: explainshell.com)

Ekstrak file

Ekstrak ke current directory

Untuk melakukan ekstrak file ke dalam dalam current directory, gunakan perintah:

$ tar -xzf nama-file.tar.gz

Gambar 3 berikut menjelaskan fungsi dari masing-masing parameter.

Gambar 3. Penjelasan parameter (sumber: explainshell.com)

Ekstrak ke directory tertentu

Untuk melakukan ekstrak file ke dalam dalam directory tertentu, tambahkan parameter -C, misalnya:

$ tar -xzf nama-file.tar.gz -C /path/directory-tujuan

Gambar 4 berikut menjelaskan fungsi dari masing-masing parameter.

Gambar 4. Penjelasan parameter (sumber: explainshell.com)

Semoga artikel ini dapat membantu.

CategoriesProgramming

Coding IOS Lebih Cepat Dari Biasanya!

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 Dependency atau 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

Link Demo Project : https://github.com/NandaMocha/LibraryDemo

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.

Terimakasih all 🙂