Jumat, 05 Juni 2009

Pengenalan Kepada Struktur Data Dan Algoritma

- Objektif

1. Menakrif maksud algoritma, struktur data dan penggunaannya.
2. Mengenal pasti fasa-fasa yang terdapat dalam
kitar hayat pembangunan aturcara.
3. Mengenalpasti isu-isu penting yang perlu
diambilkira untuk menghasilkan sebuah aturcara
yang baik.

- Pengenalan
1. Kajian Sains Komputer melibatkan 3 bidang asas:

* Matematik
* Sains
* Kejuruteraan


2. Seorang ahli Sains Komputer perlu :

- Mempunyai kepakaran utk membuat rumusan matematik dan melaksanakan
alasan secara matematik ketika menganalisa sesuatu masalah berkomputer.


- Memperolehi kefahaman mengenai metod ujikaji secara saintifik dan tahu cara-cara
sistematik utk memahami permasalahan berkomputer yg ingin diselesaikan,
mengumpul data dan menguji data aturcara.

Menginstal Linu’x Debian 4

Langkah Pertama:Masuklah ke synaptic package manager

Klik search, ketik wine lalu enter

Pilih libwine dan libwine gl lalu klik kanan dan klik mark for instalation dan klik apply

Masukkan cd debian 4 dan klik OK

Pilih wine,wine utils dan xwine lalu klik kanan dan klik mark for instalation,klik mark dan Klik apply

Masukkan cd debian binary 2 klik OK

Masukkan cd debian binary 4 klik OK

Masukkan cd debian binary 1 klik OK

Masukkan cd debian binary 5 klik OK

Langkah Kedua:

Pastikan komputer telah terinstall aplikasi wine

Masukkan cd Install Adobe Photoshop 7.0

Masuklah ke terminal dan login ke root

Masuk ke direktori media lalu masuk ke cdrom

Buka direktori Adobe Photshop 7.0

Ketikkan wine Setup.exe

Akan muncul kotak dialog untuk menginstall Adobe Photoshop 7.0

Masukkan product key

Setelah itu ikuti langkah-langkah dalam menginstall.

Klik Finish jika proses instalasi selesai.

Anda sudah berhasil menginstall program Adobe Photoshop pada linux.

Instalasi Linux Debian Menggunakan Expertgui

Debian Linux Installation With Expertgui

Langkah-langkahnya :

The steps are :

~ Ketikkan expertgui pada awal tampilan prompt, lalu tekan enter.

Write down expertgui on the first screen of prompt, press enter.

~ Tekan enter pada debian installer main menu.

Press enter in the debian installer main menu.

~ Pilih bahasa yang diinginkan, lalu tekan enter.

Choose language what you want, press enter.

~ Pilih area yang diinginkan, lalu tekan enter.

Choose area what you want, press enter.

~ Pada choose a locale, pilih “aa_DJ UTF-8”, tekan enter.

In the choose a locale, choose “aa_DJ UTF-8”, and press enter.

~ Pada choose other locales to be supported, pilih “aa_DJ UTF-8”, tekan enter.

In the choose other locales to be support, choose “aa_DJ UTF-8”, and press enter.

~ Pada select to keyboard layout, pilih Type of keyboard : PC-style (AT or PS2 connector) keyboard, tekan enter.

In the select to keyboard layout, choose type of keyboard : PC-style (AT or PS2 connector) keyboard, press enter.

~ Pada keymap to use pilih American English, tekan enter.

In the keymap to use choose American English, press enter.

~ Pada choose the next step in the install process, tekan enter.

In the choose the next step in the install process, press enter.

~ Pada detect and mount CD-ROM, tekan enter.

In the detect and mount CD-ROM, press enter.

~ Pilih semua modul pada menu, tekan enter.

Choose all modules in the menu, press enter.

~ Pada start PC card service, pilih yes, lalu enter.

In the start PC card service, choose yes, and press enter.

~ Pada PCMCIA resource range option, ketik debian, tekan enter.

In the PCMCIA resource range option, write down debian, press enter.

~ Tekan enter pada load installer components from CD.

Press enter in the load installer components from CD.

~ Pilih semua komponen dari CD, tekan enter.

Choose all components from CD, press enter.

~ Load installer components from CD.

~ Pada detect network hardware, tekan enter.

In the detect network hardware, press enter.

~ Pada PCMCIA resource range option, ketik debian.

In the PCMCIA resource range option, write down debian.

~ Tekan enter pada configure and start a PPPOE connection.

Press enter in the configure and start a PPPOE connection.

~ Tekan enter pada configure the network.

Press enter in the configure the network.

~ Pada auto configure network with DHCP, pilih yes, tekan enter.

In the auto configure network with DHCP, choose yes, press enter.

~ Ketik debian pada hostname, tekan enter.

Write down in the hostname, press enter.

~ Tekan enter pada continue installation remotely using SSH.

Press enter in the continue installation remotely using SSH.

~ Masukkan password yang diinginkan, contoh : ketik 123456, tekan enter.

Enter the password what you want, example : write down 123456, press enter.

~ Tekan enter pada choose a mirror of the debian archive.

Press enter in the choose a mirror of the debian archive.

~ Pada protocol for file downloads, pilih FTP, tekan enter.

In the protocol for file downloads, choose FTP, and press enter.

~ Kemudian pilih Ftp. Debian.org, tekan enter.

And then choose Ftp. Debian.org, press enter.

~ Pada detect disk, tekan enter.

In the detect disk, press enter.

~ Pada partition disk, tekan enter.

In the partition disk, press enter.

~ Pada partitioning method, pilih Guided-use entire, tekan enter.

In the partitioning method, choose Guided-use entire, press enter.

~ Pada select disk to partition, pilih IDE1 master (hda) – 8,5 Gb ST38421A, tekan enter.

In the select disk to partition, choose IDE1 master (had) – 8,5 Gb ST38421A, press enter.

~ Tekan enter pada partitioning scheme, pilih separate /home partition.

Press enter in the partition scheme, choose separate /home partition.

~ Sekarang kita membuat partisi baru dengan menghapus semua partisi.

Now we’ll makes new partition with remove all partitions.

~ Langkah-langkah partisi harddisk :

Hapus semua partisi

Buat partisi dengan skema

/root = 4 Gb, type : primary, locate : beginning, fs : ext3.

/home = 2 Gb, type : logical, locate : beginning, fs : ext3.

Swap area = 2 Gb, file system : swap area.

Pilih finish partitioning and write change to disk, tekan enter.

The steps for harddisk partition :

Remove all partitions

Create new partition with scheme

/root = 4 Gb, type : primary, locate : beginning, fs : ext3

/home = 2 Gb, type : logical, locate : beginning, fs : ext3

Swap area = 2 Gb, file system : swap area.

Choose finish partitioning and write change to disk, press enter.

~ Pada configure time zone, pilih eastern.

In the configure time zone, choose eastern.

~ Tekan enter pada configure the clock.

Press enter in the configure the clock.

~ Setup users and passwords :

Masukkan users root password

Masukkan nama untuk user

Masukkan nama untuk user account

Masukkan password untuk user

Setup users and passwords :

Enter password root user

Enter name for user

Enter name for user account

Enter password for user

~ Tekan enter pada install the base system.

Press enter in the install the base system.

~ Tekan enter pada configure the package manager.

Press enter in the configure the package manager.

~ Tekan enter pada select and install software.

Press enter in the select and install software.

~ Pada participate in the package usage survey, pilih yes, tekan enter.

In the participate in the package usage survey, choose yes, press enter.

~ Pada software to install, pilih desktop environment standard system, tekan enter.

In the software to install, choose desktop environment standard system, press enter.

~ Tekan enter pada install GRUB boot loader on a harddisk.

Press enter in the install GRUB boot loader on a harddisk.

~ Pada install the GRUB boot loader to the master boot record, pilih yes, tekan enter.

In the install the GRUB boot loader to the master boot record, choose yes, press enter.

~ Masukkan GRUB password.

Enter GRUB password.

~ Pada finish the installation, tekan enter.

In the finish the installation, press enter.

~ Instalasi sudah selesai.

The installation is finish.

.”Struktur Data:Kontruksi Dasar”

1. Runtutan
Runtutan terdiri dari satu atau lebih pernyataan, setiap pernyataan diakhiri oleh satu baris atau titik koma. Tiap pernyataan dibuat secara berurutan sesuai dengan urutannya. Setiap instruksi dilaksanakan setelah instruksi sebelumnya selesai dilaksanakan.

Misal pertukaran nilai A ke dalam nilai B dengan membutuhkan bantuan C:
Masukkan nilai A ke dalam C
Masukkan nilai B ke dalam A
Masukkan nilai C ke dalam B
2. Pemilihan
Pada beberapa hal kita terkadang dihadapkan pada suatu pilihan. Misal:
Jika saya tidur larut malam maka saya akan bangun kesiangan
Pernyataan di atas biasa diubah dalam notasi algoritmik demikian:
if kondisi then aksi
Bahasa Indonesia untuk if adalah jika, dan untuk then adalah maka. Dalam kehidupan sehari-hari dapat kita temui sebagai berikut:
if saya makan then saya kenyang
Jika pilihan aksi ada 2
if bil <= 100 then tulis bilangan lebih dari seratus else tulis kurang dari 100
Jika pilihan aksi lebih dari 2
if A < B then if A < C then tulis bilangan terbesar = A else tulis bilangan terbesar = C else if B < C then tulis bilangan terbesar = B else tulis bilangan terbesar = C
Penulisan ruang kosong (indentasi) di atas akan lebih mudah dibaca dibanding:
if A < B then if A < C then tulis bilangan terbesar = A else tulis bilangan terbesar = C else if B < C then tulis bilangan terbesar = B else tulis bilangan terbesar = C
bukan?
3. Pengulangan
Pernahkah anda dihukum oleh guru anda menulis kalimat berulang-ulang sampai satu lembar atau lebih? Capek bukan? Komputer mempunyai fungsi untuk melakukan pekerjaan berulang-ulang dan tak kenal lelah. Jika dalam pemrograman tentu penulisan secara berulang-ulang tidak akan efisien. Oleh karena itu digunakan beberapa fungsi.
repeat
ALGORITMA tulis kalimat 100 kali: repeat 100 times Tulis "Saya akan mengerjakan PR"
maka akan algoritmanya demikian:
repeat N times aksi
artinya aksi diulang sebanyak N kali.
for
for pencacah pengulangan dari 1 sampai N do aksi
artinya aksi dilakukan sebanyak hitungan cacah pengulanagn, yaitu dari 1 sampai N (sebanyak N kali). Pencacah tidak hanya dimulai dari angka 1, tapi dari sebarang nilai yang lain.
ALGORITMA: for i dari 1 sampai 100 do writeln "Saya tidak akan mengulanginya lagi
i adalah pencacah pengulangan yang mencacah pengulangan dari 1 sampai 100. Untuk mengenal notasi ini akan saya bahas selanjutnya.
repeat-until
Artinya pengulangan aksi yang dilakukan hingga persyaratan terpenuhi. Jadi penulisan kalimat 100 kali dengan notasi repeat-until adalah:
repeat aksi until kondisi
Contoh
ALGORITMA tulis kalimat 100 kali: repeat writeln "Saya berjanji tidak akan mengulangi lagi" until sudah 100 kali.
while
while artinya selagi, do artinya lakukan
while kondisi do aksi
Contoh:
while i <= do jumlah = jumlah + i i = i + 1

"Tipe data string Dalam Pemrograman"

.
Bahasa Pascal
Dalam bahasa Pascal, tipe data string dituliskan sebagai string. Pada kompilator Pascal lama, string terpanjang yang dapat dibuat terdiri dari 255 karakter. Hal ini terjadi karena Pascal menggunakan 1 byte data untuk menyimpan panjang efektif string.
Contoh kode Pascal yang menggunakan tipe data string:
program str;
var s: string[100]; //jika panjang maksimum tidak dimasukkan, kompilator akan menganggapnya 255
begin
s:= 'Hello world';
writeln(s);
end.
Pada kompilator Pascal yang lebih baru dikenal pula tipe data ANSI-string yang dapat menyimpan karakter lebih banyak.
Bahasa C
Dalam bahasa C tidak ada tipe data khusus untuk menyimpan string. String biasanya disimpan sebagai larik dari karakter-karakter. Berbeda dengan bahasa Pascal, string pada bahasa C merupakan sebuah null-terminated string, sehingga kapasitasnya hanya dibatasi oleh kapasitas memori komputer. Seperti pada tipe data larik pada bahasa C, pengguna dapat memberikan batas maksimum karakter yang dapat ditampung.
Contoh kode C yang menggunakan tipe data string:
#include
int main(){
char s[100]; /* membuat string dengan panjang maksimum 99 karakter, karena karakter terakhir harus null */
s = "Hello world";
printf("%s\n", s);
}

Bahasa C++
Bahasa C++ merupakan turunan dari bahasa C sehingga representasi string sebagai larik karakter masih berlaku. Namun bahasa C++ juga menyediakan tipe data string yang terdapat dalam C++ Standard Template Library (STL).
Contoh kode C++ yang menggunakan tipe string pada STL:
#include
#include
using namespace std;
int main(){
string s; //panjang maksimum tidak perlu didefinisikan
s = "Hello world";
cout<<

"Array"

Array dimensi satu
Array dimensi satu disebut juga dengan vector, adalah sebuah array yang terdiri dari sejumlah elemen data, dan poisis setiap elemen ditentukan oleh sebuah subskrib.
Setiap array harus dideklarasikan terlebih dahulu, hal ini digunakan untuk mengalokasikan ruang memori yang akan digunakan dan juga menentukan tipe data dari elemen array.
Bentuk umum deklarasi array dimensi satu adl :
DIM namavar ({cacah | awal to akhir}) [As tipe]
D."Tipe Data Perulangan Dan Percabangan"

1. Jenis-jenis tipe data:

Perbedaan secara umum:
• Character menyatakan sebuah karakter ( bisa berupa huruf seperti A atau a, digit seperti 0 atau 7, atau simbol seperti * dan &
• Integer menyatakan bilangan bulat dengan range seperti yang telah disebutkan diatas
• Floating point Singel precision menyatakan bilangan titik-titik mengambang (bilangan real) dengan ketelitian rendah
• Floating point Double precicion menyatakan bilangan titik-titik mengambang (bilangan real) dengan ketelitian tinggi
2. Kegunaan dan fungsi
• printf() adalah instruksi untuk menjalankan suatu fungsi-print yang berfungsi untuk menampilkan informasi kelayar. Fungsi printnya sendiri sudah disiapkan oleh compiler C, dalam sebuah file yang bernama stdio.h yang harus kita tuliskan #include pada bagian depan dari program.
Contoh Pengunaan:
#include
void main()
{
printf(“Jakarta”);
printf(“Surabaya”);
}
Tercetak : JakartaSurabaya
• scanf() adalah instruksi untuk mengimputkan data melalui keyboard pada program C.
Contoh Penggunaan
#include
void main()
{ char A;
printf(“Nama anda = ”);
scanf(“%c”, &A);
}
Tercetak : Nama anda = Abdullah
• puts() adalah instruksi untuk menjalankan suatu fungsi cetak yang menampilkan string. Dengan sendirinya fungsi ini menambahkan karakter newline (pindah baris).
Contoh peggunaan:
#include
void main()
{ char A;
Puts(“Nama anda = ”);
printf(“Abu”);
}
Tercetak : Nama anda = Abu


3. Penggunaan serta perbedaan dari pernyataan berkut:
• if
Kegunaan dari if adalah untuk melakukan seleksi atau pilihan dari 2 atau lebih kemungkinan yang ada dari beberapa statement. Statement if terdiri dari 2 atau lebih pernyataan. Pernyataan if bersifat terbatas, apabila pilihan dari statement tidak sesuai maka program akan mati.
Contoh Penggunaan:
int a=5, b=7;
if (a
{
printf(“bali”);
}
Tercetak : bali
• if else
kegunaan dari if else sama dengan pernyataan if hanya saja pilihan bersifat bebas, apabila pilihan yang input tidak sesuai dengan statement pilihan yang diberikan maka program akan tetap berjalan dan membaca statement setelah pernyataan else.
Contoh Penggunaan:
int a=5, b=7;
if (a
{
printf(“bali”);
}
else
{
printf(“jawa”);
}
Pernyataan diatas bernilai benar karena abali
• switch
pernyataan switch sama saja fungsinya dengan fungsi if hanya saja disini pernyataan switch berfungsi sebagai saklar yang akan melanjutkan proses jika statement bernilai benar, untuk setiap statement yang diberikan mestilah bernilai benar jika tidak maka statement tidak diproses dan akan digantikan oleh pernyataan default (sama dengan pernyataan else pada if). Pernyataan switch dapat berhenti otomatis jika diberi pernyataan break setelah pernyataan case.
Contoh Penggunaan:
#include
main()
{ int N;
printf(”N = “);
scanf(”%i”, &N);
switch(N)
{
case 1:
printf(”Baik”);
break;
case 2:
printf(”Jelek”);
break;
default:
printf(”Nilai salah”);
}
}
Jika user mengimputkan 1 maka akan tercetak Baik, jika user mengimputkan 2 maka akan tecetak Jelek, selai itu akan tercetak Nilai salah
4. Perbedaan dari pernyataan berkut:
• while dan for
Dalam bahasa java, C, C++, cara kerja dan karakteristik instruksi for() dan while() adalah sama. Yang membedakan for dan while hanyalah pada cara penulisannya saja. Fungsinya adalah untuk mebuat loop yaitu sebuah blok instruksi yang dilakukan secara berulang-ulang.
Contoh perbedaan penulisannya :
#include —>(FOR)
void main()
{ int I;
for (I=1; I {printf(“\n%i”,I);

."Tipe Data Struc/pemrograman Bahasa C"

Struct adalah tipe data yang dapat melakukan penyimpanan beberapa data yang saling terkait (seperti Nama, NRP, Alamat), sebagai suatu kesatuan, sehingga data-data tersebut seakan-akan menjadi suatu data tunggal. Pembuatan tipe data baru dalam C dilakukan dengan menggunakan kata kunci struct, yang merupakan kependekan dari structure (struktur).
Syntax :
Struct []{
[];
.
.
} [];
Contoh :
typedef struct
{
int NIP ;
char nama[30]
} pegawai_t;
Perbedaan dengan Tipe data lain :
Tipe data yang lain hanya terdiri dari 1 element, sehingga hanya dapat menyimpan sebuah nilai atau sebuah string saja, sedangkan tipe data struct dapat menyimpan beberapa elemen, dengan berbagai macam tipe seperti int, char, long, dll.
Operator titik digunakan sebagai pemisah antara variabel struktur dengan elemennya, penulisan ini sebaiknya tidak dipisahkan oleh spasi. Operator ini berfungsi untuk mengakses suatu element dari variabel struktur.
Operator panah digunakan untuk pengaksesan operasi pointer, atau menggunakan operator bintang (’*’), untuk pengaksesan element-element suatu struktur yang berupa pointer.
Contoh :
typedef struct
{
int NIP ;
char nama[30]
} pegawai_t, *peg_t;
Pengaksesan dengan operator titik dan panah:
- p Pegawai_t.NIP
- p Pegawai_t.nama
- ( (*peg_t).NIP == peg_t -> NIP

Tipe data kernel internal"

Ketika membuat program yang portabel, perlu diperhatikan benar jumlah byte dari variabel yang digunakan di dalam program. Berbagai prosesor mempunyai jumlah byte berbeda untuk tipe data int dan long. Ada juga perbedaan cara menentukan apakah variabel signed atau unsigned. Jadi kalau program yang dibuat harus menggunakan jumlah bit tertentu, dan harus tegas signed atau unsigned, maka Anda harus menggunakan tipe data yang sudah built-in. Typedefs berikut ini dapat dipakai di sembarang tempat dalam program kernel dan didefinisikan dalam berkas header linux/types.h.
u8 unsigned byte (8 bit)
u16 unsigned word (16 bit)
u32 unsigned 32-bit
u64 unsigned 64-bit

s8 signed byte (8 bit)
s16 signed word (16 bit)
s32 signed 32-bit
s64 signed 64-bit

Sebagai contoh, driver i2c mempunyai beberapa fungsi yang digunakan untuk mengirim dan menerima data melalui bus i2c:
s32 i2c_smbus_write_byte(struct i2c_client *client, u8 value);
s32 i2c_smbus_read_byte_data(struct i2c_client *client,
u8 command);
s32 i2c_smbus_write_byte_data(struct i2c_client *client,
u8 command, u8 value);
Semua fungsi di atas mempunyai output nilai 32 bit signed dan mempunyai input nilai 8 bit unsigned untuk semua parameternya. Dengan menggunakan tipe data seperti ini, program di atas portabel untuk semua prosesor.
Jika ingin agar variabel dapat diakses melalui program di wilayah user (user-space), maka harus digunakan tipe data exportabel di bawah ini. Contoh tipe data ini terdapat dalam struktur data yang di-passing saat memanggil perintah ioctl(). Tipe data ini didefinisikan di berkas header linux/types.h.
__u8 unsigned byte (8 bit)
__u16 unsigned word (16 bit)
__u32 unsigned 32-bit
__u64 unsigned 64-bit

__s8 signed byte (8 bit)
__s16 signed word (16 bit)
__s32 signed 32-bit
__s64 signed 64-bit

Sebagai contoh, berkas header usbdevice_fs.h mempunyai beberapa struktur data untuk digunakan berkomunikasi dengan piranti USB (USB device) melalui program di wilayah user (user space). Berikut adalah definisi ioctl yang digunakan mengirim pesan kontrol USB ke piranti:
struct usbdevfs_ctrltransfer {
__u8 requesttype;
__u8 request;
__u16 value;
__u16 index;
__u16 length;
__u32 timeout; /* in milliseconds */
void *data;
};
#define USBDEVFS_CONTROL_IOWR('U', 0,
# struct usbdevfs_ctrltransfer)
Pada mesin 64-bit, ada satu hal yang sering menimbulkan problem yaitu bahwa jumlah byte pointer tidak sama dengan jumlah byte unsigned integer. Jumlah byte pointer sama dengan unsigned long seperti terlihat pada get_zeroed_page():
extern unsigned long FASTCALL
(get_zeroed_page(unsigned int gfp_mask))

Fungsi get_zeroed_page() membuat halaman memori kosong (free memory) yang isinya sudah dinolkan semua. Fungsi ini mempunyai output unsigned long yang harus diubah (typecast) ke tipe data lain yang sesuai. Potongan program drivers/char/serial.c dalam fungsi rs_open() berikut ini memperlihatkan caranya (catatan: kode ini dari kernel 2.4.x).
static unsigned char *tmp_buf;
unsigned long page;

if (!tmp_buf) {
page = get_zeroed_page(GFP_KERNEL);
if (!page)
return -ENOMEM;
if (tmp_buf)
free_page(page);
else
tmp_buf = (unsigned char *)page;
}
Terdapat beberapa tipe data kernel yang dapat digunakan sebagai pengganti tipe data unsigned long, misalnya pid_t, key_t, gid_t, size_t, ssize_t, ptrdiff_t, time_t, clock_t, dan caddr_t. Gunakan tipe data ini untuk menghindari permasalahan portabilitas.

"Contoh Program Pada Struktur Data"

Program untuk menampilkan hasil ujian mahasiswa
Type
Rec : record
stb : string [8]; ‘[…] = panjang karakter’
nama : string [30];
jurusan : string [15];
nilai : string [3];
End;
Var
Mhs : array [1..5] of rec;
Begin
Clrscr;
For i := 1 To 5 Do Begin
Writeln(‘Data ke - ’,i);
Writeln(‘Stambuk :’); readln(mhs[i].stb);
Writeln(‘Nama :’); readln(mhs[i].nama);
Writeln(‘Jurusan :’); readln(mhs[i].jurusan);
Writeln(‘Nilai :’); readln(mhs[i].nilai);
Clrscr;
End;
Writeln(‘Data Stambuk Nama Jurusan Nilai’);
Writeln(‘--------------------------------------------------------------------’);

For i := 1 To 5 Do
Writeln(i,’ ‘,mhs[i].stb,’ ‘,mhs[i].nama,’ ‘,mhs[i].jurusan,’ ‘,mhs[i].nilai);
Writeln(‘-----------------------------------------------------------------------------’);
Readkey;
End.

"Jenis Struktur Data"

1.Struktur Data Sederhana
1. Array (Larik)
Larik adalah struktur data statik yang menyimpan sekumpulan elemen yang bertipe sama. Setiap elemen diakses langsung melalui indeksnya. Indeks larik harus tipe data yang menyatakan keterurutan misalnya integer atau karakter. Banyaknya elemen larik harus sudah diketahui sebelum program dieksekusi. Tipe elemen larik dapat berupa tipe sederhana, tipe terstruktur, atau tipe larik lain. Nama lain array adalah Larik, tabel, atau vektor
2. Record (Catatan)
ADT adalah definisi tipe dan sekumpulan primitif (operasi dasar) terhadap tipe tersebut. Tipe diterjemahkan menjadi tipe terdefinisi dalam bahasa pemrograman yang bersangkutan.
2.Struktur Data Majemuk
3. Linier
1.Stack (Tumpukan)
Stack (tumpukan) adalah list linier yang dikenali elemen puncaknya (top), aturan penyisipan dan penghapusan elemennya tertentu (penyisipan selalu dilakukan "di atas" (top), penghapusan selalu dilakukan pada top). Karena aturan penyisipan dan penghapusan semacam itu, top adalah satu-satunya alamat tempat terjadi operasi. Elemen yang ditambahkan paling akhir akan menjadi elemen yang akan dihapus. Dikatakan bahwa elemen stack akan tersusun secara LIFO (Last In First Out).
2.Queue (Antrian)
Queue (antrian) adalah list linier yang dikenali elemen pertama (head) dan elemen terakhirnya (tail); Aturan penyisipan dan penghapusan elemennya disefinisikan sebagai penyisipan selalu dilakukan setelah elemen terakhir, penghapusan selalu dilakukan pada elemen pertama; Satu elemen dengan elemen lain dapat diakses melalui informasi next.
3.List dan Multi-List (Daftar)
List linier adalah sekumpulan elemen bertipe sama, yang mempunyai keterurutan tertentu, yang setiap elemennya terdiri dari 2 bagian. sebuah list linier dikenali dengan (1) elemen pertamanya, biasanya melalui alamat elemen pertama yang disebut (first); (2) Alamat elemen berikutnya (suksesor), jika kita mengetahui alamat sebuah elemen, yang dapat diakses melalui field next; (3) Setiap elemen mempunyai alamat, yaitu tempat elemen disimpan dapat diacu. Untuk mengacu sebuah elemen, alamat harus terdefinisi. Dengan alamat tersebut informasi yang tersimpan pada elemen list dapat diakses; (4) Elemen terakhirnya.
4.Non-Linier
1.Binary Tree (Pohon Biner)
Sebuah pohon biner (binary tree) adalah himpunan terbatas yang mungkin kosong atau terdiri dari sebuah simpul yang disebut sebagai akar dan dua buah himpunan lain yang disjoint yang merupakan pohon biner yang disebut sebagai sub pohon kiri (left) dan sub pohon kanan (right) dari pohon biner tersebut. Pohon biner merupakan tipe yang sangat penting dari struktur data dan banyak dijumpai dalam berbagai terapan. Karakteristik yang dimiliki oleh pohon biner adalah bahwa setiap simpul paling banyak hanya memiliki dua buah anak, dan mungkin tidak punya anak. Istilah-istilah yang digunakan sama dengan istilah pada pohon secara umum.
2.Graph (Graf)
Graph merupakan struktur data yang paling umum. Jika struktur linier memungkinkan pendefinisian keterhubungan sekuensial antara entitas data, struktur data tree memungkinkan pendefinisian keterhubungan hirarkis, maka struktur graph memungkinkan pendefinisian keterhubungan tak terbatas antara entitas data. Banyak entitas-entitas data dalam masalah-masalah nyata secara alamiah memiliki keterhubungan langsung (adjacency) secara tak terbatas demikian. Contoh: informasi topologi dan jarak antar kota-kota di pulau Jawa. Dalam masalah ini kota X bisa berhubungan langsung dengan hanya satu atau lima kota lainnya. Untuk memeriksa keterhubungan dan jarak tidak langsung antara dua kota dapat diperoleh berdasarkan data keterhubungan-keterhubungan langsung dari kota-kota lainnya yang memperantarainya. Representasi data dengan struktur data linier ataupun hirarkis pada masalah ini masih bisa digunakan namun akan membutuhkan pencarian-pencarian yang kurang efisien. Struktur data graph secara eksplisit menyatakan keterhubungan ini sehingga pencariannya langsung (straightforward) dilakukan pada strukturnya sendiri.

"Kegunaan Struktur Data"

Struktur data digunakan untuk meningkatkan efisiensi penggunaan memori pada saat program komputer sedang bekerja. Penggunaan struktur data yang tepat pada pemrograman dapat membuat algoritma menjadi lebih mudah, kemudahan ini membuat program lebih efisien dan sederhana.
Meningkatkan efisiensi merupakan tujuan utama pengaplikasian struktur data. Dengan struktur data, proses reservasi memori yang tidak perlu akan diminimalisasi. Selain itu struktur data juga menjamin kemudahan pemahaman algoritma. Sehingga untuk menyelesaikan permasalahan seperti perkalian matriks, visualisasi matriks dan tabel, akan menjadi lebih mudah dipahami.

Pengertian Struktur Data

Dalam istilah ilmu komputer, sebuah struktur data adalah cara penyimpanan, penyusunan dan pengaturan data di dalam media penyimpanan komputer sehingga data tersebut dapat digunakan secara efisien.
Dalam teknik pemrograman, struktur data berarti tata letak data yang berisi kolom-kolom data, baik itu kolom yang tampak oleh pengguna (user) atau pun kolom yang hanya digunakan untuk keperluan pemrograman yang tidak tampak oleh pengguna. Setiap baris dari kumpulan kolom-kolom tersebut dinamakan catatan (record). Lebar kolom untuk data dapat berubah dan bervariasi. Ada kolom yang lebarnya berubah secara dinamis sesuai masukan dari pengguna, dan juga ada kolom yang lebarnya tetap. Dengan sifatnya ini, sebuah struktur data dapat diterapkan untuk pengolahan database (misalnya untuk keperluan data keuangan) atau untuk pengolah kata (word processor) yang kolomnya berubah secara dinamis. Contoh struktur data dapat dilihat pada berkas-berkas lembar-sebar (spreadsheet), pangkal-data (database), pengolahan kata, citra yang dipampat (dikompres), juga pemampatan berkas dengan teknik tertentu yang memanfaatkan struktur data.

Bagaimana membuat blog Anda terkenal?

Sebentar…memang catatan saya di sini sudah terkenal? Sama sekali tidak terkenal. Saya mencoba membayangkan metode apa saja yang bisa dilakukan untuk membuat blog saya atau milik Anda menjadi “terkenal”. Banyak buku atau artikel lepas atau obrolan yang sudah muncul tentang hal ini. Tapi tidak salah juga jika saya membayangkan tentang metode-metode itu agar blog saya ini menjadi “terkenal”. Kata Tamtowi Yahya di acara Empat Mata pada sebuah episodenya mengatakan “menjadi terkenal itu enak”. Masak sich? Belum pernah merasakan soalnya.

By the way, berikut beberapa metode yang ada di benak saya tentang bagaimana membuat agar blog kita dapat dikenal masyarakat luas.



1. Pilih layanan penyedia blog yang sudah terkenal. Dari yang saya tahu dan yang saya gunakan, Blogger.com menjadi pilihan saya pertama, lalu WordPress.com merupakan pilihan kedua. Mengapa memilih ini? Karena bagi saya keduanya sudah memiliki komunitas pemakai yang sangat besar.

2. Tentukan topik atau perihal apa yang hendak jadi fokus pada blog kita. Menurut saya, konsep diferensiasi mungkin dapat diterapkan di sini agar blog kita memiliki keunikan tersendiri daripada yang lain. Dalam pemilihan topik ini tentu saja harus sesuai dengan selera atau hobi kita. Saya sendiri karena suka di TI, ya isinya berbau itu semua.

3. Tidak dapat dipungkiri, tampilan blog kita dapat menjadi salah satu daya tarik, setidaknya dapat menarik perhatian pengunjung yang mungkin tanpa sengaja mengunjunginya karena topik tertentu. Jadi, cobalah memilih theme atau template blog yang sekiranya disukai banyak orang.

4. Buatlah halaman tentang diri Anda sesingkat dan sejelas mungkin, mungkin dapat dibubuhi foto “mungil” Anda.

5. Lakukan update berita/tulisan serutin mungkin pada blog Anda. Terus terang untuk menjaga poin ini kita butuh untuk konsisten dan tentu saja ide dan waktu yang mungkin bisa lama ataupun singkat, tergantung pada mood kita.

6. Promosikan blog Anda dengan cara yang paling sederhana:

- Buatlah account di beberapa web site yang menyediakan layanan social networking, seperti di Facebook.com, LinkedIn.com, Friendster.com, Multiply.com. Setelah Anda memiliki account di layanan social networking tersebut, cantumkan link public profile Anda di masing-masing layanan tersebut pada blog Anda.
- Tambahkan tautan atau bookmark dari blog teman Anda pada halaman blog Anda. Pada WordPress.com telah menggunakan XFN untuk mendefinisikan hubungan/relasi antara Anda dengan setiap bookmark yang Anda buat. Hal ini mungkin akan sangat membantu WordPress.com untuk mencoba menggambarkan relasi social networking antara Anda dengan teman-teman Anda
- Jika Anda pengguna Google, Anda dapat menggunakan layanan Google Reader untuk menampilkan RSS feed yang Anda share pada blog Anda (seperti yang saya tampilkan di budsus.blogspot.com). Komponen ini bisa menjadi daya tarik pengunjung yang mungkin secara kebetulan ada berita menarik yang ditampilkan di sana. Setidaknya blog kita dapat memberikan tambahan manfaat bagi para pengunjung kita.
- Daftarkan blog Anda pada blog search engine terbesar, yaitu technorati.com.
- Undang teman-teman Anda untuk berkunjung ke blog Anda. Untuk melakukan ini banyak cara yang dapat dilakukan, salah satunya adalah mulai dari komunitas di mana Anda terlibat di dalamnya.
- Jika Anda tertarik, Anda dapat menggunakan layanan gratis dari Google untuk menganalisis aktifitas kunjungan terhadap blog kita. Silahkan kunjungi Google Analytic dan ikuti petunjuk pemakaiannya.



Poin-poin itulah yang ada di benak saya untuk menjadikan blog kita dapat dikenal banyak orang di dunia “maya”. Kehadiran Web 2.0 tidak dapat kita hindari lagi, sehingga kita juga harus ikut terjun di dalamnya jika tidak ingin ditinggal oleh yang lain.

Pengantar Struktur data

Data bagi manusia mempunyai makna segala sesuatu yang dapat diterima indera manusia dari rangsangan-rangsangan yang ada disekitarnya, baik secara tersurat ataupun tersirat. Sedangkan untuk dunia komputer kata "data" mengandung pengertian segala sesuatu yang bisa dikodekan, disimbolkan, dilambangkan dengan kode-kode, simbol-simbol, atau lambang-lambang yang telah tersedia disetiap komputer.

Struktur sendiri dapat diartikan sebagai susunan bentuk, pola, atau bangunan. Sehingga, struktur data bermakna sebagai suatu susunan simbol-simbol yang diorganisasikan dan dioperasikan sesuai dengan definisi yang diberikan terhadapnya di komputer. Dengan mempelajari struktur data, logika Anda akan terlatih untuk memecahkan suatu masalah dengan pengaturan langkah yang tepat dan sistematis. Terlebih bagi seorang programmer, dengan mempelajari struktur data akan membantu logika pembuatan program-program.

Apa yG bwt Email tuwh Unik?

Komunikasi elektronik, karena kecepatan dan kemampuan penyebarannya, secara hakiki berbeda dari komunikasi cetak. Karena waktu untuk berkomunikasi balik dapat cepat sekali, email lebih bersifat percakapan dibanding media cetak tradisional.

Dalam naskah cetak, seluruh tulisan harus jelas dan tidak boleh bermakna ganda karena mungkin pembaca tidak berkesempatan mengajukan pertanyaan meminta kejelasan. Lewat email, penerima bisa segera bertanya balik. Karenanya, seperti percakapan, email cenderung lebih santai dan acak-acakan daripada komunikasi kertas. (Ini bukan berarti selalu jelek. Untuk apa memoles kata dan kalimat dalam pesan email selama berjam-jam, memastikan ejaan kita sempurna, kata yang dipilih tepat, dan tata bahasa tak bercela, kalau tujuan pesan tersebut untuk memberi tahu rekan kerja bahwa kita siap makan siang.)

Tapi dalam email, koresponden kita tidak memperoleh petunjuk status yang umum seperti pakaian, gaya berbicara, atau dialek, sehingga mereka mungkin mengambil mengambil asumsi berdasarkan nama, alamat email, dan terutama kemahiran berbahasa. Karenanya kita perlu berhati-hati, kapan boleh tidak rapi dan kapan harus teliti.

Emosi jauh lebih sulit diungkapkan lewat email dibanding lewat percakapan langsung atau bahkan lewat percakapan telepon. Dalam email tidak ada intonasi, isyarat, atau kesamaan tempat. Orang lain kadang tidak tahu apakah kita sedang serius atau bercanda, sedang senang atau sedih, sedang kecewa atau bahagia. Sarkasme, misalnya, terutama berbahaya jika dipraktikkan di email.

Perbedaan lain email dengan media konvensional adalah, apa yang ditulis oleh seseorang hasilnya dapat tampil berbeda saat dilihat orang lain. Pita suara menghasilkan bunyi yang didengar baik oleh diri sendiri maupun pendengar. Surat cinta ditulis di kertas yang akan dilihat oleh sang kekasih. Tapi dalam hal email, perangkat keras dan lunak yang dipakai untuk menulis, mengirim, menyimpan, men-download dan membaca dapat berbeda jauh dari yang digunakan orang lain. Aspek visual pesan email dapat berubah setelah pesan tersebut tiba di layar monitor orang lain.

Jadi komposisi email mestinya berbeda dari tulisan cetak atau naskah pidato. Dibuatnya tulisan ini adalah untuk menunjukkan bagaimana menyesuaikan pesan dalam email.

Tips Merawat Flash Disk

1. Jauhkan Dari Medan Magnet Kuat
Barang-barang elektronik seperti tv dan handphone sangat tidak baik untuk flash disk. Untuk itu jangan pernah menyimpannya di dekat barang-barang sejenis yang memiliki kekuatan magnet besar. Terkadang kita sering lupa jika meletakkan flash disk dan hand phone di tempat sama dalam tas. Nah mulai saat ini, kalau pingin flash disk kamu berumur panjang, jangan lagi menyimpannya di tempat sama ya?!

2. Jangan Terkena Air
Meski ada beberapa merk yang mengklaim waterproof, menjauhkan flash disk dari sentuhan air tetap saja menjadi langkah yang paling aman. Daripada data kamu hilang, mendingan tidak ambil resiko kan?

3. Virus Scan
Saat Pengambilan data atau pemindahan dari dari pc ke flash disk, sangat mungkin bukan hanya data yang ikut berpindah tapi juga virus-virus yang terdapat dalam komputer. Apalagi kalau kita mengambil dan menyimpan data dari internet. Waduh flash disk kamu bisa dipenuhi virus-virus pengganggu. Makanya, jangan lupa untuk melakukan ritual scan virus secara berkala dengan software anti virus yang tersedia.

4. Proses Eject atau Stop
Selalu melakukan proses eject atau stop sebelum mencabut flash disk dari port usb. Selain bisa menjadikan flash disk rusak, tidak melakukan proses eject atau stop juga dapat mempengaruhi file-file data yang kamu simpan di dalamnya lho.

5. Jauhkan Dari Tempat Panas
Semua barang elektronik tak terkecuali flash disk sangat rentan dengan yang namanya panas. Apalagi terkena sinar matahari langsung. Jadi usahakan tidak menyimpannya ditempat yang panas dan terkena sinar matahari langsung. Misalnya seperti meninggalkan flash disk di mobil.

6. Hindari Benturan Keras
Coba rasain kalau kamu jatuh dari lantai 12, kamu bisa jadi harus masuk rumah sakit atau bahkan masuk ke rumah masa depan. Begitu juga dengan flash disk. Jadi jagalah flash disk kamu baik-baik dari benturan keras ya.

7. Tutuplah selalu
Udara dan lingkungan kita penuh dengan debu dan kotoran. Jika socket flash disk kita kotor maka dapat mengakibatkan proses baca tulis sering gagal. Makanya selalu tutup biar nggak kotor, jangan malah diilangin tutupnya!

8. Minimalisir proses hapus-tulis
Sama seperti kita, flash disk juga memiliki usia lho. Artinya suatu saat flash disk kita bisa mati dan tidak bisa digunakan lagi. Usia flash disk berbeda-beda, tergantung kualitas dan merk dari flash disk itu sendiri. Biasanya usia flash disk antara 10.000-100.000 kali proses hapus tulis. Jadi usahakan untuk meminimalisir proses tersebut dan juga jangan mengedit langsung dari flash disk.