Little boy questioned his mother, he asked what he can be in the future..with a sad smile, she tells him he can be anything he wants to be.... Boy said he’d become (an) astronaut and fly out into space crews around the universe he wanted to see the stars and also see other planets in outer space------------- "Why don’t we just keep dreaming, let’s keep our mind with dream and faith, as long as we wish we can make it come true, how old you are never forget your dream and keep dreaming "

Thursday 27 December 2018

Python : Lambda

Lambda, dikenal juga sebagai anonymous functions/fungsi anonim atau one line function, disebut demikian karena lambda berupa kode satu baris yang tidak memiliki nama, lambda hanya memiliki kode untuk dieksekusi. Biasanya, fungsi lambda diimplementasikan untuk melakukan sesuatu yang sangat sederhana, seperti mengalikan angka atau mengekstraksi bagian dari string.
Jika kita menggunakan statemen yang sama secara berulang-ulang dalam kode python, Kita bisa mempertimbangkan untuk menggunakan fungsi lambda ini.

Sintaks dasarnya seperti ini :
lambda argumen : ekspresi

Kita tidak dapat menempatkan statemen apapun dalam ekspresi lambda. Ini berarti kita tidak bisa menambahkan statemen if dalam ekspresi lambda, ataupun deklarasi variabel. 
Kita bisa menghindari pembuatan fungsi python untuk hal yang benar benar sangat sederhana sehingga menghindari kita menulis def namafungsi (parameter) : return (expression).
contoh : 
Function
def kali(x,y) :
    return x*y
Lambda
kali = lambda x,y : x * y

Diatas adalah perbandingan antara function biasa dengan lambda, keduanya memiliki tujuan yang sama yaitu mengalikan 2 buah bilangan akan tetapi implementasinya menjadi lebih sederhana jika memakai fungsi lambda. 
kode kali pada lambda di atas bukanlah sebuah variabel, tapi sebuah label, cara menggunakannya seperti ini :
>>> kali(9,8)
72

>>>kali(10,10)
100

Contoh lain :
Membalik string
>>>reverse = lambda s:s[::-1]
>>>reverse('python')
'nohtyp'
Mengekstrak huruf pertama
>>>huruf_awal = lambda s : s[0]
>>>huruf_awal('python')
'p'
Lambda didalam function
>>>def myfunc(n):
    return lambda a : a * n
>>>doubler = myfunc(3)
>>>doubler(11)
33

Python : Akses database PostgreSQL dengan psycopg

Psycopg adalah adaptor database PostgreSQL paling populer untuk bahasa pemrograman Python. Psycopg sepenuhnya memenuhi standar DB API 2.0. Versi saat ini adalah 2.0 dan masih terus aktif dikembangkan yang menjanjikan performa cepat dan stabil. Psycopg dirancang untuk aplikasi multi-threaded yang mendukung pembuatan dan penghapusan banyak kursor serta pembuatan fungsi INSERT atau UPDATE secara bersamaan.

Ketika kita ingin menjalankan SQL query SELECT, UPDATE, DELETE atau INSERT kedalam database postgreSQL kita membutuhkan psycopg sebagai penghubung antara bahasa pemrograman Python dengan Database PostgresSQL.

Homepage : http://initd.org/
Github : https://github.com/psycopg/psycopg2

Cara instalasi psycopg pada python :
pip install psycopg2

Sintaks koneksi seperti ini :
import psycopg2

try:
    conn = psycopg2.connect('''user=username 
                               password=password
                               dbname=namadatabase
                               host=127.0.0.1 
                               port=5432''')
print ("Berhasil terkoneksi")
except:
    print ("Tidak dapat terkoneksi dengan database")

Sintaks diatas akan mengimpor adaptor dan mencoba untuk terhubung ke database. Jika koneksi gagal, maka akan menampilkan eksepsi "Tidak dapat terkoneksi dengan database".

Kemudian kita perlu mendefinisikan cursor :
cur = conn.cursor()

Seletah cursor terdefinisi, kita sudah bisa melakukan eksekusi query dengan cara :
cur.execute('sql query')

cur.execute("""SELECT * from users""")
Kemudian kita perlu menyimpan result-set hasil eksekusi query kedalam variabel, contoh variabel record
record = cur.fetchall()

**kelebihan dari psycopg adalah result set hasil query secara otomatis dikonversi kedalam varible tipe list
untuk menampikan hasil query :
for row in record :
    print(row)
karena record adalah variabel dengan tipe data list maka kita bisa menampilkan data berdasarkan index posisi kolom seperti ini :
for row in record :
    print("{}  {} ".format(row[0],row[1]))

Wednesday 26 December 2018

Python : SQL Query menjadi Excel dengan Pandas

Bahasa Queri (Bahasa Inggris: query language) adalah suatu bahasa komputer yang digunakan untuk melakukan permintaan terhadap basis data dan sistem informasi.



Wikipedia
Seorang database administrator pasti sehari hari berhubungan dengan yang namanya transaksi query database, yang paling banyak kita gunakan adalah SQL Query.
Ketika memerlukan data dari database, kita menggunakan statement SQL SELECT untuk mengambil data dari tabel database dan mengembalikan data ini dalam bentuk tabel hasil. Tabel hasil ini disebut result-set.

Dibawah ini adalah contoh untuk menuliskan, memindahkan hasil query (result-set) kedalam file excel menggunakan python dengan bantuan module 'pandas'. Kode ini merupakan contoh koneksi python dengan database PostgresSQL, akan tetapi fuction untuk menuliskan hasil query ke excel ini dapat digunakan pada database lainnnya seperti SQL server, mySQL, dll.

Pertama, install modul pandas kedalam python, buka command prompt ketikan perintah :
pip install pandas


sql_list_query = "SELECT * from User"

def export_excel (sql_query, namafile,namasheet):
    cursor.execute(sql_query)
    record = cursor.fetchall()
    columns = [desc[0] for desc in cursor.description]
    df = pd.DataFrame(list(record), columns=columns)
    writer = pd.ExcelWriter(namafile)
    df.to_excel(writer, sheet_name=namasheet,index=False)
    writer.save()

import_excel(sql_list_query,'contoh.xlsx','hasil_query')

Penjelasan skrip diatas :
  • sql_list_query adalah variable tipe string yang berisi sintaks query SQL
  • def export_excel (sql_query, namafile,namasheet) adalah fungsi dengan nama export_excel yang berisi tiga parameter inputan yaitu : sql_query (nama variable yang menampung sintaks query SQL), namafile> (nama file excel) dan namasheet (nama sheet excel).
  • cursor.execute(sql_query) dan record = cursor.fetchall() method eksekusi query dan menyimpan hasilnya pada variabel record
  • columns = [desc[0] for desc in cursor.description], men set nama kolom excel dari deskripsi query Sql.
  • df = pd.DataFrame(list(record), columns=columns), membuat dataframe yang datanya diambil dari result-set dengan nama header kolom = variable colomns.
  • writer = pd.ExcelWriter(namafile), inisialisasi fungsi writer
  • df.to_excel(writer, sheet_name=namasheet,index=False),  menulis dataframe kedalam format excel tanpa meyertakan index dataframe.
  • writer.save(), menyimpan file excel,
  • import_excel(sql_list_query,'nama_file_excel.xlsx','nama_sheet') adalah contoh pemanggilan fuction export_excel yang akan menghasilkan file excel dengan nama file = 'contoh.xlsx', nama sheet = 'hasil_query' dari eksekusi query SQL variable sql_list_query.

Sunday 23 December 2018

Python : *args dan **kwargs

Ketika anda memperlajari kode pada bahasa pemrograman python pasti menemukan variable *args atau **kwargs ini menjadi parameter dari suatu fuction (fungsi) dalam suatu program. dan terheran sebenarnya variable apa ini?!
*args dan **kwargs
Kedua parameter ajaib ini adalah sebuah fungsonal parameter, *args adalah arguments dan **kwargs adalah keyword arguments. dengan kedua parameter tsb kita dapat membuat function yang kita buat dapat menerima sejumlah parameter argumen dan parameter keyword secara arbitrary (sewenang wenang) tanpa menentukan predefined parameter sebelumnya.

Perlu diketahui pada *args dan **kwargs yang paling penting adalah tanda *(asterik) dan ** (asterik ganda). anda bisa saja mengganti nama variablenya, semisal menjadi *var atau **vars.

Contoh :

Function pada python
def komisi (a,b):
    return sum((a,b))*0.05

komisi(40,60)
In [5]: komisi(40,60)
Out[5]: 5.0
function untuk mengembalikan nilai sejumlah 5% dari penjumlahan dua buah nilai. terdapat dua buah parameter a dan b, didalam function tsb terdapat operasi menjulahkan nilai dari dua paramter tsb kemudian dikalikan dengan 0.05, sehingga jika input nilai parameter a = 40 dan b = 60 maka nilai yang dikembalikan fuction adalah 5.0
So far ga ada masalah ya...hehe

Wednesday 19 December 2018

Python : Mengirim email dengan yagmail 'Yet Another GMAIL/SMPTP Client'



Module yang dapat digunakan untuk mengirim email pada python yang paling sering dipakai adalah kombinasi module smtplib dengan email. Selain itu ternyata ada module email lain yang dapat digunakan dengan sintaks yang lebih sederhana dan lebih mudah dipakai.

Module yagmail yang ditulis dan dikembangkan oleh Pascal van Kooten dibagikan di halaman githubnya : 

https://github.com/kootenpv/yagmailhttps://github.com/kootenpv/yagmail 

Dihalaman tsb dideskripsikan bahwa tujuan dari yagmail adalah 'The goal here is to make it as simple and painless as possible to send emails.' artinya dilarang makan sebelum berdoa

Seberapa sederhana kah sintaks nya? kira kira untuk mengirim email begini sintaks nya : 


import yagmail
yag = yagmail.SMTP()
contents = ['This is the body, and here is just text http://somedomain/image.png',
            'You can find an audio file attached.', '/local/path/song.mp3']
yag.send('to@someone.com', 'subject', contents)

Lebih sederhana lagi begini :
yagmail.SMTP('mygmailusername').send('to@someone.com', 'subject', 'This is the body')

Sunday 9 December 2018

Python : Kompilasi source code ke bytecode (.py ke .pyc)



Ketika kita menulis kode program dalam bahasa pemrograman python, script yang kita tulis dalam high level language yang artinya bahasa dan perintah yang dimengerti manusia akan disimpan menjadi source file python berekstensi .py, file tsb dapat dibaca dan diubah oleh python intepreter dengan mengubah setiap baris perintah perintah menjadi instruksi instruksi byte code yang dapat dipahami oleh komputer, file byte code tsb disimpan dalam file berekstensi .pyc dan akhirnya dieksekusi oleh python virtual machine.

Proses mengubah dari high level language ke byte code atau kode instruksi komputer tsb dinamakan dengan proses kompliasi (compile).

Mengubah file souces code ke byte code ini memiliki beberapa kelebihan :

  • File source code dan byte code bisa sama sama langsung dieksekusi oleh python intepreter, akan tetapi byte code akan lebih cepat dieksekusi.
  • Proses eksekusi byte code lebih cepat karena tidak ada kompilasi lagi untuk mengubah source code ke byte code.
  • Dari sisi keamanan jauh lebih aman dibandingkan souce code yang masih berupa kode yang bisa dibaca siapa saja. bayangkan ada orang lain yg memiliki akses ke source code anda yang berisi user name, password dan setingan lainnya.  
Cara mengkompilasi file source code (.py) ke file bytecode (.pyc) bisa dilakukan dengan bantuan module 'py_compile'.

Python : String Formatting


String Formatting atau Pemformatan string memungkinkan kita menyuntikkan item ke dalam string daripada kita mencoba menggabungkan string menggunakan koma atau string concatenation. 
Sebagai gambaran, perbandingannya seperti ini :
Nama = 'Budi'
Umur = 25

'Nama saya '+Nama+', umur saya sekarang '+str(Umur)+' Tahun.'  # concatenation

f'Nama saya {Nama}, umur saya sekarang {Umur} Tahun'          # string formatting

Ada tiga cara untuk melakukan pemformatan string.
  • Metode lama menggunakan placeholder menggunakan karakter '%' (modulo)
  • Teknik yang ditingkatkan menggunakan metode string .format ().
  • Metode terbaru, diperkenalkan dengan Python 3.6, menggunakan string literal yang diformat, disebut f-string.

Saturday 8 December 2018

Python : Input password pada Python dengan getpass()


Ketika program meminta user untuk memasukan password/katasandi tentunya kita tidak ingin password yang sedang kita ketik muncul dilayar.

getpass (), fungsi yang meminta pengguna untuk memasukan kata sandi tanpa menampilkannya. Module getpass menyediakan cara yang aman untuk menangani permintaan kata sandi di mana program berinteraksi dengan pengguna melalui terminal/command prompt.

Contoh penggunaan pada validasi login user
Sintaks nya :


import getpass
userid = 'gani'
passw = 'secret'

uid = input('masukan id anda : ')
pwd = getpass.getpass('masukan password anda : ')
if uid == userid and pwd == passw :
    print('Sukses Login..Selamat datang ', userid)
else :
    print('User ID atau password salah')

Jika dijalankan hasilnya seperti ini :

Done..


Python : Membuka Web Browser


Kita dapat menjalankan web browser untuk membuka website secara spesifik dengan bantun dari module 'webbrowser' mengunakan fungsi open()

sintaks nya kaya gini :

import webbrowser

webbrowser.open('https://www.google.com')

Ketika dijalankan, maka sistem akan segera menjalankan web browser (default web browser) dan membuka website yang kita tentukan sesuai parameter yang kita berikan pada fungsi webbrowser.open("alamat url")

Mudah bukan?
Bagaimana jika ingin membuka sekaligus beberapa website sekaligus? kita bisa gunakan menyimpan website apa saja yang akan dibuka pada tipe data dictionary python

Sintaks :

import webbrowser

web_start = {
        'fb' : "https://web.facebook.com/",
        'gmail' : "https://gmail.com",
        'blog' : 'https://www.blogger.com'
        }


for url in web_start:
    webbrowser.open_new(web_start[url])

Done...

Saturday 1 December 2018

Cisco Packet Tracer 7.2 Windows & Linux (32-Bit & 64-Bit) Download

Cisco Packet Tracer 7.2

The best way to learn about networking is to do it. Cisco Packet Tracer, an innovative network configuration simulation tool, helps you hone your networking configuration skills from your desktop or mobile device. Use Packet Tracer to:
  • Sharpen your skills for a job interview
  • Prepare for a certification exam
  • Practice what you learn in networking courses

Note :



(1) Packet Tracer memerlukan otentikasi untuk membuka fungsionalitas penuh - lihat Gambar 1 di bawah ini. Pengguna yang tidak mengotentikasi dengan login dan kata sandi NetAcad.com mereka tidak akan dapat menyimpan pekerjaan setelah 10 kali pemakaian guest mode - lihat Gambar 2 di bawah ini misalnya pesan yang diterima oleh pengguna tamu/guest mode.
Jadi kalian yang ingin memakai packet tracer versi terbaru ini (7.1.1) pertama tama harus buat akun netacad dan enroll di course "Introduction to Packet Tracer" nya netacad disini.



Image 1: Packet Tracer Authentication with NetAcad.com Login and Password

Image 2 -- Example Packet Tracer Guest User Message -- user is not logged in.

Download