Category Archives: Uncategorized

Benarkah Mac Aman Dari Virus?

Jawaban singkatnya: ya dan tidak. Maaf kalau jawaban saya menyebalkan, tetapi memang begitulah realitanya.

Mac (macOS) memang lebih aman dari serangan virus jika dibandingkan sistem operasi Windows. Hal ini disebabkan karena populasi mayoritas virus yang beredar memang khusus menarget Windows. Tentu saja kita dapat memakluminya karena sampai saat ini Windows masih menjadi pemegang market share terbesar. Banyaknya komputer yang dapat menjadi target serangan tentu lebih menggiurkan bagi pembuat virus daripada Mac atau Linux yang lebih sedikit penggunanya.

Semakin besar target serangan, tentu dampak dari serangan itu akan semakin besar, apapun tujuan si pembuat virus. Jika ia menginginkan uang, tentu yang ia dapatkan akan lebih besar. Begitu pula dengan kerugian lain yang ia inginkan.

Ini jika kita hanya melihat dari sudut pandang jumlah target saja. Masih banyak lagi yang bisa menjadi faktor seperti keamanan sistem operasi itu sendiri, bahkan keamanan perangkat kerasnya.

Lalu bagaimana solusinya agar kita aman dari serangan virus?

Kuncinya terletak pada behaviour penggunaan kita. Berikut ini beberapa tips yang selalu saya praktikkan sehingga sudah lebih dari 10 tahun ini saya tidak pernah terserang virus baik di PC Windows maupun di laptop Mac saya.

  1. Selalu berhati-hati ketika mencolokkan flash disk.
    USB Flash Disk adalah medium penyebaran virus terampuh kedua (setelah Internet). Setelah kita mencolokkan flash disk ke komputer lain (apalagi dari warnet atau tempat printing) maka 99.99999% flash disk Anda telah terinfeksi.
  2. Jangan asal klik iklan atau website mencurigakan saat browsing.
  3. Selalu update sistem operasi terutama saat ada security update.

Sekian.

Advertisements

Time is an illusion of past, present, and future.

– Albert Einstein on the Genius series by National Geographic

Farrellwell

Note:
This article was originally posted on Avara official blog at November 9, 2015 when one of our co-founders decided to left the gang.

As people said, turnover rate in startup companies is high. People come and go for many reasons. Earlier this month, we lost one of our family member for a consulting company. Farrell was working with us for about three months since August. He is one of the co-founding member along with Mahdan and me.

He is one of the most hard-working man I’ve ever known. He just cannot stay still. He will not feel good if there’s nothing to do. His abilities are related to enterprise-scale IT analysis. From business analysis to documenting projects. Unfortunately, there are little things to do in a just-starting-up company like Avara.

We highly regards documentation. It is a very important thing to have when we are going to scale. But his skills will be well developed if he work for a bigger company (especially consultant) because there will be much more experience and mentors to help him grow.
Best of luck, Farrell. We hope you will achieve great things there! Not everyone get opportunity like you, to work abroad and return home in regular basis. So, make the most of it! And if you’re tired of Singapore working style, maybe you can come back 🙂

P.S: If you’re in Bandung, don’t forget to come over to our office. Let’s play FIFA 🙂

From your family,
Aria & Mahdan

Cametreon: Mengetahui biaya penggunaan listrik rumah. Powered by Arduino

Proyek Akhir Mata Kuliah IMK

Kelompok:

  • 18211004 – Subkhan Syarif
  • 18211008 – Aria Dhanang Dewangga
  • 18211015 – Fady Noor Ilmi
  • 18211035 – Raden Ryan Adi Wicaksana
  • 18211054 – Faris Taufiq Zakiy
  • 18211057 – Mekaputra Yudahandika

Latar Belakang

Proyek IMK yang kami buat kali ini diberi nama Cametreon (Catat Meter Real TIme Online). Kami membuat ini sebagai solusi untuk memudahkan penyedia jasa listrik rumah dalam mencatat penggunaan listrik. Saat ini untuk melakukan pencatatan penggunaan listrik rumah digunakan KWhmeter. Sayangnya pengumpulan data masih dilakukan secara manual, yaitu dengan mengirimkan petugas untuk terjun langsung datang ke rumah-rumah untuk mencatat nilai dari KWhmeter.

Produk yang Dibuat

Produk ini kami beri nama Cametreon. Fungsinya adalah untuk mencatat penggunaan listrik di rumah-rumah dan mengirimkannya langsung ke server milik PLN. Selain itu Cametreon juga menampilkan berapa biaya yang harus dibayar pelanggan.

Berikut adalah blok diagram Cametreon.

blok desain

Dalam tugas ini, pengiriman data disimulasikan melalui bluetooth yang dapat disambungkan ke komputer.

Prinsip Kerja

Cametreon dibagi menjadi dua fungsi utama yang diimplementasikan dengan dua buah Arduino Uno: reader dan logger.

1. Reader

arduino1 flowchart

Fungsi dari Arduino reader adalah untuk membaca penggunaan listrik. Caranya adalah dengan membaca putaran piringan (yang akan berputar sesuai dengan penggunaan. Pembacaan dilakukan dengan menggunakan sensor infra merah.

rangkaian cametreon.png

Pemutaran disc disimulasikan secara manual menggunakan tangan karena dalam tahap ini pengembangan Cametreon masih prototipe, belum dihubungkan ke listrik rumah sesungguhnya.

Besar listrik yang digunakan tergantung dengan berapa putaran piringan tersebut berputar. Kami menggunakan asumsi setiap penggunaan 1KW disc harus berputar 900 kali. Sehingga satu putaran akan dihitung sebagai 1KW/900 atau 0.0011KW.

Kemudian data yang didapatkan dikirimkan ke Arduino logger melalui koneksi kabel.

Ini adalah source code dari program Arduino reader.


#include <Wire.h>

int pd=2;                      //Photodiode to digital pin 2
int lamp=13;                   //piezo lamper to digital pin 13
int senRead=0;                 //Readings from sensor to analog pin 0
int limit=990;                 //Threshold range of an obstacle
byte x=0;

void setup()
{
Wire.begin();
pinMode(pd,OUTPUT);
pinMode(lamp,OUTPUT);
digitalWrite(pd,HIGH);       //supply 5 volts to photodiode
digitalWrite(lamp,LOW);      //set the lamplamper in off mode (initial condition)
Serial.begin(9600);          //setting serial monitor at a default baund rate of 9600
}
void loop()
{

Wire.beginTransmission(4);

int val=analogRead(senRead);  //variable to store values from the photodiode

Serial.println(val);          // prints the values from the sensor in serial monitor
if(val <= limit)              //If obstacle is nearer than the Threshold range
{
//digitalWrite(lamp,HIGH);     // lamper will be in ON state
x=1;
Wire.write(x);
//Serial.write("ON");
}
else if(val > limit)          //If obstacle is not in Threshold range
{
//digitalWrite(lamp,LOW);      //lamper will be in OFF state
//Serial.write("OFF");
x=0;
Wire.write(x);
}

Wire.endTransmission();
delay(20);
}

2.  Logger

Fungsi utama dari Arduino ini adalah menerima input data penggunaan listrik dari Arduino reader kemudian menampilkan biaya penggunaan melalui layar LCD.  Arduno ini selanjutnya mengirimkan data melalui bluetooth ke komputer yang sudah di-pair dengan sensor HC-05 yang tetempel di board Arduino.

arduino2 flowchart

Untuk menghitung harga digunakan harga Rp1.352 / KWh.

Berikut adalah kode program Arduino logger.

#include <Wire.h>
#include <LiquidCrystal.h>

//Buat LCD
LiquidCrystal lcd(12, 11, 5, 4, 3, 2);
const byte ROWS = 2; //four rows
const byte COLS = 16; //four columns

int fromArduino1=2;                      //Photodiode to digital pin 2
int lamp=13;                   //piezo buzzer to digital pin 13
int x=0;

//Buat ngitung kWh
int put = 0;
double kWh = 0.00;
double harga = 0.00;

// Buat Bluetooth
char val;  // Variable untuk menerima data dari bluetooth

void setup()
{

//Buat LCD
lcd.begin(COLS,ROWS);
lcd.print("horey");

Wire.begin(4);
Wire.onReceive(receiveEvent);

pinMode(fromArduino1,OUTPUT);
pinMode(lamp,OUTPUT);
Serial.begin(9600);          //setting serial monitor at a default baund rate of 9600
}
void loop()
{
harga = put*1.5022;
if(x == 1){
digitalWrite(lamp, HIGH);

// Ngitung
put++;

lcd.print("Tagihan Listrik:");
lcd.setCursor(0, 1);
lcd.print("Rp ");
lcd.print(harga);

delay(500);
}else{
digitalWrite(lamp, LOW);

lcd.print("Tagihan Listrik:");
lcd.setCursor(0, 1);
lcd.print("Rp ");
lcd.print(harga);

delay(20);
}
lcd.clear();
}

void receiveEvent(int howMany)
{
x = Wire.read();    // receive byte as an integer
Serial.println(x);         // print the integer
}

Alat dan Bahan yang Digunakan

Rangkaian

Berikut adalah rangkaian kedua Arduino dan komponen lainnya.

rangkaian hardware

Hasil

Cametreon berhasil dibuat. Sayangnya kami kurang mendokumentasikan. Sebelum ingat untuk memfoto produk ini kami malah membongkarnya 🙂

rangkaian cametreon.png

Ini adalah screenshot dari hasil pengiriman penggunaan listrik melalui bluetooth.

Screen Shot 2014-05-13 at 9.49.43

 Hambatan

  • Sensor Optocoupler medelak saat pertama kali dicoba. Hal ini terjadi karena kekurangtelitian kami dalam memasang rangkaian.
  • Lama mengerjakan bluetooth. Ternyata masalahnya ada di pin Tx dan Rx yang tertukar di program..
  • Membuat produk jadi indah, enak dipandang. Tidak enak juga menyebut rangkaian dan perkabelan sebagai sebuah produk, tanpa casing. Sehingga kami membuatkan casing dari kardus dan dibungkus oleh kertas warna.

Kalkulator Arduino!

Kembali lagi bersama seri Arduino, kali ini kami membuat kalkulator sederhana menggunakan keypad.

Ini dia videonya:


Source code:


const int numRows = 4; // number of rows in the keypad
const int numCols = 4; // number of columns
const int debounceTime = 20; // number of milliseconds for switch to be stable

const int keymap[numRows][numCols] = {
{ 1, 2, 3, -2} , // -2: penambahan, -3: pengurangan, -4: perkalian, -5: pembagian, -6: =
{ 4, 5, 6, -3} ,
{ 7, 8, 9, -4} ,
{ 999, 0, -6, -5}
};

const int rowPins[numRows] = { 5,4,3,2 }; // Rows 0 through 3
const int colPins[numCols] = { 9,8,7, 6 }; // Columns 0 through 2

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

for (int row = 0; row < numRows; row++)
{
pinMode(rowPins[row],INPUT); // Set row pins as input
digitalWrite(rowPins[row],HIGH); // turn on Pull-ups
}
for (int column = 0; column < numCols; column++)
{
pinMode(colPins[column],OUTPUT); // Set column pins as outputs
digitalWrite(colPins[column],HIGH); // Make all columns inactive
}
}

int angka1 = 0;
int angka2 = 0;
char operation;
boolean isOpSet = false;
void loop(){
int key = getKey();
if( key != -1) { // if the character is not 0 then
if(key != -2){
if(key != -3){
if(key != -4){
if(key != -5){
if(key != -6){
if(angka1 == 0){ //check apakah angka pertama sudah di isi belum. jika belum, mengisi angka pertama
angka1 = key;
Serial.print(angka1);
//Serial.print("angka pertama kepencet");
}else{
if(isOpSet == false){
angka1 = concatenate(angka1,key);
Serial.print(key);
}else{
if(angka2 == 0){
angka2 = key;
Serial.print(angka2);
//Serial.println("angka kedua kepencet");
}else if(key != -6){
angka2 = concatenate(angka2,key);
Serial.print(key);
}else{
}
}
}
}else{
Serial.print(" = ");
Serial.println(hitung(angka1, operation, angka2));
angka1 = 0;
angka2=0;
isOpSet = false;
}
}else{
operation = ':';
Serial.print(operation);
isOpSet = true;
}
}else{
operation = '*';
Serial.print(operation);
isOpSet = true;
}
}else{
operation = '-';
Serial.print(operation);
isOpSet = true;
}
}else{
operation = '+';
Serial.print(operation);
isOpSet = true;
}
}
}

int hitung(int a1, char op, int a2){
if(op == '+'){
return a1+a2;
}else if(op == '-'){
return a1-a2;
}else if(op == '*'){
return a1*a2;
}else if(op == ':'){
return a1/a2;
}
}

unsigned concatenate(unsigned x, unsigned y) {
unsigned pow = 10;
while(y >= pow)
pow *= 10;
return x * pow + y;
}

// returns with the key pressed, or 0 if no key is pressed
int getKey(){
int key = -1; // 0 indicates no key pressed
for(int column = 0; column < numCols; column++){
digitalWrite(colPins[column],LOW); // Activate the current column.
for(int row = 0; row < numRows; row++){
if(digitalRead(rowPins[row]) == LOW){
delay(debounceTime); // debounce
while(digitalRead(rowPins[row]) == LOW); // wait for key to be released
key = keymap[row][column]; // Remember which key
}
}

digitalWrite(colPins[column],HIGH); // De-activate the current column.
}
return key; // returns the key pressed or 0 if none
}

Screen Shot 2014-03-26 at 0.10.31

Ini dia foto-fotonya:

Foto1224 Foto1228 Foto1230 Foto1231 Foto1232 Foto1233

Membuat Termometer dengan Arduino Uno

Kembali lagi bersama Arduino! Proyek kali ini adalah memanfaatkan Arduino untuk mengukur temperatur menggunakan sensor LDR (Light Emitting Resistor).

Alat dan Bahan

  1. 1 board Arduino Uno
  2. 1 sensor LDR
  3. Kabel konektor USB Arduino ke PC
  4. Kabel
  5. Breadboard

Step 1: Memasang alat-alat

Pasang alat-alat seperti berikut:

lm35_bb

Step 2: Programming

/*
lm35 sketch
prints the temperature to the Serial Monitor
*/
const int inPin = 0; // analog pin
void setup()
{
Serial.begin(9600);
}
void loop()
{
int value = analogRead(inPin);
Serial.print(value); Serial.print(” &gt; “);
float millivolts = (value / 1024.0) * 5000;
float celsius = millivolts / 10; // sensor output is 10mV per degree Celsius
Serial.print(celsius);
Serial.print(” degrees Celsius, “);
Serial.print( (celsius * 9)/ 5 + 32 ); // converts to fahrenheit
Serial.println(” degrees Fahrenheit”);
delay(1000); // wait for one second
}

Step 3: Selesai!

Hasil bisa dilihat di serial monitor pada IDE Arduino do PC.

Begitulah cara membuat termometer sederhana dengan Arduino. Terima kasih!