Minggu, 22 Januari 2012

B. pemograman

BAB I. PENDAHULUAN
A.    LATAR BELAKANG
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.
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.    Rumusan Masalah
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.
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.
C.    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)
Jika diperhatikan ada perintah \n pada akhir “kalimat” Hello, World!. Apa itu? ”\n” adalah perintah dalam banyak bahasa pemrograman sebagai baris baru (new line).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. 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.




D.    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.
E.    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...”;
F.    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:””<
}

G.    BORLAND C++
Dibandingkan compiler C++ yang lain, Borland C++ memiliki keunggulan terutama dalam hal kecepatan dan efisiensi kompilasi. Disamping itu, Borland C++ mendukung beberapa system operasi yaitu DOS, Windows 16bit (Window 3.0) dan windows 32 bit (Windows NT).  Meskipun demikian compiler Borland C++ juga memiliki kelemahan bila dibandingkan compiler C++ yang lain, misalnya : pemrograman dengan Borland C++ terutama yang menyangkut tampilan jauh lebih sulit daripada pemrograman dengan Microsoft Visual C++.

H.    STRUKTUR BAHASA C++
Program C maupun C++ selalu tersusun dari 4 (empat) bagian utama, yaitu :
1. Bagian komentar yang ditandai dengan symbol // dan pasangan /* … */
2. Bagian pengarah compiler yang ditandai dengan symbol #
3. Bagian deklarasi
4. Bagian definisi

I.    BAGIAN KOMENTAR
Program yang baik pada umumnya diberi komentar yang akan membantu orang lain maupun pembuat program itu untuk memahami program yang dibuat. Dalam C atau C++ setiap tulisan yang diapit oleh symbol /* … */ atau setiap baris yang dimulai dengan symbol // dianggap komentar. C++ tidak mengizinkan komentar bersarang ( nested comment), namun Borland C++ lebih fleksibel dalam hal ini.




•    Contoh C++  menggunakan komentar:

/* FIRST.CPP */
/* Program C++ pertamaku */
// Praproses
# include <iostream.h>
Void main ( )
{

Char pesan [ ] = “Hello, C++ programmers!” ;
Cout << pesan ;
Return 0 ;
}
Pada Borland C++ dapat menggunakan komentar bersarang asalkan opsi cek
Nested comments pada menu Options/Compiler/Source dipilih.

J.    BAGIAN PENGARAH KOMPILER
Contoh program C++ :
# include <iostream.h>
Void main ( )
{
Char pesan [ ] = “Hello, C++ programmers!” ;
Cout << pesan ;
Return 0 ;
}
Merupakan statement praprosesor, disebut juga pengarah compiler karena berfungsi mengatur proses kompilasi. IOSTREAM.H merupakan file program yang mengandung deklarasi kelas-kelas yang diperlukan oleh objek cout. File-file dengan ekstensi .H yang berisi deklarasi fungsi-fungsi standar C ini, disebut secara umum sebagai file header.
Beberapa pengarah compiler adalah :
1. # define
2. # include
3. # if, # else, # elif, # endif
4. # ifdef, # ifnde
K.    PENGARAH KOMPILER # DEFINE
Untuk mendefinisikan suatu pengenal / konstanta yang nantinya akan digantikan oleh praprosesor saat program dikompilasi.
Contoh Program :

# define SIZE 30
Int array [SIZE] ;
For (register int i = 0 ; i < SIZE ; i++)
{
Cout << array [ i ] ;
}

a.    PENGARAH KOMPILER # INCLUDE
Berfungsi membaca file program tertentu dan mengikutsertakan file tsb dalam proses kompilasi. Nama file yang dimaksud harus diapit symbol ‘ < ‘dan‘ > ‘ atau tanda kutip dua ( “ … “ ).

b.    PENGARAH KOMPILER # IF, # ELSE, # ELIF, # ENDIF
Digunakan untuk memilih bagian program yang akan dikompilasi. Kompilasi cari ini disebut kompilasi bersyarat dan program yang baik biasanya memanfaatkan teknik ini.

c.    PENGARAH KOMPILER # IFDEF, # IFNDEF
Digunakan juga dalam kompilasi bersyarat.   
# Ifdef dapat dibaca : ‘jika
didefinisikan’ dan
# ifndef dapat dibaca : ‘jika tidak didefinisikan’.
Pengarah compiler ini sering digunakan untuk menandai bahwa suatu file sudah diikutsertakan dalam kompilasi

L.    BAGIAN DEKLARASI DAN DEFINISI
Semua program C pada dasarnya tersusun dari rangkaian pemanggilan fungsi yang bekerja atas sekelompok data. Selain pemanggilan fungsi, program C mengandung komponen lain yang disebut statement.

Statement C ada dua, yaitu : statement yang tidak dapat dieksekusi / non executable ( bila dikompilasi tidak menghasilkan kode objek dan biasanya digunakan untuk mengatur alur program), dan statement yang dapat dieksekusi / executable (bila dikompilasi akan menghasilkan kode objek).
Setiap pemanggilan fungsi maupun statement executable dalam C harus diakhiri dengan tanda titik koma ( ; ).

Contoh program C++:
# include <iostream.h>
Void main ( )
{
Char pesan [ ] = “Hello, C++ programmers!” ;
Cout << pesan ;
Return 0 ;
}
Dalam contoh program C++ diatas, Return merupakan contoh statement executable yang menginstruksikan agar    suatu fungsimengembalikan nilai balik tertentu. Contoh statement non executable adalah :
If, else, dan while.

Main ( ) merupakan contoh fungsi, sedangkan pesan adalah contoh data. Baik data maupun fungsi harus dideklarasikan. Data perlu dideklarasikan agar compiler tahu berapa byte memori yang harus disediakan untuk data yang bersangkutan, sedangkan fungsi perlu dideklarasikan agar compiler dapat memeriksa ketepatan pemanggilan fungsi yang bersangkutan. Deklarasi fungsi sering disebut pula prototype fungsi.

M.    INPUT DAN OUTPUT
Di ANSI C, operasi input dan output dilakukan dengan menggunakan fungsi-fungsi yang ada di header file    stdio.h. contohnya untuk input dan output ke layer monitor digunakan perintah seperti printf, scanf, putch, dsb.
Untuk input dan output ke file digunakan perintah seperti fread, fwrite, fputc, dsb.



C++ mempunyai teknik input dan output yang baru, yaitu :
menggunakan  stream. Header file untuk input dan output stream adalah iostream.h dan beberapa file lain, seperti strstrea.h, fstream.h, dan constrea.h.
Stream adalah suatu logika device (peralatan logika) yang  menghasilkan dan menerima informasi atau suatu wadah yang digunakan untuk menampung keluaran dan menampung aliran data. Stream adalah nama umum untuk menampung aliran data (contoh : file, keyboard, mouse),
maupun untuk keluaran (contoh : layer, printer). Dalam C++ input berarti membaca dari stream dan output berarti menulis ke stream.
Bentuk Umum Output operator :
Cout << ekspresi ;

BAB II. ARAY DALAM PEMROGRAMAN C++
A.    Pengertian Array
Array adalah suatu struktur yang terdiri dari sejumlah elemen yang memiliki tipe data yang sama. Elemen-elemen array tersusun secara sekuensial dalam memori komputer. Array dapat berupa satu dimensi, dua dimensi, tiga dimensi ataupun banyak dimensi (multi dimensi).
B.    Array Satu Dimensi
Array Satu dimensi tidak lain adalah kumpulan elemen-elemen identik yang tersusun dalam satu baris. Elemen-elemen tersebut memiliki tipe data yang sama, tetapi isi dari elemen tersebut boleh berbeda.
Bentuk umum:
NamaArray[n] = {elemen0, elemen1, elemen2,.....,n};
n = jumlah elemen
Contoh Program:
Output:
C.    Array Dua Dimensi
Array dua dimensi sering digambarkan sebagai sebuah matriks, merupakan perluasandari array satu dimensi. Jika array satu dimensi hanya terdiri dari sebuah baris dan beberapa kolom elemen, maka array dua dimensi terdiri dari beberapa baris dan beberapa kolom elemen yang bertipe sama sehingga dapat digambarkan sebagai berikut:

Bentuk umum:
NamaArray [m][n];
Atau
NamaArray [m][n] = { {a,b,..z},{1,2,...,n-1} }
Contoh:
double matrix[4][4];
bool papan[2][2] = { {true,false},{true,false} };

Pendeklarasian array dua dimensi hampir sama dengan pendeklarasian array satu dimensi, kecuali bahwa array dua dimensi terdapat dua jumlah elemen yang terdapat di dalam kurung siku dan keduanya boleh tidak sama. Elemen array dua dimensi diakses dengan menuliskan kedua indeks elemennya dalam kurung siku seperti pada contoh berikut:
//papan nama memiliki 2 baris dan 5 kolom
bool papan[2][5];
papan[0][0] = true;
papan[0][4] = false;
papan[1][2] = true;
papan[1][4] = false;
Contoh program.
Output:
D.    Pengertian STRUCTURE
Structure (struktur) adalah kumpulan elemen-elemen data yang digabungkan menjadi satu kesatuan. Masing-masing elemen data tersebut dikenal dengan sebutan field. Field data tersebut dapat memiliki tipe data yang sama ataupun berbeda. Walaupun fieldfield tersebut berada dalam satu kesatuan, masing-masing field tersebut tetap dapat diakses secara individual.
Field-field tersebut digabungkan menjadi satu dengan tujuan untuk kemudahan dalam operasinya. Misalnya Anda ingin mencatat data-data mahasiswa dan pelajar dalam sebuah program, Untuk membedakannya Anda dapat membuat sebuah record mahasiswa yang terdiri dari field nim, nama, alamat dan ipk serta sebuah record pelajar yang terdiri dari field-field nama, nonurut, alamat dan jumnilai. Dengan demikian akan lebih mudah untuk membedakan keduanya.

Bentuk umum:
Contoh:
Untuk menggunakan struktur, tulis nama struktur beserta dengan fieldnya yang dipisahkan dengan tanda titik (“ . “). Misalnya Anda ingin menulis nim seorang mahasiswa ke layar maka penulisan yang benar adalah sebagai berikut:
“).Jika Pmhs adalah pointer bertipe mahasiswa* maka field dari Pmhs dapat diakses dengan mengganti tanda titik dengan tanda panah (“
Contoh program:
Output:

E.    Pengertian LINKED LIST
Pada bab sebelumnya telah dijelaskan mengenai variabel array yang bersifat statis (ukuran dan urutannya sudah pasti). Selain itu, ruang memori yang dipakai olehnya tidak dapat dihapus bila array tersebut sudah tidak digunakan lagi pada saat program dijalankan. Untuk memecahkan masalah di atas, kita dapat menggunakan variable pointer. Tipe data pointer bersifat dinamis, variabel akan dialokasikan hanya pada saat dibutuhkan dan sesudah tidak dibutuhkan dapat direlokasikan kembali.
Setiap ingin menambahkan data, Anda selalu menggunakan variabel pointer yang baru, akibatnya Anda akan membutuhkan banyak sekali pointer. Oleh karena itu, ada baiknya jika Anda hanya menggunakan satu variabel pointer saja untuk menyimpan banyak data dengan metode yang kita sebut Linked List. Linked list adalah sekumpulan elemen bertipe sama, yang mempunyai keterurutan tertentu, yang setiap elemennya terdiri dari dua bagian.
Bentuk Umum :
sebuah tipe terdefinisi yang menyimpan informasi sebuah elemen listinfotype ►►
address dari elemen berikutnya (suksesor)next ►►
Jika L adalah list, dan P adalah address, maka alamat elemen pertama list L dapat diacu
dengan notasi
first(L)






Sebelum digunakan harus dideklarasikan terlebih dahulu :
#define first(L) (L)
Elemen yang diacu oleh P dapat dikonsultasi informasinya dengan notasi :
info(P) deklarasi #define info(P) (P)-> info
next(P) deklarasi #define next(P) (P)-> next
Beberapa Definisi :
1. List l adalah list kosong, jika First(L) = Nil
2. Elemen terakhir dikenali, dengan salah satu cara adalah karena
Next(Last) = Nil
Nil adalah pengganti Null, perubahan ini dituliskan dengan #define Nil Nul.

a.    Single Linked List
Pada gambar di atas tampak bahwa sebuah data terletak pada sebuah lokasi memori area. Tempat yang disediakan pada satu area memori tertentu untuk menyimpan data dikenal dengan sebutan node/simpul. Setiap node memiliki pointer yang menunjuk ke simpul berikutnya sehingga terbentuk satu untaian, dengan demikian hanya diperlukan sebuah variabel pointer. Susunan berupa untaian semacam ini disebut Single Linked List (NULL memilik nilai khusus yang artinya tidak menunjuk ke mana-mana. Biasanya Linked List pada titik akhirnya akan menunjuk ke NULL).
Pembuatan Single Linked List dapat menggunakan 2 metode: LIFO (Last In First Out), aplikasinya : Stack (Tumpukan) FIFO (First In First Out), aplikasinya : Queue (Antrean) LIFO ( Last In First Out) Lifo adalah suatu metode pembuatan Linked List di mana data yang masuk paling akhir adalah data yang keluar paling awal. Hal ini dapat dianalogikan (dalam kehidupan sehari-hari) dengan saat Anda menumpuk barang seperti digambarkan dibawah ini. Pembuatan sebuah simpul dalam suatu linked list seperti digambarkan dibawah ini. Jika linked list dibuat dengan metode LIFO, terjadi penambahan / Insert simpul di belakang, dikenal dengan istilah INSERT.
Gambar. Ilustrasi Single Linked List dengan metode LIFO
FIFO (Fisrt In Fisrt Out) FIFO adalah suatu metode pembuatan Linked List di mana data yang masuk paling awal adalah data yang keluar paling awal juga. Hal ini dapat di analogikan (dalam kehidupan sehari-hari), misalnya saat sekelompok orang yang datang (ENQUEUE) mengantri hendak membeli tiket di loket. Jika linked list dibuat dengan metode FIFO, terjadi penambahan / Insert simpul didepan.

b.    Double Linked List
Salah satu kelemahan single linked list adalah pointer (penunjuk) hanya dapat bergerak satu arah saja, maju/ mundur, atau kanan/kiri sehingga pencarian data pada single Linked list hanya dapat bergerak dalam satu arah saja. Untuk mengatasi kelemahan tersebut, anda dapat menggunakan metode double linked list. Linked list ini dikenal dengan nama Linked list berpointer Ganda atau Double Linked List.

c.    Circular Double Linked List
Ini adalah double linked list yang simpul terakhirnya menunjuk ke simpul terakhirnya menunjuk ke simpul awalnya menunjuk ke simpul akhir sehingga membentuk suatu lingkaran.
Operasi-Operasi yang ada pada Linked List :
•    Insert
Istilah Insert berarti menambahkan sebuah simpul baru ke dalam suatu linked list.
•    IsEmpty
Fungsi ini menentukan apakah linked list kosong atau tidak.
•    Find First
Fungsi ini mencari elemen pertama dari linked list
•    Find Next
Fungsi ini mencari elemen sesudah elemen yang ditunjuk now.
•    Retrieve
Fungsi ini mengambil elemen yang ditunjuk oleh now. Elemen tersebut lalu dikembalikan oleh fungsi.
•    Update
Fungsi ini mengubah elemen yang ditunjuk oleh now dengan isi dari sesuatu.
•    Delete Now
Fungsi ini menghapus elemen yang ditunjuk oleh now. Jika yang dihapus adalah elemen pertama dari linked list (head), head akan berpindah ke elemen berikut.
•    Delete Head
Fungsi ini menghapus elemen yang ditunjuk head. Head berpindah ke elemen sesudahnya.


•    Clear
Fungsi ini menghapus linked list yang sudah ada. Fungsi ini wajib dilakukan bila anda ingin mengakhiri program yang menggunakan linked list. Jika anda melakukannya, data-data yang dialokasikan ke memori pada program sebelumnya akan tetap tertinggal di dalam memori.
Contoh Program:
Pencarian Nilai Terkecil dan Nilai Terbesar dalam sebuah Single Linked List
Output:


























BAB III. PENUTUP
A.    Kesimpulan
Array adalah suatu struktur yang terdiri dari sejumlah elemen yang memiliki tipe data yang sama. Elemen-elemen array tersusun secara sekuensial dalam memori komputer. Array dapat berupa satu dimensi, dua dimensi, tiga dimensi ataupun banyak dimensi (multi dimensi). Structure (struktur) adalah kumpulan elemen-elemen data yang digabungkan menjadi satu kesatuan. Masing-masing elemen data tersebut dikenal dengan sebutan field. Field data tersebut dapat memiliki tipe data yang sama ataupun berbeda. Walaupun fieldfield tersebut berada dalam satu kesatuan, masing-masing field tersebut tetap dapat diakses secara individual. Setiap ingin menambahkan data, Anda selalu menggunakan variabel pointer yang baru, akibatnya Anda akan membutuhkan banyak sekali pointer. Oleh karena itu, ada baiknya jika Anda hanya menggunakan satu variabel pointer saja untuk menyimpan banyak data dengan metode yang kita sebut Linked List. Linked list adalah sekumpulan elemen bertipe sama, yang mempunyai keterurutan tertentu, yang setiap elemennya terdiri dari dua bagian.
B.    Saran
Dengan tersusunnya makalah ini diharapkan para pembaca memberi saran dan kritik demi terciptanya kemajuan dalam pembuatan makalah-makalah berikutnya.
















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

Tidak ada komentar:

Posting Komentar