Kamis, 15 September 2016

Ifconfig

Saat melakukan perintah 'ifconfig' atau 'ipconfig', kita biasanya akan menemukan istilah berikut: eth0, lo, wlan0, ppp0.

Singkatnya
  • eth0  : perangkat ethernet (kabel) pertama, dst
  • ppp0  : perangkat point to point protocol, biasanya berupa modem
  • lo    : loopback interface, 127.0.0.1, digunakan oleh sistem untuk berkomunikasi dengan dirinya sendiri
  • wlan0 : perangkat wireless
Penamaannya sendiri biasanya berbeda tergantung sistem operasi yang digunakan atau bisa juga ditetapkan sebelumnya. 

perintah pada ifconfig

Packet Tracer

Cisco Packet Tracer is a powerful network simulation, visualization, collaboration, and assessment tool that allows students to experiment with network designs and behavior
Beberapa dari kamu mungkin sudah familiar dengan aplikasi simulasi yang satu ini. Buat para mahasiswa kere dan ganteng mungkin aplikasi ini laksana penerang di tengah kegelapan. Maklum belum punya duit untuk beli perangkat jaringan beneran.

Seperti yang dijelaskan di website resminya, Packet Tracer merupakan aplikasi simulasi jaringan yang bisa digunakan untuk memvisualisasikan desain dan perilaku jaringan aslinya. Kamu juga bisa pilih mau pake router apa, kabel apa, jaringannya mau yang topologi ring, bus, atau mesh. Hampir semuanya bisa dilakukan. Hanya saja karena aplikasi ini keluaran Cisco, produk yang digunakan pada simulasi ini juga produk Cisco. Hehe..

Tampilan Cisco Packet Tracer 7.0

Cisco Packet Tracer ini sudah banyak digunakan baik oleh para pemula maupun yang sudah ahli untuk mensimulasikan jaringan yang dirancang. Salah satu keunggulan dari simulasi ini adalah dapat meminimalisir risiko kerusakan alat saat implementasi sebuah desain. Rugi kan kalau perangkatnya sampai rusak.. hehe..

Ke depan kita akan bahas lebih banyak mengenai Packet Tracer ini. Selain Cisco Packet Tracer, ada beberapa simulator jaringan juga yang perlu untuk dicoba, diantaranya adalah NS2 dan GNS3..

Unable to Connect!

Sebut saja nama aplikasinya Modem Manager..

Aplikasi ini sudah beberapa bulan saya install pada OS Ubuntu di Laptop saya. Tadinya saya iseng ingin cari aplikasi lain, niat pengen uninstall Modem Managernya, eh koneksi internetnya hilang sama sekali setelah aplikasinya saya uninstall.

Bolak balik saya searching internet lewat hp, sampai saya harus otak atik konfigurasi interface jaringannya segala, tetap saja koneksinya tak terbaca. Setelah saya pikir belakangan, saya baru sadar yang saya otak atik itu konfigurasi interface ethernetnya, ngapain cobaa.. wong yang bermasalah itu koneksi modem. hehehe..

Pakai perintah 'lsusb' di terminal, usb modemnya terbaca kok.

Akhirnya ditengah kebingungan yang menyebalkan tersebut, sebuah suara muncul di alam bawah sadar saya...  
"install ulang network managernya, baang.."
Buru-buru tethering lewat hp dan buka synaptic, reinstall network manager dan Voila! Koneksinya terhubung kembali. Haha..

paket network-manager di synaptic package manager

Ah, sudahlah!

Kamis, 25 Agustus 2016

The Internet Of Things

Connecting People

Masih ingat slogan di atas? Yup, itu adalah slogan Nokia. Salah satu perusahaan produsen telepon genggam yang fenomenal pada masanya.

Nokia 3310, the unbreakable phone ;p
Connecting People, merupakan sebuah slogan yang menggambarkan apa yang terjadi saat ini. Tak dapat dipungkiri, teknologi telepon dan smartphone merupakan teknologi yang paling cepat penetrasinya karena dibutuhkan oleh siapa saja. Penyatuan teknologi internet dan telepon membuat komunikasi tidak hanya dapat dilakukan melalui suara, namun juga panggilan video. Setiap orang saling terhubung. Ditambah dengan menjamurnya aplikasi messaging seperti whatssap, line, bbm, telegram dan lain-lain. Pilihan komunikasi saat ini sangat beragam, dari komunikasi antar individu bahkan komunikasi komunal sekalipun. Era ini adalah era komunikasi.

But the technology can become obsolete. Teknologi selalu berubah dan berkembang. Saat inovasi smartphone sudah mulai jenuh, penelitian lanjutan terus dikembangkan. Maka saat ini muncullah satu teknologi baru yang tidak hanya menghubungkan antar orang, namun antar perangkat. Teknologi inilah yang dinamakan The Internet of Things. Meminjam slogan Nokia, teknologi baru ini bisa kita katakan Connecting the Things, menghubungkan apa saja.

Internet of Things (IoT) memungkinkan setiap perangkat terhubung satu sama lain. IoT merupakan pengembangan lebih lanjut dari teknologi Machine-to-Machine (M2M) yang menghubungkan antar mesin. IoT menghubungkan semua perangkat ke dalam sebuah jaringan internet. Apa yang dimaksud dengan perangkat atau things dalam IoT ini? Ada banyak sekali kalau kita contohkan, namun beberapa komponen yang hampir selalu ada dalam perangkat ini, yaitu sensor dan actuators. Sensor adalah perangkat pendeteksi atau kalau kita umpamakan dalam istilah organ tubuh manusia adalah indera. Sedangkan actuators adalah komponen yang bertanggung jawab dalam menggerakkan atau mengontrol sebuah perangkat.


Internet of Things
image credit : IoT

Di masa depan, jika teknologi ini berhasil digunakan secara massive, bukan tidak mungkin semua perangkat teknologi yang kita punya akan saling berkomunikasi secara otonom. Kita hanya perlu duduk manis, semua akan terjadi dengan sendirinya. Duduk di dalam mobil, mobilnya menyetir sendiri sesuai tujuan yang kita inginkan, tak ada lagi tabrakan karena antar mobil saling berkomunikasi. Sampai di rumah, pintu garasi akan terbuka sendiri saat mendeteksi ada mobil dan wajah kita di depan pintu. Masuk rumah, lampu akan nyala sendiri, musik dimainkan sesuai mood kita saat itu, oven memanggang sendiri, kulkas akan otomatis memesan lewat internet makanan yang sudah hampir habis persediaannya, shower hidup sendiri saat kita dibawahnya, sampai di kasur, lampu otomatis akan meredup sendiri dan perangkat kamera cctv otomatis akan menjaga rumah. Paginya saat kita bangun sudah dimanjakan dengan musik dan layar jendela menampilkan pemandangan yang bikin kita semangat. Semuanya otomatis. Kalau ada gangguan di lambung, smartphone otomatis menganalisnyanya lewat perangkat yang terhubung ke tubuh kita. Saat ada apa-apa panggilan darurat otomatis dilakukan. Semua ini terlihat seperti fiksi ilmiah beberapa tahun yang lalu, namun sekarang hal ini mungkin untuk dilakukan.

Era IoT ini menawarkan kesempatan riset dan peluang bisnis yang sangat luas. Meski begitu perlu beberapa penyesuaian agar teknologi yang dihasilkan ini sesuai dengan penerimaan masyarakat. Karena sudah seringkali terjadi, teknologi yang terlalu canggih pada masanya, akan pudar sendiri jika masyarakat belum siap menerima.

Kamis, 30 Juni 2016

Pentingkah Aman?

Era informasi dijital saat ini membawa kita pada satu jaman baru yang tak pernah terbayangkan sebelumnya. Privasi menjadi satu hal yang penting namun seringkali diabaikan. Sering tidak disadari bahwa privasi dijital sama pentingnya bahkan pada beberapa kasus bisa lebih penting daripada privasi fisik. Pertanyaannya adalah kenapa hal ini seringkali diabaikan?

Jawabannya terletak pada kesiapan masyarakat dan kemajuan teknologi itu sendiri. Kita, adalah salah satu pasar terbesar produk teknologi di Asia. Bangsa kita terkenal sebagai bangsa konsumtif. Setiap keluar model smartphone baru, setiap itu pula kita berjubel membeli. Salahkah? Tidak sih. Setidaknya itu menunjukkan kalau bangsa kita adalah bangsa yang makmur. Hehe..

Tapi satu hal yang kita lupa, karena kita hanya berlaku sebagai pembeli, sering kita tidak paham akan apa yang kita beli. Sekadar tahu tanpa mengerti. Sekarang mungkin belum begitu terasa dampaknya, tapi lima sepuluh tahun lagi? Pemikiran seperti ini akan berbahaya sekali.

keamanan data
image credit: secure


Let’s talk about smartphone. Sering saya katakan, kita, tanpa kita sadari memperlakukan smartphone sebagai mainan biasa, padahal banyak potensi yang bisa digali dari sana. Hingga tercetus ungkapan, “Smart device for stupid people”. Keras memang, tapi benar.

Saat ini, smartphone bisa dikatakan sebagai gambaran kehidupan seseorang. Mulai dari jadwal kegiatan, lingkar pertemanan, informasi pribadi seperti email dan percakapan, akses file-file penting dan privat, perilaku jelajah dunia maya, kepribadian seseorang, hampir semuanya bisa didapatkan dari sebuah smartphone. Tapi seberapa sadarkah kita akan keamanan smartphone kita?

Contoh sederhananya, apakah smartphone kita terkunci menggunakan kode sandi? Apakah data-data kita aman? Salah satu fitur yang cukup bagus pada sebuah smartphone adalah fitur data reset ketika pengguna salah memasukkan kode sandi pada beberapa kali percobaan. Memang fitur ini berbahaya kalau kita lupa kode sandi, tapi untuk keamanan data fitur ini cukup bagus. Pada email ada fitur secondary email yang terhubung dengan email utama kita. Dengan fitur ini, saat kehilangan smartphone kita masih tetap bisa mengganti kode sandi secara remote.

Kemungkinan pelanggaran privasi yang sangat memungkinkan selain pencurian perangkat adalah pencurian data melalui jaringan atau melalui aplikasi tertentu. Pencurian data melalui jaringan ini memungkinkan terjadi jika pengguna terhubung dengan jaringan publik seperti area hotspot bandara, restoran, kampus, atau tempat lainya. Tapi tenang, tidak semua area hotspot berbahaya, berbahayanya kalau ada orang usil saja. Hehe.. Meskipun begitu, tetap sangat tidak disarankan untuk mengakses informasi sensitif seperti internet banking dengan menggunakan koneksi hotspot gratisan. Pencegahannya biasanya menggunakan firewall walaupun tidak selalu efektif. Pastikan juga shared files kita dalam kondisi non aktif ketika berada pada jaringan publik.

Aplikasi. Nah ini yang mungkin seringkali terjadi. Karena tergiur dengan aplikasi gratisan yang abal-abal, data kita yang jadi korban. Walaupun market penyedia aplikasi seperti google play seringkali merazia aplikasi tidak jelas yang seperti ini, tapi kemungkinan lolos screening tetap ada. Aplikasi seperti ini terkadang disusupi virus atau malware dengan tujuan beragam. So, hati-hati dalam mengunduh.

Sekali lagi, hanya karena di Indonesia kasus ini jarang terjadi, bukan berarti kasus ini tidak ada. Beberapa pengguna di luar negeri sempat heboh dengan ransomware yang menyandera data korban dengan tebusan sejumlah uang tertentu. Hal yang jamak terjadi mungkin adalah adware yang menyebarkan iklan-iklan menyebalkan setiap kita mengakses browser. Pembahasan mengenai virus dan malware ini mungkin akan kita bahas di waktu lain. Setidaknya kita tetap waspada akan keamanan data kita.

Mungkin ada beberapa yang masih bertanya, emang kenapa kalau smartphone kita bisa diakses orang? Hmm.. dampaknya banyak ya sebenarnya. Selain ransomware yang disebutkan tadi, invasi terhadap privasi bisa berakibat fatal. Akses terhadap data perbankan, penyalahgunaan informasi penting seperti foto atau daftar kontak yang bisa digunakan untuk penipuan. Penyalahgunaan nomor handphone pengguna untuk kejahatan, atau akses terhadap email dan sosial media.Semuanya berpotensi merugikan si pengguna smartphone tersebut. Hanya saja, sekali lagi, meskipun kasus ini tidak terlalu heboh di Indonesia, bukan berarti kita boleh lalai dengan privasi informasi pribadi kita. Kalau rumah saja digembok, kendaraan dikunci, kenapa smartphone dan komputer kita tidak dilindungi?  

Senin, 07 Maret 2016

Apa Itu Robustness?

Bagi yang bergelut di dunia komputer, atau mungkin bagi yang baru mendalami, mungkin pernah mendengar kata robust. Sebenarnya apa sih robust?

Kalo secara bahasa menurut Merriam-Webster sih, robust itu arti sederhananya adalah strong and healthy, kuat dan sehat. Trus kalau di dunia komputer yang dimaksud dengan robust atau robustness itu apa?

Robustness maksudnya adalah kemampuan sebuah sistem komputer dalam menghadapi error ketika eksekusi program sedang dijalankan. Penerapan robustness ini bisa termasuk dalam hal apa saja, salah satu contohnya adalah algoritma sebuah program. Ketika terjadi error, program tersebut masih bisa berjalan atau tidak; fungsi-fungsi lainnya terpengaruh atau tidak; intinya itu program bisa diandalkan atau tidak ketika terjadi error atau failure. Untuk mendapatkan algoritma yang robust ini tidak mudah, perlu dilakukan serangkaian test dengan kombinasi berbagai kemungkinan input atau kondisi. Karena itu ketika sebuah program disebut robust, maka kemungkinan besar program tersebut dapat diandalkan untuk melakukan task sesuai fungsinya.

Lambda : Python

Pertama kali mengenal lambda saya tidak begitu tertarik. Dulu saya berpikiran, untuk apa pusing memikirkan cara menulis fungsi dalam satu baris. Toh pakai cara biasa juga bisa walaupun baris-barisnya bisa lebih banyak. Nah lho, aneh kan? Alhasil program saya bisa terdiri dari banyak baris yang sebenarnya bisa dipersingkat jadi satu baris. Padahal, kalau mau berpikir sebentarrr saja.. beberapa baris-baris itu bisa dihilangkan sehingga programnya bisa lebih rapi. Dasar malas! Haha.

Sampai suatu ketika mau tidak mau saya harus menuliskan program dengan menggunakan lambda. Ternyata wow luar biasa. Powerful. Dan ternyata buat memahami fungsi nya gak menghabiskan waktu lama-lama amat. Cukup perhatikan contohnya lalu pahami. Simple.

Cara paling mudah mempelajari bahasa pemrograman adalah dengan memperhatikan contoh yang sederhan. Pahami lalu kembangkan sendiri. Saya contohkan penggunaan lambda dengan contoh berikut.

Sebelumnya dengan fungsi biasa kita bisa tulis

def f(x):
       return x*x

Nah kalau menggunakan lambda cukup tulis

f = lambda x: x*x

Cara memanggil fungsinya sama; misalkan f (3) hasilnya akan sama-sama 9. Bayangkan fungsi dengan beberapa baris bisa disederhanakan dengan lambda. Silakan fahami contoh tersebut dan selamat mencoba!

Pip di Windows

Pip biasanya sudah terinstal saat menginstall Python. Kalau di linux kita bisa langsung tuliskan perintah pip install package; di windows agak berbeda. Perintah yang dipergunakan adalah

python -m pip install package

atau untuk upgrade

python -m pip install --upgrade package

Minggu, 06 Maret 2016

Unable to find vcvarsall.bat

Error: Unable to find vcvarsall.bat

Pesan ini saya temui waktu saya mencoba menginstall pycrypto. Oh iya, bagi yang belum tahu cara install pycrypto di Windows, cukup tuliskan perintah berikut

python setup.py install

setelah itu biasanya proses instalasi paket akan selesai, tapi kalau sedang beruntung nanti bisa ketemu pesan error yang sama dengan yang saya temui di atas. hahaha.

Beberapa thread di stackoverflow sudah membahas permasalahan ini. Sepertinya letak permasalahannya ada pada visual studio yang terinstall di PC. Ada beberapa solusi tapi salah satu yang saya rekomendasikan adalah dengan menginstall Visual C++ for Python yang ada di situs Microsoft ini

Oh iya, ada beberapa baris kode yang harus diubah di file setup.py pada paket yang akan anda install

Pada baris kode ini

from distutils.core import setup
from distutils.extension import Extension
Coba ganti dengan 

try:
    from setuptools import setup
    from setuptools import Extension
except ImportError:
    from distutils.core import setup
    from distutils.extension import Extension
Good luck!

nb: tautan di atas khusus untuk Python 2.7; untuk Python versi lain bisa ubek-ubek situs Ms di atas

for further reading, see this

Kamis, 25 Februari 2016

Repositori di Kali LInux

Sebenarnya sudah lama hasrat hati ingin install Linux, tapi apalah daya saat itu sumber daya tak ada. Nah beberapa hari yang lalu  keinginan saya kesampaian. Setelah menimbang antara Ubuntu dan Kali, akhirnya saya memutuskan untuk  menginstall Kali.

Penggunaan RabbitMQ Server di Linux

Untuk start
rabbitmq-server start
Untuk stop
rabbitmqctl stop

Instalasi RabbitMQ dan Erlang pada Kali Linux

Sebelumnya saya sudah pernah posting tentang instalasi RabbitMQ di Windows. Nah sekarang saya akan tuliskan sedikit tentang cara install RabbitMQ dan Erlang di Kali Linux (berlaku juga untuk semua varian Linux). Saya tidak akan tuliskan secara detail, tapi saya akan merujuk pada situs yang kredibel untuk hal ini.

Erlang dibutuhkan untuk menjalankan RabbitMQ. Awalnya saya mengikuti panduan instalasi Erlang di sini. Berhubung bahasanya bikin ribet, akhirnya saya putuskan untuk clone dari github dan mengikuti panduan instalasi Erlang yang dari GitHub. Jauh lebih simple. Hehe..

Untuk RabbitMQ instalasi nya seperti biasa, tinggal ikuti petunjuk yang di situs RabbitMQ nya. Goodluck!

Rabu, 24 Februari 2016

Instalasi Linux dari USB

Sejenak kita rehat dulu dari programming. Kali ini saya akan membahas tentang booting Linux dari USB. Awalnya saya berniat untuk install Linux di laptop lama saya yang baru diperbaiki. Tapi kendala mulai muncul saat DVD Laptop saya tidak bisa digunakan untuk burning. Saya panik. Berjam-jam saya habiskan untuk mencari solusinya. Akhirnya saya menyerah. Saya berasumsi ada bagian dari drive DVD saya yang tidak terpasang sempurna saat diservis. Akhirnya terpikir ide untuk booting lewat USB. Bukan hal baru memang. Tapi kalau tak biasa ya lumayan makan hati. Seperti yang terjadi pada saya...

Rabu, 27 Januari 2016

RabbitMQ di Cygwin

Perdjoeangan...

Saya sebut perdjoeangan karena banyak hal yang belum saya faham sedangkan resource dokumentasi yang membahas ini terbatas. RabbitMQ sebenarnya sudah punya dokumentasi yang lengkap (Windows, Generic Linux, Solaris, Ubuntu); tapi untuk Cygwin saya masih bingung karena tidak di-state dengan jelas di sana. Bingungnya apakah saya install secara windows, unix atau ubuntu? Instalasi binary di windows mungkin cara paling mudah, tapi somehow saya rasa bukan itu solusinya. ada sedikit diskusi yang membahas ini di stackoverflow, saya akan dokumentasikan perjalanan instalasinya di sini. Semoga bisa.

Selasa, 26 Januari 2016

Install Packages di Cygwin

Bagi pemula di cygwin, biasanya urusan update atau install paket rada kebingungan. Caranya gak sama dengan cara yang biasa dipake di Linux, rada tricky.. kita gak bisa langsung pake sudo apt-get install di sini. Untungnya ada banyak sumber yang ngasih tau cara buat install paket di cygwin ini. Salah satunya di sini.

Kamis, 21 Januari 2016

Perbedaan Instance, Object, Class

Oke, ini adalah pelajaran dasar programming. Tapi masih aja ada yang bingung tentang beda instance, object dan class. Salah satunya saya. Pengertian yang saya fahami dari senior saya dulu tentang instance dan object sederhananya begini.. Ibaratkan ada sebuah cetakan kue. Cetakan kue itu adalah class sedangkan kue adalah objectnya. Okay sampai di sini saya agak sedikit mengerti. Tapi tetap saya masih penasaran apa sih sebenarnya beda ketiganya?

Method dan Function

Saya sering bingung kalau diminta menjelaskan dua kata ini; method dan function. Setelah coba untuk nyari-nyari, ketemu di stackoverflow; link nya di sini dan di sini.

Ada beberapa pendapat di sini. Ada yang menyatakan kalau method dan function itu adalah sama, hanya beda istilah untuk jenis bahasa pemrograman berbeda. Kalau istilah method biasanya dipakai untuk bahasa pemrograman OOP sedangkan function biasanya dipakai untuk pemrograman struktural. Tapi setelah saya baca di Python manual, disebutkan dua istilah itu bersamaan; ada method ada function. Nah ternyata dari beberapa jawaban yang ada di dua diskusi stackoverflow di atas, mayoritas menjawab bahwa function dan method adalah serupa tapi tak sama. Function biasanya berdiri sendiri sedangkan method terasosiasi dengan sebuah object. Jawaban ini lebih saya terima karena di Python, istilah method dipakai untuk memanggil fungsi yang ada di dalam sebuah kelas. Kurang lebih begitu.


Rabu, 20 Januari 2016

Random Modul

import random

>> random.choice(['apple','pear','banana'])
'apple'
>> random.sample(range(100),10)
[30, 83, 16, 4, 8, 81, 41, 50, 18, 33]
>> random.random() #random float
0.1728219100
>> random.randrange(6)
4

Selasa, 19 Januari 2016

Dua Input Terpisah

Adakalanya kita ingin menggabungkan dua input yang terpisah. Kalau di C biasanya sintaksnya seperti ini.

scanf("%s", &kata1)
scanf("%s", &kata2)
printf ("kata1 adalah %s dan kata2 adalah %s", kata1,kata2)

Nah kalau di Python bagaimana?
Ada tiga cara sebenarnya. Pertama sepertinya bisa pake .join() tapi yang saya sendiri lebih cenderung pake dua cara ini.

kata1 = input()
kata2 = input()
print ('kata1 adalah %s dan kata2 adalah %s'%(kata1,kata2))
print ('kata1 adalah {} dan kata2 adalah {}'.format(kata1,kata2))

Nah coba perhatikan perbedaannya; pakai % kita harus tahu apakah itu string atau integer, atau kalau pakai format kita tinggal kasih tanda {}. silakan dipilih yang mana.

update:

ada satu cara lagi yang bisa dipake untuk print input di python:

print('kata1 adalah', kata1,'dan kata2 adalah', kata2)

perhatikan beda dengan sebelumnya, lebih simpel kan...

Rabu, 13 Januari 2016

Multiprocessing (2)

Sudah coba pelajari multiprocessing langsung dari Python documentation. Bingung. Searching.. ada yang senasib. Penjelasan dan contoh di StackOverflow ini cukup membantu untuk memahami multiprocessing, pool, dan queue. Btw soal pool, bedanya dengan poll apa ya?

Beda. Kalau pool di multiprocessing; kalau poll untuk interprocess communication (IPC). Hmm, sampai di sini baru sadar dan ingat kalau yang saya perlukan itu IPC. Hahaha...

--
nanya sendiri, jawab sendiri. maaf, saya lagi memvisualisasikan pikiran. untung ditulis, jadi sadar kalau salah jalan. hahaha...

oh iya, kalau mau mempelajari lebih lanjut tentang multiprocessing system, paper jadul ini menjelaskan arsitektur multiprocessing system dengan cukup lengkap.. 

Multiprocessing

Another confusing term..

Saya ambil dari dokumentasi Python ya.
multiprocessing is a package that supports spawning processes using an API similar to the threading module.
Oke, ada istilah spawn; yang kalau diartikan ke dalam bahasa indonesia artinya menelurkan, membiakkan dan menimbulkan. Ada lagi istilah process; kata kunci yang harus kita fahami sebelum kita lanjut ke istilah multiprocessing.

Thread

Apa itu thread?

Bagi yang kesehariannya bergelut di bidang programming mungkin sudah familiar dengan istilah ini. Cukup sulit bagi saya untuk benar-benar bisa menerjemahkan istilah thread ini. Kalau diterjemahkan secara bahasa ke bahasa Indonesia artinya adalah benang, ulir, urutan, utas, lembar, galur, rangkaian, untai. Dari artinya mungkin kita bisa menebak-nebak apa itu thread. Tapi apa sebenarnya dimaksud dengan thread?

Rabu, 06 Januari 2016

Two Inputs

Next sekarang lagi nyari-nyari gimana caranya dua output dari dua program berbeda bisa jadi satu input di program yang lain..

Ah apalah istilahnya ini? -_-"

Selasa, 05 Januari 2016

Output Sebaris

Saat running program while (loop), biasanya output akan ditampilkan perbaris di terminal. Bagaimana biar outputnya jadi sebaris saja?

Untuk di Python3 caranya tinggal menambahkan  
,end=""
dibagian belakang print. Nanti outputnya akan otomatis ditampilkan secara sebaris. Dalam ("") kita bisa menambahkan apa saja; titik, koma, garis miring atau apa saja untuk pemisah antar output.

User Input

Pertanyaan sekarang adalah bagaimana caranya biar program selalu meminta input ke user?

Jawaban di stackoverflow ini cukup memuaskan setelah saya coba.
import sys
for line in sys.stdin:
   do something
tidak perlu meminta input( ) lagi. Program otomatis akan meminta input secara kontinue ke user. 

Python Characters Encoding

Nah kembali ke real task. Gimana caranya print character encoding ke dalam file di python?

Awalnya saya coba untuk print karakter encoding secara langsung di terminal. Saya coba
>>> print(u"\u0007")
Dan keluar bunyi "ding". Berhasil!

Cara lainnya dijelaskan di web dokumentasi resmi python. Untuk python3 sedikit berbeda dengan python2 sintaksnya. Disini dicontohkan cara konversi integer ke karakter Unicode dengan menggunakan fungsi chr( ), dan untuk mengkonversinya kembali menggunakan fungsi ord( ). Berbeda dengan fungsi print yang saya contohkan sebelumnya, fungsi chr ini tidak mengeluarkan output "ding" tapi '\0x7'. Sepertinya fungsi ini menghasilkan nilai dari Unicodenya saja.

Nah sekarang gimana caranya biar yang keluar random?
  1. Kalo berdasarkan pertanyaan di sini, cara untuk print random ASCII characters adalah dengan 
    import random
    print (chr (random.randint(0,255)))
  2. Cara lainnya adalah dengan  generate random unicode
    os.urandom(n)
    Kalo menurut website python sih fungsi ini
    Return a string of n random bytes suitable for cryptographic use.
  3. akhirnya pusing. segini dulu nanti diupdate

Senin, 04 Januari 2016

Encoding

Pertanyaannya adalah apa hubungan binary, hexadecimal dan ASCII?

Untuk lebih paham cara berpikirnya, bisa coba instal hex editor HxD. Ini sangat membantu buat saya.

Salah satu artikel bagus yang saya baca adalah ini dan ini dan ini.

Setiap keluaran yang dihasilkan oleh sebuah program pada dasarnya akan dibaca oleh mesin dalam bentuk binary atau 0 dan 1. Angka 0 dan 1 inilah yang membuat kata-kata dan tulisan kita bisa dibaca oleh mesin. Tapi untuk itu harus ada standarnya. Karakter yang kita tuliskan akan di-encode menjadi binary berdasarkan suatu set character yang sudah disepakati oleh para ahli-ahli komputer terdahulu. Dulu komputer hanya menggunakan 8-bit bytes; dan saat itu sudah ada yang namanya ASCII (American Standard Code for Information Interchange) yang menyimpan sebuah karakter dalam 7 bit binary.

Misalnya huruf "A" kodenya adalah 65 dimana binary nya adalah 100 0001. Sebagai perbandingan "1" nilainya adalah 31 dan "a" adalah 97. Sedangkan 1 dalam ASCII akan mengeluarkan karakter lain yang dalam hal ini termasuk dalam kategori unprintable characters.

Namun semakin lama baru disadari kalau jumlah karakter itu banyak, maka dibuatlah 8-bit encodings yang merupakan versi extended dari ASCII yang menambahkan satu bit untuk karakter-karakter lain. Tapi makin lama para ahli ini sadar bahasa di dunia gak cuma bahasa inggris saja, jadi dibikin lagi standar baru yaitu Unicode yang menampung banyak bahasa di dunia. So kurang lebih begitu.
 


Popular Posts