Sunday, October 9, 2022

Membuat Aplikasi Django dan PostgreSQL dengan menggunakan Docker cara 1

Membuat Aplikasi Django dan PostgreSQL dengan menggunakan Docker cara 1

Docker adalah layanan yang menyediakan kemampuan untuk mengemas dan menjalankan sebuah aplikasi dalam sebuah lingkungan terisolasi yang disebut dengan container. Dengan adanya isolasi dan keamanan yang memadai memungkinkan kamu untuk menjalankan banyak container di waktu yang bersamaan pada host tertentu. 

Docker adalah software open-source yang digunakan untuk meluncurkan (deploy) aplikasi di dalam container virtual. Dengan container virtual ini (containerization), aplikasi bisa dijalankan secara terisolasi di environment yang kompleks sehingga tidak menimbulkan masalah pada environment lainnya.

Docker ini diperkenalkan pada tahun 2013 oleh Solomon Hykes pada acara PyCon. Beberapa bulan setelahnya docker secara resmi diluncurkan, tepatnya pada tahun 2014.

Cara Kerja Docker

Cara kerja Docker adalah dengan menciptakan sebuah ruang isolasi untuk meluncurkan aplikasi atau layanan. Ruang isolasi ini disebut Container, seperti ‘wadah’ yang akan menampung suatu benda agar tidak tumpah ke area lain.

Penjelasan Singkat tentang Container Docker

Docker container adalah sebuah paket software yang berisi semua dependensi yang diperlukan untuk menjalankan aplikasi tertentu. Semua konfigurasi dan instruksi untuk memulai atau menghentikan container diperintahkan oleh sebuah komponen yang disebut ‘image Docker’.

Container ini menghindarkan user dari masalah kompatibilitas yang mungkin terjadi ketika menjalankan aplikasi di beberapa sistem yang berbeda. Sebab, dengan container ini, software akan berjalan dengan cara yang sama di environment mana pun.

Kapan pun image dijalankan user, container baru akan dibuat.

Pengelolaan container juga mudah berkat bantuan Docker API atau command line interface (CLI). Apabila beberapa container diperlukan, user bisa mengontrolnya dengan Docker compose tool.

Selain container yang baru saja dibahas, arsitektur Docker terdiri dari empat komponen utama, yaitu:

  • Client Docker – komponen utama untuk membuat, mengelola, dan menjalankan aplikasi dalam container. Client Docker adalah metode utama untuk mengontrol server Docker melalui CLI seperti Command Prompt (Windows) atau Terminal (macOS, Linux).
  • Server Docker – juga disebut daemon Docker. Server Docker menunggu permintaan REST API yang dibuat oleh client Docker serta mengelola image dan container.
  • Image Docker – komponen yang memerintahkan server Docker terkait persyaratan tentang cara container Docker dibuat. Image bisa didownload dari website seperti Docker Hub. Anda juga bisa membuat custom image, yaitu dengan membuat Dockerfile dan meneruskannya ke server. Perlu diketahui bahwa Docker tidak menghapus image yang tidak digunakan, jadi user harus menghapus data image sendiri agar tidak menumpuk.
  • Registry Docker – aplikasi sisi server open-source yang digunakan untuk menghosting dan mendistribusikan image Docker. Registry sangat berguna untuk menyimpan image secara lokal dan mengelolanya sepenuhnya. Atau, user bisa mengakses Docker Hub yang tadi disebutkan, yang merupakan repositori image Docker terbesar di dunia.

Fungsi Docker

Docker memiliki banyak fungsi untuk berbagai contoh penerapan. Di bagian ini, kami akan membahas fungsi Docker dan tiga contoh umum penggunaannya.

Mencoba Software Baru

Dengan Docker, Anda bisa mencoba software baru tanpa harus menginstalnya secara manual. Docker juga berguna kalau Anda memerlukan software yang harus disiapkan cepat.

Sebagai contoh, proses setup server MySQL bisa memakan waktu lama. Nah, dengan Docker, Anda hanya memerlukan satu perintah melalui CLI untuk melakukannya.

Mempelajari CLI

Meskipun bisa berjalan pada semua jenis perangkat, tadinya Docker dirancang khusus untuk Linux. Jadi, kami menyarankan agar Anda mengonfigurasinya pada sistem yang berbasis Linux.

Dengan begitu, Anda pun bisa mempelajari administrasi sistem, command line interface, dan scripting lebih lanjut dengan lebih baik.

Mengurangi Risiko Insiden

Apabila terjadi kegagalan hardware, user bisa segera mengembalikan perubahan apa pun yang dibuat kalau tersedia image Docker.

User hanya perlu mengimpor backup image ke perangkat baru, lalu Docker akan membereskan sisanya. Backup image Docker juga berguna saat developer ingin melakukan rollback ke versi lama software tertentu karena adanya bug atau masalah kompatibilitas.

Kelebihan dan Kekurangan Docker

Nah, setelah Anda memahami apa itu Docker dan fungsinya, sebaiknya cari tahu juga kelebihan dan kekurangannya. Meskipun memiliki banyak manfaat, Docker juga memiliki kelemahan dalam beberapa aspek. Di bagian ini, kami akan membahas kelebihan dan kekurangan software ini.

Kelebihan Docker

  • Portabilitas – daya tarik utama Docker adalah portabilitasnya. Docker memungkinkan user membuat atau menginstal aplikasi kompleks di perangkat, dan aplikasi tersebut dijamin bisa berjalan. Docker container memiliki semua yang dibutuhkan aplikasi, hanya dengan sedikit atau bahkan tanpa input dari user.
  • Automasi – dengan bantuan cron job dan Docker container, user bisa mengotomatiskan pekerjaan dengan mudah. Automasi membantu developer menghindari tugas yang membosankan dan repetitif, serta menghemat waktu.
  • Komunitas – Docker memiliki channel Slack khusus, forum komunitas, dan ribuan kontributor di website developer seperti StackOverflow. Terlebih lagi, ada lebih dari 9 juta image container yang dihosting di Docker Hub.

Kekurangan Docker

  • Kecepatan – meskipun akan lebih cepat untuk menjalankan aplikasi melalui Docker container daripada di VM, Docker masih lebih lambat dibandingkan dengan menjalankan aplikasi secara native pada server fisik.
  • Kemudahan penggunaan – Docker tidak dimaksudkan untuk menjalankan aplikasi yang memerlukan Graphical User Interface (GUI). Artinya, user harus familiar dengan baris perintah/command line, dan melakukan semua tindakan di sana. Alur belajar yang rumit, keterbatasan OS tertentu, dan frekuensi update yang lumayan menjadikan Docker sulit untuk dipahami. Bahkan, ketika Anda merasa sudah memahami Docker luar dalam, masih ada orkestrasi yang perlu dipertimbangkan, yang menjadikannya makin kompleks.
  • Keamanan – Docker berjalan pada sistem operasi host, yang berarti software berbahaya apa pun yang bersembunyi di balik containernya bisa sampai ke mesin host.

Docker vs Virtual Machine

Meski Docker dan Virtual Machine (VM) memiliki fungsi yang serupa, ada perbedaan dari keduanya dalam hal performa, dukungan OS, dan portabilitas.

Perbedaan Docker dan Virtual Machine adalah, container Docker menggunakan OS yang sama dengan host, sedangkan VM memiliki OS tamu yang berjalan dari sistem host. Metode operasi ini memengaruhi performa, kebutuhan hardware, dan dukungan OS.

Agar lebih mudah, simak detail perbandingannya pada tabel di bawah ini.

DockerVirtual Machine
OSMenggunakan OS yang sama antar-containerOS baru untuk setiap VM
KeamananKurang aman karena OS dan kernel digunakan bersamaLebih aman karena VM tidak berbagi sistem operasi
PerformaPerforma cepat bahkan dengan beberapa containerMakin banyak VM, performa makin kurang stabil
Waktu bootingCepat (dalam hitungan detik)Lambat (dalam hitungan menit)
MemoriRinganMemerlukan banyak memori
Kebutuhan ruang penyimpananBiasanya dalam ukuran megabyteBiasanya dalam ukuran gigabyte
PortabilitasMudah diluncurkan di berbagai lingkunganVM sulit di-port ke sistem lain

Meskipun teknologi container Docker lebih unggul pada hampir semua aspek, VM lebih aman karena sistem operasinya tetap terpisah (independen) dari hardware.

Oke kali ini kit acoba akan membuat aplikasi Django dan PostgreSQL di Windows dengan menggunakan Docker, langkah-langkahnya sebagai berikut:

  • Download aplikasi Docker disini
  • Buka command prompt dan tempatkan di direktori yang telah ditentukan
  • Buat direktori kerja, misal dengan nama djangodockertest. Di command promt masukan perintah:
mkdir djangodockertest
  • Masuk ke direktori kerja yang tadi dibuat
cd djangodockertest
  • Buat file baru dengan nama requirements.txt untuk menyimpan daftar library atau paket aplikasi yang akan diinstal yang dibutuhkan Django. Misal dalam contoh ini saya menggunakan  vim  sebagai editor teks seperti yang ada di Linux atau Mac. Untuk mendonload aplikasi silahkan dapatkan disini
vim requirements.txt
  • Masukan daftar aplikasi
Django~=4.0.0
psycopg2-binary==2.9.3
  • Buat file dengan nama Dockerfile
vim Dockerfile
  • Masukan kode berikut
FROM python:3
ENV PYTHONUNBUFFERED 1
WORKDIR /code/
COPY requirements.txt /code/
RUN pip install -r requirements.txt
COPY . /code/
  • Buat file dengan nama docker-compose.yml
vim docker-compose.yml
  • Masukan kode
version: "3.9"

services:
    db:
      image: postgres
      volumes:
      - ./data/db:/var/lib/postgresql/data
      environment:
      - POSTGRES_DB=postgres
      - POSTGRES_USER=postgres
      - POSTGRES_PASSWORD=password
    web:
      build: .
      command: python manage.py runserver 0.0.0.0:8000
      volumes:
        - .:/code
      ports:
        - "8000:8000"
      depends_on:
        - db

  • Buat project baru Django, misal dengan nama djangodockertest
 vim docker-compose run web django-admin startproject djangodockertest
  • Ubah setingan Database di file settings.py yang terdapat di folder djangoprojecttest. dengan catatan di komputer lkal sudah diinstal PostgreSQL dan buat database tertentu.
DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.postgresql',
        'NAME': 'postgres',     #sesuaikan
        'USER': 'postgres',     #sesuaikan
        'PASSWORD': 'password', #sesuaikan
        'HOST': 'db', #sesuai setingan di docker-compose.yml
        'PORT': 5432,
        }
}
  • Buat makemigrations
docker-compose run web python manage.py makemigrations
  • Lakukan migrasi
docker-compose run web python manage.py migrate
  • Jalankan perintah docker-compose up
docker-compose up
  • Test buka server dengan buka di browser dan masuk ke 127.0.0.1:8000, jika berhasil maka akan tampil halaman awal aplikasi Django.
  • Selanjutnya, lakukan langkah-langkah untuk membuat user admin dan lain sebagainya. 
  • Jika ingin mematikan service Docker, maka ketikan perintah: 
docker-compose down



Demikian contoh sederhana cara menggunakan Docker untuk membuat aplikasi Django dan PostgreSQL, semoga bermanfaat. @wawanhn



Sumber:
https://www.hostinger.co.id/tutorial/apa-itu-docker?
https://www.dicoding.com/blog/apa-itu-docker/

Thursday, October 6, 2022

Deploy Aplikasi Django menggunakan Droplet di DigitalOcean Bagian 1

Deploy Aplikasi Django menggunakan Droplet di DigitalOcean Bagian 1

Digital Ocean

Bagi yang bekerja dalam dunia cloud pasti sudah sering mendengan Digital Ocean sebagai perusahaan yang menyediakan layanan berbasis cloud salah satunya untuk infrastruktur website. Digital Ocean merupakan server cloud yang menggunakan SSD sebagai penyimpanan sehingga mempercepat akses data. Dengan menggunakan cloud juga kita bisa dengan mudah melakukan upgrade untuk menaikan spek layanan ataupun downgrade untuk menurunkan layanan dengan cepat dan mudah.

Digital Ocean menyediakan layanan VPS dengan paket yang murah dan user friendly. Perusahaan ini menurut sya dalam layanan cloud VPS hampir sebanding dengan layanan Amazon Web Service. Beberapa alasan untuk memilih menggunakan VPS dari Digital Ocean adalah sebagai berikut:

  • Control Panel yang sederhana,
  • Komunitas developer yang banyak tersedia,
  • Harga cukup terjangkau dari mulai $5 untuk hosting VPS
  • Kemudahan dalam instalasi
Dalam tulisan ini saya akan berbagi bagaimana melakukan deploy aplikasi Django menggunakan Digital Ocean. Dengan catatan sebelumnya kita harus mendaftar terlebih dahulu akun digital ocean dengan membayar $5 dengan paypal atau kartu kredit.

Step 1 — Membuat Droplet 

Untuk mebuat Droplet silahkan login ke web Digital Ocean dan create Droplet dengan memilih jenis sistem operasi dan fitur atau spek VPS yang diinginkan. 

Step 2 — Koneksi ke VPS menggunakan MobaXterm

Download aplikasi MobaXterm download disini

Step 3 — Konfigurasi Server

Berikut beberapa skrip untuk konfigurasi dan persiapan library yang dibutuhkan untuk aplikasi Django

root@ubuntu-s-1vcpu-1gb-intel-nyc1-01:~# sudo apt update

root@ubuntu-s-1vcpu-1gb-intel-nyc1-01:~# sudo apt install python3-pip

root@ubuntu-s-1vcpu-1gb-intel-nyc1-01:~# sudo apt install python3-dev

root@ubuntu-s-1vcpu-1gb-intel-nyc1-01:~# sudo apt install libpq-dev

root@ubuntu-s-1vcpu-1gb-intel-nyc1-01:~# sudo apt install postgresql

root@ubuntu-s-1vcpu-1gb-intel-nyc1-01:~# sudo apt install postgresql-contrib

root@ubuntu-s-1vcpu-1gb-intel-nyc1-01:~# sudo apt install curl

root@ubuntu-s-1vcpu-1gb-intel-nyc1-01:~# sudo apt install nginx

Step 4 — Creating the PostgreSQL Database and User

Dalam langkah ini akan membuat sebuah database dan user database untuk aplikasi Django dengan menggunakan aplikasi RDBMS PostgrSQL dan ekstensi Postgres untuk mengolah data spasial.

Secara standarnya user Postgres digunakan sebagai sebuah skema autentifikasi yang dinamakan peer authentication untuk dalam koneksi lokal. Artinya jika user pengguna sistem operasi sesuai dengan username Postgres maka user dapat login tanpa autentifikasi lebih lanjut.

Selama proses instalasi Postgres, sebuah username dengan nama postgres dibuat sebagai user postgres PostgreSQL. User ini akan dapat digunakan untuk melakukan operasi administrasi database. Untuk bisa login ke sesi interkatif Postgres digunakan sudo dan memasukan username dengan menuliskan perintah opsi -u:

root@ubuntu-s-1vcpu-1gb-intel-nyc1-01:~# sudo -u postgres psql

Perintah diatas akan menampilkan prompt PostgreSQL untuk setup kebutuhan dalam mebuat projek database. Pertama buat database baru dengan nama myproject.

postgres=# CREATE DATABASE myproject;

Selanjutnya, buat user untuk database tersebut dan tentukan password yang aman:

postgres=# CREATE USER myprojectuser WITH PASSWORD 'password';

Kemudian, lakukan sedikit modifikasi paramter koneksi untuk user yang sudah dibuat. Hal ini akan mempercepat operasi database sehingga nilai yang tepat tidak akan ditanyakan dan disetel setiap koneksi tersambung. 

Set nilai encoding ke UTF-8, yang diharapkan aplikasi Django.

postgres=# ALTER ROLE myprojectuser SET client_encoding TO 'utf8';

Kemudian set skema standar isolasi transaksi menjadi read committed untuk membaca commit dan mencegah pembacaan dari transaksi uncommitted:

postgres=# ALTER ROLE myprojectuser SET default_transaction_isolation TO 'read committed';

Project Django secara standar akan di set menggunakan UTC, set zona waktu yang relevan:

postgres=# ALTER ROLE myprojectuser SET timezone TO 'UTC';

Langkah-langkah diatas merupakan hal yang direkomendasikan dalam sebuah aplikasi Django. Sekarang berikan akes user yang dibuat ke datase yang ditentukan:

postgres=# GRANT ALL PRIVILEGES ON DATABASE myproject TO myprojectuser;

Jika langkah-langkah tersebut sudah selesai, untuk keluar dari prompt PostgreSQL gunakan perintah berikut:

postgres-# \q

Step 5 — Membuat User di VPS

Untuk membuat user dalam VPS Droplet menggunakan perintah add <namauser>. Selanjutnya masukan password dan data lainnya.

root@ubuntu-s-1vcpu-1gb-intel-nyc1-01:~# adduser user1

Untuk membuat user dalam VPS Droplet menggunakan perintah add <namauser>. Selanjutnya masukan password dan data lainnya. Dan gunakan perintah usermod untuk merubah user yang dibuat menjadi admin. 

root@ubuntu-s-1vcpu-1gb-intel-nyc1-01:~# usermod -aG sudo user1

Selanjutnya pindah ke direktori user yang sudah dibuat. 

root@ubuntu-s-1vcpu-1gb-intel-nyc1-01:~# cd /home/user1

Step 6 — Membuat Virtual Environment untuk Project Python

Setelah selesai membuat database, selanjutnya siap untuk mempersiapkan proyek aplikasi Django. Untuk membuat aplikasi Django sebaiknya menggunakan sebuah virtual environment untuk efiensi managemen paket library yang digunakan. Menginstal Django dalam sebuah virtual environment memungkinkan sebuah proyek aplikasi Django terpisah dari aplikasi lain yang secara khusus menggunakan library-library versi terntentu. Dengan virtual environment dalam sebuah sistem operasi memungkinkan membuat beragam aplikasi Django dalam berbagai versi yang membutuhkan tipe atau versi library yang berbeda-beda sesuai kebutuhan dari aplikasi Django.

Untuk melakukan ini, dibutuhkan untuk library virtualenv menggunakan pip:

Upgrade pip:

root@ubuntu-s-1vcpu-1gb-intel-nyc1-01:~# sudo -H pip3 install --upgrade pip

Instal paket virtulaenv:

root@ubuntu-s-1vcpu-1gb-intel-nyc1-01:/home/user1# sudo -H pip3 install virtualenv

Buat folder direktori proyek misal myprojectdir:

root@ubuntu-s-1vcpu-1gb-intel-nyc1-01:/home/user1# mkdir myprojectdir

Pindah ke folder myprojectdir:

root@ubuntu-s-1vcpu-1gb-intel-nyc1-01:/home/user1# cd myprojectdir

Buat virtualenv misal dengan nama myprojectenv:

root@ubuntu-s-1vcpu-1gb-intel-nyc1-01:/home/user1/myprojectdir# virtualenv myprojectenv

Aktifkan virtual environment myprojectenv:

root@ubuntu-s-1vcpu-1gb-intel-nyc1-01:/home/user1/myprojectdir# source myprojectenv/bin/activate

Hasilnya virtual environment myprojectenv aktif dan selajutnya library dan paket-paket yang dibutuhkan untuk membuat aplikasi Django secara terisolasi.Folder kerja terlihat seperti ini:

 (myprojectenv)user@host:~/myprojectdir$.

Dengan aktifnya virtual environment selanjutnya install Django, Gunicorn, and the psycopg2 PostgreSQL adaptor:

(myprojectenv) root@ubuntu-s-1vcpu-1gb-intel-nyc1-01:/home/user1/myprojectdir# pip3 install django


(myprojectenv) root@ubuntu-s-1vcpu-1gb-intel-nyc1-01:/home/user1/myprojectdir# pip3 install gunicorn

(myprojectenv) root@ubuntu-s-1vcpu-1gb-intel-nyc1-01:/home/user1/myprojectdir# pip3 install psycopg2-binary


Selanjutnya buat project Django misal dengan nama myproject:

(myprojectenv) root@ubuntu-s-1vcpu-1gb-intel-nyc1-01:/home/user1/myprojectdir# python3 -m django startproject myproject ../myprojectdir

Selanjutnya ubah file settings.py yang terdapat di folder myprojectdir/myproject. Pada bagian ALLOWED_HOSTS tentukan alamat server atau IP yang bisa mengakses ke aplikasi Django. Silahkan masukan alamat web atau ip dan localhost.

# ALLOWED_HOSTS = ['.example.com', '203.0.113.5']
ALLOWED_HOSTS = ['159.223.181.170','localhost']
Kemudian setting pada bagian database.

. . .

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.postgresql_psycopg2',
        'NAME': 'myproject',
        'USER': 'myprojectuser',
        'PASSWORD': 'password',
        'HOST': 'localhost',
        'PORT': '5432',
    }
}

. . .
Kemudian pada bagian bawah file settings.py yang menentukan dimana static files harus diletakan. Ini diperlukan agar Nginx dapat menangani permintaan untuk item ini.

. . .

STATIC_URL = '/static/'
import os
STATIC_ROOT = os.path.join(BASE_DIR, 'static/')

Step 7 — Menyelesaikan Setup Initial Project

Langkah selanjutnya adalah melakukan migrasi inisialskema database ke database PostgreSQL menggunakan kode:

(myprojectenv) root@ubuntu-s-1vcpu-1gb-intel-nyc1-01:/home/user1/myprojectdir# python manage.py makemigrations


(myprojectenv) root@ubuntu-s-1vcpu-1gb-intel-nyc1-01:/home/user1/myprojectdir# python manage.py migrate

Langkah selanjutnya adalam membuat user admin. misal admin

(myprojectenv) root@ubuntu-s-1vcpu-1gb-intel-nyc1-01:/home/user1/myprojectdir# python manage.py createsuperuser

Lakukan Collect semua file static kedalam lokasi directori yang sudah ditentukan:

(myprojectenv) root@ubuntu-s-1vcpu-1gb-intel-nyc1-01:/home/user1/myprojectdir# python manage.py collectstatic

Kemudian buka akses port  8000:

(myprojectenv) root@ubuntu-s-1vcpu-1gb-intel-nyc1-01:/home/user1/myprojectdir# sudo ufw allow 8000

Terakhir, test project dengan menjalankan palikasi server Django dengan menggunakan perintah:

(myprojectenv) root@ubuntu-s-1vcpu-1gb-intel-nyc1-01:/home/user1/myprojectdir# python manage.py runserver 0.0.0.0:8000

Jika berhasil, buka alamat http://alamat_server atau IP:8000, maka hasilnya:



Step 8 — Testing Gunicorn’s agar Aplikasi Django sebagai Server

Sebelum keluar dari virtual environment, test Gdahulu unicorn untuk memastikanbahwa Gunicorn dapat melayani aplikasi. Masukan perintah di direktory myprojectdir:

(myprojectenv) root@ubuntu-s-1vcpu-1gb-intel-nyc1-01:/home/user1/myprojectdir# gunicorn --bind 0.0.0.0:8000 myproject.wsgi

Jalankan lagi aplikasi, buka alamat http://alamat_server atau IP:8000 hasilnya sama dengan gambar diatas.

Jika ingin mematikan server ketik Ctrl + C. Dan jika akan keluar dari virtual environment, silahkan ketikan deactivate.

Step 9 — Membuat File systemd Socket and Service untuk Gunicorn

Buat file gunicorn.socket di folder /etc/systemd/system/

  1. $ sudo nano /etc/systemd/system/gunicorn.socket

Kemudian inputkan kode sebagai berikut.

[Unit]
Description=gunicorn socket

[Socket]
ListenStream=/run/gunicorn.sock

[Install]
WantedBy=sockets.target

Buat file gunicorn.service di folder /etc/systemd/system/

Kemudian masukan kode sebagai berikut:

[Unit]
Description=gunicorn daemon
Requires=gunicorn.socket
After=network.target

[Service]
User=user1
Group=www-data
WorkingDirectory=/home/user1/myprojectdir
ExecStart=/home/user1/myprojectdir/myprojectenv/bin/gunicorn \
          --access-logfile - \
          --workers 3 \
          --bind unix:/run/gunicorn.sock \
          myproject.wsgi:application

[Install]
WantedBy=multi-user.target

Buat file gunicorn.socket di folder /etc/systemd/system/

Jalankan socket Gunicorn socket yang akan menghasilkan file socket di /run/gunicorn.sock:

  1. $ sudo systemctl start gunicorn.socket

Lalu enable gunicorn socket, systemd secara otomatis akan menjalankan gunicorn.service:

  1. $ sudo systemctl enable gunicorn.socket

Step 10 — Checking for the Gunicorn Socket File

alu enab



Referensi:
  • https://www.digitalocean.com/community/tutorials/how-to-set-up-django-with-postgres-nginx-and-gunicorn-on-ubuntu-18-04

Monday, August 22, 2022

Download Ebook Understanding Machine Learning: From Theory to Algorithms

Download Ebook Understanding Machine Learning: From Theory to Algorithms


 Bagi yang tertarik mempelajari Machine Learning, berikut Link Ebook 

Understanding Machine Learning: From Theory to Algorithms

dalam format PDF yang bisa di download secara gratis di  LINK ini

Free Online Copy

Understanding Machine Learning, © 2014 by Shai Shalev-Shwartz and Shai Ben-David

Published 2014 by Cambridge University Press

PDF of manuscript posted by permission of Cambridge University Press.

Users may download a copy for personal use only.

Not for distribution.


Terima kasih. @wawanhn

Friday, August 19, 2022

Membuka Web Browser dengan Python



Dengan menggunakan library webbrowser dapat membuat skrip untuk membuka halaman web dengan Python. Kode skrip yang digunakan adalah sebagai berikut (sangat simple):


import webbrowser

url = input("Input URL: ")

webbrowser.open(url)


Import webbrowser memangggil library webbrowser yang menyediakan fungsi untuk membuka webbrowser. Kemudian dibuat variable url yang berisi input halaman web yang akan dibuka. Dan terkahir perintah webbroser.open adalah untuk membuka halaman web dengan menggunakan browser yang terdapat dalam komputer kita.

Oke demikian, sangat simpel dan semoga bermanfaat. @wawanhn


Referensi:
- www.clcoding.com
- https://twitter.com/clcoding/status/1561889221526269952

Tuesday, August 16, 2022

Konversi File Word ke PDF dengan Menggunakan Python

PyCharm Logo


Dengan menggunakan Python kita bisa dengan mudah melakukan konversi file dokumen word atau docx mejadi file dokumen pdf. Salah satu library atau package di Python yang bisa digunakan adalah docx2pdf. Namun hal yang harus di ingat dalam menggunakan ini adalah aplikasi microsoft word harus sudah terintall dalam sistem operasi kita. Dalam hal ini saya berhasil menggunakan Windows & Mac yang sudah terinstall aplikasi Microsoft Word. Saat menggunakan Kaggle belum berhasil dijalankan karena dalam sistem tersebut belum terinstall aplikasi word. Warning error di Kaggle adalah docx2pdf is not implemented for linux as it requires Microsoft Word to be installed.

Oke saat ini saya akan coba membuat aplikasi konversi file docx ke pdf dengan menggunakan PyCharm yang terdapat dalam sistem informasi Windows. Caranya adalah sebagai berikut:

- Buka aplikasi PyCharm, jika pertama kali maka kita buat working project baru.

- Kemudian klik menu File -> Settings, pada bagian Project pilih Project Interpreter lalu klik tanda + Install Alt +Insert


- Ketikan doxc2pdf, lalu pilih button Install Package pada bagian bawah, tunggu sampai proses instalasi selesai lalu klik OK.

- Selanjutnya buat file python baru, dan masukan kode program sebagai berikut


from docx2pdf import convert
doxc = 'Test File.docx'
pdf = 'Test.pdf'
convert(doxc,pdf)


- Dengan catatan silahkan sesuai path dari file docx dan pdf hasil konversi.

- Kemudian run kode program, dan jika kode program kita benar maka akan dibuat satu file dokumen pdf dengan nama Test.pdf di komputer kita.

Cukup simpel dan mudahkan? oke terima kasih sudah menyimak, semoga bermanfaat. @wawanhn

Referensi:

- https://pypi.org/project/docx2pdf/

- https://medium.com/@nutanbhogendrasharma/convert-word-file-to-pdf-html-and-pdf-to-jpg-png-in-python-2e5da4f6a2fb

Konversi File Pdf ke Word dengan Menggunakan Python

Konversi File Pdf ke Word dengan Menggunakan Python

Dengan menggunakan bahasa Python kita bisa melakukan konversi dokumen pdf menjadi dokumen word dengan menggunakan library pdf2docx. 

Berikut cara membuat file file dokumen docx dari hasil konversi file format pdf. Dalam contoh ini saya gunakan notebook dari Kaggle. Silahkan buka web Kaggle kemudian buat notebook baru dengan cara klik menu < >Code disebelah kiri lalu klik New Notebook dan tuliskan kode perintah dalam cell sebagai berikut:


from pdf2docx import Converter

pdf_file = '../input/file pdf.pdf'

docx_file = './test.docx'

cv = Converter(pdf_file)

cv.convert(docx_file)

cv.close()


Kemudian Run current cell atau tekan Ctrl + Enter dan tunggu proses sampai konversi selesai dilakukan. Jika berhasil maka akan dibuat satu file test.docx di Data pada folder Output/Working.

Jika terdapat error karena package pdf2docx belum terinstall maka lakukan instalasi package pdf2docx dengan menggunakan perintah:


!pip install pdf2docx


Dengan catatan kita harus mengaktifkan atau enable Internet di bagian Settings di menu sebelah kanan.  

Oke cukup simpel kan bagaimana konversi file pdf ke docx dengan menggunakan library/package pdf2docx di Python.

Terima kasih sudah menyimak semoga bermanfaat. @wawanhn


Referensi:

https://www.clcoding.com/2022/08/day-83-convert-pdf-to-docx-using-python.html