CategoriesAndroidiOSLinuxProgrammingPythonSwift

Open CV untuk Pengolahan Citra dan Penglihatan Komputer.

OpenCV (Open Source Computer Vision) adalah perpustakaan open-source yang berisi berbagai fungsi dan algoritma untuk pengolahan citra dan penglihatan komputer. OpenCV ditulis dalam bahasa pemrograman C++ dan mendukung berbagai platform seperti Windows, Linux, macOS, iOS, dan Android. Selain itu, OpenCV juga menyediakan antarmuka untuk bahasa pemrograman lain seperti Python dan Java. 

Continue reading
CategoriesLinux

Konfigurasi SSH Key-Based Authentication Pada Server Linux

Apa itu SSH Key-Based Authentication?

SSH Key-based Authentication adalah mekanisme otentikasi mengunakan SSH Key. SSH Key adalah sepasang kunci kriptografi (private key dan public key) yang dapat digunakan untuk melakukan otentikasi SSH client. Private key bersifat rahasia, harus disimpan oleh pemilik key dan tidak boleh diberikan kepada pihak lain. Sebaliknya, public key bersifat terbuka, boleh diberikan kepada pihak lain untuk melakukan otentikasi terhadap akses yang dilakukan oleh pemilih private key.

Lebih detail tentang cara kerja SSH Key-based authentication dapat dibaca disini.

Continue reading

CategoriesLinux

Backup masing-masing database MySQL Otomatis Setiap Hari

Backup database MySQL sebenarnya cukup mudah. Kita bisa menggunakan perintah mysldump untuk melakukan backup database MySQL, misalnya:

$ mysqldump -u root -p --all-databases > all_databases.sql

Namun melakukan backup dengan perintah tersebut menimbulkan beberapa masalah, yaitu:

  • Bagaimana bila ada database yang tidak ingin kita backup, misalnya default database seperti information_schema, mysql, performance_schema, atau sys?
  • Bagaimana bila kita ingin melakukan restore database tertentu saja?
  • Bagaimana bila kita ingin melakukan backup rutin setiap hari?

Dalam tulisan ini, saya akan tunjukkan contoh backup script sederhana yang dapat melakukan backup database MySQL secara otomatis sekaligus menyelesaikan permasalahan tersebut.

Continue reading
CategoriesLinux

Membuat bash alias

Sesuai namanya, “bash aliases” digunakan untuk membuat alias sebuah perintah. Misalnya, kita ingin membuat alias untuk perintah menampilkan file dalam current directory berurutan berdasarkan ukuran berikut ini

$ du -hs * | sort -h

Kita dapat membuat alias untuk perintah tersebut dengan perintah alias seperti contoh berikut ini

$ alias dusort='du -hs * | sort -h'

Setelah membuat alias, kita bisa menjalankan alias tersebut sehingga tidak perlu lagi mengetikkan perintah yang panjang seperti sebelumnya.

$ dusort
Continue reading
CategoriesLinux

Cara instalasi DreamFactory 2.14.2

Setahun yang lalu, terjadi perubahan besar pada salah satu open source project favorit, DreamFactory. Pada versi setelah 2.14.2, developer DreamFactory menghapus dua fungsi yang paling populer digunakan oleh komunitas open source community, yaitu fungsi untuk menghubungkan DreamFactory dengan MySQL server dan fungsi untuk membuat script.

Dalam artikel ini saya tidak akan menceritakan permasalahan tersebut dengan panjang lebar. Bila tertarik untuk mengetahui akar permasalahannya, ada dapat membaca website berikut ini. Dalam artikel ini kita akan fokus tentang bagaimana mengatasi permasalahan tersebut dengan melakukan instalasi versi terdahulu dari DreamFactory sebelum terjadi perubahan tersebut, yaitu DreamFactory versi 2.14.2.

Server yang saya gunakan berbasis Linux Ubuntu 20.04 dengan web server NGINX, PHP, dan database MySQL. Sekarang mari kita bahas langkah-langkah instalasi DreamFactory.

Instalasi NGINX

Update apt repository dan lakukan instalasi NGINX dengan perintah

$ sudo apt update
$ sudo apt install nginx

Instalasi MySQL Server

Lakukan instalasi database server MySQL

$ sudo apt install mysql-server

Perintah ini optional, namun berguna untuk meningkatkan keamanan database server.

$ sudo mysql_secure_installation

Sekarang kita perlu membuat satu MySQL user untuk DreamFactory. Jalankan perintah berikut untuk membuat database df dengan user df dan password rahasia.

$ sudo mysql
mysql> CREATE DATABASE df;
mysql> CREATE USER 'df'@'localhost' IDENTIFIED BY 'rahasia';
mysql> GRANT ALL PRIVILEGES ON df.* TO 'df'@'localhost';
mysql> FLUSH PRIVILEGES;
mysql> EXIT;

Instalasi PHP-FPM

Versi PHP yang kita gunakan adalah versi 7.2 karena versi ini yang telah saya coba dan berhasil digunakan untuk DreamFactory versi 2.14.2. Berikut langkah instalasi PHP-FPM.

$ sudo apt install software-properties-common
$ sudo add-apt-repository ppa:ondrej/php
$ sudo apt update
$ sudo apt install php7.2-fpm \
    php7.2-mbstring \
    php7.2-xml \
    php7.2-curl \
    php7.2-mysql
$ sudo systemctl restart php7.2-fpm.service

Instalasi Composer

Lakukan instalasi composer dengan perintah berikut.

$ cd ~
$ php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');"
$ sudo php composer-setup.php --install-dir=/usr/local/bin --filename=composer
$ php -r "unlink('composer-setup.php');"

Instalasi Git Client

Secara default, git client sudah terpasang pada Linux Ubuntu 20.04. Namun bila belum ada, maka lakukan instalasi dengan perintah

$ sudo apt install git

Konfigurasi NGINX

Kita perlu melakukan konfigurasi NGINX agar dapat digunakan sebagai web server untuk DreamFactory. Bukalah file /etc/nginx/sites-available/default lalu ubah konfigurasinya seperti pada contoh berikut

server {
  listen [::]:80 default_server;
  server_name _;
  root /var/www/html/public;
  charset utf-8;
  index index.php index.html index.htm index.nginx-debian.html;
  location / {
    try_files $uri $uri/ /index.php?$query_string;
  }
  error_page 404 /index.php;
  location ~ \.php$ {
    include snippets/fastcgi-php.conf;
    fastcgi_pass unix:/var/run/php/php7.2-fpm.sock;
  }
}

Restart service NGINX dengan perintah

$ sudo systemctl restart nginx.service

Instalasi DreamFactory

Sekarang masuk ke bagian inti dari tulisan ini, yaitu cara instalasi DreamFactory. Langkah pertama masuklah ke dalam root directory web server /var/www/html.

$ cd /var/www/html

Clone source code DreamFactory versi 2.14.2.

$ git clone --branch 2.14.2-release --single-branch https://github.com/dreamfactorysoftware/dreamfactory.git .

Edit file composer.json dan hapus baris ini karena kita tidak menggunakan mongodb.

"dreamfactory/df-mongodb" : "~0.15.1",

Kemudian jalankan perintah berikut

$ sudo composer update
$ sudo composer install --no-dev
$ sudo php artisan df:env
$ sudo php artisan df:setup

Dalam proses instalasi tersebut, Anda akan diminta memasukkan beberapa data seperti MySQL password, user, dll. Silahkan masukkan data yang diminta sesuai dengan proses instalasi yang telah kita lakukan sebelumnya.

Langkah terakhir adalah melakukan update file permission dengan perintah.

$ sudo chown -R www-data storage/ bootstrap/cache/
$ sudo find . -type f -exec chmod 644 {} \;
$ sudo find . -type d -exec chmod 755 {} \;
$ sudo find storage/ -type d -exec chmod 2775 {} \;
$ sudo find storage/ -type f -exec chmod 664 {} \;
$ sudo find bootstrap/cache/ -type d -exec chmod 2775 {} \;
$ sudo find bootstrap/cache/ -type f -exec chmod 664 {} \;

Proses instalasi selesai, sekarang anda dapat membuka hasil instalasi tersebut melalui web browser misalnya dengan alamat http://localhost atau sesuai dengan domain server Anda.

Semoga bermanfaat.

CategoriesInternetLinuxProgramming

Menganal OpenStack untuk Cloud Computing

          Salah satu integrasi Open Stack yang pernah
saya buat ada dengan CRM (Customer Relationship Management) dimana Openstack
mengatur Cloud Computing yang berhubungan dengan penjualan atau yang sering
disebut dengan Cloud VPS, Cloud Hosting, Rack location dan RackSpace, integrasi
ini saya buat dalam bentuk Admin Dashboard yang bisa digunakan untuk mengatur
Cloud Computing dan Penjualan. Open stack memiliki fitur yang lengkap untuk
semua kebutuhan IAAS.

Gambaran Service dari OpenStack

Apa itu OpenStack?

       OpenStack merupakan project open source untuk platform cloud computing. sebagian besar digunakan sebagai Infrastructure as a Service (IaaS), di mana server virtual dan sumber daya lain tersedia untuk pelanggan.Platform perangkat lunak terdiri dari komponen-komponen yang saling terkait yang mengendalikan beragam perangkat keras multi-vendor yang meliputi pengolahan, penyimpanan dan sumber daya jaringan di seluruh data center. Pengguna dapat mengelolanya melalui dasbor berbasis web, hingga command-line tools, atau REST layanan web (wikipedia).

         OpenStack menyediakan solusi IaaS (Infrastructure ad a Service) dengan berbagai layanan yang berhubungan. Masing-masing layanan/service menyediakan API (Application Programming Interface) yang memfasilitasi integrasi. Layanan-layanan atau service-service ini dapat kita instal sesuai kebutuhan kita. Dimana API ini bisa digunakan untuk integrasi sesuai kebutuhan Anda, saya pernah membuat untuk kebutuhan CRM.

 

Service di Arsitektur OpenStack sebagai Berikut:

Dashboard / Horizon 

Dashboard menyediakan tampilan web yang berinteraksi dengan layanan OpenStack seperti meluncurkan instance, memberikan IP address dan mengkonfigurasi akses control untuk Nova, Neutron, Swift dll.

Compute / Nova

Compute/ Nva menyediakan manajemen instan dari Compute yang ada pada lingkungan OpenStack sebagai contoh Compute di Virtual Server. Nova / Compute memiliki fitur untuk managemen dalam Virtual Machine, baremetal servers dan system contaners. Nova /  Compute adalah daemon yang berjalan di linux server.

Networking / Neutron

Neoutorn memiliki fungsi untuk mempermudah kita memahami layanan Networking sebagai layanan yang membuat jaringan secara virtual tentunya. Memiliki plugin yang mendukung berbagai jaringan dari vendor dan teknologi.

Object Storage / Swift

Swift  Pada Object storage ini akan menympan dan menambil object data melalui RESTful, API berbasis HTTP.

Block Storage / Cinder

Cinder sebagai Object Storage menyediakan persistent block storage untuk menjalankan instance. Kita dapat melakukan  manajemen block storage devices.

Identity service / Keystone

Keystone menyediakan manajemen otorisasi layanan.

Image service / Glance

Glance adalah untuk pengelolaan image terutama untuk menyimpan dan meluncurkan VM disk images. OpenStack compute menggunakan hal ini selama provision.

Telemetry / Ceilometer

Ceilometer akan memantau billing, benchmarking, scalability dan tujuan statistik.

Orchestration / Heat

Heat berfungsi untuk menggabungkan beberapa aplikasi cloud.

Database service /  Trove

Trove Meydiakan layanan Cloud database-as-a-Service.

Data processing service

Menyediakan kemampuan provision untuk Hadoop clusters.

Kesimpulan

OpenStack adalah open source yang memili resource yan besar sehingga bisa digunakan stakeholder untuk membangun usaha atau bisnis maupun hanya untuk IOT. Namun apabila penggunaannya sebagai bisnis maka akan berguna , bayangkan apabila harus secara manual atau hanya dalam bentuk Insfrastruktur tanpa Service instan dari Open Stack, akan sangat merepotkan. Pada inti nya dengan Open Stack semua Insfrastruktur bisa tertata dan semua service bisa dijalankan dengan cepat dan Mudah. Untuk belajar lebih dalam silahkan dipijak disini.

Semoga Bermanfaat.

Wassalamualaikum.

CategoriesLinux

Cara instalasi LaTeX dan Texmaker di Linux Ubuntu

LaTeX is a high-quality typesetting system; it includes features designed for the production of technical and scientific documentation. LaTeX is the de facto standard for the communication and publication of scientific documents. LaTeX is available as free software [1].

LaTeX adalah perangkat lunak yang umum digunakan oleh mahasiswa untuk menulis karya ilmiah seperti tesis atau disertasi. Walaupun LaTeX awalnya terasa sulit untuk dipelajari, tetapi di balik itu LaTeX memberikan banyak kemudahan dan fitur yang tidak dimiliki oleh Word Processor.

Dalam tulisan ini saya tidak akan membahas tentang kelebihan dan kekurangan LaTeX, namun saya akan membahas cara instalasi LaTeX di Linux Ubuntu. Sebenarnya saya menggunakan Linux Mint 19, namun secara umum panduan ini akan sama untuk Linux Ubuntu dan turunannya.

Instalasi LaTex

Langkah pertama adalah melakukan instalasi distribusi LaTeX untuk Linux [2]. Ada beberapa distribusi LaTeX yang dapat anda gunakan, namun dalam tulisan ini saya akan menggunakan TeX Live.

Lakukan instalasi TeX Live menggunakan perintah:

$ sudo apt-get install texlive-full

Langkah kedua adalah melakukan instalasi LaTeX editor. LaTeX editor yang saya pilih adalah TexMaker. Lakukan instalasi TexMaker menggunakan perintah:

$ sudo apt-get install texmaker

Setelah instalasi selesai, bukalah TexMaker. Antarmuka TexMaker kurang lebih seperti Gambar 1.

Gambar 1. Antarmuka TexMaker

Sedikit tips tambahan dari saya, bila anda ingin file PDF yang dihasilkan ditampilkan dalam satu Windows yang sama, maka bukalah menu:

Options > Configure Texmaker > Commands

Pada bagian Pdf Viewer, centang pada pilihan Built-in Viewer dan Embed [3].

Contoh Dokumen LaTeX

Untuk menguji apakah instalasi anda berhasil. Buatlah TexMaker dan buatlah file baru menggunakan menu:

File > New

Kemudian masukkan teks berikut

\documentclass{article}

\title{Dokumen \LaTeX \ Pertamaku}
\date{2020-05-18}
\author{Mahendra Data}

\begin{document}
  \maketitle
  Hello World!
\end{document}

Jalankan perintah Quick Build, misalnya melalui menu:

Tools > Quick Build

Maka kita akan mendapat peringatan seperti Gambar 2.

Gambar 2. Peringatan tentang penamaan file.

Ya, sebelum dapat melakukan Quick Build, dokumen yang baru kita buat harus kita simpan menggunakan ekstensi .tex dan tanpa menggunakan spasi dan accents characters [4].

Sekarang simpanlah file tersebut, lalu jalankan lagi perintah Quick Build. Bila berhasil, maka akan menghasilkan tampilan yang kurang lebih seperti Gambar 3.

Gambar 3. Tampilan setelah perintah Quick Build berhasil dijalankan

Di dalam folder yang sama tempat kita menyimpan file .tex, Anda akan menemukan file .pdf hasil dari generate perintah Quick Build tersebut.

Selamat mencoba.

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!

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.