Sabtu, 30 Mei 2015

Virus CTB Locker Ransomware

Virus CTB (Curve Tor Bitcoin) Locker adalah jenis Ransomware terbaru. Mulai menyerang PC user sejak pertengahan Juli 2014. Virus ini sejenis parasit yang akan mengenkrip file-file pribadi kita dan untuk bisa didekrip kembali, kita harus menebusnya dengan berupa Bitcoins yang harganya bisa senilai 120 USD, 24 USD dan lain-lain tergantung permintaan dari jenis CTB Locker tersebut. Saat file-file kita telah terenkripsi, maka kita tidak akan bisa membuka file-file tersebut sebagaimana mestinya. Kita membutuhkan sebuah kunci / key untuk mendekripnya.

CTB Locker ini biasanya menyebar melalui email, pada email tersebut akan ada sebuah attachment file yang mana user biasanya akan terpancing untuk mendownload file tersebut. Setelah user mendownload file attachment tersebut, biasanya file tersebut berbentuk RAR. Setelah itu user mengekstrak file RAR tersebut dan akan ada 2 file hasil ekstraksi yaitu file berjenis HTML dan satu lagi berupa EXE (executable) namun icon file tersebut adalah berlambang PDF. Dan user akan terpancing karena penasaran dengan isi dari file bericon PDF tersebut yang padahal itu adalah awal dari kehancuran. Karena itu adalah trigger awal dari CTB Locker untuk menyebar ke sistem Windows kita. File-file yang akan diinfeksi oleh CTB Locker ini antara lain 3fr, accdb, ai, arw, bay, cdr, cer, cr2, crt, crw, dbf, dcr, der, dng, doc, docm, docx, dwg, dxf, dxg, eps, erf, indd, jpe, jpg, kdc, mdb, mdf, mef, mrw, nef, nrw, odb, odm, odp, ods, odt, orf, p12, p7b, p7c, pdd, pef, pem, pfx, ppt, pptm, pptx, psd, pst, ptx, r3d, raf, raw, rtf, rw2, rwl, srf, srw, wb2, wpd, wps, xlk, xls, xlsb, xlsm, xlsx.

Jika kita sudah mengetahui bahwa PC kita terjangkit virus ini, diharapkan segera untuk menginstall SpyHunter untuk menghapus Ransomware ini. Segera melakukan backup kepada file-file yang belum terinfeksi. Berikut adalah contoh dari warning CTB Locker.


Source : http://www.techrepublic.com/article/ctb-locker-virus-how-to-protect-your-systems-and-what-to-do-if-infected/
Sayangnya meskipun sudah dilakukannya full scanning oleh SpyHunter. File-file yang telah terinfeksi tetap tidak akan bisa dipulihkan kembali. Sehingga kembali lagi kepada slogan "Mencegah lebih baik dari pada mengobati". Sedikit tips dari saya, jangan pernah mudah terpancing kepada file-file yang tidak jelas siapa pengirimnya, perhatikan tipe file atau apa jenis filenya, berhati-hati jika menerima file yang berekstensi EXE, HTML dan VBS. Karena besar sekali kemungkinan itu adalah file-file yang menjadi trigger untuk menyebarnya virus ke dalam PC kita. Sekian dari saya dan semoga bermanfaat.

Sumber : http://tanpavirus.web.id/virus-ctb-locker/

Kamis, 21 Mei 2015

Efisiensi Code Menggunakan Collection Java Library

Pada artikel kali ini, saya akan mencoba berbagi keuntungannya menggunakan salah satu dari Collection Java Library yaitu ArrayList. Sebelumnya saya akan menceritakan sedikit tentang bagaimana cara membaca suatu teks pada sebuah file. Pada pembacaan teks di suatu file, biasanya kita menampung teks dari file tersebut ke dalam suatu array untuk setiap barisnya. Walaupun mungkin ada cara lain. Namun kita akan membahas di sini ketika ingin membaca teks pada suatu file berdasarkan per barisnya.

Langsung saja kita mulai. Kita akan mengambil suatu contoh script dari suatu website

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
public int readLines(String path) throws IOException{
        FileReader file_to_read = new FileReader(path);
        BufferedReader bf = new BufferedReader(file_to_read);
        
        String aLine;
        int numberOfLines = 0;
        
        while((aLine = bf.readLine()) != null){
            numberOfLines++;
        }
        bf.close();
        
        return numberOfLines;
    }
source: http://www.homeandlearn.co.uk/java/read_a_textfile_in_java.html

Script di atas bekerja untuk menghitung jumlah baris teks pada file. Jika kita menggunakan array primitif, kita harus mendefinisikan jumlah element array terlebih dahulu. Karena itulah diperlukan script fungsi seperti di atas. Dan setelah itu menggunakan script berikut ini

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
public String[] OpenFile(String path) throws IOException{
        FileReader fr = new FileReader(path);
        BufferedReader textReader = new BufferedReader(fr);
        
        int numberOfLines = 3;
        String [] textData = new String[numberOfLines];
        
        int i;
        
        for(i = 0; i < numberOfLines; i++){
            textData[i] = textReader.readLine();
        }
        
        textReader.close();
        return textData;       
    }
source: http://www.homeandlearn.co.uk/java/read_a_textfile_in_java.html

Jika menggunakan array primitif seperti script yang di atas, kita harus tahu jumlah elementnya terlebih dahulu, sedangkan kita biasanya tidak akan tahu berapa jumlah baris teks yang ada pada suatu file yang akan kita baca. Terlihat pada baris 5 pada script di atas, masih langsung ditentukan sendiri jumlah barisnya, seharusnya pada script di atas ada perubahan sedikit yaitu pada baris 5 sehingga menjadi seperti ini

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
public String[] OpenFile(String path) throws IOException{
        FileReader fr = new FileReader(path);
        BufferedReader textReader = new BufferedReader(fr);
        
        int numberOfLines = readLines(path);
        String [] textData = new String[numberOfLines];
        
        int i;
        
        for(i = 0; i < numberOfLines; i++){
            textData[i] = textReader.readLine();
        }
        
        textReader.close();
        return textData;       
    }

Script di atas bekerja untuk membaca teks setiap baris pada suatu file, dengan menggunakan readLines(path), jumlah baris teks pada suatu file tersebut bisa kita definisikan melalui nilai kembali dari fungsi tersebut. Kemudian nilai kembalian dari fungsi tersebut digunakan untuk mendefinisikan jumlah dari element array yang akan menampung teks per barisnya.

Namun script di atas semuanya masih bisa diminimalisasi lagi menjadi lebih simpel dengan menggunakan ArrayList. Tidak perlu diharuskan untuk mengetahui berapa jumlah baris teks yang ada pada file yang akan dibaca. Berikut adalah script yang saya buat berdasarkan referensi dan kondisi dari dua script di atas sebelumnya.

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
public ArrayList<String> readFile(String path) throws FileNotFoundException, IOException{
        ArrayList arrList = new ArrayList<String>();
        FileReader fileReader = new FileReader(path);
        BufferedReader br = new BufferedReader(fileReader);
        String tmpLine = "";
        while( (tmpLine = br.readLine()) != null){
            arrList.add(tmpLine);
            //System.out.println(tmpLine);            
        }
        return arrList;
    }


Dengan menggunakan ArrayList, kita tidak perlu tahu jumlah baris teks dari file yang akan kita baca untuk ditampung ke dalam array. Pembacaan file juga hanya cukup sekali, tidak dilakukan dua kali. Selain jumlah code menjadi banyak, dengan kasus seperti ini juga akan membuat lambat kinerja program, karena membaca file dua kali yang mana seharusnya dapat dibaca sekali saja. Sekian dari artikel kali ini, semoga dapat menambah wawasan bagi yang membacanya. Terimakasih

Minggu, 10 Mei 2015

Tips Membaca Dengan Baik Dan Cepat

Membaca adalah salah satu cara dimana kita bisa mengambil suatu pelajaran atau ilmu pengetahuan. Kegiatan membaca sangatlah penting bagi siapa saja yang ingin memiliki tambahan wawasan pengetahuan. Dalam kalangan akademis, justru sangat dianjurkan atau bahkan diharuskan banyak membaca, karena ada beberapa bidang ilmu pengetahuan yang setiap saat terus berkembang, sehingga dibutuhkannya minat baca yang cukup baik.

Dengan membaca, kita menjadi banyak memiliki pandangan akan suatu objek, sehingga akan mempengaruhi pola kita dalam berpikir saat menghadapi suatu problematika. Manfaat membaca juga tidak hanya itu, dengan membaca kita bisa lebih mudah mengawali suatu pembicaraan kepada orang lain sebagai lawan bicara kita, ataupun kita bisa mudah ikut turut berkomunikasi kepada orang-orang yang sedang membicarakan topik tertentu yang ternyata boleh jadi karena kita sering membaca, kita bisa tau topik tersebut lalu kita bisa ikut "nimbrung". Dan masih banyak lagi keberuntungan yang akan kita dapat ketika kita gemar membaca.

Membaca tidak hanya sekedar melihat tulisan lalu mengucapkannya di bibir atau di hati. Tetapi membaca juga memiliki suatu tata cara, tata cara dimana kita bisa membaca secara efektif dan efisien. Efisien di sini adalah dalam arti seberapa banyak kita menggunakan waktu dalam membaca untuk memahami suatu bacaan yang sedang kita baca, semakin sedikit waktu yang kita gunakan untuk bisa sampai memahami apa yang kita baca, maka itu semakin efisien dan vice versa. Pada tulisan kali ini, saya akan mencoba berbagi tentang bagaimana cara membaca dengan baik dan cepat. Berikut adalah caranya.

1. Posisikan kepala dengan bacaan tidak begitu jauh atau tidak begitu dekat
Jarak membaca yang baik adalah 40 cm dari mata dengan sudut 40-70 derajat dari permukaan meja. Membacalah dengan posisi duduk tegak, tidak sedang tiduran apalagi jongkok. Karena agar mata kita tidak begitu bekerja keras dalam membaca dan tulang punggung atau pinggang kita tetap normal, tidak bungkuk atau sebaliknya.

2. Membaca dengan cahaya penerangan yang cukup.
Jika membaca dengan cahaya yang kurang, maka dapat merusak mata. Membacalah di tempat yang memiliki pencahayaan yang cukup terang, agar mata kita tetap sehat setelah membaca. Lalu di saat mata kita terasa sudah mulai lelah, berilah waktu sejenak untuk beristirahat, seperti kita berjalan-jalan sejenak sambil melihat pemandangan hijau atau lain-lainnya.

3. Konsentrasi
Saat membaca kita perlu sekali dalam berkonsentrasi, karena jika kita membaca namun tak berkonsentrasi, maka itu sama halnya dengan membuang - buang waktu saja, karena kita tidak akan bisa mengambil pemahaman dari apa yang kita baca jika tak berkonsentrasi. Sebisa mungkin hindarilah membaca sambil mendengarkan musik, karena biar bagaimanapun, hal itu akan membebani kinerja otak kita, sehingga kita menjadi lebih sulit dalam berkonsentrasi untuk membaca.

4. Membaca dengan tidak bersuara
Membaca yang baik itu tak perlu sampai mengeluarkan suara yang kita baca, berkaitan pula dengan kecepatan membaca, karena jika kita bersuara, otomatis akan memperlambat kecepatan kita membaca. Membaca dengan bibir yang bergerakpun juga tidak seharusnya demikian, karena itu juga akan memperlambat kecepatan membaca kita. Bahkan membaca dengan mengucapkan kembali kata-kata yang telah dibaca di kepala kita pun juga akan memperlambat kecepatan membaca kita.

5. Membaca dengan tidak menggerakan leher
Dalam membaca, terkadang leher kita ikut bergerak menyesuaikan posisi kalimat yang sedang kita baca, itu juga mempengaruhi kecepatan dalam membaca, dalam membaca yang cepat tidak seharusnya leher kita ikut bergerak, seharusnya hanya mata kita saja yang bergerak mengikuti kalimat yang sedang kita baca, mungkin jika pada awal-awal, otot mata kita akan merasa lelah, namun itu proses yang wajar, jika kita biasakan maka otot mata kita menjadi kuat dan terbiasa bergerak cepat mengikuti kalimat yang kita baca.

6. Membaca dengan tidak per satu kata
Saat membaca memang kita tidak akan membaca bacaan kita dari huruf demi huruf. Namun seharusnya juga tidak perlu membacanya dari kata demi kata. Apa maksudnya? Maksudnya adalah jika ada suatu kalimat dengan terdiri 5 kata, kita bisa membacanya sekaligus 2-3 kata, bagaimana mungkin bisa? Tentu saja bisa. Posisikanlah pandangan kita pada antara 2-3 kata tersebut yang ingin akan kita baca. Sedikit pengetahuan tambahan, bahwa otak kita tetap mampu membaca suatu kata meskipun urutan hurufnya dibolak-balik. Contoh untuk 3 kata ini "Libeh habet lgai" kita pasti tau apa 3 kata tersebut seharusnya, yaitu "Lebih hebat lagi". Dengan memanfaatkan itulah kita jadi bisa membaca kata dengan sekaligus banyak.

7. Latihan
Latihan yang rutin akan membuat kita menjadi terbiasa dan bisa. Ada suatu software yang bisa membantu kita dalam melatih kita untuk bisa membaca secara cepat. Software tersebut bisa didownload di sini. Berikut adalah tampilan software tersebut.


Kita juga bisa melakukan modifikasi pada teks yang akan kita baca. Setelah itu untuk memulainya adalah dengan memilih "Show Reader", maka akan tampil seperti ini


Jika kita bisa membaca dengan kecepatan Word Per Minutes sampai 500 WPM, itu sudah cukup bagus, tetapi dengan catatan, kita juga memahami isi dari bacaan tersebut, tidak hanya asal membaca cepat saja. Sekian dari tulisan ini, semoga dapat menggugah minat membaca teman-teman menjadi lebih baik lagi. Terimakasih dan selamat berlatih.

Jumat, 08 Mei 2015

Definisi Asset Management System

Sebelum menjelaskan apa itu Asset Management, saya akan mencoba menjabarkan satu per satu arti dari apa itu aset dan apa itu manajemen. Langsung saja tanpa panjang lebar lagi saya akan mecoba menjelaskannya. Asset adalah suatu jenis kekayaan yang dimiliki oleh individu ataupun suatu organisasi, memiliki nilai ekonomis, bisa berwujud (tangible) atau tidak berwujud (intangible), memiliki nilai tukar atau jual dan dapat membantu individu atau organisasi tersebut untuk mencapai suatu tujuannya. Kemudian pengertian dari Management adalah suatu pengelolaan sumber daya mulai dari manusia, finansial, fisik dan juga informasi untuk mencapai tujuan dengan efektif dan efisien.

Setelah penjelasan apa itu Asset dan apa itu Management. Maka dapat didefinisikan bahwa Asset Management adalah upaya pengelolaan aset atau suatu jenis kekayaan yang dimiliki oleh individu ataupun suatu organisasi, baik jenis kekayaan tersebut tangible atau intangible agar dapat tercapainya suatu tujuan dari individu atau organisasi tersebut. Dengan melalui proses perencanaan manajemen, pengadaan aset, pemeliharaan aset meliputi pengecekan informasi tentang kondisi aset hingga aset yang tidak bisa digunakan lagi.

Pada masa kini khususnya di negara kita yang tercinta Indonesia, pengelolaan aset masih belum maksimal dalam pemanfaatannya, karena memang diperlukannya kompetensi pengelola aset. Saat ini pengelolaan aset yang berwujud masih belum diimplementasikan dengan baik, bukan hanya pada perusahaan saja melainkan juga pada pemerintahan. Dibutuhkannya suatu figur sistem yang dapat menjadi pengelola aset dan mencatat segala aktifitas atau transaksi aset pada suatu organisasi, dan sebenarnya pada saat ini sudah cukup banyak sistem yang telah concern pada manajemen aset, hanya namun tak begitu banyak yang mengimplementasikan sistem-sistem tersebut. Contoh pada perusahaan tempat saya bekerja, kebetulan saya bekerja pada perusahaan yang concern pada aset manajemen, sistem yang pernah diimplementasikan antara lain seperti Hardcat Asset Management System dan Enterprise Asset Management IBM Maximo. Kedua sistem tersebut pada intinya adalah sebagai Asset Management. Namun tetap memiliki spesifikasi dan spesialisasi yang berbeda. Misal pada Hardcat Asset Management System, dapat dilengkapi juga Barcode Tracking System, sehingga sangat mudah dalam pengumpulan data pada aset. Dan untuk IBM Maximo Asset Management lebih fokus kepada plant dan produksi, infrastruktur, transportasi dan real estate.

Saya harap dengan tulisan ini, kita semua bisa lebih membuka mata akan pengelolaan aset, sehingga penggunaan aset bisa lebih efektif dan efisien. Sekian dari saya, harap maklum jika masih ditemukannya kekurangan. Terimakasih.





Senin, 04 Mei 2015

Perbandingan Cout Dengan Printf

Pada bahasa pemrograman C++ untuk melakukan perintah cetak, umumnya adalah menggunakan perintah cout dengan menambahkan header #include<iostream> terlebih dahulu di paling atas code editor. Namun karena pada dasarnya bahasa C++ ini adalah pengembangan dari bahasa C, bahasa C++ juga dapat menggunakan header atau librari yang tersedia pada bahasa C, tetapi tidak berlaku sebaliknya.

Pada bahasa pemrograman C, untuk melakukan perintah cetak adalah menggunakan printf dengan menambahkan header #include<stdio.h>, jika kita menggunakan compiler GCC, untuk menggunakan header tersebut, kita menambahkannya dengan cara menulis #include<cstdio>. sedikit berbeda bukan? Pada artikel kali ini, saya akan mencoba menjelaskan perbedaan apa saja yang ada pada kedua perintah cetak tersebut menurut versi saya.

1. Rawan kesalahan

  • Pada penulisan fungsi printf harus menggunakan tanda '%' untuk menyesuaikan tipe data apa yang akan dicetak. Misal jika akan mencetak double, maka akan menggunakan tanda '%d', jika suatu string maka '%s'. Sehingga ditulisnya printf("%s","Hello Kasih"), atau printf("%d", 28) dan lain-lain. Untuk format seperti itu rawan terjadinya error dan kita harus mengetahui tipe data terlebih dahulu sebelum mencetaknya. 
  • Pada penulisan fungsi cout harus menggunakan operator '<<'. Berbeda dengan fungsi printf, kita tidak perlu mengetahui tipe data apa yang akan dicetak. Dengan fungsi cout, langsung secara otomatis menyesuaikan tipe data yang akan dicetak. Jadi untuk kemungkinan terjadi kesalahan atau error lebih sedikit dibanding pada penggunaan printf.
2. Kecepatan
Pada penggunaan fungsi printf, proses mencetak jauh lebih cepat dibanding menggunakan cout. Pada printf compiler tidak perlu melakukan pengecekan kembali tipe data yang sesuai yang akan dicetak, melainkan karena sudah didefinisikan sendiri oleh kita. Proses pengecekan kembali yang dilakukan oleh compiler itulah yang membutuhkan waktu. Pada penggunaan fungsi cout, kita memang dimudahkan untuk tidak mendefinisikan tipe data apa yang akan dicetak terlebih dahulu, namun justru itu adalah faktor yang mempengaruhi kinerja compiler menjadi lebih lambat. Biasanya pada kontes pemrogramman seperti TOKI (Tim Olimpiade Komputer Indonesia) bagi yang menggunakan bahasa C++, disarankan untuk menggunakan fungsi printf dari pada menggunakan fungsi cout. Berikut adalah contoh program yang membandingkan kecepatan mencetak antara fungsi cout dengan printf.


 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
#include <iostream>
#include <cstdio>
#include <ctime>
using namespace std;

int main()
{
    float start;
    start = clock();
    for(int i = 0; i < 5000; i++){
        //cout << "Hello World" << endl;
        printf("%s", "Hello World\n");
    }
    cout << "Durasi : " << ((clock() - start) / (float) CLOCKS_PER_SEC) << endl;
    return 0;
}

Pada program di atas, untuk mencoba perbedaan kecepatan antara printf dengan cout, dilakukan proses looping sebanyak 5000 kali. Dari jumlah loop tersebut sudah terlihat perbedaan waktu dalam satuan detik. Jika ingin mencoba program di atas, bisa langsung dicoba dicopy code program di atas ke www.cpp.sh untuk langsung melihat hasilnya. Sekian dan terimakasih. Semoga bermanfaat