Selasa, 14 November 2017


Latar Belakang

Pengertian trojan horse adalah sejenis virus yang menyamar sebagai berkas lain yang aman, misalnya dokumen Excel yang terlampir pada email. Pengguna komputer ditipu untuk melakukan tindakan yang dapat menyebarkan trojan, misalnya membuka lampiran itu karena mengira itu adalah file Excel biasa padahal sebenarnya berisi program trojan.
Setelah berhasil menginfeksi komputer, trojan dapat bertindak merusak seperti virus lain atau mengirim informasi penting, termasuk User ID dan password, ke pihak lain tanpa sepengetahuan pemakai komputer yang terinfeksi.

Tujuan

Trojan horse atau Kuda Troya atau yang lebih dikenal sebagai Trojan dalam keamanan komputer merujuk kepada sebuah bentuk perangkat lunak yang mencurigakan (malicious software/malware) yang dapat merusak sebuah sistem atau jaringan. Tujuan dari Trojan adalah memperoleh informasi dari target (password, kebiasaan user yang tercatat dalam system log, data, dan lain-lain), dan mengendalikan target (memperoleh hak akses pada target).

Arsitektur SerangaN

Beberapa jenis Trojan yang beredar antara lain adalah:
1. Pencuri password
Jenis Trojan ini dapat mencari password yang disimpan di dalam sistem operasi (/etc/passwd atau /etc/shadow dalam keluarga sistem operasi UNIX atau berkas Security Account Manager (SAM) dalam keluarga sistem operasi Windows NT) dan akan mengirimkannya kepada si penyerang yang asli. Selain itu, jenis Trojan ini juga dapat menipu pengguna dengan membuat tampilan seolah-olah dirinya adalah layar login (/sbin/login dalam sistem operasi UNIX atau Winlogon.exe dalam sistem operasi Windows NT) serta menunggu pengguna untuk memasukkan passwordnya dan mengirimkannya kepada penyerang. Contoh dari jenis ini adalah Passfilt Trojan yang bertindak seolah-olah dirinya adalah berkas Passfilt.dll yang aslinya digunakan untuk menambah keamanan password dalam sistem operasi Windows NT, tapi disalahgunakan menjadi sebuah program pencuri password.
2. Pencatat penekanan tombol (keystroke logger/keylogger)
Jenis Trojan ini akan memantau semua yang diketikkan oleh pengguna dan akan mengirimkannya kepada penyerang. Jenis ini berbeda dengan spyware, meski dua hal tersebut melakukan hal yang serupa (memata-matai pengguna).
3. Tool administrasi jarak jauh (Remote Administration Tools/RAT)
Jenis Trojan ini mengizinkan para penyerang untuk mengambil alih kontrol secara penuh terhadap sistem dan melakukan apapun yang mereka mau dari jarak jauh, seperti memformat hard disk, mencuri atau menghapus data dan lain-lain. Contoh dari Trojan ini adalah Back Orifice, Back Orifice 2000, dan SubSeven.
4. DDoS Trojan atau Zombie Trojan
Jenis Trojan ini digunakan untuk menjadikan sistem yang terinfeksi agar dapat melakukan serangan penolakan layanan secara terdistribusi terhadap host target.
5. Ada lagi sebuah jenis Trojan yang mengimbuhkan dirinya sendiri ke sebuah program untuk memodifikasi cara kerja program yang diimbuhinya. Jenis Trojan ini disebut sebagai Trojan virus.
6. Cookies Stuffing, ini adalah script yang termasuk dalam metode blackhat, gunanya untuk membajak tracking code penjualan suatu produk, sehingga komisi penjualan diterima oleh pemasang cookies stuffing, bukan oleh orang yang terlebih dahulu mereferensikan penjualan produk tersebut di internet

Cara dan Teknik Melakukan Serangan


Trojan masuk melalui dua bagian, yaitu bagian client dan server. Jadi hacker kadang harus berjalan menanamkan trojannya di komputer korban ataupun memancing agar sang korban mengeksekusi/membuka file yang mengandung Trojan, namun ada juga Trojan yang langsung menginfeksi korbannya hanya dengan berbekal ip korban misalnya Kaht. Ketika korban (tanpa diketahui) menjalankan file yang mengandung Trojan pada komputernya, kemudian penyerang akan menggunakan client untuk koneksi dengan server dan mulai menggunakan trojan. Protokol TCP/IP adalah jenis protokol yang umum digunakan untuk komunikasi. Trojan dapat bekerja dengan baik dengan jenis protokol ini, tetapi beberapa trojan juga dapat menggunakan protokol UDP dengan baik. Ketika server mulai dijalankan (pada komputer korban), Trojan umumnya mencoba untuk menyembunyikan diri di suatu tempat dalam sistem komputer tersebut, kemudian mulai membuka beberapa port untuk melakukan koneksi, memodifikasi registry dan atau menggunakan metode lain yaitu metode autostarting agar trojan menjadi otomatis aktif saat komputer dihidupkan. Trojan sangat berbahaya bagi pengguna komputer yang tersambung jaringan komputer atau internet, karena bisa jadi hacker bisa mencuri data-data sensitif misalnya password email, dial-up passwords, webservices passwords, e-mail address, dokumen pekerjaan, internet banking, paypal, e-gold,kartu kredit dan lain-lain.

Tools yang digunakan


Penggunaan istilah Trojan atau Trojan horse dimaksudkan untuk menyusupkan kode-kode mencurigakan dan merusak di dalam sebuah program baik-baik dan berguna; seperti halnya dalam Perang Troya, para prajurit Sparta bersembunyi di dalam Kuda Troya yang ditujukan sebagai pengabdian kepada Poseidon. Kuda Troya tersebut menurut para petinggi Troya dianggap tidak berbahaya, dan diizinkan masuk ke dalam benteng Troya yang tidak dapat ditembus oleh para prajurit Yunani selama kurang lebih 10 tahun perang Troya bergejolak.

Kebanyakan Trojan saat ini berupa sebuah berkas yang dapat dieksekusi (*.EXE atau *.COM dalam sistem operasi Windows dan DOS atau program dengan nama yang sering dieksekusi dalam sistem operasi UNIX, seperti ls, cat, dan lain-lain) yang dimasukkan ke dalam sistem yang ditembus oleh seorang cracker untuk mencuri data yang penting bagi pengguna (password, data kartu kredit, dan lain-lain). Trojan juga dapat menginfeksi sistem ketika pengguna mengunduh aplikasi (seringnya berupa game komputer) dari sumber yang tidak dapat dipercayai dalam jaringan Internet. Aplikasi-aplikasi tersebut dapat memiliki kode Trojan yang diintegrasikan di dalam dirinya dan mengizinkan seorang cracker untuk dapat mengacak-acak sistem yang bersangkutan.

Efek Serangan
Serangan Trojan horse dapat dirancang untuk mencapai berbagai tujuan, tetapi biasanya merupakan tujuan jahat seperti mencuri data atau menyebar kekacauan.
Misalnya, saat Trojan horse menginfeksi komputer, dia akan berusaha mengirim data penting seperti nomer kartu kredit ke pembuatnya.
Akibat paling sering dari serangan Trojan horse adalah melambatnya komputer atau turunnya kecepatan koneksi internet Anda.
Sebanyak apa variasi serangan akan tergantung pada imajinasi pembuat Trojan.

Antisipasi Serangan

1. Memeriksa Listening Port

Mendeteksi keberadaan Trojan merupakan sebuah tindakan yang agak sulit dilakukan. Cara termudah adalah dengan melihat port-port mana yang terbuka dan sedang berada dalam keadaan "listening", dengan menggunakan utilitas tertentu semacam Netstat. Hal ini disebabkan banyak Trojan berjalan sebagai sebuah layanan sistem, dan bekerja di latar belakang (background), sehingga Trojan-Trojan tersebut dapat menerima perintah dari penyerang dari jarak jauh. Ketika sebuah transmisi UDP atau TCP dilakukan, tetapi transmisi tersebut dari port (yang berada dalam keadaan "listening") atau alamat yang tidak dikenali, maka hal tersebut bisa dijadikan pedoman bahwa sistem yang bersangkutan telah terinfeksi oleh Trojan Horse.

Berikut ini adalah contoh penggunaan utilitas Netstat dalam Windows XP Professional

C:\>netstat -a -b

Active Connections

 Proto  Local Address          Foreign Address        State           PID
 TCP    windows-xp:epmap       0.0.0.0:0              LISTENING       956
  c:\windows\system32\WS2_32.dll
  C:\WINDOWS\system32\RPCRT4.dll
  c:\windows\system32\rpcss.dll
  C:\WINDOWS\system32\svchost.exe
  -- unknown component(s) --
  [svchost.exe]
 TCP    windows-xp:microsoft-ds  0.0.0.0:0              LISTENING       4
  [System]
 TCP    windows-xp:50300       0.0.0.0:0              LISTENING       1908
  [oodag.exe]
 TCP    windows-xp:1025        0.0.0.0:0              LISTENING       496
  [alg.exe]
 TCP    windows-xp:1030        0.0.0.0:0              LISTENING       1252
  [ccApp.exe]
 UDP    windows-xp:microsoft-ds  *:*                                    4
  [System]
 UDP    windows-xp:4500        *:*                                    724
  [lsass.exe]
 UDP    windows-xp:isakmp      *:*                                    724
  [lsass.exe]
 UDP    windows-xp:1900        *:*                                    1192
  c:\windows\system32\WS2_32.dll
  c:\windows\system32\ssdpsrv.dll
  C:\WINDOWS\system32\ADVAPI32.dll
  C:\WINDOWS\system32\kernel32.dll
  [svchost.exe]
 UDP    windows-xp:ntp         *:*                                    1036
  c:\windows\system32\WS2_32.dll
  c:\windows\system32\w32time.dll
  ntdll.dll
  C:\WINDOWS\system32\kernel32.dll
  [svchost.exe]


2. Membuat Snapshot


Cara lainnya yang dapat digunakan adalah dengan membuat sebuah "snapshot" terhadap semua berkas program (*.EXE, *.DLL, *.COM, *.VXD, dan lain-lain) dan membandingkannya seiring dengan waktu dengan versi-versi terdahulunya, dalam kondisi komputer tidak terkoneksi ke jaringan. Hal ini dapat dilakukan dengan membuat sebuah checksum terhadap semua berkas program (dengan CRC atau MD5 atau mekanisme lainnya). Karena seringnya Trojan dimasukkan ke dalam direktori di mana sistem operasi berada (\WINDOWS atau \WINNT untuk Windows atau /bin, /usr/bin, /sbin, /usr/sbin dalam keluarga UNIX), maka yang patut dicurigai adalah berkas-berkas yang berada di dalam direktori tersebut. Banyak berkas yang dapat dicurigai, khususnya berkas-berkas program yang memiliki nama yang mirip dengan berkas yang "baik-baik" (seperti "svch0st.exe", dari yang seharusnya "svchost.exe", sebuah berkas yang dijalankan oleh banyak layanan sistem operasi Windows) dapat dicurigai sebagai Trojan Horse.

3. Antivirus

Cara terakhir adalah dengan menggunakan sebuah perangkat lunak antivirus, yang dilengkapi kemampuan untuk mendeteksi Trojan yang dipadukan dengan firewall yang memonitor setiap transmisi yang masuk dan keluar. Cara ini lebih efisien, tetapi lebih mahal, karena umumnya perangkat lunak antivirus yang dipadukan dengan firewall memiliki harga yang lebih mahal dibandingkan dengan dua cara di atas (yang cenderung "gratis"). Memang, ada beberapa perangkat yang gratis, tetapi tetap saja dibutuhkan waktu, tenaga dan uang untuk mendapatkannya (mengunduhnya dari Internet).

Kesimpulan dan Saran
Kesimpulan :
1. Pemahaman tentang Trojan perlu diketahui oleh pemakai Internet, karena Trojan,  Virus, dan Worm mempunyai potensi bahaya yang besar pada saat komputer terhubung dengan Internet maupun jaringan lokal. Pemahaman meliputi cara kerja, jenis, sumber dan motivasi penyerang. Dengan pengetahuan awal ini, pemakai dapat meminimalkan serangan terhadap dirinya.
2. Pemahaman untuk mendeteksi keberadaan Trojan sangat diperlukan, karena sebagian pemakai Internet tidak mengetahui bahwa komputernya telah terinfeksi Trojan dan lubang keamanannya telah dieksploitasi oleh penyerang. Pemahaman ini diharapkan mampu menghantarkan pemakai untuk dapat mendeteksi sekaligus menghilangkan pengaruh Trojan dari komputernya. 3. Pemahaman untuk pencegahan juga diperlukan untuk mencegah terinfeksinya kembali komputer oleh Trojan. Pengetahuan untuk pencegahan meliputi pemakaian operating sistem, pemasangan penangkal infeksi dan serangan (antivirus, Trojan scanner dan firewall) , serta cara-cara yang baik saat berinternet. Dengan pengetahuan tersebut, pemakai komputer akan lebih berhati -hati dan teliti saat terkoneksi dengan Internet.

Saran : Para pengguna internet diharapkan untuk lebih waspada dan teliti sebelum memasukkan data-data nya di internet, mengingat kejahatan ini sering terjadi karena kurangnya ketelitian pengguna.

Pengkondisian merupakan suatu operator bersyarat dengan kondisi yang telah ditentukan untuk mengontrol program. Alur program dengan pengkondisian memiliki dua macam cara yaitu:
-. Pengkondisian dengan if else
-. Pengkondisian dengan switch case
1. Pengkondisian If
a. Pengkondisian if else
if (<operasi boolean>) {
….. // blok statement jika bernilai true

} else {

….. // blok statement jika bernilai false

}

Contoh penggunaan pengkondian dengan if – else :
int angka = 10;
if (angka >= 20) {

String hasil = “Angkanya lebih dari 20”; // Jika bernilai True

} else {

String hasli = “Angkanya kurang dari 20”; // Jika bernilai false

}
b. Pengkondisian if else if
if(<operasi boolean>) {
….. // blok statement jika operasi pertama bernilai true

} else if (<operasi boolean>){
….. // blok statement jika operasi pertama berniali false dan operasi ini bernilai true
} else {
….. // blok statement jika operasi smeul operasi bernilai false
}
contoh penggunaan pengkondisian if else if :
Int bilangan = 7;
if (angka=7) {
String hasil = “Angkanya adalah 7”;
} else if (angka<7) {
String hasil = “Angkanya kurang dari 7”;
} else {
String hasil = “Angaknya lebih dari 7”
}
Pengontrol alur program ini akan mengatur setiap statement yang akan dikerjakan berdasarkan kondisi yang disyaratkan. Jika syarat yang ditentukan bernilai true maka statement pada blok true akan dijalankan tetapi apabilai bernilai false maka statement pada blok false yang dijalankan. Pengkondisian dengan if – else adalah pengrontrol alur program dengan menggunakan operasi boolean. 
2. Pengkondisian dengan SWITCH – CASE

Pengontrol alur program ini akan mengatur setiap statement yang akan dikerjakan berdasarkan pilihan yang disyaratkan. Dengan kata lain, program akan menjalankan statement sesuai dengan nilai yang didapat. Pengkondisian dengan switch – case adalah pengontrol alur program dengan menggunakan operasi integer (byte, short, dan int).
swicth (<ekpresi integer>) {

case <nilai1> : <blok statement>; break;
case <nilai1> : <blok statement>; break;
case <nilai1> : <blok statement>; break;
case <nilai1> : <blok statement>; break;
default : <blok statement>; break;

}
Contoh penggunakan pengkondisian dengan switch – case :
swicth (nilai) {
case 1 : System.out.println(“Nilai = 1); break;
case 2 : System.out.println(“Nilai = 2); break;
case 3 : System.out.println(“Nilai = 3); break;
case 4 : System.out.println(“Nilai = 4); break;
default : System.out.println(“Nilai selain 1, 2, 3, dan 4); break;
}

Pada contoh di atas, apabila variabel nilai = 1 maka statement yang dijalankan adalah statement yang terdapat pada case 1 yaitu System.out.println(“Nilai = 1).
LOOPING

Pengontrol alur program ini akan mengontrol program atau dijalankan sampai memenuhi nilai yang ditentukan. Dengan kata lain looping adalah menjalankan perintah yang sama berulang-ulang dan akan berhenti apabila syarat yang ditentukan telah dipenuhi.
Ada beberapa cara melakukan pengontrol alur program looping yaitu 
-.for
-.while
-.do-while

a. for

Perulangan (Looping) dengan for yaitu melakukan perulangan sampai syarat yang telah ditentukan terpenuhi. Perulangan for ini akan selalu berjalan selama kondisi syarat bernilai true dan akan berhenti apabila kondisi syarat bernilai false. Penulisan pengontrol alur program dengan menggunakan looping for adalah sebagai berikut :

for(inisialisasi; test ; step) {
blok pernyataan;

}
Contoh penggunaan looping for adalah sebagai berikut :

for(int x = 0; x <= 10 ; x++) {

System.out.println(“NIlai ke : “+x);

}
Dari contoh diatas, blok pernyataan akan dijalankan selama nilai x dimulai dari 0 hingga nilai x lebih kecil dan sama dengan 10. Dengan kata lain apabila nilai test adalah true maka blok pernyataan akan selalu dijalankan, dan apabila nilai test adalah false maka proses looping akan dihentikan.
b. while

Perulangan (looping) while digunakan untuk mengulang pernyataan atau blok pernyataan selama kondisi syarat dipenuhi (true). Apabila nilai kondisi syarat tidak dipenuhi (false) maka proses perulangan akan berhenti. Penulisan pengontrol alur program dengan menggunakan looping while adalah sebagai berikut :

while(syarat) {

blok pernyataan;

}
Contoh penggunaan looping while adalah sebagai berikut :

int x = 1;

while (x<10) {

System.out.println(“Nilai ke : “ + x);
x++;

}
Dari contoh di atas, blok pernyataan akan dijalankan selama nilai x lebih kecil dari 10, dan akan berhenti apabila nilai x lebih besar atau sama dengan 10.
c. do-while

Perulangan do-while memiliki urutan yang terbalik dibandingan dengan while dan memiliki perbedaan utama yaitu pada do-while pernyataan dijalankan terlebih dahulu kemudian melakukan pemeriksaan kondisi syarat.
Penulisan pengontrol alur program dengan menggunakan looping do-while

do {

blok pernyataan;

} while (syarat);
Contoh penggunaan looping do-while adalah sebagai berikut :

int x = 1;

do {

System.out.println(“Nilai ke : “ + x);
x++;

} while (x<10);
Dari contoh diatas, blok pernyataan dijalankan terlebih dahulu, kemudian dilakukan pengecekan apakah x lebih kecil dari 10, kemudian perulangan dijalankan dan akan berhenti ketika x lebih besar atau sama dengan 10.

Kamis, 02 November 2017

1. Bilangan Tidak Bertanda (Unsigned)
Bilangan yanga hanya memiliki nilai positif

2. Bilangan Bertanda (Signed)
Bilangan yang memiliki nilai positif dan negatif.
Pengertian dasar bilangan negatif biner
1111 = -1
MSB —>1 = negatif. MSB —–>0 = positif.
1000 = -8
0111 = 7
….
0010 = 2
0001 = 1
0000 = 0
1111 = -1
1101 = -2
1100 = -3
….
1000 = -8
0111 = 7
A. 1’s Complement
1’s Complement = not bilangan asli.
B. 2’s Complement
2’s Complement = 1’s complement + 1
-8 ===> 1000 B -1 ====> 0001
1’s 0111 B 1110
1 1
—–+ —–+
1000 B = -8 1111 = -1
contoh :
1. Ada bilangan 8 bit 1111B = berapa nilai desimalnya, jawabannya adalah -1
2. Ada bilangan 4 bit 1111B = berapa nilai desimalnya, jawabanya adalah -1
Bilangan bertanda hex, prinsipnya sama dengan bilangan bertanda biner.
contoh FH = -1
3. Bagaimana menggunakan bilangan bertanda atau tidak bertanda dalam program??
dalam tiap bahasa pemrograman biasanya tergantung dari tipe data yang digunakan.
misal dalam basic : tergantung dari tipe datanya.
Variabel atau peubah adalah obyek yang nilainya dapat berubah-ubah dalam sebuah program. Pada saat sebuah variabel dideklarasikan, program "memesan" tempat dengan ukuran tertentu (sesuai tipe datanya) pada memori untuk menyimpan nilai dari variabel tersebut.

Pemrogram dapat memberikan nama pada sebuah variabel untuk mempermudah pemanggilan variabel tersebut di dalam program. Pada saat mendeklarasikan sebuah variabel, pemrogram harus menyebutkan nama variabel dan tipe data dari variabel tersebut.

Dalam bentuk flowchart, deklarasi variabel digambarkan sebagai sebuah proses. Misalnya sebagai berikut:

x : integer
nama : string
tinggiBadan: real

Contoh deklarasi variabel dalam psedeucode :
KAMUS DATA {awal deklarasi variabel}
    x : integer
    nama: string
    tinggiBadan: real
    jenisKelamin : char
    status : boolean

Sebelum kita menuliskan beberapa program dalam bahasa C++, ada baiknya kita mengenal terlebih dahulu struktur dan format penulisan program dalam bahasa C++.
// Contoh Program C++
#include <stdio.h>
/* Program Utama */
main() {
    printf ("Hello World !");
    return 0;
    }

Keterangan :
Pada contoh program diatas, pada baris pertama dituliskan diawalannya tanda doubleslash (//). Maksudnya adalah sebagai komentar, artinya baris tersebut tidak akan dieksekusi oleh program. Kita dapat menuliskan apapun setelah tanda tersebut dan berlaku hanya satu baris.

Sedangkan untuk penulisan komentar lebih dari satu baris digunakan tanda /* .. */ dimana komentar dituliskan diantara tanda /* dan */ seperti tampak pada baris ke 3 dan 4. Biasanya tanda tersebut digunakan oleh programmer untuk memberi penanda atau keterangan pada tiap baris program seperti pada baris 5.

Pada baris kedua terdapat code #include, yang diawali dengan tanda crash (#). Ini dapat kita sebut dengan preprocessor directive. preprocessor directive merupakan perintah-perintah untuk memberitahukan kepada compiler untuk melakukan berbagaimacam definisi seperti menggunakan (include) file librari misalnya stdio.h, karena didalam file tersebut mengandung beberapa fungsi yang akan digunakan didalam program.

Sedangkan pada baris ke 5 – 8 merupakan isi dari program. Pada baris ke 5 terdapat instruksi main() dimana pada baris tersebut merupakan fungsi utama atau program utama. Maksudnya adalaha pada baris tersebut merupakan penanda awal dari eksekusi sebuah program. Untuk awal instruksi ditandai dengan kurung kurawal. Seperti pada program diatas, pada baris ke-5 (tanda {) merupakan awal dari program utama dan berakhir pada baris ke-8.

Pada baris dke-6 (printf("Hello World !")) merupakan instruksi untuk mencetak tulisan “Selamat Datang” kelayar. Sedangkan pada baris ke-7 (return 0) merupakan nilai kembali dari fungsi utama yaitu nilainya adalah 0. Perlu diperhatikan bahwa setiap instruksi pada perogram harus diakhiri dengan tanda semicolon (;).

Untuk menuliskan variabel, kita dapat menuliskannya pada bagian isi program. Contoh penulisan variabelnya adalah :
#include <stdio.h>

main () {
    int x;
    string nama;
    float BB;
    char jKelamin;
    bool status;
    ...
    }

Secara teori, pemrogram dapat memberikan nama apapun pada sebuah variabel karena penamaan variabel bertujuan untuk memudahkan pemanggilan kembali. Namun, ada beberapa panduan yang biasa diacu pemrogram dalam penamaan variabel, antara lain:

  • Huruf pertama pada nama variabel menunjukkan tipe data dari variabel.
Contoh: diawali dengan 'c' untuk variabel char, 'i' untuk integer, 's' untuk string, dan seterusnya. Panduan penamaan ini disebut dengan Charles Simyoni Hungarion Notation.

  • Nama variabel harus cukup jelas menunjukkan tujuan penggunaan variabel tersebut.
Contoh: sNama adalah variabel string untuk menyimpan nama, cJenisKelamin adalah variabel char untuk menyimpan jenis kelamin, bStatus adalah variabel boolean untuk menyimpan status.

  • Nama variabel tidak boleh mengandung spasi kosong atau karakter khusus ! @ # $ % ^ & * ( ) { } [ ] ’ ” ; : < > , . / ? | dan \. Beberapa pemrogram menggunakan ‘_’ untuk memisahkan kata di nama variabel.
Contoh: cJenis_kelamin, sNama_orang_tua, iNilai_akhir

  • Cara lain untuk memisahkan kata dalam nama variabel adalah dengan memberikan huruf besar di awal tiap kata.
Contoh: cJenisKelamin, sNamaOrangTua, iNilaiAkhir

Setelah sebuah variabel dideklarasikan, variabel dapat menyimpan nilai. Pengisian nilai ke dalam sebuah variabel dalam sebuah program dapat dilakukan dengan 2 cara, yaitu:

Secara langsung
Contoh:
cJenisKelamin = "P"
sNamaOrangTua = "Jeremy Thomas"
iNilaiAkhir = 99

Dengan inputan
Contoh:
Input (cJenisKelamin)
Input (sNamaOrangTua)
Input (iNilaiAkhir)

Contoh program untuk memberikan nilai pada sebuah variabel :
#include <stdio.h>
    main() {
    int lA,lB;
    String NamaA, NamaB;

    // Pengisian secara Langsung
    lA = 20;
    NamaA = "Joko Handono";

    // Pengisian dengan Inputan
    scanf (“%i”,&lB);
    scanf (“%s”,&NamaB);

    // Menampilkan Kelayar
    printf (“Nilai lA : %i”,lA);
    printf (“Nilai lB : %i”,lB);
    printf (“Nilai NamaA : %s”,NamaA);
    printf (“Nilai NamaB : %s”,NamaB);
    }

Pada contoh program diatas, kita melihat ada tanda "%i" dan "%s". Fungsi tanda tersebut adalah untuk menkonfersi nilai inputan menjadi tipe yang sesuai dengan yang diterima atau mengubah nilai dari tipe data dasar menjadi tipe karakter untuk ditampilkan dilayar.

Karena pada dasarnya, dalam pemprograman bahasa C++ nilai input atau nilai yang dapat ditampilkan berupa karakter. Sedangkan didalam program, nilai tersebut harus sesuai dengan tipe data yang dideklarasikan.

Sebagai contoh pada baris ke-10, variabel "lB" tipe datanya adalah integer. Untuk mengubah tipe masukan menjadi integer, maka digunakan "%i". Biasanya, string tersebut diawali dengan huruf pertama tipe datanya, misalnya float -> %f, String -> %s dan seterusnya.

Khusus untuk inputan, nama variabelnya harus diawali dengan string “&” seperti tampak pada baris ke 10 dan 11.
Ekspresi  adalah transformasi nilai menjadi keluaran yang dilakukan melalui suatu perhitungan (komputasi).
Ekspresi terdiri atas operand dan operator, contoh ekspresi: “a + b”.Hasil Evaluasi dari sebuah Ekpresi adalah nilai yang sesuai dengan type operand yang dipakai
MACAM – MACAM EKPRESI
Ø  Ekspresi aritmatika
Ekspresi yang baik operand-nya bertipe numerik dan hasilnya juga bertipe numerik.
·         Ekspresi aritmatika memakai operator aritmatika.
          Pada ekspresi aritmetik terdapat 2 buah operator yaitu :
·         Operator biner, yaitu ekspresi yang operatornya membutuhkan 2 buah operand.
          Contoh a+ b
·        Operator Uner, yaitu “-” atau operator yang punya 1 operand contoh “-2”
          Contoh 2. (Penulisan ekspresi dengan notasi algoritma)
T = 5/9 * (c + 32)
Z = (2*x + y) / (5 * w)
Y = 5((a+b) / (c*d) + m (p + q))
Ø  Ekspresi Perbandingan/ Relasional
Ekspresi relasional adalah ekspresi dengan operator <, ≤, >, ≥, =, dan ≠, not, and, or dan xor dengan menghasilkan nilai bertipe boolean (true atau false). Biasanya ekspresi Relasional disebut ekspresi boolean.
Ø  Ekspresi Logika (Menggunakan Operator Boolean)
Adalah sebuah perintah yang akan mengeksekusi suatu perintah apabila kondisi tertenti  terpenuhi.
Operator boolean digunakan untuk menghubungkan dua buah ekspresi logika. Pada kesempatan ini operator boolean yang akan dibahas adalah AND dan OR.
Operator AND digunakan untuk menghubungkan dua buah ekspresi logika dan hasilnya
TRUE jika kedua ekspresi tersebut bernilai TRUE.
Logika I
Operator
Boolean
Lgika II
Hasil Akhir
FALSE

FALSE
FALSE
FALSE
AND
TRUE
FALSE
TRUE

FALSE
FALSE
TRUE

TRUE
TRUE
Operator OR dipergunakan untuk menghubungkan dua buah ekspresi logika dan hasilnya bernilai TRUE jika minimal salah satu ekspresi logika bernilai TRUE.
Logika I
Operator
Boolean
Lgika II
Hasil Akhir
FALSE

FALSE
FALSE
FALSE
OR
TRUE
TRUE
TRUE

FALSE
TRUE
TRUE

TRUE
TRUE




Contoh01
1. Program PenerimaanPegawai;
2. Uses Crt;
3. Var Umur : Integer;
4. Ket : String;
5. Begin
6. ClrScr;
7. Write(‘Umur calon pegawai : ‘); Readln(Umur);
8. If (Umur >= 20) AND (Umur <= 30) THEN Ket:=’DITERIMA’
9. ELSE Ket:=’DITOLAK’;
10. Writeln(‘Status pegawai : ‘,Ket);
              11. End.
Operator adalah pengendali operasi yang akan dilakukan pada beberapa operan sehingga membentuk sebuah ekspresi. Secara umum, dalam sebuah ekspresi terdapat sebuah operator yang diapit dua operan.

Contohnya pada ekspresi:

x + y
x dan y adalah operan, sedangkan
"+" adalah operatornya

Terdapat tiga macam operator yang biasa digunakan dalam pemrograman, yaitu:

1. Operator Aritmatik

Operator ini membentuk perhitungan aritmatik. Kedua operan dari operasi aritmatik ini dapat berupa nilai integer atau real.

Operator yang termasuk tipe ini adalah:

Pengertian Tipe Data, Variabel dan Operator Dalam Pemrograman

Output dari operasi aritmatik akan memiliki tipe data yang sama dengan tipe data kedua operannya. Misalnya, jika sebuah bilangan integer dijumlahkan dengan bilangan integer lainnya maka outputnya adalah bilangan integer juga. Selain itu perlu diperhatikan pula bahwa sebuah operator aritmatik tidak dapat diterapkan pada dua bilangan dengan tipe data yang berbeda.

Contoh program dengan operasi aritmatik:
// Program Aritmatik
/* IS:Tersedia dua buah bilangan integer
   FS:Hasil Modulo duabuah bilangan */

#include <stdio.h>

    main () {

    // Deklarasi Variabel
    int iTambah;
    int iAngka1, iAngka2;
    printf(“Masukan Bilangan Pertama : ”);
    scanf(“%i”, iAngka1);
    printf(“Masukan Bilangan Kedua : ”);
    scanf(“%i”, iAngka2);

    // Penjumlahan
    iTambah = iAngka1 + iAngka2;
    printf(“Hasil Penjumlahan %i + %i = %i”, iAngka1, iAngka2, iTambah);
    return 0;
    }

Program di atas akan mengembalikan nilai hasil penjumlahan sesuai dengan inputan. Misalnya pada inputan pertama kita masukan 10 dan yang kedia kita masukan 23 maka hasilnya adalah 33. outputnya adalah:
Masukan Bilangan Pertama : 10
Masukan Bilangan Kedua : 23
Hasil Penjumlahan 10 + 23 = 33

2. Operator Assignment

Dalam pemprograman bahasa C++, Operator ini digunakan memasukan nilai kedalam sebuah variabel, tanpa menghilangkan atau mengosongkan nilai variabel sebelumnya. Contoh penggunaan operator ini adalah sebagai berikut :

Pengertian Tipe Data, Variabel dan Operator Dalam Pemrograman

3. Increase and Decrease

Penulisan ini dilambangkan dengan ++ (Increade) dan -- (decrease). Operator ini berfungsi untuk menaikan atau menurunkan satu satuan nilai pada sebuah variabel. Contoh penggunaannya adalah pada contoh dibawah ini :

...
a++;
a += 1;
a = a + 1;
...

Ada dua macam penulisan operator ini, yaitu simbol dapat ditulis sebelum nama variabel dan setelah variabel. Adapun perbedaab antara keduanya adalah :
B = 3;
A = ++B;
// A = 4, B = 4
B = 3;
A = B++;
// A = 3, B = 4

4. Operator Relasional

Operator ini membandingkan dua operan dan hasilnya berupa nilai boolean (BENAR atau SALAH). Operasi relasional dapat dilakukan pada dua nilai dengan tipe data yang sama: tipe data integer, riil, char, string, maupun boolean. Berikut ini adalah operator relasional:

Pengertian Tipe Data, Variabel dan Operator Dalam Pemrograman

Contoh penggunaan operator relasional dalam algoritma:
// Program Operator Relasional
KAMUS DATA {awal deklarasi variabel}
    iAngka1, iAngka2 : integer
BEGIN {awal algoritma}
    iAngka1 = 6 {pengisian variabel langsung}
    Input(iAngka2) {pengisian dgn inputan}
    IF (iAngka1 <> iAngka2) THEN
        Output (‘Tebakan Anda salah’)
    ELSE
        Output (‘Horee! Tebakan Anda benar’)
    ENDIF
END

Output dari operasi relasional bertipe boolean (true/ false). Pada contoh di atas,
iAngka1 != iAngka2 bernilai benar/ true jika iAngka1 tidak sama dengan iAngka2
iAngka1 != iAngka2 bernilai salah/ false jika iAngka1 sama dengan iAngka2
Program di atas akan mengeluarkan pesan sesuai inputan pengguna. Jika pengguna menginputkan angka selain 6 ("iAngka1 != iAngka2" bernilai benar), program akan mengeluarkan pesan "Tebakan Anda salah". Jika pengguna menginputkan angka 6 ("iAngka1 != iAngka2" bernilai salah), program akan mengeluarkan pesan "Horee! Tebakan Anda benar".

5. Operator logika

Operator logika adalah operator yang digunakan untuk mengkombinasikan hasil ekspresi yang mengandung operator relasional.

Tiga macam operator logika adalah:

Pengertian Tipe Data, Variabel dan Operator Dalam Pemrograman

Pola penggunaan operator logika adalah:
ekspresi1 OPERATOR ekspresi2

Output dari penggunaan operator AND dan OR adalah sebagai berikut:

Pengertian Tipe Data, Variabel dan Operator Dalam Pemrograman

Pola yang mudah untuk mengingat output kedua operator logika tersebut adalah: True AND True = True, False OR False = False.

Beberapa contoh penggunaan operator logika:
  • (x > 7) && (x = y)
    Jika ternyata nilai x adalah 8 dan y adalah 5, maka
    (8 > 7) && (8 = 5)
    True AND False
    False (output operasi)
  • (x != y) || (x > 3)
    Jika ternyata nilai x adalah 4 dan y adalah 4, maka
    (4 != 4) || (4 > 3)
    False OR True
    True (output operasi)
  • NOT (x > y)
    Jika ternyata nilai x adalah 3 dan y adalah 3, maka
    NOT (3 > 3)
    NOT (False)
    True (output operasi)
Tipe data dasar adalah tipe data yang dapat langsung digunakan. Secara umum terdapat 2 tipe data dasar, yaitu numerik dan kategorik. Tipe data numerik terdiri atas angka/ kumpulan angka serta dapat mengalami operasi perhitungan, sedangkan tipe data kategorik dapat berupa angka maupun huruf namun tidak dapat mengalami operasi perhitungan.

Berikut merupakan contoh beberapa tipe data dasar :

Integer (bilangan bulat)

Pengertian Tipe Data, Variabel dan Operator Dalam Pemrograman

Integer adalah tipe data dasar berupa bilangan yang tidak mengandung pecahan desimal. Tipe data ini juga memiliki urutan, sehingga dapat dibandingkan satu dengan lainnya.

Contoh integer:
  • 2
  • 5
  • -10
  • 135
  • 2008

Secara teoritis, tipe data integer tidak memiliki batasan, yaitu dari minus tak hingga hingga plus tak hingga. Namun dalam pemrograman yang menggunakan bahasa pemprograman C++, secara umum dikenal beberap macam tipe data integer, yaitu:

Real (bilangan riil)


Pengertian Tipe Data, Variabel dan Operator Dalam Pemrograman

Real adalah tipe data dasar berupa bilangan yang memiliki pecahan desimal. Dalam pemrograman, nilai dengan tipe data ini harus ditulis dengan sebuah titik sebagai pemisah bilangan utuh dan bilangan pecahannya.

Tipe data ini digunakan untuk perhitungan yang melibatkan bilangan pecahan, seperti perhitungan kosinus, akar persamaan, dan sebagainya. Tipe data ini juga memiliki urutan, sehingga dapat dibandingkan satu dengan lainnya.

Contoh real:
  • 0.5
  • 0.17
  • -3.465
  • 92.0
  • 4.3000+E9

Secara teoritis, tipe data real juga tidak memiliki batasan, yaitu dari minus tak hingga hingga plus tak hingga. Namun dalam pemrograman, secara umum dikenal beberapa macam tipe data real, yaitu:

Nilai pada tabel diatas berbeda dengan nilai yang ada pada tabel tipe data integer, pada tabel diatas nilai untuk tipe data merupakan tingkat ketelitian untuk masing-masing tipe data, bukan berdasarkan rentang nilai.

Char (karakter)

Char adalah tipe data dasar yang terdiri atas satu buah angka, huruf, tanda baca atau karakter khusus. Untuk menyimpan sebuah karakter, diperlukan 1 byte atau 8 bit tempat didalam memori.

Dalam sebuah program, penulisan tipe data char diawali dan diakhiri dengan tanda kutip ganda. Selain itu, terdapat sebuah karakter kosong yang disebut dengan null atau nil dan dituliskan sebagai "".

Contoh char:
  • "5"
  • "A"
  • "?"
  • "+"
  • "$"

Perhatikan bahwa 5 adalah integer sedangkan "5" adalah char.

String

String adalah tipe data dasar yang berupa kumpulan karakter dengan panjang tertentu. Meskipun berupa kumpulan karakter, karena tipe data string sering digunakan dalam pemrograman, string dianggap sebagai tipe data dasar.

Untuk penyimpanan string didalam memori, dibutuhkan 1 byte untuk tiap karakternya. Serupa dengan penulisan karakter, penulisan sebuah string juga harus diawali dan diakhiri dengan tanda petik ganda. String juga mengenal null yang dituliskan dengan "".

Contoh string:
  • "BANDUNG"
  • "Politeknik Telkom Bandung"
  • "ABC3456"
  • "Lucu"
  • "30202001"
  • "z"

Perhatikan bahwa sebuah karakter tunggal ("z") juga merupakan string.

Boolean (bilangan logika)

Sebuah data boolean memiliki tepat dua buah kemungkinan nilai, direpresentasikan sebagai Benar dan Salah, atau True dan False, atau dapat juga dilambangkan dengan 1 dan 0. Tipe data ini dapat digunakan untuk pemilihan dengan kondisi-kondisi tertentu, dimana program harus memilih aksi apa yang akan dijalankan dengan parameter tertentu.

Tipe data ini paling sering digunakan untuk range yang memili dua buah nilai: lulus - tidak lulus, member - bukan member.

Minggu, 22 Oktober 2017

Halo guys, Saya dari Universitas Prima Indonesia, kali ini saya akan memposting tentang Pengertian OOP.

Pengertian OOP

OOP adalah sebuah metodologi atau cara berpikir dalam melakukan pemrograman dimana pendefinisian tipe data disertai dengan pendefinisian fungsi. Struktur data yang seperti ini disebut dengan istilah object. Paradigma pemrograman OOP dapat dilihat sebagai interaksi sebuah object dalam melakukan tugasnya.

Segelas teh tentunya memiliki berbagai spesifikasi seperti volume air, rasa, temperatur dan sebagainya. Pada pemrograman, spesifikasi-spesifikasi tersebut merupakan variabel yang dideklarasikan beserta tipe data. Pada OOP, sebuah object Teh juga memiliki method berupa fungsi yang dapat dipanggil untuk merubah kelakuan atau spesifikasi teh tersebut. Method minumTeh dapat dideklarasikan sebagai fungsi yang dapat dipanggil untuk mengurangi nilai variabel Volume.

Di samping itu, sebuah object dapat memiliki relasi terhadap object lainnya. Sebagai contoh, sebuah object dapat berupa keturunan dari object lain.

Sejarah OOP

Konsep OOP bermula pada era 1960-an. Sebuah bahasa pemrograman Simula memperkenalkan berbagai konsep yang mendasari OOP dengan SIMULA I (1962-65) dan Simula 67 (1967). Kemudian pada tahun 70-an, bahasa pemrograman Smalltalk menjadi yang pertama kali disebut object-oriented.
Pada tahun 1980-an, dua bahasa pemrograman ADA (US Department of Defense) dan PROLOG (the Japanese “Fifth Generation Computer Project”) dipercayai akan bersaing ketat sebagai bahasa pemrograman yang paling dominan. Namun justru OOP yang menjadi paradigma pemrograman yang paling dominan sampai sekarang. Bahasa pemrograman yang object-oriented seperti C++ pada tahun 80-an menjadi populer. Pada tahun 90-an, bahasa-bahasa pemrograman seperti Java mulai menerapkan OOP. Sampai pada 2002, Microsoft Visual Studio memperkenalkan bahasa object-orientedbaru yang diberi nama C#. Disusul VB.NET yang merupakan penyempurnaan Visual Basic 6.0 yang tidak mendukung OOP.

Object–Oriented Programming (OOP) adalah sebuah pendekatan untuk pengembangan / development suatu software dimana dalam struktur software tersebut didasarkan kepada interaksi object dalam penyelesaian suatu proses / tugas. Interaksi tersebut mengambil form dari pesan-pesan dan mengirimkannya kembali antar object tersebut. Object akan merespon pesan tersebut menjadi sebuah tindakan / action atau metode. Jika kita mencoba melihat bagaimana tugas disekitar kita diselesaikan, kita akan mengetahui bahwa kita berinteraksi dalam sebuah object–oriented world. Jika akan bepergian kita pasti berinteraksi dengan object mobil. Sebagai sebuah object, mobil berisi object-object lain yang berinteraksi untuk melakukan tugasnya membawa kita.

Object–oriented programs terdiri dari objects yang berinteraksi satu sama lainnya untuk menyelesaikan sebuah tugas. Seperti dunia nyata, users dari software programs dilibatkan dari logika proses untuk menyelesaikan tugas. Contoh, ketika kamu mencetak sebuah halaman diword processor, kamu berarti melakukan inisialisasi tindakan dengan mengklik tombol printer. Kemudian kamu hanya menunggu respon apakah job tersebut sukses atau gagal, sedangkan proses terjadi internal tanpa kita ketahui. Tentunya setelah kamu menekan tombol printer, maka secara simultan object tombol tersebut berinteraksi dengan object printer untuk menyelesaikan job tersebut.

Object-Oriented vs. Procedural

Procedural programming merupakan paradigma pemrograman selain OOP yang berdasarkan pada konsep procedure call. Procedure merupakan fungsi yang akan dijalankan secara berantai ketika program aktif baik oleh program itu sendiri atau procedure lain. Contoh bahasa pemrograman yang termasuk kedalam paradigma ini diantaranya adalah Pascal, Delphi, C++, ALGOL, Fortran, dll.

TYPE Teh = RECORD
NamaTeh: STRING;
VolumeTeh: REAL;
WarnaTeh: ColourType;

END;

Selanjutnya proses pemasukkan nilai variabel dan fungsi meminum teh dilakukan seperti berikut:

VAR Tehku: Teh;
BEGIN

(* Inisialisasi atribut teh *)
Tehku.NamaTeh := “Sosro”;
Tehku.VolumeTeh := 1.00;



(* Meminum teh *)
Tehku.VolumeTeh := Tehku.VolumeTeh – 0.1;

Proses ini tidak berlaku pada pemrograman berbasis object, sebab struktur data Teh hanya mempunyai tipe-tipe variabelnya. Pada OOP, perubahan sebuah object dilakukan dengan pemanggilan method yang dideklarasikan sebelumnya. Seperti yang disebutkan sebelumnya, method minumTeh dapat dideklarasi dan kemudian dipanggil untuk mengurangi Volume teh tersebut.

Mengapa menggunakan OOP?

Mengapa OOP dibangun dalam sebuah paradigma yang luas untuk menyelesaikan masalah bisnis? Bahasa prosedural mengatur program dalam mode barisan linier yang bekerja dari atas ke bawah. Dengan kata lain, program adalah kumpulan dari tahapan yang dijalankan setelah yang lain berjalan. Programming tipe ini bekerja dengan baik untuk program kecil yang berisi code relative sedikit, tetapi pada saat program menjadi besar, mereka cenderung susah untuk di-manage dan di-debug. Dalam usaha untuk me-manage program, struktur programming diperkenalkan cara untuk mem-break down code-code tersebut melalui functions dan procedures.

Ini adalah sebuah langkah perbaikan, namun pada saat program dijalankan dalam sebuah fungsi bisnis yang kompleks dan berinteraksi dengan sistem lain, maka kelemahan dari struktur metodologi programming muncul kepermukaan meliputi:

Program menjadi lebih susah untuk dimaintain. Fungsi yang tersedia, susah untuk diubah tanpa harus mempengaruhi fungsi sistem secara keseluruhan.

Programming tidak baik untuk team development. Programmers harus mengetahui setiap aspek bagaimana program itu bekerja dan tidak menyebabkan terisolasi usaha mereka atas aspek yang lain dari sistem.

Butuh usaha yang keras untuk menterjemahkan Business Modelsdalam programming models.

Mungkin dapat bekerja dengan baik pada saat terisolasi tapi tidak pada saat terintegrasi dengan sistem lain.

MENGENAL OBJECT ORIENTED PROGRAMMING (OOP) PADA JAVA


Class dan Object
Class adalah blueprint dari object. Object dibangun berdasarkan class
Objek adalah perwujudan dari class. Dimana dia memiliki jendela dan pintu yang sama dengan yang ada diblueprintnya.

Properties dan Method
Misal : Objek Kucing
Properties : sifat atau ciri yang melekat pada suatu objek.
Contoh : warna bulu, umur kucing, warna mata, dsb.
Method : kemampuan atau kebiasaan yang melekat pada suatu objek.
Contoh : mencakar, berlari, bermain, dsb.

Encapsulation
Sebuah motor telah dikemas sedemikian rupa sehingga penggunanya dapat menyalakan motor tersebuttanpa harus tahu proses apa yang terjadi di dalamnya.
Demikian pula halnya dengan konsep OOP, script dapat dibungkus dalam suatu class, dan class tersebutdapat digunakan oleh siapa saja tanpa harus mengetahui proses di dalam class tersebut.

Polymorphism
Polymorphism adalah kemampuan untuk mempunyai beberapa bentuk yang berbeda, namun memiliki fituryang sama. Perhatikan suatu SPBU, setiap pompa memiliki fitur yang sama yaitu meteran pompa, selang dan gagangpompa. Pompa tersebut dapat melayani berbagai bentuk mobil menggunakan fitur yang sama.

Inheritance
Dalam kehidupan sehari-hari mungkin kita sering mendengar kata “pewarisan”. Dimana seorang anak bisamengadopsi sifat atau perilaku dari induknya.
Begitupula dengan OOP, terkadang ada beberapa class yang memiliki sifat atau perilaku yang sama, makakita bisa menggunakan konsep pewarisan ini.