Muhammad Hafid

Muhammad Hafid

Belajar Python itu mudah, Belajar Framework Django, Belajar Python yuk, Belajar Pemrograman Dasar Python, Belajar Python Asik

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.

Cara Melihat Hak Akses Grantt di MySQL Via Console

Hallo pecinta mysql, disini saya ingin memberikan tips bagaimana cara melihat user privilage / ip privilages remote database MySQL via Terminal, jika menggunakan PhpMyAdmin mungkin akan lebih mudah, disini saya kebetulan tidak menggunakan PhpMyAdmin.

Pertama kalian harus masuk ke server mysql kalian dengan menggunakan akses root. Apabila sudah masuk ketikan perintah dibawah ini untuk masuk kedalam akses database :
mysql -u usernamekalian -p passwordkalian
Jika sudah coba ketikan Show databases untuk melihat semua database yang ada :
SHOW DATABASES; 
Jika sudah coba kalian masuk ke database bawaan mysql yaitu mysql :
USE MYSQL;
Jika sudah masuk ke database mysql, kalian show table yang ada di database MySql tersebut dengan perintah :
SHOW TABLES;
Jika sudah terlihat semua daftar list table, kalian cari apakah ada table bernama user ? jika ada coba kalian ketikan perintah :
SELECT host, user, password FROM user;  
Semoga bermanfaat.

Disini saya menggunakan MariaDB dan CentOS.
 
 

Menghitung Jumlah Digit Sebuah Parameter di Python

Disini saya mempunyai sebuah studi kasus, dimana saya harus mencari jumlah digit baik itu format string atau integer yang didapat dari hasil query.

Misalkan saya mempunya parameter yang isinya sebagai berikut :
Company_code = 'WARTEG'
Lalu yang saya cari dan saya butuhkan adalah jumlah digit dari parameter tersebut adalah 6, darimana 6 ( W - A - R - T - E - G ) ada 6 kata.

Sedangkan untuk integer misalkan :
Amount = 2000
Maka yang di result adalah 4 karena ( 2 - 0 - 0 - 0) ada 4 digit angka.

Apabila anda ingin mendapatkan hasil dari jumlah digit tersebut, baik format isi parameternya string atau integer sekalipun, anda harus merubahnya ke format string, perhatikan dibawah ini :
jml_company_code = len(str(abs(Company_code)))
jml_amount = len(str(abs(Amount)))
Maka yang ditampilkan adalah 6 dan 4.

Disini saya mencobanya di dalam framework Django.

Port is Already in Use Django Port

Pesan ini sudah pasti kalian tau bukan, bahwa port yang kalian pakai sudah terpakai dan tidak bisa dipakai, mungkin kalian menjalankan port default Django di port 8000 dan pada saat mematikan hendak meRefresh Coding kalian menekan Ctrl+Z, seharusnya menekan Ctrl + C, jadi port tersebut di kill.

Lalu kalian masih kekeuh untuk menggunakan port default atau port lain ? jika mau menggunakan port lain, mudah saja hanya menjalankan manage.py nya ditambahkan ip:portbebas setelah runserver. Contoh :
python manage.py 192.168.0.11:9898
Ooo.. kalian masih mau kekeuh pakai port yang sebelumnya, caranya kill dulu port sebelumnya :
ps aux | grep -i manage

Keliatan kan untuk proses manage.py ?
Perhatikan 2 baris terbawah :
hafid   30177  0.0  0.4 129400 39640 pts/0    T    Mar13   0:00 python manage.py runserver
mhafid   30179  0.0  0.5 207192 43940 pts/0    Tl   Mar13   0:00 /home/mhafid/Workspace/artha/bin/python manage.py runserver
Konsen terhadap pid id 30177 dan 30179 ya.
kill -9 pidid
Sekarang kalian bisa menjalankan Django kalian dengan menggunakan port yang sebelumnya.

Error Message Specified key was too long; max key length is 767 bytes

Hallo sobat coding pecinta Django Framework. Disini saya mencoba membuat sebuah projek dengan menggunakan koneksi MySQL, tidak seperti biasanya saya menggunakan database ini untuk aplikasi berbasis Django.

Saya ingin share mengenai pengalaman saat saya melakukan migrate setelah makemigrations. disini saya kedapat error di console seperti dibawah ini :
File "/home/mhafid/Workspace/artha/lib/python3.5/site-packages/MySQLdb/cursors.py", line 312, in _query
    db.query(q)
  File "/home/mhafid/Workspace/artha/lib/python3.5/site-packages/MySQLdb/connections.py", line 224, in query
    _mysql.connection.query(self, query)
django.db.utils.OperationalError: (1071, 'Specified key was too long; max key length is 767 bytes')
Fokus terhadap yang saya bold ya, setelah saya baca-baca untuk case ini, kalian harus biasakan mensetup database MySQL dengan format InoDB. Apabila kalian sudah yakin bahwa database kalian berformat InoDB, maka kalian harus mengubahnya ke dalam UTF8 biasanya MySQL membuat database dengan format Collactionnya UTF8mb4.
Pertanyaannya, apakah kalian sudah paham cara mengubah tipe collactionnya menjadi utf8 ?
Hal yang paling utama, kalian harus menginstall phpmyadmin, disini saya tidak menjelaskan apabila menggunakan Command Line, karena saya menggunakan phpmyadmin (enak dan simple), kalau ada yang mudah kenapa tidak kita pakai tools ini. Benar bukan ?

Langkahnya adalah :

  1. Login kedalam PhpMyAdmin kalian
  2. Masuk kedalam database kalian (klik namadatabase)
  3. Cari menu Operations yang berada di topbar menu
  4. Cari bagian Collaction, ubah lah menjadi utf8_general_ci
Sekarang coba lakukan migrate di django kalian.

Disini saya menggunakan :
  • Pyhton 3.5
  • Django versi 2
  • MariaDB versi 10
  • Os Linux Mint
Semoga solve dan bermanfaat.

Solve Problem Install Pip MySQLClient Error

Disini saya ingin share, ketika saya hendak menginstall mysqlclient untuk konektor django saya. Hanya ingin sekedar mencoba sebuah projek kecil services yang mengharuskan saya menggunakan koneksi ke mysql.

Spesifikasi yang saya gunakan adalah :
  • MariaDB Versi 10
  • OS Linux Mint
  • Django Versi 2
  • Python Versi 3
Cara mengkoneksikan django ke database mysql adalah kalian harus sudah siap dan selesai menginstall paket paket mysql, bisa menggunakan mysql / mariadb. Saya tidak akan membahas bagaimana cara installasi MySQL di perangkat saya (OS Mint).

Posisi saya sudah menginstall django versi 2 didalam pip python versi 3. Lalu saya mencoba installasu mysqlClient menggunakan pip3 maka error ini yang muncul di terminal console saya :

Collecting mysqlclient Using cached https://files.pythonhosted.org/packages/f4/f1/3bb6f64ca7a429729413e6556b7ba5976df06019a5245a43d36032f1061e/mysqlclient-1.4.2.post1.tar.gz
    Complete output from command python setup.py egg_info:
    /bin/sh: 1: mysql_config: not found
    Traceback (most recent call last):
      File "<string>", line 1, in <module>
      File "/tmp/pip-install-m7h6po5p/mysqlclient/setup.py", line 16, in <module>
        metadata, options = get_config()
      File "/tmp/pip-install-m7h6po5p/mysqlclient/setup_posix.py", line 51, in get_config
        libs = mysql_config("libs")
      File "/tmp/pip-install-m7h6po5p/mysqlclient/setup_posix.py", line 29, in mysql_config
        raise EnvironmentError("%s not found" % (_mysql_config_path,))
    OSError: mysql_config not found
Perintah yang saya gunakan adalah pip3 install mysqlclient, semua jenis versi mysqlclient sudah dicoba mulai menggunakan pip langsung atau dengan installer whl package.

Akhirnya saya menemukan, yaitu installasi terlebih dahulu dibawah ini :
sudo apt-get install libmysqlclient-dev
Setelah itu kalian aktifkan virtual env kalian dengan mengetikan source bin/activate, lalu install kembali pip3 install mysqlclient.
Collecting mysqlclient Using cached https://files.pythonhosted.org/packages/f4/f1/3bb6f64ca7a429729413e6556b7ba5976df06019a5245a43d36032f1061e/mysqlclient-1.4.2.post1.tar.gz
Building wheels for collected packages: mysqlclient
  Building wheel for mysqlclient (setup.py) ... done
  Stored in directory: /home/mhafid/.cache/pip/wheels/30/91/e0/2ee952bce05b1247807405c6710c6130e49468a5240ae27134
Successfully built mysqlclient
Installing collected packages: mysqlclient
Successfully installed mysqlclient-1.4.2.post1 
Bagaimana jika kalian menggunakan OS CentOs ? Pada CentOs tidak akan bisa menginstall libmysqlclient-dev, jadi apabila kalian menggunakan CentOs kalian install dibawah ini :
 yum install mysql-devel mysql-lib
Setelah itu kalian install pip install mysqlclient-1.4.2.post1


Dan pada akhirnya saya sukses menginstallnya. Semoga bermanfaat.

Solusi Ketika Gitlab Push Rejected

Pernah kalian pada saat ingin mengupdate source di Gitlab lalu muncul pesan error Rejected.?

Seperti pada dibawah ini :
! [rejected]        master -> master (fetch first)
Solusinya adalah :

Coba kalian ketikan ini :
git pull origin master
Nanti akan akan mendapatkan respon seperti ini :
remote: Enumerating objects: 8, done.
remote: Counting objects: 100% (8/8), done.
remote: Compressing objects: 100% (6/6), done.
remote: Total 6 (delta 4), reused 0 (delta 0)
Unpacking objects: 100% (6/6), done.
From gitlab.com:warungjasa/core
 * branch            master     -> FETCH_HEAD
   616713b..8a5d0a8  master     -> origin/master
Merge made by the 'recursive' strategy.
 README.md | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)
Nah kalau misalkan keluar Vim editor kalian keluar saja dengan menggunakan CTRL + X.
Setelah itu kalian lakukan hal dibawah ini apabila ingin mengupdate source ke gitlab kalian :
git add .
git commit -m 'Keterangan'
git push origin master
Selamat mencoba.!

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.!
 
Back To Top