Muhammad Hafid

Muhammad Hafid

Blog Belajar Python atau Django

Muhammad Hafid

Muhammad Hafid

Tugas kita itu adalah bukan untuk berhasil, tugas kita adalah untuk mencoba, karena di dalam mencoba itulah kita menemukan dan belajar membangun kesempatan untuk berhasil.

Komentar di Github dengan Screenshoot

Sebelum melakukan tutorial ini kalian harus sudah mempunyai akun github ya, dengan cara registrasi user sebagaimana umumnya melakukan register user.

Bagi temen-temen yang aktif di forum github, mungkin ada beberapa yang masih bingung bagaimana cara memberikan komentar disuatu tread yang disertai dengan image screenshoot misalnya.

Cara cukup mudah, kalian hanya tinggal melakukan drag klik dan tahan gambar kalian dan drop ke dalam kotak komentar kalian di github, maka akan secara otomatis textarea github melakukan uploading image perhatikan milik saya dibawah ini ya contohnya :


Semoga bermanfaat.!

Menjalankan NPM Install Tanpa Akses Root

Pada tutorial kali ini saya menggunakan Linux Mint dengan NPM versi 6.4.1 dan Node Js versi v10.14.1. Saya ingin menjelaskan bagaimana cara menginstall paket npm tanpa harus menggunakan akses root / sudo.


Pertama pastikan kalian sudah menginstall npm dan nodejs di OS kalian,  kalian bisa cek dengan menggunakan 2 baris ini di terminal :
node -v dan npm -v
Apabila nodejs dan npm sudah terinstall di OS kalian maka akan keluar versi node dan npm kalian, tetapi apabila kalian belum menginstallnya, yuk ikut langkah-langkah dibawah ini :
sudo apt install curl
curl -sL https://deb.nodesource.com/setup_10.x | sudo bash -
Setelah itu pasti akan secara otomatis melakukan apt update, apabila tidak otomatis melakukan apt update kalian lakukan secara manual
sudo apt update
Setelah itu mari kita install nodejs dan npm nya dengan baris :
sudo apt-get install -y nodejs 
Konfigurasi NPM Package NodeJs Tanpa Root

Melihat file installasi node js terlebih dahulu dengan mengetikan :
npm config get prefix
Secara umum paket nodejs akan terinstall di dalam path :
/usr/lib/node_modules or /usr/local/lib/node_modules 
Setelah itu ketikan baris dibawah ini :
npm config set prefix ~/npm 
Perhatikan langkah dibawah ini dan lakukanlah :
# open your .bashrc (Linux) or .bash_profile (Mac) file for editing:
nano ~/.bashrc # for Linux
# or...
nano ~/.bash_profile # for Mac if you haven't created a .bashrc file
# add these lines:
export PATH="$PATH:$HOME/npm/bin"
export NODE_PATH="$NODE_PATH:$HOME/npm/lib/node_modules"
# save the file and then enter this command to make the changes take effect:
. ~/.bashrc
# or...
. ~/.bash_profile 
Lakukan pengecekan dan ubah permission dengan mengetikan :
ls -la ~/.npm
sudo chown -R $USER:`id -g -n $USER` ~/.npm

Apabila kalian sudah terlanjur menginstall paket di root, sekarang saatnya kalian pindahkan paket-paket tersebut ke dalam lokal (no root) dengan cara reinstall, contoh dibawah ini dan lakukan tanpa menggunakan "sudo" :
npm install -g bower
npm install -g grunt-cli
npm install -g gulp
npm install -g yo
Selamat mencoba.!
 

Django Migration Error Found wrong number (0) of constraints

Pernah kah kalian mengalami error django pada saat melakukan migration seperti pada gambar dibawah ini ?


Yang pada intinya adalah baris ini pesan errornya.
Found wrong number (0) of constraints
Saya mendapatkan pesan error ini dikarenakan ada class modul yang sebelumnya menggunakan meta unique together yang awalnya saya fungsikan untuk menolak data duplikat. Lalu saya rasa saya sudah tidak memerlukannya lagi dan menghilangkan meta unique together tersebut, setelah saya lakukan makemigrations tidak ada pesan error dan messagenya pun sesuai dengan apa yang saya inginkan :
Alter unique_together for fin001 (0 constraint(s))
Lalu apabila kalian menemukan masalah ini jangan panik langkah pertama adalah coba kalian perhatikan tabel database kalian,a apakah unique togethernya terbentuk seperti ini :


Jika benar seperti pada gambar diatas maka permasalahannya adalah sama seperti yang sedang dibahas.

Langkah awal adalah hanya lakukan clear migration dengan mengikuti tutorial saya sebelumnya di link dibawah ini :
http://www.mhafid.info/2017/10/cleaning-up-django-migrations.html
Apabila cara diatas sudah di ikuti dan masih muncul pesan Found wrong number (0) of constraints maka kalian lakukanlah ini :
python manage.py migrate --fake
Dengan perintah diatas permasalahan saya pun selesai, dan sekarang cobalah melakukan makemigrations dan migrate. 

Free CMS for Forum Discussion Platform

Yup jaman sekarang sudah banyak CMS atau yang biasa disebut dengan Sistem Konten Manajemen berbasis web yang bersifat open source, dalam pembahasan kali ini saya membahas mengenai cara installasi CMS untuk platform membangun forum diskusi seperti kaskus dengan menggunakan CMS open source yang sudah lama dikembangkan ini.

Saya mengenal CMS ini sudah lama sejak tahun 2010 lalu yaitu MyBB Forum, dan dulu saya pernah gunakan untuk membangun forum mahasiswa untuk berbagi info seputar perkuliahan khusus untuk kelas saya. Platform ini sangat mudah dalam pengoperasiannya dan develope nya jika diperlukan untuk menyesuaikan kebutuhan.

MyBB kali ini saya tutorialkan dengan menggunakan :
  • Os Linux Mint
  • Apache
  • MySQL
  • PHP
Pada langkah awal kalian harus sudah menginstall Apache, MySQL dan PHP didalam Os kalian, jika kalian menggunakan Linux / ubuntu bisa cari tutorialnya installasi Lampp, dan jika kalian menggunakan windows akan lebih mudah hanya dengan menginstall paket Xampp yang sudah include dengan Client MySQL / biasa disebut phpmyadmin.

Setelah semua sudah berjalan dengan normal, sekarang kalian download terlebih dahulu source package mybb di alamat : https://mybb.com/download/

Extract package yang sudah didownload, nanti kalian akan mendapatkan 2 folder yaitu Documentation dan Upload. Pindahkan folder upload kedalam direktori /var/www/html (direktori default apache linux), rename folder upload menjadi sesuka kalian misalkan diubah menjadi forum.

Buka browser kalian bisa menggunakan firefox atau google chrome, lalu ketikan alamat ip_address kalian dan slash nama foldernya, atau bisa ketikan localhost slash nama foldernya, seperti dibawah ini :
localhost/forum

Maka perhatikan langkah dibawah ini :

Klik next untuk memulai proses installasi, proses ini tidak memerlukan koneksi internet / bersifat offline.!


Setelah itu kalian akan memasuki term and condition, lalu klik next yang artinya agree/menyetujui.


Langkah berikutnya dibawah ini kalian harus memperhatikan mana saja list yang masih berifat warning dan berikut cara menanganinya :

  • Rename file config.default.php didalam folder inc menjadi config.php
  • Ubah permission config.php menjadi 777 dengan perintah chmod
  • Ubah permission settings.php menjadi 777 dengan perintah chmod didalam folder inc
  • Ubah permission folder cache menjadi 777 dengan perintah chmod
  • Ubah permission folder uploads menjadi 777 dengan perintah chmod
Lalu hasilnya adalah

Setelah itu klik next dan akan masuk kedalam koneksi ke database mysql, seperti dibawah ini :

Jangan lupa untuk membuat database kosong di mysql kalian, agar bisa terkoneksi dan mybb bisa membuat tabel-tabel yang diperlukannya.



Klik next terus sampai dengan mengisi untuk informasi forumnya seperti dibawah ini :



Setelah itu lakukan setting untuk login administrator mybb nya :


Setelah itu selesai untuk proses installasi CMS myBB dan hapus folder install.

Sekarang coba jalankan di browser kalian dengan mengetikan localhost/namafolder.

Semoba berhasil.



Multiple Gnome Terminals in One Window

Halo pengguna setia linux.!! Disini saya mau share kesukaan saya sejak dulu hingga saat ini menggunakan linux dan cara ini wajib ada di perangkat saya yaitu Multiple Terminal dalam 1 window, bukan banyak terminal tapi window nya satu persatu ya, tetapi seperti pada gambar dibawah ini.


Bagaimana keren kan ?? Ini bukan editan photoshop ya. Hehehe..
Disini saya lebih mudah dalam bekerja di terminal yang bisa multiple dalam 1 windows, karena memudahkan saya untuk tengok sana tengok sini, apalagi yang aktif di programming, ada kalanya membuka database, atau menjalankan service atau memonitor task dll.

Yuk install *Terminator* agar terminal gnome kalian bisa seperti punya saya. Oh iya disini saya menggunakan Ubuntu dan Linux Mint ya.
sudo aptitude install terminator
Tunggu hingga selesai, dan setelah proses installasi selesai kalian cari di menu dash ketikan Terminator. Apabila ingin dibagi terminal kalian, kalian hanya tinggal klik kanan pada layar hitam yang kosong dan pilih mau dibagi vertikal atau horizontal. 

Semoga bermanfaat.!!

Virtualbox error “Kernel driver not installed (rc=-1908)” on Ubuntu

Apakah kalian pernah mengalami hal error semacam ini setelah melakukan installasi VirtualBox lalu kalian ingin menginstall Windows dan memilih Iso file tiba-tiba muncul pesan error seperti dibawah ini :
Kernel driver not installed (rc=-1908)

The VirtualBox Linux kernel driver (vboxdrv) is either not loaded or there is a permission problem with /dev/vboxdrv. Please reinstall the kernel module by executing

'/etc/init.d/vboxdrv setup'

as root. If it is available in your distribution, you should install the DKMS package first. This package keeps track of Linux kernel changes and recompiles the vboxdrv kernel module if necessary.

Cara agar virtualbox kalian bisa digunakan adalah :
Ketikan perintah dibawah ini :
sudo apt-get install build-essential module-assistant
sudo m-a prepare
Lalu ketikan :
sudo /etc/init.d/vboxdrv setup
Lalu akan muncul seperti dibawah ini :
Stopping VirtualBox kernel modules ...done.
Recompiling VirtualBox kernel modules ...done.
Starting VirtualBox kernel modules ...done.
Apabila pada langkah diatas kalian mengalami error atau ada kalimat "Not Found" maka kalian lakukan remove virtualbox kalian dengan urutan perintah dibawah ini :
sudo apt-get purge virtualbox-4.2 dkms linux-headers-$(uname -r)
sudo apt-get install linux-headers-$(uname -r)
Setelah itu kalian pergi ke alamat ini dan download virtualbox sesuai dengan OS kalian, disini saya menggunakan OS Ubuntu maka saya download yang 64bit berekstensi /deb.
https://www.virtualbox.org/wiki/Linux_Downloads
Setelah download silahkan install dengan menggunakan perintah install deb dpkg-i seperti biasa.

Jika sudah di install sekarang coba jalankan virtualbox kalian lalu kalian install OS di dalam virtualbox.

Semoga cara ini berhasil untuk kalian.

Command Tetap Running Walaupun Terminal Console di Close

Disini saya akan coba share bagaimana cara agar command yang di running melalui remote ssh terminal tetap berjalan ketika terminal di close.



Caranya adalah :
  • Masuk kedalam Server dengan SSH disini saya menggunakan CentOs 7
  • Setelah itu lakukan installasi dibawah ini :
    • sudo yum install screen
Jika sudah selesai installasi screen, sekarang ketikan : 
screen
lalu setelah itu ketikan command / perintah yang hendak kalian running, dan sekarang coba close terminal / akhiri ssh kalian. Sudah dijamin akan tetap berjalan perintah yang sudah kalian jalankan setelah kalian mengetikan screen.

Upgrade Versi Python 2.6 ke 2.7 do CentOS

Yup, yang biasa menggunakan OS linux baik centOs atau Ubuntu, disini saya ingin memberikan cara simple untuk melakukan upgrade versi Python yang awalnya menggunakan versi 2.6 dan jika kalian ingin melakukan upgrade ke versi 2.7.14 disini saya ada cara mudahnya serta sudah berhasil di lakukan di CentOS Server.


Pertama kalian harus terkoneksi dengan internet dan server CentOS kalian. Masukan kedalam root server centOs kalian, lalu ketikan tahapan dibawah ini :
sudo wget https://www.python.org/ftp/python/2.7.14/Python-2.7.14.tgz
sudo tar xzf Python-2.7.14.tgz
cd Python-2.7.14
sudo ./configure --enable-optimizations
sudo make altinstall 
Jika semua proses sudah terinstall, sekarang saatnya restart server kalian. Lalu coba ketikan dibawah ini, jika sudah berhasil akan nampak python 2.7
python2.7 -V
Coba kalian ketikan python saja, apakah sudah berubah menjadi python 2.7 ? jika belum berubah ada lanjutannya lagi ya,
wget --no-check-certificate https://pypi.python.org/packages/source/s/setuptools/setuptools-1.4.2.tar.gz
tar -xvf setuptools-1.4.2.tar.gz
cd setuptools-1.4.2
python2.7 setup.py install
 Selamat mencoba dan semoga berhasil.
Back To Top