Desember 17, 2017

Cara Compile Telegram Cli pada Raspberry pi 3B

Telegram adalah applikasi chatting yang menurutku adalah yang terbaik saat ini bisa chat dari smartphone, laptop,bahkan dari sbc dengan menggunakan tgcli nah karena inilah aku akan menuliskan catatanku ketika mengompile telegram cli di raspberry pi 3b.
sebelum ngompile siapkan dependensi yang dibutuhkan
pi@raspberry:~$ sudo aptitude update
pi@raspberry:~$ sudo aptitude install libreadline-dev libconfig-dev libssl1.0-dev lua5.2 liblua5.2-dev libevent-dev libjansson-dev libpython-dev make





pi@raspberry:~$ git clone --recursive https://github.com/vysheng/tg.git && cd tg
pi@raspberry:~/tg$ nano tgl/mtproto-utils.c
cari static unsigned long long BN2ull (TGLC_bn *b) pada else if (sizeof (unsigned long long) == 8) cari assert(0); kasih komen seperti ini //assert(0); atau hapus aja hehe selanjutnya
pi@raspberry:~/tg$ ./configure
tunggu sampai selesai selanjutnya compile dengan
pi@raspberry:~/tg$ make -j3
tunggu sampai selesai ngompilenya
pi@raspberry:~/tg$ nano response.lua
 function on_msg_receive (msg)  
    if msg.out then  
      return  
    end  
    if (msg.text=='/ganteng') then  
        send_msg (msg.from.id, 'aku emang paling ganteng kok', ok_cb, false)  
    end  
 end  

save kemudian jalankan telegram cli dengan
pi@raspberry:~/tg$ bin/telegram-cli -k tg-server.pub -W -s response.lua
nanti akan diminta untuk memasukan no telpon dan juga code ikut instruksinya untuk mengirim chat  ketik msg displayname pesan yang akan dikirim dan satu lagi buka telegram dari smartphone atau device lainnya buka saved message dan chat dengan /ganteng atau kata kunci apapun yang kamu buat dio response.lua tgcli akan membalas sesuai yang terdefinisikan di response.lua

Agustus 14, 2017

menggunakan lcd 1602 pada arduino uno

lcd atau liquid crystal display adalah alat yang digunakan untuk menampilkan sesuatu agar terlihat pada suatu panel jadi kita bisa melihat text,gambar atau apapun yang akan kita lihat. lcd 1602 merupakan layar atau display yang hanya mampu menampung 16 karakter dan 2baris saja jadi tidak bisa digunakan menampilkan banyak karakter, meskipun demikian cukup kok untuk menampilkan informasi suhu, kelembaban, jarak, tegangan dll. tapi tidak cukup untuk menuliskan status alay eh.

tanpa banyak basa basi ayo mulai percobaan kita, solder kabel jumper male to male or male to female silahkan pilih sendiri. solder kabel jumper lubang vss, vdd, v0, rs, rw, e, d4, d5, d6, d7, anoda dan katoda
setelah itu hubungkan vss ke ground, vdd ke 5v, v0 ke ground/potentiometer, rs ke pin 10 arduino, rw ke ground , e ke pin 9, d4 ke pin 7 ,d5 ke pin 6, d6 ke pin 5, d7 ke pin 4, anoda ke resistor yang terhubung dengan 5v, katoda ke ground sebaiknya groundnya ditaruh di breadboard dengan menghubungkan pin ground arduino ke lubang -(biru) pada breadboard dan pin 5v ke lubang +(merah) pada breadboard



kurang lebih seperti inilah bray



buka arduino ide buat sketch seperti ini

 #include <LiquidCrystal.h>  
 LiquidCrystal disp(10, 9, 7, 6, 5, 4);  
 void setup() {  
  // put your setup code here, to run once:  
  disp.begin(16,2);  
 }  
 void loop() {  
  // put your main code here, to run repeatedly:  
  for(int r=0;r<2;r++){  
   for(int c=0; c<16;c++){  
    disp.clear();  
    disp.setCursor(c,r);  
    disp.print("->");  
    delay(1000);  
   }  
  }  
 }  

dan hasilnya seperti ini





dan solderan lcdnya seperti ini

Agustus 04, 2017

Mendengarkan dan membaca data yang dikirim arduino uno di pc menggunakan python serial

python serial merupakan modul yang dapat kita gunakan untuk menerima dan mengirim data melalui port serial jadi bisa kita gunakan untuk berkomunikasi antara komputer yang kita miliki dengan arduino dalam hal ini yang saya gunakan adalah arduino uno.

dengan menggunakan python serial dan sensor dht11 kita bisa membuat project mengukur suhu dan kelembaban udara suatu ruangan dan hasilnya bisa kita lihat di komputer entah itu langsung disajikan pada terminal di linux ataupun kita tulis kedalam sebuah file text yang kita simpan jadi kita bisa buka kapan saja melalui text editor.

hubungkan pin + ke pin 5v , pin out ke pin a5, pin - ke pin ground kemudian buat source code di arduino sketch kurang lebih seperti ini

#include <DHT.h>
#define DHTTYPE DHT11
#define DHTPIN A5
DHT dht (DHTPIN, DHTTYPE);

void setup(){
    Serial.begin(9600);
    dht.begin();
}

void loop(){
    float t= dht.readTemperature();
    float h = dht.readHumidity();
    if(isnan(t) || isnan(h){
        Serial.println("terjadi kesalahan dalam pemasangan sensor dht");
    }else{
         Serial.print("suhu ruangan: ");
         Serial.print(t);
         Serial.print(" °C");
         Serial.print("\tkelembaban udara: ");
         Serial.print(h);
         Serial.println(" %");
    }
}


sekarang saatnya untuk kita membuat program di linux dengan menggunakan bahasa python dan dibantu oleh modul pySerial alias python serial untuk mengirim dan menerima data melalui jalur serial.

sekarang import serial dengan perintah import serial lalu buat variabel ser dan inisiasi dengan seperti berikut ini.

ser = serial.Serial('/dev/ttyACM0', 9600, timeout=5)

/dev/ttyACM0 adalah port yang terhubung ke arduino kalo diwindows biasanya com 9600 merupakan baudrate yang kita tentukan pada sketch arduino tadi timeout=5 artinya kita menset timeout dengan 5. Selanjutnya buat perulangan yang terus menerus berjalan menggunakan while untuk mendapatkan datanya.
Selanjutnya buat variable data yang akan kita gunakan untuk menampung data yang kita terima dari arduino dengan cara seperti ini.

data = ser.readline()

source code selengkapnya adalah seperti ini

import serial

ser = serial.Serial('/dev/ttyACM0', 9600 , timeout=5)
while True:
  data = ser.readline()
  if data != None and data != "":
     print data

seperti inilah yang akan kita lihat




 catatan /dev/ttyACM0 mengikuti port anda yang terhubung ke arduino jadi sebaiknya cek terlebih dahulu anda menggunakan port berapa bisa saja menggunakan port /dev/ttyACM1 atau port yang lain.

Juli 31, 2017

menggunakan pir sebagai saklar led

PIR (Passive InfraRed) adalah infrared passive yang dapat digunakan untuk mendeteksi keberadaan pergerakan manusia binatang dll, sensor pir hanya mendeteksi pergerakan bukan keberadaan sesuatu jadi jika objek tersebut diam tidak akan terdeteksi oleh sensor pir, pir hanya dap at mendeteksi satu titik jadi dibutuhkan banyak pir untuk mendeteksi banyak titik gerakan objek.

pir menjangkau kurang lebih 10 meter dengan sudut 15 derajat. pir sensor kita jadikan saklar lampu rumah kita berdasarkan gerakan tangan atau pun gerakan kaki bisa juga untuk project lain yang membutuhkan pendeteksi gerakan objek.

pir memiliki 3pin, pir yang aku punya pin 1 (sebelah kiri) adalah 5v, pin 2 (tengah) adalah out dan pin 3 (kanan) adalah GND (ground). hubungkan pin satu ke pin 5v atau bisa juga hubungkan pin 5v ke lubang + pada breadboard masukkan pin 1 pir ke lubang + breadboard, masukan pin 2 pir kedalam pin 2 arduino (saya menggunakan arduino uno), hubungkan pin 3 pir ke pin GND arduino atau bisa juga hubungkan pin GND arduino ke lubang - breadboard dan hubungkan pin 3 pir ke lubang - breadboard, pada led hubungkan anode dengan pin 3 arduino.

Buat sketch di arduino IDE tulis seperti source code dibaris paling bawah dari tulisan ini. demikian tulisan gaje saya semoga bisa memberikan inspirasi.


led mati setelah mendeteksi gerakan kedua

gambar pir

led menyala setelah mendeteksi gerakan



 // mendefinisikan PIR sebagai integer 2  
 #define PIR 2  
 // mendefinisakan LED sebagai integer 3  
 #define LED 3  
 int s,a; // membuat variabel s dan a  
 //variabel s untuk menampung hasil sensor, sedangkan var a untuk perulangan ketika //menyiapkan sensor pir  
 boolean dipakai=false; // variabel untuk menandai hasil sensor pir pernah dipakai  
 boolean pernah = false; // untuk mengeliminasi hasil sensor yang kedua dalam satu gerakan  
 void setup() {  
  // put your setup code here, to run once:  
  Serial.begin(9600); // menginiasiasi untuk digunakan komunikasi antara arduino dengan pc  
  pinMode(LED, OUTPUT); //set mode pin sebagai output digital  
  pinMode(PIR, INPUT); //set mode pin sebagai input digital  
  digitalWrite(LED, LOW);  
  Serial.print("menyiapkan pir ");  
  for(a=1; a < 8; a++){  
   delay(1000);  
   Serial.print(a);  
   Serial.print(".");  
  }  
  Serial.println("selesai");  
 }  
 void loop() {  
  // put your main code here, to run repeatedly:  
  s = digitalRead(PIR); // membaca sensor pir  
  if(s== HIGH && !pernah){  
   pernah = !pernah;  
   Serial.print("objek bergerak... ");  
   Serial.println(millis()/1000);  
   delay(1000);  
   if(!dipakai){  
    analogWrite(LED, 255);  
    dipakai=!dipakai;  
   }else if(dipakai){  
    analogWrite(LED, 0);  
    dipakai=!dipakai;  
   }  
  }  
  if(s==LOW && pernah){  
   pernah=!pernah;  
   Serial.print("objek diam... ");  
   Serial.println(millis()/1000);  
   delay(1000);  
  }  
 }  

Juli 26, 2017

mengetahui suhu dan kelembaban udara menggunakan sensor dht11 dan arduino uno r3 atau clone

DHT11 merupakan sensor yang dapat membaca suhu dan kelembaban udara sekaligus, sensor dht11 merupakan sensor dasar dan versi lowcost (yang termurah) dari seluruh sensor dht. meskipun demikian sensor dht11 didalamya sudah terdapat mikrokontroler 8bit yang digunakan untuk mengolah sensor suhu dan kelembaban udara sehingga data yang diterima oleh pin arduino merupakan data yang siap untuk disajikan.

dht11 membutuhkan power supplay 3,5v- 5,5v dan mengkonsumsi arus ketika pengukuran 0,3mA dipasaran dht11 terdapat dua jenis yaitu yang punya kaki 3 dan kaki 4 biasanya yang kaki 4 hanya dipakai 3 kaki saja satu kakinya diabaikan alias tidak digunakan.

Berikut ini pin-pin sensor dht11 (saya punya yang versi 3 kaki):
  • Pin 1 atau VCC disimbolkan dengan lambang positive (+).
  • Pin 2 atau data disimbolkan dengan tulisan out.
  • pin 3 atau GND disimbolkan dengan lambang negatif (-)
Cara memasangnya:
  •  hubungkan pin-pin DHT11 dengan breadboard
  • hubungkan pin 1 DHT11 dengan pin 5v arduino uno/ clone. 
         yang saya lakukan pin 1 DHT11 saya tancapkan (masukkan) ke 23e pada   breadboard dan kabel jumper male to male dari 5v ke 23a breadboard.
  • hubungkan pin 2 dengan analog 5 pada arduino(A5).
  • hubungkan pin 3 dengan ground (GND).
 kemudian terlebih dulu masukkan library DHT kedalam arduino ide dengan klik sketch lalu pilih include library cari library pilih DHT sensor library apabila tidak ada maka pilih manage library dan pada filter search DHT sensor.

memprogram arduino menggunakan arduino IDE, dalam sebuah sketch biasanya filenya berekstensi dot ino terdiri dari dua bagian yaitu setup yang berisi inisiasi yang akan kita gunakan dalam loop , setup ini hanya akan dijalankan ataupun digunakan sekali , bagian kedua adalah loop dimana semua kode program yang berada didalamnya akan dijalankan secara terus menerus.



sumber referensi yang saya gunakan salah dua dari berbagai website yang saya kunjungi, sebenarnya masih banyak yang saya baca cuma saya cuma ingat 2 situs ini, yaitu:
paling bawah saya sertakan kode suhu.ino yang saya buat  
1:  //import atau memberitahukan pada compiler bahwa saya menggunakan library itu  
2:  #include <DHT.h>  
3:  // mendifiniskan ataupun meminta kompiler mengganti yang depan dengan yang //dibelakangnya  
4:  #define DHTTYPE DHT11  
5:  #define DHTPIN A5  
6:  // inisiasi bahwa kita akan menggunakan DHT module atau fungsi DHT sebagai dht dengan //pin dan type yang sudah terdefinisi  
7:  DHT dht(DHTPIN, DHTTYPE);  
8:  void setup() {  
9:   // put your setup code here, to run once:  
10:   Serial.begin(9600);//inisiasi untuk komunikasi arduino dengan komputer pada 9600 baud //bitrate  
11:   pinMode(BUZZER, OUTPUT);  
12:   Serial.println("mulai mendeteksi...");//print kedalam output monitor serial pada arduino IDE  
13:   dht.begin();//memulai menggunakan dht  
14:  }  
15:  void loop() {  
16:   // put your main code here, to run repeatedly:  
17:   float t = dht.readTemperature();// membaca suhu  
18:   float h = dht.readHumidity();// membaca kelembaban udara  
19:   //mengecek nilai t dan h apakah terdapat nilai yang illegal  
20:   if(isnan(t)|| isnan(h)){  
21:    Serial.println("sensor tidak bekerja semestinya");  
22:   }else{  
23:    Serial.print("suhu ruangan: ");  
24:    Serial.print(t);  
25:    Serial.print(" °C");  
26:    Serial.print("\tkelembaban udara: ");  
27:    Serial.print(h);  
28:    Serial.println(" %");  
29:    delay(900000);  
30:   }  
31:  }  

Juli 22, 2017

Bermain dan Belajar dengan Arduino Uno R3

Setelah beberapa bulan menabung ahirnya terbeli juga Arduino Uno R3, setelah sampai langsung saya coba untuk membuat blink( kedip-kedip) led yang terdapat pada board arduino uno r3. hubungkan kabel usb arduino ke komputer dan board arduino(yang portnya kotak logam) kemudian buka arduino ide klik tools kemudian klik port kemudian pilih /dev/ttyACM0 arduino/genuino uno di distro ubuntu 16.04 saya kalo di windows biasanya com. pilih berkas kemudian pilih example kemudian pilih basics kemudian pilih blink. setelah muncul sketch program blink compile dengan pilih sketch kemudian pilih verify/ compile dan untuk upload (memasukkan program) ke arduino dengan memilih sketch terus pilih upload kalo builtin lednya berkedip-kedip seperti di sketch artinya upload berhasil dan arduino uno anda baik-baik saja.

Setelah kita mencoba contohnya dan berhasil maka saatnya kita membuat led berkedip bergantian, yang kita perlukan adalah breadboard, led, resistor 220 ohm. Kenapa kita menggunakan breadboard dan bukan menggunakan pcb karena breadboard ngga perlu melakukan soldering jadi mudah untuk dilepas kalo nanti kita tidak memerlukannya lagi atau mau ganti prototyping yang lain lagi. Membaca breadboard adalah begini yang ada tanda - dan + itu konduktornya vertical dan tidak akan horizontal jadi tidak akan terhubung positif dan negatif, kemudian pada abcde konduktor terhubung horizontal sehingga 1a tidak akan terhubung dengan 2a bahkan 1a tidak terhubung dengan 1f karena udah beda tempat sehingga jika kita pasang kabel ke 1a maka akan terhubung dengan 1b, 1c, 1d dan 1e.

yang saya bengkokin adalah untuk  dihubungkan dengan resistor, masukkan bagian anoda (yang akan dihubungkan dengan resistor) ke lubang 1a kemudian katoda ke lubang 3a masukan resistor ke lubang 1e dan 4e, masukkan kabel jumper dari ground di arduino ke lubang negatif, masukkan kabel jumper lagi ke lubang kedua dari lubang yang ada tanda minus (-) dan masukan sisi lain kabel jumper tersebut ke lubang 3b yang sejalur dengan anoda. masukkan kabel jumper ke 4a yang sejalur dengan resistor, sisi yang lain kabel jumper yang tadi dimasukkan ke lubang 4a masukkan ke pin 4 pada arduino uno. lakukan hal ini sekali lagi (tentu saja dipin yang beda ya) kalo ingin menggunakan dua led, kemudian buatlah programnya pada sketch save, kompil, upload.

berikut ini hasilnya maafkan kalo gambarnya jelek maklum reso kamera rendah
  
inilah source code yang saya buat
sekian curhat saya mengenai arduino uno r3 semoga bermanfaat

April 27, 2017

Orange pipc2 ane hidup lebih dari sehari

berawal dari penasaran dan iseng saya mencoba orange pipc2 ane agar tetep nyala selama berhari-hari apakah akan mengurangi performanya ternyata tidak sama sekali masih asyik dipake ngoding lua dan golang jadi kepikiran mau pake ngrock agar dapat diremote dari jauh hehe tapi sepertinya niat ini ditunda dulu karena ada banyak hal yang perlu saya pertimbangkan yaitu saya jarang keluar dari kantor so jadi buat apa diremote dari jauh sbc saya ini

arba@orangepipc2:~$ uptime
 19:41:55 up 1 day, 19:03,  1 user,  load average: 0.03, 0.01, 0.00

April 23, 2017

Free Software

Free Software adalah gerakan memastikan masyarakat mendapatkan empat kebebasan berikut ini:
  • bebas meilihat atau pun mendapatkan source code 
  • bebas memodifikasi source code supaya bekerja sesuai dengan kehendak kita
  • bebas menyebarkan software dengan modifikasi atau tanpa modifikasi
  • bebas menggunakan software tersebut tanpa membayar lisensi
kebebasan untuk melihat/mendapatkan source code kemudian diijinkan memodifikasi source code tersebut sangat penting agi mereka yang belajar pemrograman karena mereka bisa belajar dari siitu.

April 22, 2017

multiple asynctask

 applikasi android yang saya buat menggunakan banyak sekali asynctask dan ada satu proses yang harus selalu dieksekusi dengan cepat kalo ngga akan berbahaya banget hehehe dan yang menyakitkan sejak honeycomb asynctask secara default asynctask tidak mengerjakan task secara paralel lagi jadi akan melakukan antrian.

kita bisa membuat asynctask secara paralel dengan mengexecute async dengan code berikut ini


 FirstAsyncTask asyncTask = new FirstAsyncTask(); // First  
 asyncTask.executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR);  

tulisan ini saya buat supaya tidak terputus one day one article hehe

April 21, 2017

Clustering Orange pi pc2 dan orange pi zero dengan menggunakan dispy

Dispy merupakan framework clustering yang komprehensive dan sejauh ini mudah digunakan. dibuat untuk menjalankan komputasi secara paralel dan lintas multi prosesor dalam satu mesin (SMP), dispy juga baik untuk dipake untuk paradigma SMID.

dispy menggunakan assyncoro framework dalam proses assyncronous dan concurentnya, dispy dibuat menggunakan bahasa pemrograman python, jadi kita bisa menggunakan python untuk membuat program client yang mengakses cpu dari server dalam hal ini orange pi pc2 dan orange pi zero.

saya menggunakan in untuk riset pengetahuan seberapa powerfullkah SBC itu ternyata bagus juga untuk digunakan sebagai alternative pc mungkin baginya ngga punya dana besar pengen membuat superkomputer sbc bisa dijadikan alternatif meskipun tidak seratus persen sama dengan superkomputer tapi setidaknya kita sudah berusaha untuk membuat hal itu hehe malah jadi curhat, untuk informasi lebih lanjut soal dispy baca disini

sekarang kita unduh dan install terlebih dahulu dispy supaya bisa digunakan hehe, jika belum memiliki pip pasang terlebih dahulu pip dengan sudo apt install pip di armbian xenial xerus(ubuntu) / armbian jessie(debian) setelah itu install dispy dengan mengetikkan sudo pip install dispy.

setelah semuanya terinstall ketikkan ini pada sbc anda dispynode.py -i 192.168.43.115 (orange pi pc2) dan dispynode.py -i 192.168.43.56 (orange pi zero), 192.168.43.xxx merupakan ip sbc anda tulis sesuai ip sbc anda masing-masing hasilnya seperti digambar
sekarang pada client kita atau device lain yang kita gunakan untuk menjalankan program python karena saya menggunakan program python hehe, saya menggunakan thinkpad t420 sebagai client mari kita mulai ngoding

 import random, dispy  
 def compute(n):  
   import time, socket, random, math  
   name = socket.gethostname()  
   a, b = 0, 1  
   for i in range(0,n):  
    a, b= b, a + b  
   return (name, a)  
 if __name__ == '__main__':  
   cluster = dispy.JobCluster(compute, nodes=["192.168.43.56","192.168.43.115"], ip_addr="192.168.43.161")  
   jobs= []  
   for n in range(0,15):  
    job = cluster.submit(n)  
    if job is None:  
      print( 'creating job %s failed'% n )  
      continue  
    job.id = n  
    jobs.append(job)  
   cluster.wait()  
   for job in jobs:  
    if job.status == dispy.DispyJob.Finished:  
      print('%s compute: deret fibonacci ke-%s %s'% (job.result[0], job.id, job.result[1]))  
    else:  
      print(job.exception)  
   cluster.print_status()  
   cluster.close()  

untuk ip_addr="" isi dengan ip client yang kamu gunakan untuk membuat source code itu ip berapa hehe dalam nodes itu isi dengan ip sbcmu
hasilnya kurang lebih seperti gambar ini
jalankan source code yang kita namakan fibonacci.py dengan python fibonacci.py, dan liat lah hasilnya hehe semoga bermanfaat.

NB: untuk penjelasan source code nantikan aja ya kelanjutannya

April 20, 2017

Mount samba file sharing dari orange pi zero(server) kedalam mesin kita(Orange pi pc2(client))

Kalo Kemarin kita bahas lua maka kita istirahat sejenak dari bahas lua, sekarang kita bahas file sharing menggunakan samba yang mana dulu saya punya proyek nas menggunakan orange pi zero maka sekarang saya yang sudah menambah orange pi pc2 sebagai client dan yups keduanya ane pake headless tanpa monitor,keyboard dan mouse.

Saya mengakses keduanya menggunakan SSH(Secure SHell) maka saya akses terlebih dahulu orange pi pc2 kemudian saya memuat berkas yang dibagi oleh orange pi zero, oh iya sebelum melakukan aksi ini usahakan orange pi pc2 sudah terinstall samba dan cifs-utils jika belum lakukan ini sudo apt install samba cifs-utils.

untuk memuat file tersebut ketikan ini

mount -t cifs -o user=arba //192.168.43.56/DATAKU /media/arba

mount = mount directory cifs
-o = option open
user=arba artinya usernamenya arba
//192blabla itu ip server(opi zero) dan DATAKU adalah file yang di bagi
/media/arba adalah tujuan mount

begitu saja deh tulisan saya ahiri Terima Kasih.

Programming Lua part 2

Kemarin saya tulis tentang syntax dasar lua sekarang saya akan menulis tentang pembuatan fungsi pada lua, fungsi adalah subsquence yang kita gunakan untuk mengorganisir squence yang kita buat supaya kita bisa menggunakan squence tersebut tanpa menuliskannya berulang jadi kita tinggal memanggil fungsi tersebut kapanpun kita butuh.

Saya akan mencontohkan membuat fungsi untuk melakukan operasi faktorial dan saya akan menggunakan fungsi rekursif sekalian. Apa itu fungsi rekursif? Fungsi rekursif adalah fungsi yang memanggil dirinya sendiri dalam squencenya.

baiklah kita buat file faktorial.lua ketik aja pada terminal nano faktorial.lua

 #!/usr/bin/env lua5.2  
 function faktorial(x)  
   if x == 0 then  
    return 1;  
   else   
    return x * faktorial(x-1)  
   end  
 end  
 io.write("Masukkan Angka : ");  
 a = io.read("*number");  
 print(faktorial(a));  
 output:  
 Masukkan Angka : 2  
 2  

function faktorial(x) disini kita mendefinisikan faktorial sebagai fungsi dengan parameter x jadi untuk menggunakan fungsi faktorial ini kita harus memasukkan parameter agar fungsi ini berjalan sebagaimana mestinya, if else kita gunakan sebagai suatu percabangan dari kondisi yang dimiliki parameter tersebut misalnya si parameter x tadi bernilai 0 apa yang akan dikerjakan komputer jika fungsi itu 0 maka diperlukan percabangan untuk menentukan action tiap kondisi tersebut nah dalam contoh ini action kita mereturn 1 atau kita memberikan hasilnya kepada si pemanggil dengan nilai 1 kenapa 1 bukan 2,3,4 atau yang lainnya? karena kita mendefinisikan faktorial dimana faktorial 0 adalah 1, nah kalo ternyata si x ini bernilai 2 dan itu tidak memenuhi syarat dari si if yang mensyaratkan harus sama dengan 0 maka masuk ke bagian else nah di else kita membuat action me return si dengan hasil dari x dikalikan dengan faktorial dari x - 1 faktorial disini adalah fungsi yang kita buat jadi bisa dikatakan kita menggunakan fungsi faktorial kenapa musti minus satu kenapa tidak plus 1 karena untuk mencegah itu memanggil fungsi tersebut berulang-ulang tampa berkesudahan tapi kalo kita memasukkan parameter dengan x minus 1 maka dia akan berhenti di if x==0 yang mereturn 1 begitu kira-kira penjelasannya hehe, dalam contoh tersebut return yang kita berikan adalah sebagai berikut 2 kali faktorial(1) kemudian menjadi 2 kali 1 kali faktorial(0) yang pada ahirnya menjadi 2 kali 1 kali 1 = 2.

io.write() adalah fungsi yang digunakan untuk menampilkan kedalam monitor tanpa newline berbeda dengan print yang menyertakan newline
a = io.read("*number"); kita membaca inputan keyboard dan hanya mengambil yang angka  saja kemudian dimasukkan kedalam variabel a kalo kita masukkan huruf maka akan terjadi galat karena tidak ada yang diambil dan variabel a bernilai null aka nil dalam lua sehingga fungsi yang kita buat tidak berfungsi atau terjadi galat
print(faktorial(a)); kita mencetak hasil return dari fungsi faktorial yang kita buat dengan parameter a dimana a merupakan hasil dari inputan keyboard

demikian tulisan saya semoga mudah dipahami.

April 19, 2017

Programming lua part 1

Saya kemarin iseng-iseng nyari tau sesuatu yang bisa saya explore ahirnya saya menemukan lua, dan menurutku bahasa pemrograman lua cukup simple dan gampang dicerna. lua memang sengaja dirancang supaya dinamis, ringan dan ringkas dan yang paling penting tidak memiliki aturan yang ketat.

marilah kita mulai menulis skrip lua kita beri nama hello.lua

 #!/usr/bin/env lua5.2  
 print("Hello, Lua!");  
 -- ini sebuah komen satu baris  
 --[[ ini digunakan untuk membuat komen beberapa baris   
 dan tidak akan ditampilkan. ]] 
output: 
$ chmod +x hello.lua
$ ./hello.lua
Hello, Lua!
$

#!/usr/bin/env lua5.2 lua5.3 merupakan baris yang kita gunakan untuk pemberitahuan ke komputer kita bahwa kita ingin menggunakan intepreter lua5.2, lua5.3 dll bisa juga untuk python, bash dan semua script yang kita buat tapi karena kita membua script lua jadi kita memanggil intepreter lua sedangkan 5.2 atau 5.3 merupakan versi dari lua yang akan kita pake

print() merupakan sebuah fungsi atau method untuk mencetak tulisan kedalam monitor dalam hal ini pada terminal dan sekaligus create newline jika tidak ingin newline maka gunakanlah io.write().

begitulah aku harap dapat dipahami, aku sulit sekali menulis sesuatu yang bisa mudah ditangkap orang, pada part 2 nanti insya allah akan saya tuliskan mengenai pembuatan fungsi pada lua, terima kasih buat yang udah baca.

April 18, 2017

Akses Orange pi pc2 headless SSH melalui usb tethering android

Tulisan ini saya tulis berdasarkan permasalahan yang saya hadapi dikantor saya yang tidak ada televisi sehingga saya bingung gimana caranya akses orange pi pc2 yang mana belum support wifi setelah dirumah saya memiliki led tv saya kepiikiran untuk konek internet lewat tethering usb karena saya tidak mmemiliki router dan kabel lan eh ternyata bisa konek internet.

Jadi saya dapat ide lagi kalo gitu saya bisa ssh menggunakan juice ssh tapi ane dapet ide pake termux setelah baca blog pak apip(bluemeda) dalam artikel ini dan untuk mendapatkan ip orange pi pc2 menggunakan ip tools caranya bagaimana ikuti langkah-langkahnya sebagai berikut:

1. pasang power adapter kedalam port power dan jack 3.5 kedalam portnya dan juga kabel usb kedalam port usb dan pastikan juga terhubung ke smartphone via port microusb.

 2. tunggu sampai led menyala warna hijau untuk armbian selain armbian biasanya berwarna terus buka smartphone masuk ke menu setting kemudian cari usb tethering.

3.  buka ip tools terus menu kanan atas, pilih lan scanner terus masukkan ip 192.168.42.1 terus tekan panah tunggu sampai ketemu ip orange pimu.




4. buka juice ssh terus tekan actionbar sebelahnya pengaturan gambar yang mirip petir itu terus masukin username dan ipnya seperti ini contohnya arba@192.168.42.12 lalu tekan ok.
 keterangan: arba merupakan username orange pi anda dan 192.168.42.12 adalah ip orange pi anda yang didapat dari ip tools





disini masukkan password untuk usernamemu



dan hasilnnya akan seperti berikut

goodluck bray.

April 17, 2017

Install Zekr

Karena ALQuran saya dirumah kebanyakan rusak dimakan rayap jadi saya memutuskan utuk menginstall zekr pada armbian xenial xerus yang saya pasang pada Orange pi pc2. Saya memilih zekr karena tampilannya yang sederhana, mudah digunakan dan yang paling penting ada fiturmemutar audio murrotal para qari terkenal di seluruh dunia.

Saya menginstallnya dengan menggunakan sudo apt-get install zekr, kemudian ketika saya coba membuka zekr ternyata terdapat galat dan setelah saya browsing saya menemukan solusi yaitu dengan menginstall libwebkitgtk-1.0-0 maka saya memasang lib tersebut dengan sudo apt-get install libwebkitgtk-1.0-0 tunggu sampai proses instalasi selesai.

Jalankan kembali zekr maka tidak akan ada error lagi dan kita bisa memulai membaca alquuran dan mentadaburinya. Zekr merupakan aplikasi pilihan saya untuk aplikasi alquran karena saya benar-benar cocok dengan zekr.


gimana tertarik mencoba?

April 16, 2017

Sehari tanpa laptop

saya berencana mengadakan event tidak menggunakan laptop selamanya per 15 april 2017 sampai nanti ane nyerah dan berhenti dari event ini. event ini hanya saya lakukan di rumah karena dikantor saya memerlukan laptop untuk bekerja, lalu kalo tidak menggunakan laptop menggunakan apa dong? saya menggunakan Single Board Computer Orange pi pc2 mini pc buatan xunlong untuk kebutuhan komputasi harian dirumah setelah bekerja.

Internet menggunakan usb thetering yang awalnya aku pikir tidak bisa dilakukan ternyata bisa. Browser yang saya pakai adalah mozilla firefox, enak sekali ini browsing di sbc layaknya menggunakan pc desktop dan suhu sbc ini masih relative dingin tidak seperti opi zero saya yang langsung kepanasan

hari ini saya optimis bisa ngga menyalakan laptop dirumah , dirumah adalah waktu bersama dengan orange pi pc2 yang menurutku udah cukup buat ganntiin laptop saya untuk kebutuhan sehari-hari diluar kerjaan.

April 15, 2017

sebuah nalar

Apasih yang kita pikirkan tentang uang? apa fungsi uang? kenapa butuh uang? apa yang kita dapatkan dengan uang? lebih baik manakah uang atau integritas? berapa jumlah uang yang ada ditanganmu? pertanyaan-pertanyaan itulah yang terus menghantuiku ahir-ahir ini

jadi aku pilih mana punya uang tapi ngga punya integritas atau punya integritas tapi ngga punya uang? manakah yang akan aku pilih entahlah aku lebih memilih biarlah kehidupan ini mengalir apa adanya terus nikmati aja proses yang harus aku jalani. dan satu lagi hantu yang dihembuskan orang di sekitarku yaitu kapan nikah? dalam prinsipku jodoh itu akan bertemu pada saat dirimu sudah siap menjalani kehidupan dunia yang tak tertebak ini.

sedangkan aku belum siap menerima kejutan dari kehidupan karena aku adalah orang yang gampang sekali kagetan nah begitulah kisahku hari ini, ngomong-ngomong kalian pilih yang mana punya uang tapi tak memiliki integritas atau punya integritas tapi ngga punya uang?

April 14, 2017

Armbian Xenial Xerus

Armbian Xenial Xerus merupakan distro ubuntu yang di optimalisasi untuk SBC bisa orange pi, bananapi, odroid, nanopi, pesaingnya yang bagus adalah dietpi raspbian secara default hanya untuk raspberry pi. Armbian xenial xerus menggunakan Desktop Environment XFCE sejauh ini cukup bagus dan menjanjikan.

Armbian Xenial Xerus ini aku pasang pada Orange Pi Pc2 , secara default menyediakan libre office writer tanpa calc dan impress, xterm sebagai default terminal, calculator, mpv media player, armbian monitor, sysbench, browser firefox, python,gcc, gnu assembler.

begitulah armbian xenial xerus yang saya install semua aplikasi yang ada pada armbian xenial xerus merupakan bawaan dari imagenya karena saya mengoperasikan secara offline.

April 13, 2017

Menilik Openbsd 6.1

Setelah hampir 6bulan tidak pernah lagi berurusan dengan openbsd pada ahirnya saya dapat waktu sedikit untuk ngulik openbsd 6.1 yang menurut saya tidak ada perubahan berarti desktopnya. Dari sisi C compilernya masih menggunakan gcc versinya 4.2.1 padahal saya berharap yang openbsd 6.1 sudah menggunakan clang seperti saudaranya freebsd. Yang paling menggembirakan buat saya adalah sudah tersediannya gnu debuger sehingga cukup membantu saya dalam membuat software, serta menganalisa kesalahan algoritma yang saya buat.

as aka gnu assembler mungkin akan sering saya pakai di openbsd 6.1, openbsd 6.1 mungkin akan jadi laboratorium coba-coba saya mengganti debian SID ,tempat dimana saya berexperimen dengan apa yang dipunyai openbsd ini nantikan oprekan saya pada openbsd untuk masalah installasi masih sama seperti openbsd 6.0.

mencoba menggunakan zram di raspberry pi

saya beberapa hari yang lalu mencoba mengaktifkan zram untuk membuat cadangan jika ram udah hampir penuh untuk dipindah ke zram, sejauh ini...