Senin, 21 November 2011

CLASS


Pemrograman C++ memerlukan pemahaman yang memadai untuk menterjemahkan
desain ke dalam bentuk implementasi, terutama untuk desain yang menggunakan
abstraksi class. Fokus pembahasan pada aspek pembentukan obyek  (construction)
sebuah class, dan proses sebaliknya pada saat obyek tersebut sudah tidak digunakan
lagi (destruction).

D E K L A R A S I D A N D E F I N I S I  
Deklarasi dan definisi adalah langkah awal dalam setiap penulisan program tidak
terkecuali dalam bahasa C++. Deklarasi dan definisi diperlukan untuk semua tipe data
termasuk tipe data bentukan user (user-defined type).
Bentuk sederhana deklarasi class adalah sebagai berikut,
class C { }; atau
struct C { };
dalam bahasa C++ struct dan class mempunyai pengertian yang sama. Deklarasi class
dengan struct mempunyai anggota dengan akses public kecuali jika dinyatakan lain.
struct C
{
int i;
void f();
}
class C
{

public:
int i;
void f();
}
Kedua deklarasi tersebut mempunyai arti yang sama. Hal ini adalah pilihan desain yang
diambil oleh desainer C++ (Bjarne Stroustrup) untuk menggunakan C sebagai basis C++
ketimbang membuat bahasa yang sama sekali baru. Tentunya ada konsekuensi atas
pilihan desain ini, salah satu contoh adalah kompatibilitas terhadap bahasa C. Dalam
bahasa C deklarasi,
struct C { … };
menyatakan C sebagai nama tag. Nama tag berbeda dengan nama tipe, sehingga C
(nama tag) tidak dapat dipergunakan dalam deklarasi yang membutuhkan C sebagai
suatu tipe obyek. Kedua contoh deklarasi berikut ini tidak valid dalam bahasa C,
C c;        /* error, C adalah nama tag */
C *pc;    /* error, C adalah nama tag */
Dalam bahasa C, kedua deklarasi tersebut harus ditulis sebagai berikut,
struct C c;
struct C *pc;
atau menggunakan typedef sebagai berikut,
struct C { … };
typedef struct C C;
C c;

C *pc;
C++ memperlakukan nama class, C sebagai nama tag sekaligus nama tipe dan dapat
dipergunakan dalam deklarasi. Kata class tetap dapat dipergunakan dalam deklarasi,
seperti contoh berikut ini,
class C c;
Dengan demikian C++ tidak membedakan nama tag dengan nama class, paling tidak
dari sudut pandang pemrogram  (programmer), dan tetap menerima deklarasi  structure
seperti dalam bahasa C. Kompatibilitas C++ terhadap tidak sebatas perbedaan nama tag
dan nama tipe, karena standar C++ masih perlu mendefinisikan tipe POD (Plain Old
Data). POD type mempunyai banyak persamaan dengan structure dalam C. Standar C++
mendefinisikan POD type sebagai obyek suatu class yang tidak mempunyai userdefined
constructor, anggota protected maupun private, tidak punya base class, dan tidak
memiliki fungsi virtual. Dalam desain suatu aplikasi terdiri atas banyak class, dan
masing-masing class tidak berdiri sendiri melainkan saling bergantung atau
berhubungan satu sama lain. Salah satu contoh hubungan tersebut adalah hubungan
antara satu class dengan satu atau lebih  base class  atau  parent class. Jika class C
mempunyai base class B, dikenal dengan inheritance, maka deklarasi class menjadi,
class C : public B {}; atau
class C : protected B {}; atau
class C : private B {};
akses terhadap anggota base class B dapat bersifat public, protected, maupun
private,atau disebut dengan istilah  public,  protected  atau  private inheritance. Class C
disebut dengan istilah derived class. Jika tidak dinyatakan bentuk akses secara eksplisit,
seperti dalam deklarasi berikut

class C : B
maka interpretasinya adalah private inheritance (default), tetapi jika menggunakan struct
maka tetap merupakan public inheritance. Jika desainer class C tersebut menginginkan
hubungan  multiple inheritance  (MI) terhadap class B dan A, maka deklarasi class C
menjadi,
class C : public B, public A { };
Sebuah class, seperti halnya class C mempunyai anggota berupa data maupun fungsi
(member function). Isi class tersebut berada diantara tanda kurung { } dan dipilah-pilah
sesuai dengan batasan akses yang ditentukan perancang (desainer) class tersebut.
class C : public B
{
public:
(explicit) C()(:member-initializer);
C(const C& );
C& operator=(const C&);
(virtual)~C();
statement lain
(protected: statement)
(private: statement)
};

selengkapnya. . . . . .
Continue reading...

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. 

Untuk menggunakan struktur, tulis nama struktur beserta dengan fieldnya yang
dipisahkan dengan tanda titik (“  . “).
Continue reading...

STACK


Definisi Stack  
Stack adalah suatu tumpukan dari benda. Konsep utamanya adalah LIFO (Last In First  Out), benda yang terakhir masuk dalam stack akan menjadi benda pertama yang dikeluarkan dari stack.  



Pada gambar diatas, jika kita ingin mengambil sesuatu dari tumpukan maka kita harus 
mengambil benda paling atas dahulu, yakni compo.

Misalnya jika VCD langsung diambil, compo akan jatuh. Prinsip stack ini bias diterapkan dalam pemrograman. Di C++, ada dua cara penerapan prinsip stack, yakni dengan  array  dan  linked list. 
Setidaknya stack haruslah memiliki operasi-operasi sebagai berikut.  
Push          Untuk menambahkan item pada tumpukan paling atas  
Pop           Untuk mengambil item teratas 
Clear         Untuk mengosongkan stack  
IsEmpty     Untuk memeriksa apakah stack kosong  

IsFull         Untuk memeriksa apakah stack sudah penuh  

Dalam bab ini penjelasan mengenai stack akan menggunakan kelas stack. Kelima operasi stack diatas akan dideklarasikan secara abstrak dalam kelas ini, sedangkan kelas turunan dari stack akan mengimplementasikan operasi-operasi tersebut.  


Stack dengan Array  
Sesuai dengan sifat stack, pengambilan / penghapusan delemen dalam stack harus dimulai dari elemen teratas.


Operasi-operasi pada Stcak dengan Array :
Konstruktor  
Fungsi ini membuat sebuah stack baru yang masih kosong. Konsepnya adalah bahwa Top menunjukkan elemen stack teratas. Jika Top bernilai -1, berarti tumpukan kosong. 


IsFul 
Fungsi ini memeriksa apakah stack yang ada sudah penuh. Stack penuh jika stack penuh jika puncak stack terdapat tepat dibawah jumlah maksimum yang dapat ditampung stack atau dengan kata lain Top = MAX_STACK -1.  

Push  
Fungsi ini menambahkan sebuah elemen ke dalam stack dan tidak bias dilakukan lagi jika stack sudah penuh.  

IsEmpty  
Fungsi menentukan apakah stack kosong atau tidak. Tanda bahwa stack kosong adalah Top bernilai kurang dari nol.  mfachrz@gmail.com


Pop  
Fungsi ini mengambil elemen teratas dari stack dengan syarat stack tidak boleh kosong.  

Clear  
Fungsi ini mengosongkan stack dengan cara mengeset Top dengan -1. Jika Top bernilai 


Double Stack dengan Array  
Metode ini adalah teknik khusus yang dikembangkan untuk menghemat pemakaian memori dalam pembuatan dua stack dengan array. Intinya adalah penggunaan hanya sebuah array untuk menampung dua stack.  
Tampak jelas bahwa sebuah array dapat dibagi untuk dua stack, stack 1 bergerak ke atas dan stack 2 bergerak ke bawah. Jika Top1 (elemen teratas dari Stack 1) bertemu dengan Top 2 (elemen teratas dari Stack 2) maka double stack telah penuh.  
Implementasi double stack dengan array adalah dengan memanfaatkan operasi-operasi yang tidak berbeda jauh dengan operasi single stack dengan array. 

Operasi-operasi Double Stack Array :
Konstruktor   
Fungsi ini membuat stack baru yang masih kosong. Top[0] diset dengan -1 dan Top[1] diset dengan MAX_STACK.  

IsFull 
Fungsi ini memeriksa apakah double stack sudah penuh. Stack dianggap penuh jika Top[0] dan Top[1] bersentuhan sehingga stack tida memiliki ruang kosong. Dengan kata lain, (Top[0] + 1) > Top[1].  

kurang dari nol maka stack dianggap kosong


Push  
Fungsi ini memasukkan sebuah elemen ke salah satu stack.  

IsEmpty  
Fungsi memeriksa apakah stack pertama atau stack kedua kosong. Stack pertama dianggap kosong jika puncak stack bernilai kurang dari nol, sedangkan stack kedua dianggap kosong jika puncak stack sama atau melebihi MAX_STACK.  

Pop  
Fungsi ini mengeluarkan elemen teratas dari salah satu stack  

Clear  
Fungsi ini mengosongkan salah satu stack.  


Stack dengan Single Linked List  
Selain implementasi stack dengan array seperti telah dijelasnkan sebelumnya, ada cara  lain untuk mengimplementasi stack dalam C++, yakni dengan single linked list. 
Keunggulannya dibandingkan array tebtu saja adalah penggunaan alokasi memori yang dinamis sehingga menghindari pemborosan memori. Misalnya saja pada stack dengan array disediakan tempat untuk stack berisi 150 elemen, sementara ketika dipakai oleh user stack hanya diisi 50 elemen, maka telah terjadi pemborosan memori untuk sisa 100 elemen, yang tak terpakai. Dengan penggunaan linked list maka tempat yang disediakan akan sesuai dengan banyaknya elemen yang mengisi stack. Oleh karena itu pula dalam stack dengan linked list tidak ada istilah full, sebab biasanya program tidak menentukan jumlah elemen stack yang mungkin ada (kecuali jika sudah dibatasi oleh pembuatnya). Namun demikian sebenarnya stack ini pun memiliki batas kapasitas, yakni dibatasi oleh jumlah memori yang tersedia.

Operasi-operasi  untuk Stack dengan Linked List :  
Konstruktor  
Fungsi ini membuat stack baru yang kosong. Stack adalah kosong jika Top tidak menunjuk apa pun (bernilai NULL). 

IsEmpty  
Fungsi memeriksa apakah stack yang adamasih kosong.  

Push  
Fungsi memasukkan elemen baru ke dalam stack. Push di sini mirip dengan insert dalam single linked list biasa.  

Pop  
Fungsi ini mengeluarkan elemen teratas dari stack.  

Clear  
Fungsi ini akan menghapus stack yang ada.    
Continue reading...

LINKED LIST


Single Linked List
Apabila setiap Anda ingin menambahkan data, Anda selalu menggunakan variabel
pointer yang baru, 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. Jika
diterjemahkan, ini berarti satu daftar isi yang saling berhubungan. Untuk lebih jelasnya,
perhatikan gambar di bawah ini:



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 di analogikan (dalam kehidupan
sehari-hari) dengan saat Anda menumpuk barang seperti digambarkan dibawah ini.
Pembuatan sebuah simpul dalam suatu linked list seperti digambarkan dibawah ii,
disebutkan istilah INSERT, Jika linked list dibuat dengan metode LIFO, terjadi
penambahan / Insert simpul di belakang.


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.

Operasi Pada Single Linked List :
Insert
Istilah Insert berarti menambahkan sebuah simpul baru ke dalam suatu linked list.
Procedure dan Function Linked List Lainnya
Selain fungsi insert di atas, pada linked list juga terdapat fungsi-fungsi lainnya. Di
bawah ini diberikan fungsi-fungsi umum dalam aplikasi linked list.

Konstruktor
Fungsi ini membuat sebuah linked list yang baru dan masih kosong.

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 uang dialokasikan ke memori pada program sebelumnya akan tetap
tertiinggal di dalam memori.


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.  
Operasi –operasi pada Double Linked List

Insert Tail
Fungsi insert tail berguna untuk menambah simpul di belakang (sebelah kanan) pada
sebuah linked list.

Insert Head
Sesuai dengan namanya, fungsi Insert Head berguna untuk menambah simpul di depan
(sebelah kiri). Fungsi ini tidak berada jauh dengan fungsi Insert Tail yang telah
dijelaskan sebelumnya.

Delete Tail
Fungsi Delete Tail berguna untuk menghapus simpul dari belakang. Fungsi ini
merupakan kebalikan dari fungsi Insert Tail yang menambah simpul dibelakang. Fungsi
Delete Tail akan mengarahkan Now kepada Tail dan kemudian memanggil fungsi
Delete Now.

Delete Head
Fungsi Delete Head merupakan kebalikan dari fungsi Delete Tail yang menghapus
simpul dari belakang, sedangkan Delete Head akan menghapus simpul dari depan
(sebelah kiri). Fungsi Delete Head akan mengarahkan Now kepada Head dan
kemudianm memanggil fungsi Delete Now.

Delete Now
Fungsi Delete Now berguna untuk menghapus simpul pada posisi yang sedang
ditunjuk oleh Now.

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 pada Circular Double Linked List :
Insert Tail
Fungsi insert Tail berguna untuk menambah simpul di belakang (sebelah kanan) pada
sebuah circular double linked list.

Insert Head
Sesuai dengan namanya, fungsi Insert Head berguna untuk menambah simpul di depan
(sebelah kiri). Fungsi ini tidak berbeda jauh dengan fungsi Insert tail yang telah
dijelaskan sebelumnya.

Delete Tail
Fungsi Delete Tail berguna untuk menghapus simpul dari belakang. Fungsi ini
kebalikan dari fungsi Insert Tail yang menambah simpul dibelakang.


Delete Head
Fungsi Delete Head merupakan kebalikan dari fungsi Delete Tail yang menghapus
simbul dari belakang. Delete Head akan menghapus simpul dari depan (sebelah kiri).

Delete Now
Fungsi Delete Now, sesuai dengan namanya, berguna untuk menghapus simpul pada
posisi yang diinginkan.
Continue reading...

Minggu, 20 November 2011

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). 

2.1. 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: 
<tipe data> NamaArray[n] = {elemen0, elemen1, elemen2,.....,n};  
n = jumlah elemen

Array Dua Dimensi 
Array dua dimensi sering digambarkan sebagai sebuah matriks, merupakan perluasan 
dari 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

Bentuk umum: 
<tipe data> NamaArray [m][n]; 
Atau 
<tipe data> 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;Bentuk umum: 
<tipe data> NamaArray [m][n]; 
Atau 
<tipe data> 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;


Continue reading...

Struktur data


Add caption
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.

Daftar struktur data umum

  1. Record
  2. Larik
  3. List
  4. Tumpukan
  5. Queue
  6. Pohon

Secara garis besar type data dapat dikategorikan menjadi :
1. Type data sederhana
a. Type data sederhana tunggal, misalnya Integer, real, boolean dan karakter
b. Type data sederhana majemuk, misalnya String
2. Struktur Data, meliputi
a. Struktur data sederhana, misalnya array dan record
b. Struktur data majemuk, yang terdiri dari
Linier : Stack, Queue, serta List dan Multilist
Non Linier : Pohon Biner dan Graph.
Continue reading...

Ø Program yang membuat bilangan kelipatan 5 dimulai dari 0 sampai dengan 50 Ø




#include <conio.h>
#include <iostream.h>

void main ()
{
int kata;

kata=1;
while (kata<26){
cout<<"bulan dan bintang"<<'\n';
kata++;
}
getch ();
}


Outputnya akan muncul tulisan bulan dan bintang sebanyak 25 kata.
Gak percaya. . .
Silahkan di hitung satu persatu sendiri.
Kata sesuai yang anda inginkan. Kata bulan dan bintang tadi di atas hanyalah contoh saja.
Continue reading...

Perulangan



Untuk memahami mengenai fungsi perulangan, coba lihatlah kasus sebgai berikut:
buatlah 1 program untuk menampilkan angka dari 1 sampai dengan 5. Maka untuk kasus tersebut program yang buat adalah sebagai berikut:
#include <stdio.h>
#include <conio.h>
main ()
{
                printf (“1\n”);
printf (“2\n”);
printf (“3\n”);
printf (“4\n”);
printf (“5\n”);
getch ();
}

Ada beberapa jenis perulangan yang dapat dilakukan oleh bahasa pemrograman C, yaitu :
-          for
-          While
-          Do while

Ø  Perulangan dengan perintah do while
Perulangan for mempunyai bentuk umum sebagai :
for inisialisasi counter : kondisi perulangan : statement
{
                Statement ;
}
contoh berikut akan menampilkan angka 1 sampai 100, kemudian menampilkan angka 10 turun sampai 0 dengan perubahan nilainya setengah (0,5)
#include <stdio.h>
#include <conio.h>
main ()
{
                int i;
   int f;
   for (i=1;i<=1000;i++)
   printf ("%i\n",i);
   for (f=10;f>=0;f-=0.5)
   printf ("%6.2f\n",f);
getch ();
}

Ø  Perulangan dengan perintah while
Bentuk umum dari while adalah sebagai berikut :

While (kondisi)
{
                Perintah;
                Perintah;
}

Cara kerja dari perubahan while mirip dengan for.
#include <stdio.h>
#include <conio.h>
main ()
{
                int i;
                float f;
                i=1;
                while (1<=1000)
                {
                                printf ("%i\n",i);
                                i++;
                }
                f=10;
                while (f>=0)
                {
                                printf ("%6.2f\n",f);
                                f=f-0.5;
                }
                getch ();

}

Ø  Perulangan dengan perintah do while
Bentuk umum do while sebagai berikut :

Do
{
                peintah;
                perintah;
} while (kondisi);


#include <stdio.h>
#include <conio.h>
main ()
{
                int i;
                float f;
                i=1;
                do
                {
                                printf ("%i\n",i);
                                i++;
                } while (i<=1000);
                f=10;
                do
                {
                                printf ("%6.2f\n",f);
f=f-0.5;
} while (f>=0);
getch ();
}

Ø  Menggunakan for bilangan naik
#include <iostream.h>
#include <conio.h>


 main ()
{
                int x,y=0;
                clrscr();
                for (x=1;x<=5;++x)
                { cout<<x<<endl;y=x+y;y
                  cout<<"_______+"<<endl;
                  cout<<y;
                getch ();
}

Ø  Menggunakan program for bilangan turun
#include <stdio.h>
#include <conio.h>
#include <iostream.h>
Void main ()
{
                int x;
                clrscr ();
                for (x=5;x>=1;--x)
                cout<<"nilai"<<endl<<x<<endl;
                getch ();
}Outputnya : 5 4 3 2 1


Ø  Program for bilangan genap
#include <stdio.h>
#include <conio.h>
#include <iostream.h>
void main ()
{
                int a;
                clrscr ();
                for (a=0;a<=10;a+=2)
                printf ("%d",a);
                getch ();
}

Outputnya : 0 2 4 6 8 10


Ø  Program for bilangan ganjil
#include <stdio.h>
#include <conio.h>
#include <iostream.h>
void main ()
{
                int a;
                clrscr ();
                for (a=1;a<=10;a+=2)
                printf ("%d",a);
                getch ();
}
Outputnya : 1 3 5 7 9
Continue reading...

Rabu, 16 November 2011

Algoritma



Asal kata Algoritma berasal dari nama Abu Ja’far Mohammed Ibn Musa al-Khowarizmi,  ilmuan Persia yang menulis kitab al jabr w’al-muqabala (rules of restoration and reduction)  sekitar tahun 825 M 



Definisi Algoritma 
- Algoritma adalah urutan langkah logis tertentu untuk memecahkan suatu masalah.  
Yang ditekankan adalah urutan langkah logis, yang berarti algoritma harus mengikuti  suatu urutan tertentu, tidak boleh melompat-lompat. (Dari Microsoft Press Computer  and Internet Dictionaary 1997, 1998) 
- Alur pemikiran dalam menyelesaikan suatu pekerjaan yang dituangkan secara tertulis.  
Yang ditekankan pertama adalah alur pikiran, sehingga  algoritma seseorang dapat  juga berbeda dari algoritma orang lain.  Sedangkan penekanan kedua adalah tertulis,  yang artinya dapat berupa kalimat, gambar, atau tabel tertentu. (Dari Algoritma dan  Struktur Data dengan C, C++, dan Java oleh Moh Sjukani hal 1) 

Contoh Algoritma dalam kehidupan nyata: 
- Jika seorang ingin memasak atau membuat kue, baik itu melihat resep ataupun tidak  pasti akan melakukan suatu langkah-langkah tertentu sehingga masakannya atau 
kuenya jadi. 
- Jika seseorang ingin mengirim surat kepada kenalannya di tempat lain, langkah yang  harus dilakukan adalah: 
>> Menulis surat 
>> Surat dimasukkan ke dalam amplop tertutup 
>> Amplop ditempeli perangko secukupnya. 
>> Pergi ke Kantor Pos terdekat untuk mengirimkannya. 
Dalam bidang komputer, algoritma sangat diperlukan dalam menyelesaikan berbagai masalah pemrograman, terutama dalam komputasi numeris. Tanpa algoritma yang dirancang baik maka proses pemrograman akan menjadi salah, rusak, atau lambat dan tidak efisien. 
Pelaksana algoritma adalah Komputer.Manusia dan komputer berkomunikasi dengan cara: manusia memberikan perintah-perintah 
kepada komputer berupa instruksi-instruksi yang disebut program. 
Alat yang digunakan untuk membuat program tersebut  adalah bahasa pemrograman.  
Bahasa pemrograman sangat bermacam-macam: C, C++, Pascal, Java, C#, Basic, Perl, PHP, ASP, JSP, J#, J++ dan masih banyak bahasa lainnya.  Dari berbagai bahasa pemrograman cara memberikan instruksinya berbeda-beda namun bertujuan menghasilkan output yang sama. 

Kriteria Algoritma Menurut Donald E. Knuth 
1. Input: algoritma dapat memiliki nol atau lebih inputan dari luar. 
2. Output: algoritma harus memiliki minimal satu buah output keluaran. 
3.  Definiteness (pasti): algoritma memiliki instruksi-instruksi yang jelas dan tidak ambigu. 
4.  Finiteness (ada batas): algoritma harus memiliki titik berhenti (stopping role). 
5.  Effectiveness (tepat dan efisien): algoritma sebisa mungkin harus dapat dilaksanakan dan efektif.  Contoh instruksi yang tidak efektif adalah: A = A + 0 atau A = A * 1 
Namun ada beberapa program yang memang dirancang untuk unterminatable: contoh Sistem Operasi 

Jenis Proses Algoritma 
1. Sequence Process: instruksi dikerjakan secara sekuensial, berurutan. 
2. Selection Process: instruksi dikerjakan jika memenuhi kriteria tertentu 
3. Iteration Process: instruksi dikerjakan selama memenuhi suatu kondisi tertentu. 
4. Concurrent Process: beberapa instruksi dikerjakan secara bersama.


Contoh Algoritma 
Algoritma menghitung luas persegi panjang: 
1. Masukkan panjang (P) 
2. Masukkan lebar (L) 
3. L ← P * L 
4. Tulis L 

Dalam Algoritma, tidak dipakai simbol-simbol / sintaks dari suatu bahasa pemrograman  tertentu, melainkan bersifat umum dan  tidak tergantung pada suatu bahasa pemrograman apapun juga.  Notasi-notasi algoritma dapat digunakan untuk seluruh bahasa pemrograman manapun. 

Definisi Pseudo-code
Kode atau tanda yang menyerupai (pseudo) atau merupakan pejelasan cara menyelesaikan suatu masalah.  Pseudo-code sering digunakan oleh manusia untuk menuliskan algoritma. 

Problem: mencari bilangan terbesar dari dua bilangan yang diinputkan
Continue reading...

Algoritma Pemrograman



Definisi Program/Pemrograman 
- Adalah kumpulan instruksi-instruksi tersendiri yang biasanya disebut source code yang 
dibuat oleh programmer (pembuat program) 

Paradigma Pemrograman 
1. Pemrograman Prosedural 
>> Berdasarkan urutan-urutan, sekuensial 
>> Program adalah suatu rangkaian prosedur untuk memanipulasi data.  Prosedur 
merupakan kumpulan instruksi yang dikerjakan secara berurutan. 
>> Harus mengingat prosedur mana yang  sudah dipanggil dan apa yang sudah 
diubah. 

2. Pemrograman Fungsional 
>> Berdasarkan teori fungsi matematika 
>> Fungsi merupakan dasar utama program. 

3. Pemrograman Terstruktur 
>> Secara berurutan dan terstrukrtur. 
>> Program dapat dibagai-bagi menjadi prosedur dan fungsi. 
>> Contoh: PASCAL dan C 

4. Pemrograman Modular 
>> Pemrograman ini membentuk banyak modul. 
>> Modul merupakan kumpulan dari prosedur dan fungsi yang berdiri sendiri 
>> Sebuah program dapat merupakan kumpulan modul-modul. 
>> Contoh: MODULA-2 atau ADA 

5. Pemrograman Berorientasi Obyek 
>> Pemrograman berdasarkan prinsip  obyek, dimana obyek memiliki 
data/variabel/property dan method/event/prosedur yang dapat dimanipulasi ¾ Contoh: C++, Object Pascal, dan Java. 

6. Pemrograman Berorientasi Fungsi 
>> Pemrograman ini berfokus pada suatu fungsi tertentu saja.  Sangat tergantung 
pada tujuan pembuatan bahasa pemrograman ini. 
>> Contoh: SQL (Structured Query Language), HTML, XML dan lain-lain. 

7. Pemrograman Deklaratif 
>> Pemrograman ini mendeskripsikan suatu masalah dengan pernyataan daripada 
memecahkan masalah dengan implementasi algoritma. 
>> Contoh: PROLOG



Langkah-langkah dalam pemrograman komputer 
1. Mendefinisikan masalah 
Ini merupakan langkah pertama yang sering dilupakan orang.  Menurut hukum Murphy 
(oleh Henry Ledgard): 
“Semakin cepat menulis program, akan semakin lama kita dapat menyelesaikannya”. 
Hal tersebut berlaku untuk permasalahan yang kompleks.  Tentukan masalahnya, apa saja yang harus dipecahkan dengan menggunakan komputer, dan apa inputan serta outputnya.

2. Menemukan solusi 
Setelah masalah didefinisikan, maka langkah berikutnya adalah menentukan solusi.  
Jika masalah terlalu kompleks, maka ada baiknya masalah tersebut dipecah menjadi modul-modul kecil agar lebih mudah diselesaikan. 
Contohnya masalah invers matriks, maka kita dapat membagi menjadi beberapa modul: 
>> meminta masukkan berupa matriks bujur sangkar 
>> mencari invers matriks 
>> menampilkan hasil kepada pengguna 
Dengan penggunaan modul tersebut program utama akan menjadi lebih singkat dan mudah dilihat. 

3. Memilih algoritma 
Pilihlah algoritma yang benar-benar sesuai dan efisien untuk permasalahan tersebut 

4. Menulis program 
Pilihlah bahasa yang mudah dipelajari, mudah digunakan, dan  lebih baik lagi jika sudah dikuasai, memiliki tingkat kompatibilitas tinggi dengan perangkat keras dan platform lainnya. 

5. Menguji program 
Setelah program jadi, silahkan uji  program tersebut dengan segala macam kemungkinan yang ada, termasuk error-handlingnya sehingga program tersebut akan benar-benar handal dan layak digunakan. 

6. Menulis dokumentasi 
Menulis dokumentasi sangat  penting agar pada suatu saat jika kita akan melakukan perubahan atau membaca source code yang sudah kita tulis dapat kita ingat-ingat lagi dan kita akan mudah membacanya.  Caranya adalah dengan menuliskan komentar-komentar kecil tentang apa maksud kode tersebut, untuk apa, variabel apa saja yang digunakan, untuk apa, dan parameter-parameter yang ada pada suatu prosedur dan fungsi. 

7. Merawat program 
Program yang sudah jadi perlu dirawat untuk mencegah munculnya bug yang sebelumnya tidak terdeteksi.  Atau mungkin juga pengguna membutuhkan fasilitas baru yang dulu tidak ada.
Continue reading...

Selasa, 15 November 2011

Bahasa Pemrograman C pada Arduino


Beli Arduino
Jenis bahasa pemrograman apakah yang dipakai padaArduino? Apakah Arduino menggunakan bahasa pemrograman yang khusus? Jawabannya tidak. Arduino tidak membuat bahasa pemrograman khusus, melainkan menggunakan Bahasa C yang sudah ada, lebih tepatnya adalah Bahasa C yang menggunakan compiler AVR-GCC (AVR – GNU C-Compiler).

Bahasa C adalah bahasa yang sangat lazim dipakai sejak awal-awal komputer diciptakan dan sangat berperan dalam perkembangan software. Bahasa C telah membuat bermacam-macam sistem operasi dan compiler untuk banyak bahasa pemrograman – misalnya sistem operasi Unix, Linux, dsb. Bahasa C juga biasanya diajarkan di akademi dan perguruan tinggi selain bahasa pemrograman Basic atau Pascal.
Bahasa C adalah bahasa pemrograman yang sangat ampuh yang kekuatan nya mendekati bahasa assembler. Bahasa C menghasilkan file kode objek yang sangat kecil dan dieksekusi dengan sangat cepat. Karena itu Bahasa C sering digunakan pada sistem operasi dan pemograman mikrokontroler.
Bahasa C adalah multi-platform
Bahasa C bisa diterapkan pada lingkungan Windows, Unix, Linux atau sistem operasi lain tanpa mengalami perubahan source code. (Kalaupun ada perubahan, biasanya sangat minim). Karena Arduino menggunakan Bahasa C yang multi-platform, maka software Arduino pun bisa dijalankan pada semua sistem operasi yang umum, misalnya: Windows, Linux dan MacOS.

Bahasa C mudah dipelajari
Maksud kata ‘mudah’ disini adalah relatif. Tergantung kemampuan setiap user. Kalau anda sudah mengerti bahasa C, anda bisa melakukan pengembangan dengan board lain atau mikrokontroler lain dengan lebih mudah.

Di Internet banyak Library Bahasa C untuk Arduino yang bisa di download dengan gratis. Setiap library Arduino biasanya disertai dengan contoh pemakaian nya. Keberadaan library-library ini bukan hanya membantu kita membuat proyek mikrokontroler, tetapi bisa dijadikan sarana untuk mendalami pemrograman Bahasa C pada mikrokontroler.
Beli Arduino
Continue reading...

Trik Menghilangkan iklan di halaman Facebook anda





Mungkin postingan ini sudah pernah di muat dibeberapa blog, tapi gpp saya memuatnya kembali, biar para pengguna facebook dapat banyak source yg bisa di pilih. Seperti kita tahu, tampilan di sidebar Facebook menampilkan banyak sekali iklan, yang tentunya bisa menggangu proses loading page halaman Facebook kita.
Untuk menghindari kita mengklik iklan, kita bisa menghilangkan tamplilan iklan di Facebook dengan menggunakan add-on dari Firefox. Nama add-on firefox itu adalahStylist. Kita mulai saja langkah-langkah tips menghilangkan iklan di facebook (remove ads):


1.Login di facebook. (tentu, Anda harus punya account facebook untuk bisa login. )
2.Buka link ini: https://addons.mozilla.org/en-US/firefox/addon/2108.
3.Klik tombol add to Firefox di halaman add-on tersebut.
4.Restart firefox (tutup firefox lalu buka firefox lagi).
5.Buka facebook menggunakan firefox.
6.Klik gambar kertas dan kuas yang ada di ujung kanan bawah firefox (firefox sedang membuka halaman facebook).
7.Pilih submenu Find Styles for this page.
8.Pada halaman baru yang terbuka, pilih menu Remove Ads.
9.Lihat bagian Install Options, klik tombol “Load into Stylish” -> save.
10.Cek di halaman facebook kamu. Apakah iklannya sudah tidak muncul lagi?





Nah,setelah kita berhasil menghilangkan iklan di halaman facebook kita, tentu ada yang nanya gimana cara memunculkan kembali iklan tersebut,Perhatikan caranya di bawah ini :


1.Klik menu Tools di menu Option firefox.
2.Klik submenu Add-ons.
3.Pada window add-ons, cari add-on Stylish lalu klik tombol Option-nya.
4.Hapus stylish untuk “remove ads” untuk facebook.
5.Cek Facebook kamu.


Semoga berguna untuk para pengguna Facebook.
Continue reading...

Setting IM2 Broadband Menggunakan HP sebagai Modem


Penulis pernah menemukan kesulitan pada saat ingin menggunakan IM2 Broadband menggunakan ,dan skarang ketemu deh caranya. 
Berikut ini cara setting IM2 menggunakan Handphone sebagai Modem, maupun dengan menggunakan Nokia PC Suite. Kali ini penulis hanya menyertakan jenis Ponsel Nokia dan Sony Ericsson.
Nokia N73 
Manual Configuration of 3,5 G Broadband IM2
§  Start these instructions from the idle screen display of the handset
§  Press `Menu` and go to `Tools`
§  Select `Settings` and go to `Connection`
§  Select `Access points` and choose `Options`
§  Select `New access point` and choose `Use default settings`
§  Enter the fills as follow :
§  Connection name : Broadband Im2
§  Data bearer : Packet data
§  Access point name : indosatm2
§  User name : ( indosatm2 ) sesuai dengan registrasinya
§  Prompt password : yes
§  Password : ( prabayar ) sesuai dengan registrasinya
§  Authentication : Normal
§  Homepage : -
§  Keep pressing `Back` until the main menu and 3,5 G Broadband IM2 configuration is completed
Nokia E90 
Manual Configuration of 3,5 G Broadband IM2
§  Start these instructions from the idle screen display of the handset
§  Press `Menu` and go to `Tools`
§  Select `Settings` and go to `Connection`
§  Select `Access points` and choose `Options`
§  Select `New access point` and choose `Use default settings`
§  Enter the fills as follow :
§  Connection name : Broadband Im2
§  Data bearer : Packet data
§  Access point name : indosatm2
§  User name : ( indosatm2 ) sesuai dengan registrasinya
§  Prompt password : yes
§  Password : ( prabayar ) sesuai dengan registrasinya
§  Authentication : Normal
§  Homepage : -
§  Keep pressing `Back` until the main menu and 3,5 G Broadband IM2 configuration is completed
Sony Ericsson K660 
Manual Configuration of 3.5 G Broadband IM2
§  Starts these instructions from the idle screen display of the handset
§  Press `Menu` and go to `Settings`
§  Go to `Connectivity` and select `Data comm.`

§  Select `Data accounts`
§  Choose `New account` and select `Account type` as Packet data
§  Enter new account as Broadband IM2
§  Enter the details as follow :
§  APN : indosatm2
§  Username : indosatm2 ( sesuai dengan registrasinya )
§  Password : prabayar ( sesuai dengan registrasinya )
§  Save the settings and return back to the `Connectivity` menu
§  Select `Internet settings` and go to `Internet profiles`
§  Select `New profile` and enter name : Broadband IM2 and connect using :Broadband Im2
§  Save the settings and return back to the `Internet profiles` menu
§  Under the Broadband IM2, select `More` and go to `Settings`
§  Save the settings and go the `Advanced settings` from the previous `More` options
§  Select `Change homepage` and enter the details as follow :
§  Save the settings and 3.5 G Broadband IM2 configuration is completed
§  Klik link di bawah untuk melanjutkan 


Sony Eriscon K810i 
Manual Configuration of 3.5 G broadband IM2
§  Starts these instructions from the idle screen display of the handset
§  Press `Menu` and go to `Settings`
§  Go to `Connectivity` and select `Data comm.`
§  Select `Data accounts`
§  Choose `New account` and select `Account type` as packet data
§  Enter new account as Broadband IM2
§  Enter the details as follow :
§  APN : indosatm2
§  Username : indosatm2 ( sesuai dengan registrasinya )
§  Password : prabayar ( sesuai dengan registrasinya )
§  Save the settings and return back to the `Connectivity` menu
§  Select `Internet settings` and go to `Internet profiles`
§  Select `New profile` and enter name : Broadband IM2 and connect using :Broadband IM2
§  Save the settings and return back to the `Internet profiles` menu
§  Under the Broadband IM2
§  Select `Change homepage` and enter the details as follow :
§  Save the settings and 3.5 G Broadband configuration is completed
Sony Eriscon P1i 
Manual Configuration of 3.5 G Broadband IM2
§  Starts these instructions from the idle screen display of the handset
§  From the `Main Menu` and go to `Tools`
§  Under `Control Panel` and select `Connections`
§  Select `Internet accounts` and choose `More` -> `New account`
§  Select `Data` and enter the details as follow :
§  Account name : Broadband IM2
§  Address : indosatm2
§  Username : indosatm2 ( sesuai dengan registrasinya )
§  Password : prabayar ( sesuai dengan registrasinya )
§  Select `More` and go to `Proxy`
§  Select `Save` to save the settings, return back to the main menu, select `Multimedia` -> `Web`
§  Select `More` -> `Open web page`, enter the URL :
§  Broadband 3.5 G IM2 configuration settings completed
Setting Pada PC Suite
§  Pastikan Kabel Data telah terhubung dengan handphone yang ada. Jangan lupa aplikasi PC Suite juga telah di instal pada notebook / komputer.
§  Ada beberapa media penghubung notebook dengan handphone yang ada antara lain :
§  Kabel Data USB
§  Bluetooth
§  Infra Red
§  Buka Program Nokia PC Suitenya. Klik tombol Hubungkan ke Internet. Nanti ada tampilan One Touch Access.
§  Connection Manually.
§  Karena kita menggunakan Broadband IM2, langkah terakhir isi:
§  Access Point Name : indosatm2
§  Username: indosatm2 ( sesuai)
§  Password : prabayar (sesuai )
§  Initial Setting di biarkan kosong, lalu klik Finish.
§  Kembali ke One Touch Access (seperti pada gambar pertama). Klik Tombol Sambungkan. Sambungan akan dilangsungkan dengan memverifikasi username dan pasword. Komputer telah konek ke internet jika di pojok kanan bawah komputer kita muncul icon komputer kecil. Sekian Tips kali ini, semoga bermanfaat bagi para pembaca 
Continue reading...
 

Dyah Sharaswati Copyright © 2009 Cosmetic Girl Designed by Ipietoon | In Collaboration with FIFA
and web hosting