Kamis, 03 Januari 2013

Pengenalan Algoritma

Algoritma: Kerangka berpikir/alur sebuah proses yang menggambarkan sebuah system.
Jenis algoritma:

1. Deskripsi

=> Algoritma yang ditulis dalam bahasa manusia sehari- hari (misalnya bahasa Indonesia atau bahasa Inggris) dan dalam bentuk kalimat. Setiap langkah algoritmanya diterangkan dalam satu atau beberapa kalimat.

Contoh: Algoritma Persegi Panjang
- Masukkan Panjang
- Masukkan Lebar
- Luas = Panjang*Lebar
- Munculkan Luas

2. Flowchart/Bagan Alir

 => Flowchart merupakan gambar atau bagan yang memperlihatkan urutan dan hubungan antar proses beserta instruksinya. Gambaran ini dinyatakan dengan simbol. Dengan demikian setiap simbol menggambarkan proses tertentu. Sedangkan hubungan antar proses digambarkan dengan garis penghubung.

Simbol-simbol Flowchart 

 

Contoh: Algoritma Persegi Panjang





- Flowchart dengan Decision

Contoh Penggunaan Decision (Percabangan) pada Flowchart

1. Jenis Kelamin Pria dan Wanita Keterangan : JK = Jenis Kelamin ; P = Pria ; W = Wanita

 



3. Pseudocode

=> Pseudocode adalah cara untuk menuliskan sebuah algoritma secara high-level (level tingkat tinggi). Biasanya Pseudocode dituliskan dengan kombinasi Bahasa Inggris dan notasi matematika. Biasanya sebuah Pseudocode tidak terlalu detail dibandingkan dengan program. Isu-isu detail dalam program yang sifatnya teknis tidak dibahas di dalam Pseudocode.  


Contoh Pseudocode Luas Persegi Panjang dengan C++:
#include <iostream.h>
#include <conio.h>

void main()
{
 float panjang,lebar,luas;
 cout<<"Masukkan panjang: ";
 cin>>panjang;
 cout<<"Masukkan lebar: ";
 cin>>lebar;
 luas = panjang*lebar;
 cout<<"luas persegi panjang: "<<luas;
 getch();
}

 

Kesimpulan

Penting gak sih belajar Algoritma???

- Kenapa Perlu Belajar Algoritma

Dengan algoritma, kita dapat mengatasi masalah dari yang sederhana sampai yang kompleks sekalipun. Namun, seorang user harus mampu membuat suatu program dengan menggunakan bahasa yang difahami oleh komputer. Sebelum disajikan dalam bentuk bahasa pemrogaman, sebaiknya kita membuat diagram alir (Flow Chart) dan Pseudocode. Hal ini dimaksudkan agar dapat mempermudah kerja atau mempermudah dalam membuat program. Selain itu, algoritma dapat mengatasi masalah logika dan masalah matematika dengan cara berurutan, tetapi kadang-kadang algoritma tidak selalu berurutan, hal ini dikenal dengan proses percabangan.

- Yang Paling Penting untuk Dipelajari

Dalam algoritma kita harus bisa menguasai dasar-dasar dari algoritma, menguasai penyelesaian masalah yang paling efisien, dan cepat. Dengan begitu akan sangat mudah mengimplementasikan algoritma yang telah kita kuasai menjadi sebuah program.


Bagian yang menyenangkan dari algoritma menurut saya : 
.. Pada saat belajar tentang VOID , menurut saya asyk dan tidak begitu susah. Lebih cepat tanggap dan praktis membuat suatu program menggunakan VOID.


Kesan dan Pesan

- Kesan Mengambil Kuliah Praktikum Algoritma

Kesan saya mengambil mata kuliah algoritma sangat menarik, dan melatih logika saya untuk menyelesaikan masalah-masalah yang diberikan oleh dosen dengan logika yang saya miliki.

Senin, 24 Desember 2012

VOID

Dalam C dan C + +
Sebuah fungsi dengan tipe void hasil berakhir baik dengan mencapai akhir fungsi atau dengan mengeksekusi pernyataan kembali dengan tidak ada nilai kembali. Jenis kekosongan juga dapat muncul sebagai satu-satunya argument dari proto type fungsi untuk menunjukkan bahwa fungsi tidak membutuhkan argumen. Perhatikan bahwa meskipun nama, dalam semua situasi, jenis kekosongan berfungsi sebagai jenis tulisan , bukan sebagai nol atau jenis bawah, meskipun tidak seperti jenis unit nyata yang merupakan tunggal, jenis kekosongan dikatakan terdiri kosong set nilai-nilai, dan bahasa tidak menyediakan cara untuk menyatakan sebuah objek atau mewakili nilai dengan tipe Void.
Dalam versi awal dari C, fungsi tanpa hasil tertentu gagal untuk tipe kembali int dan fungsi tanpa argumen hanya memiliki daftar argumen kosong. Pointer ke data untyped dinyatakan sebagai bilangan bulat atau pointer ke char . Beberapa C awal kompiler memiliki fitur, sekarang dilihat sebagai annoyance, menghasilkan peringatan pada setiap panggilan fungsi yang tidak menggunakan nilai fungsi itu dikembalikan. Kode lama kadang-kadang melemparkan fungsi tersebut panggilan untuk membatalkan untuk menekan peringatan ini. Pada saat Bjarne stroustub mulai bekerja pada C++  pada 1979-1980, batal dan tidak berlaku pointer adalah bagian dari dialek bahasa C didukung oleh AT & T yang diturunkan kompiler.
Penggunaan eksplisit kekosongan vs memberikan argumen tidak ada dalam proto type fungsi memiliki semantik yang berbeda di C dan C + +, sebagaimana tercantum dalam tabel berikut:

C
C + + setara
void f(void); void f(); //preferred
void f(void); void f(void);
void f(…); /*accepts a variable number of arguments*/ void f(…); //accepts a variable number of arguments
void f(); /*accepts a constant but unknown number of arguments*/ // no equivalent


 FUNGSI VOID

Fungsi yang void sering disebut juga prosedur. Disebut void karena fungsi tersebut tidak mengembalikan suatu nilai keluaran yang didapat dari hasil proses fungsi tersebut.

Ciri-ciri Program :
- tidak adanya keyword return.
- tidak adanya tipe data didalam deklarasi fungsi.
- menggunakan keyword void.
- Tidak dapat langsung ditampilkan hasilnya
- Tidak memiliki nilai kembalian fungsi
- Keyword void juga digunakan jika suatu fungsi tidak mengandung suatu parameter apapun.


Contoh Program C++ void mencari volume balok:
#include <iostream.h>
#include <conio.h>

void volume(int &vol, int p, int l, int t)
{ vol = p*l*t; }
void main(){
int pj,lb,tg, hsl;
cout<<"Panjang = ";cin>>pj;
cout<<"Lebar = ";cin>>lb;
cout<<"Tinggi = ";cin>>tg;
volume(hsl,pj,lb,tg);
cout<<"\nVolume = "<<hsl;
getch();
}
 

String

Definisi String

String merupakan bentuk data yang biasa dipakai dalam pemrograman guna menampung dan memanipulasi data teks. Di dalam  C++, string bukan tipe data tersendiri tetapi hanya merupakan jenis khusus dari array.
String dipergunakan dalam konstanta dan variabel. Suatu konstanta string ditulis dengan diawali dan diakhiri oleh tanda petik. Misalnya:

“turbo C++”

Konstanta string akan disimpan berurutan dalam memori dan diakhiri tanda \0 atau NULL da setiap karakter akan menempati memori sebesar 1 byte.

 Contoh:
..... Turbo C++ \0. . .

Variabel string adalah variabel yang dipakai untuk menyimpan data string,

contoh:
Char nama [20] ;

Instruksi diatas berarti deklarasikan variabel nama dengan panjang maksimal 20 karakter dan bertipe array char.

Fungsi pada STRING

Pada C++ disediakan sejumlah fungsi makro yang didefinisikan dengan praprosesor #define.

Makro-makro yang didefinisikan dalam type.h adalah:

1.  Isalnum ()
Fungsi makro ini akan menghasilkan nilai benar (bukan nol) kalau argumennya adalah huruf besar, huruf kecil dan karakter digit ‘0’ sampai ‘9’.
Bentuknya adalah sebagai berikut:
Tipe isalnum (tipe argumen) ;
Contohnya adalah sebagai berikut:
                Int isalnum (int d);

2.  Isalpha ()
Fungsi makro ini akan menghasilkan nilai benar (bukan nol) kalau argumennya adalah huruf bukan angka.
Bentuknya adlah sebagai berikut:
                Tipe isalpha (tipe argumen)
3.  Isdigit ()
Fungsi makro ini akan menghasilkan nilai benar (bukan nol) kalau argumennya adalah karakter digit ‘0’ sampai ‘9’
Bentuknya adalah sebagai berikut:
                Tipe isdigit (tipe argumen)
4.  Islower ()
Fungsi makro ini akan menghasilkan nilai benar (bukan nol) kalau argumennya adalah huruf kecil.
Bentuknya adalah sebagai berikut:
                Tipe islower (tipe argumen)
5.  Isupper ()
Fungsi makro ini akan menghasilkan nilai benar (bukan nol) kalau argumennya adalah hurf besar.
Bentuknya adalah sebagai berikut:
                Tipe isupper (tipe argumen)
6.  Tolower ()
Fungsi makro ini akan menghasilkan huruf kecil jika diisi huruf besar, jika diisi bukan huruf besar maka akan menghasilkan sama dengan argumen itu sendiri.
Bentuknya adalah sebagai berikut:
                Tipe tolower (tipe argumen)
7.  Toupper ()
Fungsi makro ini kebalikan dari tolower yaitu akan menghasilkan huruf besar jika diisi huruf kecil  tetapi jika diisi selain huruf besar akan menghasilkan sama dengan argumen yang diisikan tersebut.
Bentuknya adalah sebagai berikut:
                Tipe toupper (tipe argumen)
8.  Strcpy ()
Fungsi ini dipakai untuk menyalin string asal ke variabel string tujuan, variabel tujuan harus memiliki ukuran yang dapat menampung seluruh karakter string asal.
Bentuknya adalah sebagai berikut:
                Strcpy (tujuan, asal)
9.  Strlen ()
Fungsi ini dipakai untuk menghitung jumlah karakter argumennya.
Bentuknya adalah sebagai berikut:
    Char S[ ] = “HALLO”
Cout<<”panjangnya : \n”, strlen (S);
Maka hasilnya adalah 5
10.  Strcat ()
Fungsi ini dipakai untuk menambah string asal ke bagian akhir string tujuan.
Bentuknya:
Strcat (tujuan, asal)
11.  Strcmp ()
Fungsi ini dipakai untuk membandingkan string str 1 dengan string str 2. Hasil dari fungsi ini bertipe int berupa nilai negatif (str1 kurang dari str2), nol(str1 = str2), positif (str 1 lebih dari str 2).

Contoh program:
#include
#include
#include

void main()
{
char kalimat [50];
int jum_kecil=0;
int jum_kapital=0;
int jum_pungtuasi=0;//tanda pungtuasi (seperti !/?)
int jum_digit=0; //karakter digit ( 0 sampai 9)

clrscr();
cout<<"masukkan string apa saja "<
cin.getline (kalimat,50);

for (int i=0; kalimat[i]; i++)
{
if (islower (kalimat [i]))
jum_kecil++;
if (isupper (kalimat[i]))
jum_kapital++;
if (ispunct (kalimat[i]))
jum_pungtuasi++;
if (isdigit (kalimat[i]))
jum_digit++;
}


cout<
cout<<"JUMLAH \n";
cout<<"Huruf kecil   : "<<
cout<<"Huruf kapital : "<<
cout<<"pungtuasi     : "<<
cout<<"Digit         : "<<
getch();
}

Contoh toupper dan tolower:


#include
#include
#include //toupper-tolower

void main()
{
char kata[20];
clrscr();
cout<<"masukkan sebuah kata : ";
cin.getline (kata,20);
for (int i = 0; kata [i]; i++)
kata [i]=toupper (kata [i]);
//kata [i]=tolower (kata [i]);
cout<<
getch();
}

Array

 ARAY

Pengertian


Array adalah tipe data terstruktur yang berguna untuk menyimpan sejumlah data yang bertipe sama. Bagian penyusun aray disebut elemen array yang masing-masing elemen dapat di akses tersendiri melalui index array yang dapat berupa integer atau string.

D[0]
-45
D[1]
6
D[2]
0
D[3]
72
D[4]
1543
D[5]
43
D[6]








contoh variabel bernama D yang mempunyai 7 lokasi memori yang semuanya bertipe int.

Masing-masing nilai dalam setiap lokasi mempunyai identitas berupa nama c dan nomor indeks yang dituliskan di dalam tanda kurung siku ‘[ ]’. Sebagai contoh, 4 adalah nilai dari D[6].

DEKLARASI ARRAY

Variabel array dideklarasikan dengan mencantumkan tipe dan nama variabel yang diikuti dengan banyaknya lokasi memori yang ingin dibuat.

 Dengan demikian, deklarasi untuk variabel array D di atas adalah:
            Int d[7];

C++ secara otomatis akan menyediakan lokasi memori sesuai dengan yang dideklarasikan,nomor indeks selalu dimulai dari 0. Nilai suatu variabel array dapat juga diinisialisasi secara langsung pada saat deklarasi, misalnya:
            Int d[7] = {-45, 0, 6, 72, 1543, 43, 4};

setiap lokasi memori dari variabel array c langsung diisi dengan nilai-nilai yang dituliskan di dalam tanda kurung kurawal.
Banyaknya lokasi memori dapat secara otomatis disediakan sesuai dengan banyaknya nilai yang akan dimasukkan, seperti contoh berikut yang tentunya membuat variabel array dengan 10 lokasi memori:
            Int x[ ] = {10, 15, 12, 5, 13, 9, 6, 17, 25, 31};

Contoh program array
           
/*Program:array1. Cpp*/
     #include
     #define SIZE 12

     main() {
int a [SIZE] = {1, 3, 5, 4, 7, 2, 99, 16, 45, 67, 89, 45};
          int indeks, total = 0;
          for (indeks=0 ; indeks<=SIZE-1 ; indeks++)
              total += a [indeks];
printf (“\nTotal setiap elemen array adalah %d”, total);
          return 0;
     }

Bila program diatas dijalankan, akan muncul hasil:

Total setiap elemen array adalah 383

Adapun keterangan dari program diatas adalah sebagai berikut:
Hasil penjumlahan setiap elemen array diperoleh dari jumlah data atau elemen array sebanyak 12 buah yang sudah didefinisikan pada awal program yaitu #define SIZE 12. Kemudian setiap elemen array dari a[0] yang berisi data 1, a[1] yang berisi data 3 dijumlah sampai dengan a[11] yang berisi data 45. Proses penjumlahan dilakukan pada loop dimulai dari 0 sampai data yang terakhir atau elemen terakhir.

ARRAY DIMENSI SATU

Struktur array mempunyai satu dimensi, sehingga variabelnya disebut dengan variabel array berdimensi satu
Bentuknya:
            Tipe nama_var [ukuran];

Dengan:
            Tipe     : menyatakan jenis elemen array (int, char,unsigned, dll)
            Ukuran            : menyatakan jumlah maksimal elemen array.


Contoh:
            Float nilai_angka[5];

Pada turbo C++, array disimpan dalam memori secara berurutan. Elemen pertama berindeks nol digambarkan sebagai berikut:

Nilai_angka[0]
Nilai_angka[1]
Nilai_angka[2]
Nilai_angka[3]
Nilai_angka[4]

Masing-masing bertipe float dan berjumlah 5 elemen.

Selain itu, deklarasi array juga dapat berupa:
            Static int angka [9] = {1, 2, 3, 4, 5, 6, 7, 8, 9}

Sesuai dengan deklarasi array diatas, maka isi variabel array telah ditentukan yaitu:
            angka[0] bernilai 1
            angka[1] bernilai 2
            angka[2] bernilai 3
            angka[3] bernilai 4
            angka[4] bernilai5
            angka[5] bernilai 6
            angka[6] bernilai 7
            angka[7] bernilai 8
            angka[8] bernilai9
            }

ARRAY DIMENSI DUA

Array berdimensi lebih dari satu, yang sering disebut dengan array berdimensi dua.

Sebagai contoh, sebuah matrik C berukuran 2 x 3 dapat dideklarasikan dalam C seperti berikut:
int c[2][3] = {{2,4,1},{5,3,7}};

akan menempati lokasi memori dengan susunan sebagai berikut:

0
1
2
0
2
4
1
1
5
3
7

 Dan definisi variabel untuk setiap elemen tersebut adalah:



0
1
2
0
b[0][0]
b[0][1]
b[0][2]
1
b[1][0]
b[1][1]
b[1][2]







Sebagai implementasi dari keterangan diatas, perhatikan program berikut ini:

Contoh program array dimensi dua

/*Program: array3 .cpp*/
#include
void printArray (int [] [3]),
main() {
     int matrik1 [2] [3] = { {1, 2, 3}, {4, 5, 6} }
           matrik2 [2] [3] = { 1, 2, 3, 4, 5},
           matrik3 [2] [3] = { {1, 2}, {4} };
     printarray (matrik1);
printarray (matrik2);
printarray (matrik3);
return 0;
}
void printArray (int a[] [3]) {
     int i, j;
     for (i=0; i<=1; i++) {
          for (j=0; j<=2; j++)
              printf(“%d”, a[i][j] );;
          printf (“\n”);
     }
}

Bila program diatas dijalankan, akan muncul hasil:
123
456
123
450
120
400

Penjelasan:
Dari program diatas untuk matriks 1, penulisannya adalah 123 456, sedangkan pada matriks 2 penulisannya adalah 123 450. 0 disini mempunyai arti tempat yang disediakan untuk data kolom ke 3 dari baris ke dua tidak diisi. Sedangkan matriks 3 penulisannya adalah 120 400. Dari matriks 3 disini kita bisa melihat bahwa pada baris pertama kolom ketiga data tidak diisi dan dianggap 0 dan pada baris kedua kilom kedua dan ketiga juga tidak diisi juga diisi 0.
Dalam program tersebut, juga digunakan fungsi untuk menampung hasil penjumlahan matriks.

ARRAY DIMENSI BANYAK
Array ini seperti array dimensi dua tetapi dapat memiliki ukuran yang lebih besar. Sebenarnya array dimensi banyak ini tidak terlalu sering digunakan, tetapi sewaktu-waktu kalau dimensi yang dibutuhkan banyak, maka array ini sangat memegang peranan yang penting.

Looping (Perulangan)



Looping adalah sebuah perulangan dalam c++ yang digunakan untuk megulang sebuah kode program tertentu. Dengan looping, seorang programer tidak lagi menulis kode program secara berulang untuk kode yang fungsi dan penggunaanya sama , tetapi hanya mendevenisikannya di dalam looping sehingga dapat menghemat space dalam menulis kode sebuah program.

Ada 3 (tiga) cara untuk melakukan perulangan / looping di C++ yaitu :
1. for statement
2. while statement
3. do while statement
Loop adalah : perulangan statement dengan jumlah tertentu jika kondisi terpenuhi.

1. FOR STATEMENT

Perulangan For
Perulangan yang pertama adalah for. Bentuk umum pernyataan for sebagai berikut :
for ( inisialisasi; syarat pengulangan; pengubah nilai pencacah )
Bila pernyataan didalam for lebih dari satu maka pernyataan-pernyataan tersebut harus
diletakan didalam tanda kurung.
for ( inisialisasi; syarat pengulangan; pengubah nilai pencacah )
{
pernyataan / perintah;
pernyataan / perintah;
pernyataan / perintah;
}

Keterangan:
* inisialisasi : nilai awal pada variabel
* syarat pengulangan : hal yang menentukan apakah suatu perulangan diteruskan atau
dihentikan.
* pengubah nilai pencacah : pengatur nilai kenaikan atau penurunan nilai pencacah.

Contoh1:
/* --------------------------- */
/* Program for - bilangan naik */
/* --------------------------- */
#include<stdio.h>
#include<conio.h>
#include<iostream.h>
main()
{
int a;
clrscr();
for(a = 1; a <= 10; ++a)
cout<< a;
getch();
}

Contoh2:
/* ------------------------------*/
/* Program Menampilkan Warna - 1 */
/* ------------------------------*/
#include<stdio.h>
#include<conio.h>
main()
{
int e;
clrscr();
for(e=1; 17>e; e++)
{
gotoxy(e, e); textcolor(e);
cprintf("\nwarna ke-%d",e);
}
getche();
}

Keterangan:
cprintf() = Menampilkan data dengan format pewarnaan teks dan pewarnaan latar belakang.
Perulangan Nested For
Pernyataaan Nested for adalah suatu perulangan for didalam perulangan for yang lainnya.
Bentuk umum pernyataan Nested for sebagai berikut :
for ( inisialisasi; syarat pengulangan; pengubah nilai pencacah )
{
for ( inisialisasi; syarat pengulangan; pengubah nilai pencacah)
{
pernyataan / perintah;
}
}

Contoh3:
/* ------------------------- */
/* Program for - Nested for */
/* ------------------------- */
#include<stdio.h>
#include<conio.h>
#include <iostream.h>
main()
{
int a, b;
clrscr();
for(a = 1; a <= 5; a++)
{
printf("\n");
for(b = a; b <= 5; b++)
cout<< a<< " ";
}
getch();
}

2. WHILE STATEMENT

Pernyataan perulangan while merupakan instruksi perulangan yang mirip dengan
perulangan for. Bentuk perulangan while dikendalikan oleh syarat tertentu, yaitu perulangan
akan terus dilaksanakan selama syarat tersebut terpenuhi.
Bentuk umum perulangan while, sebagai berikut :
while ( syarat )
Pernyataan / perintah ;

Contoh program :

/* Program while01.cpp */
/* ------------------- */
#include <stdio.h>
#include <conio.h>
#include <iostream.h>

main()
{
int bil=1;
clrscr();
while(bil<=10)
{
cout<< bil<< " ";
++bil;
}
getch();
}

3. DO WHILE STATEMENT
Bentuk umum :
Do statement while ( cond-exp ) ;
Perbedaan dengan while statement adalah : pada do while kondisi akan dievaluasi
setelah dilakukan statement/proses. Selain itu pada do while minimal akan dilaksanakan
1 (satu) kali statement/instruksinya.
Pernyataan perulangan do - while merupakan bentuk perulangan yang melaksanakan
perulangan terlebih dahulu dan pengujian perulangan dilakukan dibelakang.
Bentuk umum perulangan do - while, sebagai berikut :
do
pernyataan / perintah ;
while ( syarat );

Contoh program :

/* Program do - while */
/* ------------------ */
#include <stdio.h>
#include <conio.h>
#include <iostream.h>
main()
{
int bil=2;
clrscr();
do
{
cout<< bil<< " "; bil+=2;
}
while(bil<=10);
getch();
}


Decition (IF)

Pernyataan If mempunyai pengertian jika kondisi bernilai benar, maka perintah akan dikerjakana dan jika tidak memenuhi syarat maka akan diabaikan.


Dari arti IF tersebut bila digambarkan dalam diagram alir (flowchart) seperti berikut ini :
 Flowchart IF




contoh ssederhana pernyataan IF dalam C++



^^jika usia lebih dari 17 maka boleh menonton bioskop



^^jika dibawah 17 tidak boleh menonton bioskop