Thursday, December 30, 2010

2 DEFINISI

12/30/2010 06:57:00 AM Under From Unknown
[2 Comment]
tinggalin coment ya...

LINKED LIST
A. DEFINISI
Linked List (LL) adalah suatu cara pengolahan data yang bekerja dengan record dalam jumlah besar, sehingga membutuhkan alokasi memori dinamis yang besar pula. LL biasanya digunakan pada saat alokasi memori konvensional tidak lagi bisa diandalkan. Sedangkan bekerja dengan data yang besar tidak dapat dihindari lagi, karena tidak jarang pula, data besar tersebut memiliki hubungan yang erat. Di dalam LL tidak hanya sekadar menampilkan setiap record-nya, melainkan dapat pula menambahkan record, menghapus beberapa record sesuai keinginan pengguna, sampai mengurutkan record. Kondisi tersebut memungkinkan dimilikinya satu rantai data yang panjang dan saling berhubungan. Pada Linked List, setiap node memiliki dua buah pointer ke sebelah kiri (prev) dan ke sebelah kanan (next). Gambar 1 memperlihatkan sebuah node dari Linked List. Bertambah lagi komponen yang akan digunakan. Apabila dalam Single Linked List hanya memiliki head, curr dan node, maka untuk Linked List, ada satu penunjuk yang berfungsi sebagai akhir dari list: tail. Bagian kiri dari head akan menunjuk ke NULL. Demikian pula dengan bagian kanan dari tail. Setiap node saling terhubung dengan pointer kanan dan kiri. Gambar 2 memperlihatkan contoh Linked List.

B. ABSTRAKSI TIPE DATA LINKED LIST
Abstraksi tipe data Linked List sedikit berbeda dengan Single Linked List, yaitu tinggal menambahkan pointer prev dan harus diawali dengan pembuatan struct tnode.Kemudian, mendeklarasikan beberapa node yang akan digunakan sebagai head, tail, node aktif (curr) dan node sementara (node) seperti berikut:
Sama seperti pada pembuatan Single Linked List, dalam pembuatan Double Linked List ini, akan membuat sebuah perulangan sebanyak 5 kali untuk mengisikan nilai 0 sampai 4 ke dalam field x untuk masing-masing node. Secara umum, kode yang dibuat hampir sama dengan pembuatan Single Linked List. Hanya bedanya, pada Linked List, pointer kiri dan kanan dihubungkan dengan suatu node. Pertama-tama, tentunya perlu diuji apakah head bernilai NULL yang artinya belum ada satu node pun yang tercipta. Apabila demikian, maka node yang dibuat akan menjadi head. Node aktif (curr) pun diset sesuai node yang dibuat. Dan sebagai konsekuensi dari Linked List, maka diatur pointer prev pada head menunjuk ke NULL. Untuk menguji keberhasilan Linked List, awal list sampai akhir list akan dicetak dengan deklarasi:
Dan karena apa yang dibentuk adalah Double Linked List, maka juga mencetak dari tail sampai head, dengan deklarasi:
Untuk membebaskan memori teralokasi, dilakukan dengan pemanggilan fungsi free(). Kode selengkapnya:
Operasi pada linked list tidak hanya pembuatan dan pencetakan. Suatu saat, mungkin perlu untuk menghapus node yang terletak di tengah-tengah list. Atau bahkan mungkin perlu menyelipkan node di tengah-tengah node.

C. MACAM-MACAM LINKED LIST
1. DOUBLE LINKED LIST CIRCULAR (DLLC)
a. Definisi
Linked List Circular adalah linked list dengan menggunakan pointer, dimana setiap node memiliki 3 field, yaitu 1 field pointer yang menunjuk pointer berikutnya (next), 1 field menunjuk pointer sebelumnya (prev), serta sebuah field yang berisi data untuk node tersebut. Double Linked List Circular pointer next dan prev-nya menunjuk ke dirinya sendiri secara circular.
b. Bentuk Node DLLC
Double : field pointer-nya terdiri dari dua buah dan dua arah, yaitu prev dan next.
Linked List : node-node tersebut saling terhubung satu sama lain.
Circular : pointer next dan prev-nya menunjuk ke dirinya sendiri.
Ilustrasi Double Linked List Circular
 Setiap node pada linked list mempunyai field yang berisi data dan pointer ke node berikutnya dan ke node sebelumnya.
 Untuk pembentukan node baru, mulanya pointer next dan prev akan menunjuk ke dirinya sendiri.
 Jika sudah lebih dari satu node, maka pointer prev akan menunjuk ke node sebelumnya, dan pointer next akan menunjuk ke node sesudahnya.
c. Pembuatan Double Linked List Circular
Deklarasi node, dibuat dari struct berikut ini:
Penjelasan:
 Pembuatan struct bernama TNode yang berisi 3 field, yaitu field data bertipe integer dan field next dan prev yang bertipe pointer dari Tnode.
 Setelah pembuatan struct, buat variabel haed yang bertipe pointer dari TNode yang berguna sebagai kepala linked list.
Pembuatan Node Baru:
Digunakan keyword new yang berarti mempersiapkan sebuah node baru berserta alokasi memorinya, pointer prev dan next menunju ke dirinya sendiri.
d. Double Linked List Circular Menggunakan Head
 Menggunakan 1 pointer head.
 Head selalu menunjuk node pertama.
Deklarasi Pointer Head:
Manipulasi linked list tidak bisa dilakukan langsung ke node yang dituju, melainkan harus melalui node pertama dalam linked list. Deklarasinya sebagai berikut:
e. Penambahan Data
Penambahan Data di Depan:
Penambahan node baru akan dikaitan di node paling depan, namun pada saat pertama kali (data masih kosong), maka penambahan data dilakukan pada head-nya.
Pada prinsipnya adalah mengkaitkan data baru dengan head, kemudian head akan menunjuk pada data baru tersebut sehingga head akan tetap selalu menjadi data terdepan. Dibutuhkan pointer bantu yang digunakan untuk menunjuk node terakhir (headprev) yang akan digunakan untuk mengikat list dengan node terdepan.
Penambahan Data di Belakang:
Penambahan data dilakukan di belakang, namun pada saat pertama kali data langsung ditunjuk pada head-nya. Penambahan di belakang lebih sulit karena kita membutuhkan pointer bantu untuk mengetahui data terbelakang, namun tidak diperlukan loop karena untuk mengetahui node terbelakang hanya perlu menunjuk pada headprev saja. Kemudian dikaitkan dengan data baru. Untuk mengetahui data terbelakang perlu digunakan perulangan.
 Function di atas digunakan untuk menampilkan semua isi list, dimana linked list ditelusuri satu-persatu dari awal node sampai akhir node. Penelusuran ini dilakukan dengan menggunakan suatu variabel node bantu, karena pada prinsipnya variabel node head yang menjadi tanda awal list tidak boleh berubah/berganti posisi.
 Penelusuran dilakukan terus sampai node terakhir ditemukan menunjuk ke head lagi. Jika belum sama dengan head, maka node bantu akan berpindah ke node selanjutnya dan membaca isi datanya dengan menggunakan field next sehingga dapat saling berkait.
 Jika head masih NULL berarti data masih kosong.
f. Penghapusan Data
  Function di atas akan menghapus data teratas (pertama) yang ditunjuk oleh head pada linked list.
 Penghapusan node tidak boleh dilakukan jika keadaan node sedang ditunjuk oleh pointer, maka harus ditampung dahulu pada pointer hapus dan barulah kemudian menghapus pointer hapus dengan menggunakan perintah delete.
DLLC DAN DLLNC Jika head masih NULL maka berarti data masih kosong.
  Diperlukan pointer bantu yang mengikuti pointer hapus yang berguna untuk menunjuk ke node sebelum terakhir.
  Kemudian pointer hapus ditunjukkan ke node setelah pointer bantu, kemudian hapus pointer hapus dengan perintah delete.
g. Double Linked List Menggunakan Head dan Tail
  Dibutuhkan dua buah variabel pointer: head dan tail.
  Head akan selalu menunjuk pada node pertama, sedangkan tail akan selalu menunjuk pada node terakhir.
Pengkaitan Node Baru ke Linked List di Depan:
Penambahan node baru akan selalu dikaitan di node paling depan, namun pada saat pertama kali (data masih kosong), maka penambahan data dilakukan pada tail/head-nya. Sedangkan jika tidak kosong, data akan ditambahkan di depan head, kemudian node baru akan berubah menjadi head.
Penambahan Node di Belakang:
Penambahan node di belakang akan selalu dikaitkan dengan tail dan kemudian node baru tersebut akan menjadi tail.
  Function di atas akan menghapus data teratas (pertama) yang ditunjuk oleh head pada linked list.
  Penghapusan node tidak boleh dilakukan jika keadaan node sedang ditunjuk oleh pointer, maka harus ditampung dahulu pada variabel hapus dan barulah kemudian menghapus variabel hapus dengan menggunakan perintah delete.
  Jika tail masih NULL maka berarti data masih kosong.
  Pointer hapus tidak perlu di loop untuk mencari node terakhir. Pointer hapus hanya perlu menunjuk pada pointer tail saja.
  Karena pointer hapus sudah bisa menunjuk ke pointer sebelumnya dengan menggunakan elemen prev ke node sebelumnya. Kemudian pointer tail akan berpindah ke node sebelumnya.

2. DOUBLE LINKED LIST NON CIRCULAR (DLLNC)
a. Definisi
Double Linked List Non Circular adalah linked list dengan menggunakan pointer, dimana setiap node memiliki 3 field, yaitu 1 field pointer yang menunjuk pointer berikutnya (next), 1 field menunjuk pointer sebelumnya (prev), serta sebuah field yang berisi data untuk node tersebut.
Double Linked List Non Circular pointer next dan prev nya menunjuk ke NULL. Dengan adanya 2 pointer penunjuk, next dan prev, DLLNC sangat flexible dibandingkan dengan SLLNC.
b. Bentuk Node DLLC
Pengertian:
Double : field pointer-nya terdiri dari dua buah dan dua arah, yaitu prev dan next.
Linked List : node-node tersebut saling terhubung satu sama lain.
Non Circular : pointer next dan prev-nya menunjuk ke NULL.
Ilustrasi Double Linked List Non Circular
 Setiap node pada linked list mempunyai field yang berisi data dan pointer ke node berikutnya dan ke node sebelumnya.
 Untuk pembentukan node baru, mulanya pointer next dan prev akan menunjuk ke nilai NULL.
 Selanjutnya pointer prev akan menunjuk ke node sebelumnya, dan pointer next akan menunjuk ke node selanjutnya pada list.
c. Pembuatan Double Linked List Non Circular
Deklarasi node, dibuat dari struct berikut ini:
Penjelasan:
 Pembuatan struct bernama TNode yang berisi 3 field, yaitu field data bertipe integer dan field next & prev yang bertipe pointer dari Tnode.
 Setelah pembuatan struct, buat variabel haed yang bertipe pointer dari TNode yang berguna sebagai kepala linked list.
Pembentukan Node Baru:
Digunakan keyword new yang berarti mempersiapkan sebuah node baru berserta alokasi memorinya.
Untuk data pertama, pointer node baru yang prev dan next harus menunjuk ke NULL
d. Double Linked List Non Circular Menggunakan Head
 Menggunakan 1 pointer head
 Head selalu menunjuk node pertama
Deklarasi Pointer Head:
Manipulasi linked list tidak bisa dilakukan langsung ke node yang dituju, melainkan harus melalui node pertama dalam linked list. Deklarasinya sebagai berikut:
e. Penambahan Data
Penambahan Data di Depan:
Penambahan node baru akan dikaitan di node paling depan, namun pada saat pertama kali (data masih kosong), maka penambahan data dilakukan pada head-nya. Pada prinsipnya adalah mengkaitkan data baru dengan head, kemudian head akan menunjuk pada data baru tersebut sehingga head akan tetap selalu menjadi data terdepan.
Penambahan Data di Belakang:
Penambahan data dilakukan di belakang, namun pada saat pertama kali data langsung ditunjuk pada head-nya. Penambahan di belakang lebih sulit karena kita membutuhkan pointer bantu untuk mengetahui data terbelakang, kemudian dikaitkan dengan data baru. Untuk mengetahui data terbelakang perlu digunakan perulangan.
 Function di atas digunakan untuk menampilkan semua isi list, di mana linked list ditelusuri satu-persatu dari awal node sampai akhir node. Penelusuran ini dilakukan dengan menggunakan suatu variabel node bantu, karena pada prinsipnya variabel node head yang menjadi tanda awal list tidak boleh berubah/berganti posisi.
 Penelusuran dilakukan terus sampai node terakhir ditemukan menunjuk NULL. Jika belum NULL, maka node bantu akan berpindah ke node selanjutnya dan membaca isi datanya dengan menggunakan field next sehingga dapat saling berkait.
 Jika head masih NULL berarti data masih kosong
 Function di atas akan menghapus data teratas (pertama) yang ditunjuk oleh head pada linked list.
 Penghapusan node tidak boleh dilakukan jika keadaan node sedang ditunjuk oleh pointer, maka harus ditampung dahulu pada pointer hapus dan barulah kemudian menghapus pointer hapus dengan menggunakan perintah delete. Namun sebelumnya pointer head harus menunjuk terlebih dahulu ke node selanjutnya.
 Jika head masih NULL maka berarti data masih kosong
 Tidak diperlukan pointer bantu yang mengikuti pointer hapus yang berguna untuk menunjuk ke NULL
 Karena pointer hapus sudah bisa menunjuk ke pointer sebelumnya dengan menggunakan elemen prev ke node sebelumnya, yang akan diset agar menunjuk ke NULL setelah penghapusan dilakukan.
f. Double Linked List Menggunakan Head dan Tail
 Dibutuhkan dua buah variabel pointer: head dan tail.
 Head akan selalu menunjuk pada node pertama, sedangkan tail akan selalu menunjuk pada node terakhir.
Pengkaitan Node Baru ke Linked List di Depan:
Penambahan node baru akan selalu dikaitan di node paling depan, namun pada saat pertama kali (data masih kosong), maka penambahan data dilakukan pada tail/head nya. Sedangkan jika tidak kosong, data akan ditambahkan didepan head, kemudian node baru akan berubah menjadi head.
Penambahan Node di Belakang:
Penambahan node di belakang akan selalu dikaitkan dengan tail dan kemudian node baru tersebut akan menjadi tail.
 Function di atas akan menghapus data teratas (pertama) yang ditunjuk oleh head pada linked list
 Penghapusan node tidak boleh dilakukan jika keadaan node sedang ditunjuk oleh pointer, maka harus ditampung dahulu pada pointer hapus dan barulah kemudian menghapus pointer hapus dengan menggunakan perintah delete. Namun sebelumnya pointer head harus ditunjuk lebih dahulu ke node sesudahnya agar tetap menunjuk ke node terdepan.
 Jika tail masih NULL maka berarti data masih kosong
 Pointer hapus tidak perlu di loop untuk mencari node terakhir. Pointer hapus hanya perlu menunjuk pada pointer tail saja.
 Karena pointer hapus sudah bisa menunjuk ke pointer sebelumnya dengan menggunakan elemen prev, maka pointer prev hanya perlu diset agar menunjuk ke NULL. Lalu pointer hapus didelete.
Read More »

Saturday, December 25, 2010

0 BAHASA PEMROGRAMAN C++

12/25/2010 01:32:00 AM Under From Unknown
[0 Comment]

C++ adalah salah satu bahasa pemrograman komputer. Dibuat pada tahun 1980-an oleh Bell Labs (Bjarne Stroustrup) sebagai pengembangan dari Bahasa pemrograman C. Salah satu perbedaan yang paling mendasar dengan bahasa C adalah dukungan terhadap konsep pemrograman berorientasi objek (Object Oriented Programming 
A. Pengertian C++ 
C++ adalah sebuah bahasa pemrograman yang memiliki banyak dialek, seperti bahasa orang yang banyak memiliki dialek. Dalam C++, dialek bukan disebabkan oleh karena si pembicara berasal dari Jepang atau Indonesia, melainkan karena bahasa ini memiliki beberapa kompiler yang berbeda. Ada empat kompiler umum yaitu : C++ Borland, C++ Microsoft Visual, C/386 Watcom, dan DJGPP. Anda dapat mendownload DJGPP atau mungkin saja anda telah memiliki kompiler lain. 
Setiap kompiler ini agak berbeda. Setiap kompiler akan dapat menjalankan fungsi fungsi standar C++ ANSI/ISO, tetapi masing masing kompiler juga akan dapat menjalankan fungsi fungsi nonstandard (fungsi fungsi ini, agak mirip dengan ucapan yang tidak standar yang diucapkan orang diberbagai pelosok negeri. Sebagai contoh, di New Orleans kata median disebut neutral ground). Kadang kadang pemakaian fungsi nonstandard akan menimbulkan masalah pada saat anda hendak mengkompilasi kode sumber data (source code) (yaitu program berbahasa C++ yang ditulis oleh seorang programer) mempergunakan kompiler yang berbeda. Tutorial ini tidak terlepas dari masalah seperti itu. 
Bila anda belum mempunyai sebuah kompiler, disarankan agar anda segera memiliki sebuah kompiler. Sebuah kompiler sederhana sudah cukup untuk dipergunakan oleh anda dalam mengikuti tutorial ini. 
Bahasa pemrograman C++ adalah bahasa yang amat berbeda. Untuk kompiler C++ berbasis DOS, akan memerlukan beberapa kata kunci (keywords); keyword sendiri tidak cukup untuk difungsikan sebagai input dan output. Walau hampir semua fungsi dalam file library tampaknya bias diakses oleh header filenya. Coba kita lihat program sesungguhnya : 
#include 
int main() 
{ 
cout<<”HEY, you, I’m alive! Oh, and Hello World!”; return 0; } a) Program C++ pertama Contoh program sederhana C++ untuk hello world dengan menggunakan Pustaka Dasar C++ dapat dilihat di bawah ini: #include // provides std::cout

int main()
{
std::cout << "Hello, world!\n"; return 0; } Berikut ini adalah contoh program sederhana yang akan mencetak kalimat "Hello, World!" dengan menggunakan pustaka stdio.h (ANSI C): #include 

int main(void) {
printf("Hello, World!\n");
return 0;
}


b) Pustaka dasar C++
Dalam bahasa pemrograman C++, Pustaka Dasar adalah kumpulan class dan fungsi yang menjadi inti bahasa pemrograman C++. Pustaka Dasar C++ terdiri dari container umum dan fungsi untuk memanipulasinya, string dan stream (termasuk fungsi untuk antarmuka pengguna serta fungsi untuk menulis dan membaca file (file I/O)), serta fungsi-fungsi yang sering digunakan seperti fungsi untuk mencari akar kuadrat dari sebuah bilangan. Pustaka Dasar C++ sudah termasuk Pustaka Dasar ISO C90 untuk bahasa pemrograman C. Fitur-fitur dalam Pustaka Dasar C++ dinyatakan dalam namespace std.
Pustaka Pola Dasar (The Standard Template Library atau STL) adalah bagian dari Pustaka Dasar C++. Pustaka Pola Dasar C++ terdiri dari container, algorithm, iterator dan lain sebagainya. Orang kadang menyebutkan Pustaka Dasar C++ dan Pustaka Pola Dasar C++ untuk merujuk pada hal yang sama.
Kepala (header) untuk penggunaan Pustaka Dasar C++ ditulis tanpa akhiran .h.

c) Kata yang dipesan
Kelompok pertama
C++ mempunyai 32 buah kata yang dipesan (reserved words). Kata kunci kelompok pertama merupakan turunan dari bahasa C, di antaranya:
auto const double float int short struct unsigned
break continue else for long signed switch void
case default enum goto register sizeof typedef volatile
char do extern if return static union while


Kelompok kedua
Kata yang dipesan kelompok kedua berjumlah 30. Kata-kata ini adalah baru dan hanya ada di bahasa C++.
asm dynamic_cast namespace reinterpret_cast try
bool explicit new static_cast typeid
catch false operator template typename
class friend private this using
const_cast inline public throw virtual
delete mutable protected true wchar_t
Kata-kata yang dipesan tersebut di atas tidak boleh dipakai sebagai nama variable, class, enum, macro, dan struct.
d) Tipe data dasar
Untuk menyimpan suatu variabel diperlukan tempat khusus di dalam memori komputer. Besar dan tipe dari variabel-variabel di dalam standar program C++ dispesifikasikan sebagai berikut.
Nama Keterangan Ukuran Jangkauan
char Abjad/karakter atau untuk bilangan bulat kecil 1 byte signed: -128 to 127
unsigned: 0 to 255
short int (short) Bilangan bulat dengan jangkauan pendek 2 byte signed: -32768 to 32767
unsigned: 0 to 65535
int Bilangan bulat 4 byte signed: -2147483648 to 2147483647
unsigned: 0 to 4294967295
long int (long) Integer dengan jangkauan panjang 4 byte signed: -2147483648 to 2147483647
unsigned: 0 to 4294967295
bool Boolean, dapat bernilai benar atau salah (true or false) 1 byte true or false
float Angka dengan titik mengambang (bilangan cacah) 4 byte 3.4e +/- 38 (7 digit)
double Bilangan cacah dengan ketelitian ganda 8 byte 1.7e +/- 308 (15 digits)
long double Bilangan cacah dengan ketelitian ganda panjang 8 byte 1.7e +/- 308 (15 digits)
wchar_t Karakter lebar, biasa dipakai untuk Unicode karakter
2 byte 1 karakter lebar

e) Daftar C++ compiler
Untuk mengubah kode-kode C++ program menjadi suatu program aplikasi yang dimengerti oleh sistem operasi dan komputer, diperlukan sebuah kompilator C++.
Berikut ini adalah beberapa kompilator C++ yang dapat digunakan secara gratis.
• Microsoft Visual C++ 2005 Express
• Turbo C++ Explorer
• Apple Xcode for Mac OS X
• Open Source Watcom / OpenWatcom C/C++ Compiler
• Digital Mars C/C++ Compiler (Symantec C++ Replacement)
• Bloodshed Dev-C++ C++ Compiler
• Free Microsoft .NET Framework Software Development Kit (SDK) / Free Microsoft Visual C++ Compiler
• Intel C++ Compiler for Linux Non-Commercial Version
• Sun Studio Compilers and Tools
• Open64 Compiler Tools
• Apple's Macintosh Programmer's Workshop (C and C++ compilers)
• TenDRA C/C++ Compiler
• GNU C/C++ Compiler
• Ch Embeddable C/C++ Interpreter (Standard Edition)
• DJGPP C and C++ Compilers
• CINT C and C++ Interpreter
• SDCC C Cross-compiler
• Cygwin Project (C & C++ Compilers)
• SDCC C Cross-compiler
• Code::Blocks

f) Kompilator
Kompilator (Inggris: compiler) adalah sebuah program komputer yang berguna untuk menerjemahkan program komputer yang ditulis dalam bahasa pemrograman tertentu menjadi program yang ditulis dalam bahasa pemrograman lain.
Terlepas dari pengertiannya yang demikian relatif luas, istilah kompilator biasa digunakan untuk program komputer yang menerjemahkan program yang ditulis dalam bahasa pemrograman tingkat tinggi (semacam bahasa Pascal, C++, BASIC, FORTRAN, Visual Basic, Visual C#, Java, xBase, atau COBOL) menjadi bahasa mesin, biasanya dengan bahasa Assembly (assembler) sebagai perantara.
Kompilator berbeda dengan assembler karena biasanya kompilator akan menghasilkan kode obyek (object code) yang bisa berupa file executable pada sisten operasi Windows atau file bin pada sisten operasi berbasis Unix.
Kompilator melakukan proses kompilasi dengan cara menganalisis kode sumber secara keseluruhan, sehingga waktu yang dibutuhkan untuk melakukan kompilasi lebih lama, namun hasilnya lebih cepat dalam proses eksekusi daripada program yang dibuat dengan menggunakan teknik interpretasi dengan interpreter

B. Header dan Fungsi main()
Beberapa bagian yang harus di perhatikan adalah header dan fungsi. Header adalah diana kita memasukkan library yang ada dalam C++ kedalam kode program kita. Fungsi adalah “tempat” dimana kita bisa “bereksperimen”. Didalamnya terdapat semua statement yang kita buat. Program yang paling sederhana yang pernah diketahui umat manusia (seram amat kata-katanya) adalah:

#include 
using namespace std;

void main ()
{
cout << “Hello, World!\n”; } Pada baris pertama, seperti yang kita lihat, ada perintah #include . Tanda ‘#’ adalah preprocessor directive. Preprocessor directive adalah perintah – perintah yang diberikan kepada compiler untuk melakukan definisi, memasukkan file library, dll. Contoh – contoh dari preprocessor ini adalah:
• #define maximum_number 100000
• #include “fileku.h”
• #ifdef maximum_number
#undef maximum_number
#define maximum_number_2 1000
#endif

Itu berarti bahwa kita memasukkan (include) library iostream ke dalam kode program kita. iostream itu adalah header yang dibutuhkan untuk “kegiatan” input dan output dari program. Perintah cout sendiri ada karena kita memasukkan iostream ke dalam kode program kita dan juga using namespace std; dimana ada member cout di dalamnya.
Berikut beberapa header yang terdapat dalam C++:
• ctime = header waktu
• cstdio = header untuk perintah C seperti printf dan scanf
• cmath = header untuk operasi matematika seperti sin, cos, sqrt, dan tan
• cstring = header untuk memanipulasi string seperti strcpy, strcat, dll

(untuk lebih lengkapnya, lihat http://cplusplus.com/tutorial)

main () adalah fungsi utama (main) yang harus ada dalam setiap program C++ kita. Di sini yang digunakan adalah dengan main tanpa nilai kembalian dan tanpa paramater. Apa itu nilai kembalian dan apa itu paramater? Saksikan setelah pesan – pesan berikut… eh salah, lihat dalam bab berikutnya . Jika diperhatikan ada perintah \n pada akhir “kalimat” Hello, World!. Apa itu? ”\n” adalah perintah dalam banyak bahasa pemrograman sebagai baris baru (new line).
Perintah dengan menggunkan backslash (‘\’) juga ada beberapa jenis, diantaranya:
• ‘\a’ = untuk menghasilkan bunyi alert
• ‘\t’= tabulasi
• ‘\0’ = null terminated dalam array

Tanda ‘{‘ juga harus ada dalam setiap fungsi C++, itu menandakan awal dari fungsi / program dan ‘}’ menandakan akhir dari fungsi / program.


C. Penulisan Dalam Bahasa C++
Penulisan dalam bahasa C++ adalah case sensitive. Yang berarti, C++ membedakan huruf kecil dan kapital. Yang berarti (lagi): variabel_pertama tidak sama dengan variabel_Pertama atau mboknya_echi tidak sama dengan mboknya_Echi.

Komentar dalam C++ ditulis dengan ‘//’ untuk komentar dengan panjang satu baris atau ‘/*’ dan ‘*/’ untuk komentar lebih dari satu baris, dimana tanda /* merupakan “pembuka” komentar dan */ adalah “penutup” komentar. Komentar adalah cataatan ang ditulis oleh programmer untuk sebagai pengingat atau penjelasan ketika membaca sebuah kode. Kata – kata dalam sebuah komentar tidak akan dieksekusi oleh compiler.

Beberapa kesalahan dalam penulisan dalam C++ adalah:
• int int; /*salah karena nama sebuah variabel tidak boleh sama dengan seuah tipe data (int)*/
• int Jam_9; //salah karena nama variabel dimulai dengan huruf besar
• int 90jam; /*nah, ini juga salah karena nama sebuah variabel tidak boleh dimulai dengan bilangan*/

Penulisan yang benar dalam C++ adalah:
• int myint; //betul
• char kata_2; //betul juga...
• double bilangan_KeDuA; /*walaupun nama identifiernya aneh, tapi ini juga betul :) */

Setiap statement dalam C++ harus diberi tanda ‘;’ pada akhir dari statement. Contoh penulisan statement yang benar dalam C++ adalah:

int a, b, c;
a = 1;
b = 2;
c = a + b;

Sedangkan penulisan yang salah adalah:
int a, b, c
karena itu dianggap error oleh compiler, karena merupakan statement yang tidak lengkap.

D. Tipe Data
Tipe – tipe data yang dikenal dalam C++ adalah sebagai berikut:
int adalah tipe data bilangan bulat (integer). Contoh penggunaan tipe int adalah:

int a = 1;
int num1 = 2, num2 = 4;
Perhatikan bahwa dalam nilai – nilai yang masuk di assign (masukkan) ke dalam variabel – variabel bertipe int adalah angka – angka / bilangan bulat. Seperti namanya, int hanya bisa bernilai bulat dan bukan pecahan (desimal). Bagaimana kalau yang tipenya int lalu yang dimasukkan adalah hasil pembagian yang tidak bulat hasilnya? Maka:
int hasil_bagi_bulat = 5 / 2;

Hasilnya:
2

Ini karena 5 dibagi 2 = 2,5 kemudian karena hasil_bagi_bulat adalah integer (bilangan bulat) 2,5 kemudian dibulatkan menjadi 2.
Untuk bilangan desimal sendiri ada tipe tertentu untuk bilangan ini.

double
adalah tipe yang khusus untuk bilangan yang tidak bulat alias desimal / pecahan. Contoh penggunaannya adalah:
double mydouble = 5.00;
double pecahan_pertama = 2.5, pecahan_kedua = 9.9;

char
adalah tipe data karakter yang bisa menyimpan mulai dari: a – z, A – Z, ‘!’, ‘@’, dsb. Penggunannya ± sama dengan tipe - tipe yang sebelumnya:
char huruf = ‘c’;
char inisial1 = ‘A’, inisial2 = ‘W’;
char simbol = ‘#’;

bool
adalah tipe yang hanya “menyimpan” nilai “benar” dan “salah” yaitu, true dan false (boolean). Contoh:
bool benar_atau_salah = true;

string
adalah tipe yang khusus untuk menampung semua masukan dari user / gabungan karakter yang sangat panjang. Misalnya:
string string_gue = “nah, kyk gini deh contohnya string...”;




E. Operator Aritmatika
Operator aritmatika yang sering digunakan dalam C++ adalah:
• ‘+’ = penjumlahan
• ‘-‘ = pengurangan
• ‘*’ = perkalian
• ‘/’ = pembagian
• ‘%’ = sisa bagi (modulo)

Contoh dari pemakaian masing – masing operator tersebut adalah sebagai berikut:
#include 
using namespace std;

void main () {
int satu, dua, tiga, empat, lima;
satu = 1 + 0;
dua = 4 - 2;
tiga = 1 * 3;
empat = 20 / 5;

//mencari sisa bagi dari 25 / 10
lima = 25 % 10;

cout << style="font-weight: bold;">Program Gaji_Dosen { Menentukan gaji bulanan seorang dosen. Masukan yang dibaca dari papan kunci adalah nama Dosen, golongan, dan jumlah jam kerja. Nama Dosen dan gajinya dicetak ke piranti keluaran }
Kamus
nama: string
jjk : integer { jumlah jam kerja}
gaji : real
Algoritma
read (nama , jjk)
if jjk ≤ 224
then gaji ← jjk * 15000 else
gaji ← 224 * 15000 + (jjk – 224 ) * 20000 endif write (gaji)

#include 
main () {
nama char;
int jjk;/* jumlah jam kerja */
float gaji;
std : : cin >> nama , jjk;
If jjk ≤ 224; gaji = jjk * 15000; else
gaji = 224 * 15000 + (jjk – 224) * 20000;
std : : cout << “gaji = “ <<> main () {
int b; for ( b = 60 ; b >= 1; b - - );
std : : cout << mk =" ‘algoritma" mk =" ‘bahasa" mk =" ‘kalkulus’" mk =" ‘fisika">
main () { char mk [ 15 ] ; /* mata kuliah*/
cout << “ketikan mata kuliah:”; cin >> mk;
if ( strcm ( mk, “algoritma dan pemrograman”))
cout << “Yudi Herdiana, ST.\n”; else if ( strcm ( mk, “bahasa Indonesia” )) cout << “Indra Nurgahayu, SPd.\n”; else if ( strcm ( mk, “kalkulus” )) cout << “Deni Sofiansyah, MPd.\n”; else if ( strcm ( mk, “fisika dasar” )) cout << “Taofik, SSi.\n”; /*endif*/ /*endif*/ /*endif*/ /*endif*/ } Contoh 4 ALGORITMIK Program Jalan_Alternatif { menentukan jalan alternatif bila jalan Pasar Baru di majalaya macet } Kamus jl : string { jalan } Algoritma Read ( jl ) If jl = ‘pasar baru macet’ then write ( ‘coba jalan Ebah’ ) else write ( ‘coba jalan anyar’ ); endif C++ #include 
main ()
{
char jl;
if jl = (‘pasar baru macet’)
cout << ‘coba jalan ebah’; else cout << ’coba jalan anyar’; } Contoh 5 ALGORITMIK Program Ngukur_Waktu { mengukur waktu berdasarkan jarak dan kecepatan } Kamus v : integer { kecepatan } s : integer { jarak } t : real { waktu } Algoritma v←5 s←20 t←s/v output(“waktu = “,t); C++ #include 
Main ()
{
Int v;
Int s;
float t;
v = 5;
s = 20;
t = s/v;
cout<<“waktu:””<
}

Daftar Pustaka

http://id.wikipedia.org/wiki/C%2B%2B
http://selinliz.wordpress.com/2008/09/11/pengertian-bahasa-pemograman-c/
http://ericwanda.wordpress.com/2008/09/24/bone/
http://ilmukomputer.org/2009/05/pemrograman-dengan-c-part-i /
http://ilmukomputer.org/2009/05/pemrograman-dengan-c-part-ii/
http://ilmukomputer.org/2009/05/pemrograman-dengan-c-part-iii/
http://www.cplusplus.com/info/history.html
Drs. Suarga, M.Sc., M. Math., Ph.D., Algoritma Pemrograman, Penerbit ANDI, 2006
Robert Setiadi, Algoritma Itu Mudah, PT. Prima Infosarana Media, 2008
Kernighan, Brian W. and Ritchie, Dennis M. 1988. C Programming Language 2nd Edition. Prentice-Hall.

Stroustrup, Bjarne. 1997. C++ Programming Language Third Edition. Addison-Wesley.

Schildt, Herbert. 1998. C++: The Complete Reference. McGraw-Hill.

Munir, Rinaldi. 1999. Algoritma dan Pemrograman dalam bahasa pascal dan c.
informatika : Bandung
Read More »

Friday, December 24, 2010

0 Insert Node dan Traverse LL

12/24/2010 01:23:00 AM Under From Unknown
[0 Comment]

Insert Node dan Traverse LL

 a) Insert Node at First position
Untuk memasukan node di posisi awal, kita harus terlebih dahulu membuat node baru, lalu menyambungnya dengan linked list yang sudah ada. Terakhir, ubah pointer head ke node yg baru dibuat.

cout << "MASUKAN DATA :"; // cetak ke layar
cin >> angka; // baca data dari keyboard

node *temp;               // deklarasi var pointer yang menunjuk ke node.
temp = (node*)malloc(sizeof(node)); // ciptakan node baru kosong
temp->data = angka;  // isi data
temp->next = head;    // sambung alamat berikutnya ke arah alamat yg ditunjuk head
head = temp;              // ubah alamat pointer head untuk menunjuk temp.
temp = NULL;           // ubah pointer temp ke null agar tidak menunjuk kemanapun.


 b) Traverse Linked List  (Penelusuran/Pergerakan pointer)

Untuk menggerakan pointer, sebaiknya anda mendeklarasi pointer bertipe node, misalnya node *temp; bukan memindah pointer head. Perhatian ! Jika anda telah terlanjur mengubah posisi pointer head bergerak ke arah kanan, maka semua node yang disebelah kiri, tidak akan bisa diakses kembali karena pada contoh ini kita hanya menggunakan Single Linked List (forwad only). 

Sebuah linked list sebenarnya tidak mengetahui berapa jumlah node/gerbong yang ikut dengannya, untuk mengetahuinya maka ditugaskan sebuah variable pointer yaitu temp untuk menelusuri/bergerak sampai alamat sebuah node = NULL yang meng-indikasikan akhir dari suatu linked list. Berikut ini kode programnya.

node *temp; // deklarasikan variable pointer bertipe node
temp = head; // pointer temp menunjuk ke alamat yg sama dengan yang ditunjuk head.
// ini bukan merupakan duplikasi, ibarat satu orang dengan nama Arisandi Hutama, bisa
// mempunyai 2 nama panggilan yang berbeda, di rumah dipanggil Ari, di kampus dipanggil Sandi
// yang keduanya (head dan temp), menunjuk ke obyek yang sama.

// Dengan 2 pointer menunjuk linked list yang sama, maka salah satu pointer,
// yaitu temp ditugaskan untuk bergerak menelusuri linked list
// dan mencetak seluruh isi node
while( temp != NULL )
{
 cout<< temp1->data<<"-"; // Tampilkan tiap-tiap node yg ada pada linked list
 temp = temp->next;   // ubah alamat pointer temp ke temp berikutnya
}

c) Insert Node at Last position



Untuk memasukan node baru pada posisi terakhir, langkah pertama yang harus anda buat adalam membuat node baru. Agar node baru tersebut dimasukan ke posisi terakhir, anda harus menelusuri suatu linked list dan berhenti tepat satu node sebelum node akhir (lihat gambar di atas). Lalu ubah temp->next = baru. Perubahan itu akan menyambung linked list dengan node yang baru. Jangan lupa pada pointer baru, ubah alamat nextnya menjadi NULL.

d) Insert Node at Certain Position

Untuk memasukan node baru pada posisi tertentu, hampir mirip dengan memasukan node pada posisi terakhir. Ketika seorang user ingin memasukan ke posisi tertentu, contoh setelah posisi ke-2 (seperti gambar di atas), maka pointer temp harus berhenti tepat satu node sebelum node ke-2, Lalu buat juga pointer temp2 yang menunjuk alamat setelah node temp. Pointer temp->next disambung ke pointer baru. Dan baru->next disambung ke temp2. Selamat mencoba ya, semoga sukses :)

Read More »

Thursday, December 23, 2010

0 METODE ASC BUBBLE SORT

12/23/2010 02:22:00 AM Under From Unknown
[0 Comment]
/*---- METODE ASC BUBBLE SORT ----*/
#include <stdio.h>
#include <conio.h>

void main() {
int i, j, n; //Deklarasi index untuk array
int Tmp; //Tmp penampung elemen array
int Arr[50]; //Deklarasi Array

//Aplikasi dimulai
printf("Inputkan banyak data yang akan diurutkan : ");
scanf("%i", &n);
//Input array
for(i = 0; i < n; i++) { //Perulangan untuk inputan array
printf("Masukan data ke %i : ", i + 1);
scanf("%i", &Arr[i]);
}
//Lakukan sorting ascending dengan metode bubble
for(i = 1; i < n; i++) { //Lakukan perulangan untuk akses array
for(j = 0; j < n - 1; j++) { //Lakukan perulangan untuk pencocokan
if(Arr[j] > Arr[j + 1]) { //Cocokkan data 1 dengan data yang disebelahnya
Tmp = Arr[j]; //Tampung array lama
Arr[j] = Arr[j + 1]; //Ganti yang lama dengan array baru
Arr[j + 1] = Tmp; //Array baru ditukar dengan yang lama
}
}
}
//Tampilkan Hasil
printf("\nSetelah Pengurutan\n");
for(i = 0; i < n; i++) { //Perulangan untuk tampilan Array
printf("Elemen ke %i : %i\n", i + 1, Arr[i]);
}
getch(); //Tahan tampilan
}



tinggalin koment ya....boz......!!!
Read More »

0 Tutorial Mengunci Folder Tanpa Program di XP (buat nglindungin privasi)

12/23/2010 01:49:00 AM Under From Unknown
[0 Comment]
Tutorial Mengunci Folder Tanpa Program di XP (buat nglindungin privasi)

*Masuk Explorer/My Computer
*Pilih Tools-->Folder Options-->View
*Kemudian hilangkan tanda cek pada kotak use simpe file sharing (recommended)
*Pilih/Buat Folder yang ingin dikunci (contoh : New Folder)
*Kemudian klik kanan folder tersebut dan pilih tab security
*Kemudian mungkin anda pilih user yg lagi anda login dicom/laptop.. Mungkin admin ato normal user.. Beri tanda centang pada smua kotak dibawah deny..
*Sebelumnya hilangkan dahulu tab security dengan cara kembali mencentangkan tanda cek yg dihilangkan di simple sharing seperti di step 1
Read More »

0 Perhitungan IP Adress

12/23/2010 01:12:00 AM Under From Unknown
[0 Comment]
Jika anda ingin menjadi seorang Network Administrator salah satu dari 3 tiga syarat utamanya adalah memahami TCP/IP tidak hanya secara Konsep tetapi juga Desain dan Implementasinya.
Dalam tutorial ini saya ingin membagi pengertian yang saya pahami dalam menghitung IP Adress secara cepat.
Kita mulai ……
Mungkin anda sudah sering men-setting jaringan dengan protokol TCP/IP dan menggunakan IP Address 192.168.0.1, 192.168.0.2, 192.168.0.3, …dst dengan netmask (subnet) 255.255.255.0 . Namun pernahkah terpikir untuk menggunakan IP selain IP tersebut ? misalnya :
192.168.100.1 netmask 255.255.255.248 atau
192.168.50.16 netmask 255.255.255.240 …???
<span class="fullpost"> 
Teori Singkat & Umum

Untuk mempelajari IP diperlukan pengetahuan tentang Logika dan Sitem Bilangan Biner. Tentang bagaimana cara mengkonversi bilangan Biner ke dalam bilangan Decimal atau menjadi BIlangan HexaDecimal, silahkan baca tutorial Sistem Bilangan Logika [Not Finished Yet] yang juga saya tulis dalam bentuk ringkasan. IP Address yang akan kita pelajari ini adalah IPv.4 yang berisi angka 32 bit binner yang terbagi dalam 4×8 bit.
Contoh :
8 bit 8 bit 8 bit 8 bit
192.168.0.1 -> 1 1 0 0 0 0 0 0 . 1 0 1 0 1 0 0 0 . 0 0 0 0 0 0 0 0 .

0 0 0 0 0 0 0 1
192 . 168 . 0 . 1

Hal yang perlu dipahami dalam penggunaan IP Address secara umum adalah sebagai berikut :
Kelas IP

IP Address di bagi menjadi 5 kelas yakni A, B, C, D dan E. Dasar pertimbangan pembagian kelas ini adalah untuk memudahkan pendistribusian pendaftaran IP Address.
Kelas A

Kelas A ini diberikan untuk jaringan dengan jumlah host yang besar
Bit Pertama : 0 Net-ID : 8 bit Host-ID : 24 bit Range IP : 1.xxx.xxx.xxx - 126.xxx.xxx.xxx Jumlah IP : 16.777.214

Note : 0 dan 127 dicadangkan, 0.0.0.0 dan 127.0.0.0 biasanya dipakai untuk localhost.

Kelas B

Kelas B ini diberikan untuk jaringan dengan jumlah host yang besar
2 Bit Pertama : 10 Net-ID : 16 bit Host-ID : 16 bit Range IP : 128.xxx.xxx.xxx - 191.255.xxx.xxx Jumlah IP : 65.532

Kelas C
3 Bit Pertama : 110 Net-ID : 24 bit Host-ID : 16 bit Range IP : 192.xxx.xxx.xxx - 223.255.255.255 Jumlah IP : 254

Kelas D
4 Bit Pertama : 1110 Byte Inisial : 224 - 247Note : Kelas D ini digunakan untuk keperluan multicasting dan tidak mengenal adanya Net-ID dan Host-ID

Kelas E
4 Bit Pertama : 1111 Byte Inisial : 248 - 255Note : Kelas E ini digunakan untuk keperluan Eksperimental

-> Network ID (Net-ID)

Adalah IP address yang menunjukkan Nomor Jaringan (identitas segmen)
Contoh :
Sebuah segmen dengan IP range 192.168.0.0 - 192.168.0.255 netmask 255.255.255.0 maka Net-ID nya adalah 192.168.0.0.
Sebuah jaringan dengan IP range 192.168.5.16 - 192.168.5.31/28 maka Net-ID nya adalah 192.168.5.16Note : Net-ID adalah IP pertama dari sebuah segmen. Dalam implementasinya IP ini tidak dapat digunakan pada sebuah host.

-> IP Broadcast

Adalah IP address yang digunakan untuk broadcast. Dari conto di atas maka IP Broadcast nya adalah 192.168.0.255 .Note : IP Broadcast adalah IP terakhir dari sebuah segmen (kebalikan dari Net-ID). Dalam implementasinya IP ini juga tidak dapat digunakan pada sebuah host.

-> Subnet Mask (Netmask)

Adalah angka binner 32 bit yang digunakan untuk :
membedakan Net-ID dan Host-ID
menunjukkan letak suatu host, apakah berada di jaringan lokal atau jaringan luar
Kelas A : 11111111.00000000.00000000.00000000 = 255.0.0.0

Kelas B : 11111111.11111111.00000000.00000000 = 255.255.0.0

Kelas C : 11111111.11111111.11111111.00000000 = 255.255.255.0

Contoh :
sebuah segmen dengan IP range 192.168.0.0 - 192.168.0.255 maka Netmask nya adalah : 255.255.255.0 .
-> Prefix

Adalah penulisan singkat dari sebuah Netmask. Dari conto juga maka prefix nya adalah 24 maka menuliskan prefix-nya 192.168.0.0/24
-> Jumlah IP yang tersedia

Adalah jumlah IP address yang tersedia dalam sebuah segmen (blok). Dari conto di atas maka Jumlah IP yang tersedia sebanyak 256 (192.168.0.0 - 192.168.0.255)Note : Dalam implementasinya tidak semua IP yang tersedia dapat digunakan karena ada 2 IP yang akan digunakan sebagai Net-ID dan Broadcast..

-> Jumlah Host

Adalah jumlah dari IP address yang dapat dipakai dalam sebuah segmen. Dari conto di atas maka jumlah host-nya adalah 254 (192.168.0.1 - 192.168.0.254). IP 192.168.0.0 sebagai Net-ID dan 192.168.0.255 sebagai Broadcast-nya.Note : Jumlah Host = Jumlah IP yg tersedia - 2

-> IP Public

Adalah IP address yang dapat dikenali di jaringan internet.
Contoh :

202.95.144.4, 64.3.2.45, 4.2.2.1 dstNote : IP Public akan kita dapatkan jika kita berlangganan Leased Line.

-> IP Private

Adalah IP address yang hanya dapat dikenali di jaringan local (LAN).
Contoh :

192.168.1.1, 192.168.0.5, 192.168.10.200 dstNote : IP Private dapat kita gunakan semau kita untuk membangun LAN tanpa harus berlangganan Internet seperti Leased Line.

Memulai Perhitungan

Perhatikan kombinasi angka dibawah ini :

Cara membaca :

Kombinasi angka tersebut adalah untuk netmask 255.255.255.0 yang apabila di konversi ke Bilangan Biner adalah 11111111.11111111.11111111.00000000. Kita ambil 8 bit terakhir yaitu .00000000.
Apabila pada kolom pertama di beri nilai ‘1′ dan yg lainnya bernilai ‘0′ ( .10000000 ) maka
Jumlah IP yang kita miliki (tersedia) sebanyak 128 nomor
Netmask yang harus dipakai adalah 255.255.255.128
Kita dapat menuliskan IP tersebut 192.168.0.0/25 dengan 25 sebagai nilai prefix-nya.
Jumlah segmen yang terbentuk sebanyak 2 yaitu
192.168.0.0 - 192.168.0.127 -> sesuai dgn point 1. IP yang tersedia sebanyak 128 buah tiap segmen 192.168.0.128 - 192.168.0.255
Jumlah IP yang dapat dipakai untuk host sebanyak 126 setelah dikurangi dengan Net-ID dan Broadcast .Sekarang dapatkah Anda mencari seperti 5 point sebelumnya apabila 3 bit pertama di beri nilai ‘1′ ?
 


UNTUK REFERENSI NYA DNLUT AJA >>DISINI<<
Read More »

0 SINGLE LINKED LIST (SENARAI BERKAIT TUNGGAL)

12/23/2010 12:35:00 AM Under From Unknown
[0 Comment]
SINGLY LINKED LIST
                              (SENARAI BERKAIT TUNGGAL)

1. Tujuan Instruksional Umum
     a.  Mahasiswa       dapat    melakukan      perancangan      aplikasi    menggunakan        struktur
         Linked List (Senarai Berkait)
    b.   Mahasiswa mampu melakukan analisis pada algoritma Linked List yang dibuat
    c.   Mahasiswa   mampu   mengimplementasikan   algoritma  Linked   List   pada   sebuah
         aplikasi secara tepat dan efisien
2. Tujuan Instruksional Khusus
     a.  Mahasiswa dapat menjelaskan mengenai Linked List
    b.   Mahasiswa   dapat   membuat   dan   mendeklarasikan   Abstraksi   Tipe   Data  Linked
         List
    c.   Mahasiswa mampu menerapkan operasi Single Linked List Non Circular :
         Insert, update, dan delete
     d.  Mahasiswa mampu menerapkan operasi Single Linked List Circular : Insert,
         update, dan delete  SINGLY LINKED LIST
                              (SENARAI BERKAIT TUNGGAL)

1. Tujuan Instruksional Umum
     a.  Mahasiswa       dapat    melakukan      perancangan      aplikasi    menggunakan        struktur
         Linked List (Senarai Berkait)
    b.   Mahasiswa mampu melakukan analisis pada algoritma Linked List yang dibuat
    c.   Mahasiswa   mampu   mengimplementasikan   algoritma  Linked   List   pada   sebuah
         aplikasi secara tepat dan efisien
2. Tujuan Instruksional Khusus
     a.  Mahasiswa dapat menjelaskan mengenai Linked List
    b.   Mahasiswa   dapat   membuat   dan   mendeklarasikan   Abstraksi   Tipe   Data  Linked
         List
    c.   Mahasiswa mampu menerapkan operasi Single Linked List Non Circular :
         Insert, update, dan delete
     d.  Mahasiswa mampu menerapkan operasi Single Linked List Circular : Insert,
         update, dan delete



buat temen2, yang cari materi tentang linked circular, Ane punya nih...




>>DI SINI<< klik aja ....!!!
Read More »

0 Cara Membuat Virus Ganas Dengan Cepat

12/23/2010 12:17:00 AM Under From Unknown
[0 Comment]
Cara Membuat Virus Ganas Dengan Cepat

Begitu banyak virus yang beredar di komputer masyarakat tanpa ada yang tau siapa yang membuat virusnya. Hmm apakah untuk membuat virus itu sulit?? Jawabannya bisa iy n bisa gx tergantung orang sih. Namun kali ini saya akan memberikan rahasia terbesar dalam membuat virus dengan gampang. Jika anda mengikuti petunjuk maka anda dapat membuat virus sesuai dengan apa yang anda ingin kan, misalnya virus dengan nama anda sendiri dan efek yang anda inginkan sendiri. INGAT ARTIKEL INI CUMA UNTUK BELAJAR JIKA ANDA MENYALAHGUNAKAN ITU DI LUAR TANGGUNG JAWAB KAMI.

Untuk membuat virus ada beberapa cara, langsung aja di antaranya yaitu:

- Menulis virus dengan bahasa pemrograman (jika cara ini anda harus bisa memahami bahasa pemrograman seprty, VB, pascal, Phyton de el el dech.

- Membuat Virus Cepat dengan Generator

Kali ini saya akan memberikan tips “Cara Bikin Virus Ganas Dengan Cepat”, adapun caranya yaitu:

1. Anda harus melakukan download VIRUS GENERATOR yang programnya nanti akan saya kasih

2. Install program tersebut

3. Rancang dan Buatlah virus anda sendiri dengan mudah (pilihan yang terdapat di menu program pembuat virus sangatlah gampang dan saya anda dapat mempelajari nya sendiri)

Baek agan2 sudak tidak sabar lagi kan ingin membuat virus nya??? Ahahahaha bersabarlah karena sesaat lagi anda dapat melakukannya dengan mudah, HANYA DENGAN BEBERAPA KALI KLIK ANDA BISA MEMBUAT VIRUS BAHKAN KONON ANAK TK MUNGKIN JUGA BISA MEMBUAT VIRUS KALAU MEMBACA ARTIKEL SAYA INI ….HAUHAHAHAHAHAHA…..

Berikut adalah daftar alamat situs yang akan mengantar agan2 langsung untuk dapat mendownload program pembuat virus nya :

http://vx.netlux.org/vl.php

Kalau anda ingin mendownload program pembuat virusnya silahkan anda download sendiri dan tentukan sendiri jenisnya silahkan kunjungi situs ini www.vx.netlux.org/vl.php

SEKALI LAGI SAYA INGATKAN ARTIKEL INI CUMAN UNTUK BERBAGI N SHARING AKIBAT ATAU DAMPAK DARI ARTIKEL INI DILUAR TANGGUNG JAWAB KAMI karena yang namanya virus tetep aja berbahaya n ganas gan……….AHAHAHAHAHAHAH…
Read More »

Wednesday, December 22, 2010

0 free ware cuy...

12/22/2010 11:58:00 PM Under From Unknown
[0 Comment]
1. Smadav Rev 8._- adalah Antivirus Indonesia yang memfokuskan proteksi dan pembersihan tuntas pada virus-virus yang menyebarluas di Indonesia sehingga menjadi lebih baik dari Antivirus Impor. Saat ini Smadav 2010 sudah mengenali lebih dari 90% virus yang menyebarluas di Indonesia.

2. Netman- adalah Perangkat lunak free yang berguna bagi Anda untuk berkomputasi secara remote, dan Anda tidak perlu menginstalnya apabila Anda ingin menggunakannya. Netman begitu mudah dan aman digunakan.

Dengan Netman, Anda dapat mengendalikan PC rumah, kantor, ataupun PC lainnya yang dapat Anda akses dimana pun Anda berada dengan menggunakan koneksi internet.

3. JkDefrag 3.33 - Free disk defragment dan mengoptimalkan kemampuan untuk windows 2000/2003/XP/Vista/X64. Sangat otomatis dan mudah untuk digunakan, cepat, low overhead, dengan strategi optimal dan dapat menangani floppi dan USB disk/stick.

4. Boost Startup- Program kecil ini memiliki kemampuan dan didesain untuk meningkatkan kinerja sistem komputer, serta begitu mudah dalam penggunaannya.

Boost Startup memang diciptakan oleh pengembangnya untuk lebih mengoptimalkan kecepatan sistem komputer. Selain itu, program ini dapat digunakan dengan gratis dan tidak akan terlalu membebani komputer Anda, karena berukuran kecil.

5. Hotspot Shield- membuat semacam Virtual Privet Network (VPN) diantara perangkat mobile Anda dan internet gateway. Fungsi 'tunnel' ini adalah mencegah para snooper dan hacker melihat/mencuri e-mail, instant messages, info kartu kredit, atau apa pun yang Anda kirim melalui jaringan.

6. Defraggler - Untuk lebih memaksimalkan kinerja harddisk internal ataupun eksternal, Anda harus melakukan pembersihan sisa-sisa file yang tidak terpakai di dalam harddisk, yang dinamakan dengan defragment.

Defraggler merupakan salah satu tool defragment yang patut Anda miliki, karena memiliki kemampuan mendefrag yang lebih baik daripada tool defragment bawaan Windows yang terlalu lambat.

7. Not Just Browsing - merupakan bagian dari browser "generasi ketiga" dan secara khusus di desain untuk meningkatkan kemampuan/kegunaan dari konten yang terdapat pada jaringan internet (World Wide Web).

NJB juga dikembangkan untuk meningkatkan akses para pengguna ke jaringan internet, sehingga menjadikan kegiatan menjelajah internet semakin menarik dan mengasikkan.

8. BurnAware Free - Tool gratis sebagai alternatif terbaik untuk mem-burning data ataupun file Anda ke dalam sebuah media CD/DVD dengan cepat dan mudah.

BurnAware Free mendukung berbagai media CD berkapasitas 700MB sampai dengan media Blu-ray. Walaupun tool ini gratis, tapi BurnAware tidak kalah dengan berbagai perangkat lunak sejenis yang berbayar. Mudah dan cepat.


9.Super Converter - Gunakan SUPER CONVERTER, freeware tapi kualitasnya yahud bisa mengconvert segala macem format video.


10.FastStone Photo Resizer - FastStone Photo Resizer merupakan software untuk keperluan konversi gambar / resizer sehingga pengguna dapat melakukan convert, rename, resize, crop, rotate, merubah tampilan warna, menambahkan tulisan dan watermark gambar dalam kecepatan waktu dan mudah. Melakukan Drag dan Drop mouse dapat juga dilakukan.

11.Bitmeter II 3.5.7 - BitMeter 2 merupakan software bandwidth meter, software yang membuat anda untuk memvisualisasi monitor koneksi internet Anda dengan menampilkan sebuah scrolling graph yang menampilkan kecepatan upload dan download setiap saat.

12.Memory Washer - Memory washer adalah program yang biasa digunakan untuk membersihkan memory dan mempercepat akses komputer pada PC.

13.Instant Memory Cleaner - Apakah Anda merasakan komputer Anda mulai melambat tanpa alasan yang jelas? Salah satu masalah yang menyebabkan PC Anda melambat adalah RAM atau memori.Instant Memory Cleaner adalah perangkat lunak gratis yang tepat untuk mengatasi permasalahan yang menyangkut dengan memori. Dengan tool ini Anda dapat meningkatkan kecepatan memori.

14. Mobil Media Converter - perangkat lunak yang satu ini memiliki kemampuan dalam melakukan konversi file audio Anda, seperti MP3, WMA, atau WAV menjadi AMR (*.amr) ataupun kebalikannya (AMR ke MP3).

Selain itu, MMC juga dapat mengkonversi file WMV (kecuali WMV ver.9) atau MPEG video file Anda menjadi file berbentuk 3GPP (*.3gp) dan kebalikannya (3GP ke MPEG). Dan masih banyak lagi format file yang dapat dikonversi, antara lain WMA, OGG, WAV, AVI, WMV, FLV.

15. NetWorx -Tool yang mudah dan gratis dalam penggunaannya yang akan membantu Anda mengetahui dan mengevaluasi secara obyektif kapasitas bandwidth yang Anda gunakan pada saat Anda terhubung dengan jaringan.

NetWorx dapat membantu Anda mengidentifikasi sumber masalah yang kemungkinan terjadi pada jaringan dan memastikan Anda tidak melebihi kapasitas bandwidth yang disediakan oleh ISP, atau menelusuri aktivitas mencurigakan yang akan menyerang jaringan komputasi Anda dengan trojan atau pun serangan para hacker.

s'moga bermanfaat !!!
Read More »

0 Top 10 langkah untuk membuat Flashdisk kebal terhadap Virus

12/22/2010 11:34:00 PM Under From Unknown
[0 Comment]
Top 10 langkah untuk membuat Flashdisk kebal terhadap Virus[share] Top 10 langkah untuk membuat Flashdisk kebal terhadap Virus
1. Buat folder di flashdisk Anda, dan beri nama "autorun.inf"(tanpa tanda kutip).

2.Pergi ke baru folder yang baru Anda buat dan membuat notepad dokumen dalam folder. Dalam folder : klik kanan, pilih New> Text Document, dan memberikan nama yang sewenang-wenang untuk file yang baru saja dibuat

3.Setelah itu, buka KARAKTER MAP program, yang di START> ALL PROGRAM> ACCESORIES> SYSTEM TOOLS> KARAKTER MAP

4.Setelah Karakter MAP terbuka, pilih font dengan tag unicode seperti Arial Unicode atau Lucida Sans Unicode. Gulir ke bawah sampai Anda melihat karakter Jepang, Korea, Cina, atau karakter aneh.

5.Pilih 4 atau 5 karakter yang Anda inginkan, lalu klik copy.

6.Mengubah nama atau mengubah nama file teks yang telah Anda buat pada langkah 2 di atas. Klik kanan pada file, pilih rename, kemudian tekan [CTRL] + [V]. Anda akan melihat karakter seperti kotak pada nama file Anda. It's normal, jadi jangan khawatir tentang hal itu!

7.Mengubah atribut 's autorun.inf folder untuk super hidden.
Buka command prompt lalu ketik F: masuk ke drive flashdisk anda.
(Catatan: drive flashdisk sangat tergantung pada komputer Anda Dalam contoh, jika drive G: maka anda harus ketik G: pada command prompt.).

8.Setelah itu ketik "attrib + s + h autorun.inf"(tanpa tanda kutip) untuk membuatnya tersembunyi super.

9.Selesai!


10.T: Bagaimana flashdisk saya kebal terhadap virus?
J: Windows tidak dapat menerima 2 file yang memiliki nama yang sama (semua orang tahu itu). Yah, karena kita sudah memiliki autorun.inf di flashdisk, file lainnya tidak dapat menggunakan nama itu. Jadi virus tidak bisa menggunakan nama autorun.inf.
Q: Lol. Jika file tersebut tidak dapat digunakan, virus ini dapat menghapus file tersebut. Setelah itu, virus akan membuat autorun dengan versi sendiri.
J: Itulah sebabnya kami membuat sebuah file dengan karakter aneh. Sebagian besar virus masih mempertimbangkan unicode atau karakter khusus sebagai karakter Windows, meskipun itu karakter unicode. Sebagian besar virus masih tidak mendukung unicode. Dengan cara ini, flashdisk Anda akan aman. Good Luck!
Read More »