Minggu, 07 November 2010

truktur algoritma bahasa pascal, dan bahasa c

Struktur Dasar Algoritma
Mar 30th, 2009 by admin, posted in Logika & Algoritma, tags: algoritma, logika, pemrograman, Programming
::: Leave a comment :::

Setelah konstruksi dasar pembentuk algoritma, sekarang kita lihat bagaimana struktur dasar dari teks algoritma. Sehingga dengan mengikuti struktur tersebut kita dapat menyusun algoritma-algoritma tertentu untuk menyelesaikan masalah dengan efektif.

Algoritma disusun oleh 3 bagian (blok) yang biasanya selalu ada dalam sebuah algoritma. 3 bagian itu adalah :

1. bagian judul (header)
2. bagian deklarasi (declaration)
3. bagian algoritma (sebagian menyebutnya dengan deskripsi)

Ketiga bagian tersebut secara umum ditunjukkan dalam notasi algoritmik seperti di bawah.

PROGRAM nama program
{berisi judul algoritma, singkat dan jelas}

DEKLARASI
{sebagai tempat untuk mengenalkan nama atau variabel apa saja yang digunakan dan tipe datanya serta prosedur dan fungsi yang dipakai}

ALGORITMA :
{berisi langkah-langkah penyelesaian masalah}

Pada setiap bagian sebaiknya diberikan komentar untuk memperjelas maksud dari pernyataan tersebut. Untuk komentar, penulisannya diapit oleh tanda kurung kurawal { dan }. Dengan komentar, algoritma yang kita buat menjadi lebih dimengerti dan dipahami, dan komentar ini tidak akan dieksekusi karena akan dilewati saja oleh program. :-D Namanya juga komentar…

Bagian Judul (header)

Sesuai bagiannya, kita perlu memberi judul terhadap algoritma yang kita buat. Judul sebaiknya singkat, dan jelas serta menggambarkan apa yang dilakukan oleh program. Di bawah judul, sebaiknya juga diberikan komentar singkat tentang masalah yang ingin diselesaikan itu, dan bagaimana masukan dan keluarannya.

Contohnya :

PROGRAM ucapan selamat datang
{program untuk menampilkan ucapan selamat datang kepada pengguna dengan masukan nama pengguna}

Bagian Deklarasi (declaration)

Digunakan untuk memperkenalkan semua variabel atau nama-nama yang akan terlibat dalam algoritma termasuk tipe data dan sebagainya. Apapun nama dan variabel yang digunakan dalam algoritma harus di ‘umumkan’ terlebih dahulu di bagian deklarasi ini, jika tidak, algoritma (dan program) tidak akan bisa menyelesaikan masalah. Justru malah menjadi masalah :-D :-D

Contoh deklarasi adalah :

DEKLARASI
nama : string
usia : integer

Nama atau variabel adalah satu kesatuan leksikal, sehingga nama tidak boleh mengandung spasi, tanda baca, tanda operator dan sebagainya kecuali tanda “_” (garis bawah). Pada algoritma, tidak dibedakan antara huruf besar (kapital) atau huruf kecil, semuanya dianggap sama. Lebih jelasnya akan kita lihat pada posting berikutnya…

Bagian Algoritma (deskripsi)

Bagian ini adalah inti dari program untuk menyelesaikan masalah. Berisi instruksi-instruksi untuk pemecahan masalah dengan menggunakan notasi pseudo-code. Tidak perlu berpanjang lebar, kita lihat saja contohnya.

ALGORITMA :
read(nama, usia)
write(’Selamat Datang ‘, nama)
write(’Usia Anda sekarang adalah ‘, usia, ‘tahun’)

Nah, kalau ketiga bagian di atas digabungkan menjadi 1 kesatuan algoritma akan menjadi :

PROGRAM ucapan selamat datang
{program untuk menampilkan ucapan selamat datang kepada pengguna dengan masukan nama pengguna}

DEKLARASI
nama : string
usia : integer

ALGORITMA :
read(nama, usia)
write(’Selamat Datang ‘, nama)
write(’Usia Anda sekarang adalah ‘, usia, ‘tahun’)

Setelah program dieksekusi dan dijalankan, misalnya nama diisi dengan Mr. X dan usia diisi 27, maka akan dihasilkan :

Selamat Datang Mr. X
Usia Anda sekarang adalah 27 tahun


Pascal adalah bahasa pemrograman yang pertama kali di buat oleh Profesor Niklaus Wirth, seorang anggota International Federation of Information Processing (IFIP) pada tahun 1971. Dengan mengambil nama dari matematikawan Perancis, Blaise Pascal, yang pertama kali menciptakan mesin penghitung, Profesor Niklaus Wirth membuat bahasa Pascal ini sebagai alat bantu untuk mengajarkan konsep pemrograman komputer kepada mahasiswanya. Selain itu, Profesor Niklaus Wirth membuat Pascal juga untuk melengkapi kekurangan-kekurangan bahasa pemrograman yang ada pada saat itu.
Kelebihan dari bahasa pemrograman Pascal adalah:

* Tipe Data Standar, tipe-tipe data standar yang telah tersedia pada kebanyakan bahasa pemrograman. Pascal memiliki tipe data standar: boolean, integer, real, char, string,
* User defined Data Types, programmer dapat membuat tipe data lain yang diturunkan dari tipe data standar.
* Strongly-typed, programmer harus menentukan tipe data dari suatu variabel, dan variabel tersebut tidak dapat dipergunakan untuk menyimpan tipe data selain dari format yang ditentukan.
* Terstruktur, memiliki sintaks yang memungkinkan penulisan program dipecah menjadi fungsi-fungsi kecil (procedure dan function) yang dapat dipergunakan berulang-ulang.
* Sederhana dan Ekspresif, memiliki struktur yang sederhana dan sangat mendekati bahasa manusia (bahasa Inggris) sehingga mudah dipelajari dan dipahami.
Tipe Data

Dalam bahasa Pascal terdapat beberapa jenis tipe data yang bisa digunakan untuk sebuah variabel atau konstanta pada program. Tipe Data tersebut antara lain adalah
Tipe Data Deskripsi (range variabel)
Byte angka dari 0 sampai 255
Integer angka dari -32768 to 32767
Real semua nilai pecahan dari 1E-38 to 1E+38
Boolean nilai TRUE atau FALSE
Char semua karakter dari tabel ASCII
String semua huruf, spasi, fraseTipe Data

Dalam bahasa Pascal terdapat beberapa jenis tipe data yang bisa digunakan untuk sebuah variabel atau konstanta pada program. Tipe Data tersebut antara lain adalah
Tipe Data Deskripsi (range variabel)
Byte angka dari 0 sampai 255
Integer angka dari -32768 to 32767
Real semua nilai pecahan dari 1E-38 to 1E+38
Boolean nilai TRUE atau FALSE
Char semua karakter dari tabel ASCII
String semua huruf, spasi, frase
Hello World

Contoh program Hello World menggunakan bahasa pascal adalah sebagai berikut:

Program HelloWorld;
begin
writeln('Hello world');

end.


C (bahasa pemrograman)
Dari Wikipedia bahasa Indonesia, ensiklopedia bebas
(Dialihkan dari Bahasa C)
Perubahan tertunda ditampilkan di halaman iniBelum Diperiksa
Langsung ke: navigasi, cari

Bahasa pemrograman C merupakan salah satu bahasa pemrograman komputer. Dibuat pada tahun 1972 oleh Dennis Ritchie untuk Sistem Operasi Unix di Bell Telephone Laboratories.

Meskipun C dibuat untuk memprogram sistem dan jaringan komputer namun bahasa ini juga sering digunakan dalam mengembangkan software aplikasi. C juga banyak dipakai oleh berbagai jenis platform sistem operasi dan arsitektur komputer, bahkan terdapat beberepa compiler yang sangat populer telah tersedia. C secara luar biasa mempengaruhi bahasa populer lainnya, terutama C++ yang merupakan extensi dari C.
Filosofi

Pada tahun 1978, Dennis Ritchie dan Brian Kernighan menerbitkan edisi pertama dari buku yang berjudul The C Programming Language. Buku ini hingga sekarang diakui sebagai kitab suci bahasa C dan merupakan referensi utama seorang pemrogram yang ingin mengetahui tentang bahasa C, terutama karena begitu lengkapnya cakupan buku ini tentang bahasa C dan mudahnya program yang dicontohkan dalam buku ini.

Versi bahasa C yang ditampilkan dalam buku ini kemudian dikenal dalam kalangan pemrogram sebagai C K&R. Pada buku The C Programming Language edisi kedua kemudian melingkupi ANSI C yang diperkenalkan belakangan.

Pada perkembangannya, muncul versi-versi C lain yang pada akhirnya membuat kebingungan di kalangan pemrogram. Karena itu, pada tahun 1983, American National Standards Institute (ANSI) membuat sebuah komite untuk membuat sebuah versi standar dari bahasa C. Setelah melalui proses yang panjang dan sengit, pada tahun 1989, telah berhasil disahkan standar yang dinamakan ANSI X3.159-1989, versi ini seringkali dinamakan ANSI C, atau kadang-kadang C89.

Pada 1990, versi ANSI C diadopsi oleh Organization for Standardization (ISO) dengan sedikit perubahan dengan nama ISO/IEC 9899:1990. Versi ini seringkali dinamakan ISO C atau C90. Karena versi ANSI C dan ISO C hanya memiliki sedikit perbedaan, pemanggilan C90 dan C89 merujuk pada bahasa yang sama.

Versi C99 dibuat oleh ISO C pada tahun 1999. Versi ini dimaksudkan terutama untuk memperbanyak dukungan kepada pemrograman berorientasi objek, terutama setelah C++, yang dibuat berdasarkan bahasa ini mendapat tempat yang istimewa di kalangan pemrogram

Pustaka (seringkali dirujuk sebagai library), adalah kumpulan fungsi-fungsi yang terkandung dalam satu file, Setiap file pustaka mempunyai satu Header file yang menyimpan cetak biru dari fungsi-fungsi yang terkandung dalam file pustaka.

Bahasa C seringkali dipakai untuk membuat file-file pustaka yang menyimpan fungsi-fungsi tertentu, dikarenakan C dapat dikompile menjadi bahasa mesin yang sangat cepat dan kecil ukurannya, kemudian bahasa pemrograman lain seperti Python yang akan menciptakan antar-muka dari fungsi-fungsi yang dikandungnya.

Pustaka yang paling sering dipakai adalah Pustaka Standar C, yang berisi fungsi-fungsi standar yang berasal dari ANSI C. Pustaka standar ini sekarang telah terkandung dalam hampir setiap kompiler C yang dipakai.

Berikut ini adalah contoh program sederhana yang akan mencetak kalimat "Hello, World!" dengan menggunakan pustaka stdio.h (ANSI C):

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

(Penulis: David)

Struktur Looping


Struktur looping adalah suatu Struktur untuk mengulangi langkah-langkah sebelumnya yang telah dikerjakan, kondisi perulangan dilakukan sampai suatu kondisi berhenti terpenuhi.

Bentuk umum proses perulangan:
1.while [ kondisi ] do [……….] end_while
2.repeat until [ kondisi ]
3.for [……….] end_for
for [nilai awal] to [nilai akhir] do
for [nilai akhir] to [nilai awal] do
Nested for (perulangan for bersarang)

sedikit tentang looping, untuk penjelasan lebih lengkap silahkan baca buku aja!! :D

soal:
Menentukan Bilangan Genap atau Ganjil :
-Bilangan Genap adalah bilangan yang habis dibagi 2 dan sisanya 0
-Bilangan Ganjil adalah bilangan yang tidak habis d bagi 2 dan sisanya 1

Misal kan :
- bil : input bilangannya
-MOD : perintah program hasil bagi

FLOWCHART




Struktur Looping

gezafa~ Thursday, June 18, 2009


Looping
Looping adalah pengulangan sesuatu atau serangkaian "kerja" dari program. Dalam C++, paling tidak dikenal ada 3 looping.

While
Perintah while adalah pengulangan yang dilakukan oleh program selama (while) dalam keadaan tertentu. Misalnya saja, ada sebuah kondisi yang mengharuskan program agar melakukan "pekerjaan" tertentu selama keadaan itu terpenuhi (true).
Contoh:
Mencetak angka 1 sampai 1000
#include <iostream>
using namespace std;

void main() {
    int i = 1;
    
    //kondisi ditetapkan (bahwa selama i lebih kecil atau sama dengan
    //1000 ada perintah yang diberikan pada program...)
    while (i <= 1000) {

        //perintah untuk mencetak nilai dari i dan kemudian membuat
        //baris baru
        cout << i << "\n";

        //iterasi
        ++i;
        //i = i + 1;
        //i += 1;
    }
}

Nah, dari kode di atas kita lihat bahwa selama i lebih kecil atau sama dengan 1000, nilai dari i akan di cetak ke layar. Jadi, hasilnya adalah: 
1
2
1000

Akan tercetak angka dari 1 sampai 1000 di layar. Perhatikan baik – baik ada sepenggal kode yang diberi komentar "iterasi". Apakah iterasi itu? Iterasi dalam looping adalah proses yang berpengaruh dalam nilai dari variabel yang ditetapkan sebagai acuan looping. Atau dapat pula dikatakan bahwa, iterasi adalah bagaimana penambahan nilai atau pengurangan dalam perulangan. Contohnya seperti nilai dari i di atas. Penulisan yang diberikan pada variabel i adalah:

++i;

Itu sama saja dengan perintah yang berada di dalam komentar:
// i = i + 1;

Dan
//i += i;

Perintah ini berarti bahwa i menambahkan dirinya sendiri dengan 1. Tanda "++" pada i pada bagian depan dari i (prefix), berarti kita langsung menambahkan variabel i dengan 1, tanpa menggunaan terlebih dahulu nilai dari i. Jika kita menggunakan tanda "++" pada bagian akhir dari variabel i (postfix), berarti nilai dari i digunakan terlebih dahulu lalu kemudian ditambahkan dengan 1. Contoh lain dari hal ini adalah dengan menggunakan pengurangan sebagai pengulangan. Contoh:

#include <iostream>
using namespace std;

void main () {
    int i = 1000;

    while (i >= 1) {
        cout << i << "\n";

        //yang digunakan adalah "—-"
        --i;
    }
}

Hasil yang didapat mungkin saja berbeda, tapi persamaan dari keduanya adalah bahwa terjadi perulangan sebanyak 1000 kali, yaitu:

1000
999
1

Perlu diketahui bahwa yang terjadi pada perulangan jika sudah mencapai false (dimana kondisinya tidak lagi true melainkan false) adalah perulangan akan segera keluar dan melanjutkan program. Misalnya saja dari program di atas, jika i tidak lagi lebih kecil atau sama dengan 1000 (misalnya 1001), perulangan akan menghasilkan nilai false (kondisi tidak lagi i <= 1000).

do...while
Biasanya in adalah perintah untuk tetap melakukan sesuatu dalam program sampai kondisinya terpenuhi (aku memanggilnya "kepala batu" atau "si keras kepala" :DDD). Misalnya perintah untuk tetap menampilan sebuah pesan sampai adanya input yang valid dari user. Contoh:
#include <iostream>
using namecspace std;

void main () {
    char yes_no;
    //lalu beberapa variabel diletakkan di sini...
    //... (di sini misalnya terdapat kerja dari program)

    // disini diletakkan do...while untuk "menunggu" inputan yang
    //valid dari user.
    do {
        cout << "masih mau lanjut? (y / n): ";
        cin >> yes_no;
    } while (yes_no != 'y' || yes_no != 'n');

    if (yes_no == 'y')
        //lakukan terserah apa aja yang anda mau lakukan di sini

    else
        //di sini juga anda bisa lakukan apa saja yang anda mau
        //lakukan
}
Jika kita perhatikan mungkin ada tanda yang di pergunakan dalam kode tersebut. Akan saya coba jelaskan mengenai beberapa operator logika yang terdapat dalam C++.

Operator logika biasanya dipakai dalam perbandingan (kondisi). Mengenai fungsi perbandingan ini akan dibahas dalam bab-bab berikutnya. Operator logika yang biasanya dipakai ada beberapa macam, yaitu:
  • Tanda "&&" (and), operator ini berfungsi jika kedua nilai pembandingnya bernilai true. Contoh: i >= 0 && i <= 1000. Ini berarti penggunaan kondisi dimana kondisi tersebut adalah i lebih besar atau sama dengan 0 dan lebih kecil atau sama dengan 1.000 (0 – 1.000).
  • Tanda "||" (or), operator ini berfungsi jika salah satu dari kedua nilai pembandingnya bernilai true. Contoh: i >= 1000 || i <= 0. Ini berarti penggunaan kondisi dimana kondisi tersebut adalah i lebih besar atau sama dengan 1.000 atau leih kecil atau sama dengan 0 (-1 ke bawah atau 1.001 ke atas).
  • Tanda "!" (not), seperti yang kita lihat terdapat di bagian dari kode di atas adalah merupakan tanda negasi, yang berarti semacam pembalik dari sesuatu. Misalnya seperti yang kita lihat pada potongan kode di atas:

while (yes_no != 'y' || yes_no != 'n');
Ini kurang lebih dapat dibaca: "ketika yes_no tidak sama dengan 'y' n atau
yes_no tidak tidak sama dengan 'n'.

Kembali ke masalah kode di atas, pada bagian "pembuka" kita membuat beberap variabel, salah satunya adalah yes_no yang berfungsi untuk "menampung" nilai atau karakter yang dipilih dari user. Jadi, kita membuat sebuah program yang entah kerjanya baagimana lalu pada bagian akhir dari program tersebut, kita memberikan sebuah pilihan apakah user masih mau lanjut atau tidak. Jika user memasukkan input yang tidak valid misalnya menekan angka 0 atau menekan huruf "t"), maka perintah yang berada dalam blok do…while akan di eksekusi, dan begitu seterusnya jika user masih tidak memasukan input yang valid.

for
Ini adalah (mungkin) perulangan yang paling sering dipakai dalam C++. Sintaknya adalah sebagai berikut:
for (inisialisasi; kondisi; iterasi) {
    //yang ingin dilakukan...
}
Dalam for, anda bisa melakukan inisialisasi, yaitu mendeklarasikan variabel baru dan langsung memasukan nilai di dalamnya, kemudian memberi kondisi dimana perulangan itu akan terus dilakukan, dan pada akhirnya menentukan iterasi. Contoh dari for adalah sebagai berikut:

#include <iostream>
using namespace std;

void main () {
    int num_masuk;
    cout << "berapa banyak anda mau melakukan perulangan?: ";
    cin >> num_masuk;

    for (int i = 1; i <= num_masuk; ++i) {
        cout << "ini adalah baris ke-" << i << "\n" ;
    }
}

Pada kode di atas, yang akan menjadi input dari user untuk menentukan berapa banyak perulangan akan dilakukan adalah num_masuk, dan variabel yang akan dijadikan patokan dalam perulangan adalah i, di mana i di buat di dalam perintah for dan kemudian langsung di assign (inisialisasi). Kondisi yang digunakan adalah kondisi dimana i <= num_masuk yang berarti, jika / selama i lebih kecil atau sama dengan num_masuk maka perulangan akan terus dilakukan. Iteasi yang ditentukan di sini adalah nilai dari i akan ditambah 1 (satu) dalam setiap perulangan (++i). Contoh program yang sudah di compile dari kode ini adalah:
Namun            for juga bisa digunakan sebagai berikut:
for (int i = 1; i <= 10; ++i) {
    for (int j = 1; j <= 10; ++j) {
        cout << i * j << "\n";
    }
}
Program seperti ini dapat digunakan dalam perhitungan perkalian, misalnya saja hasilnya dapat menjadi sebagai berikut:

Koding untuk program ini adalah:
#include <iostream>
using namespace std;

void main () {
    //untuk berapa banyak baris yang diinginkan...
    for (int i = 1; i <= 10; ++i) {
        //jumlah kolom, mengingat bagian ini yang akan
        //dieksekusi lebih lanjut dan sampe selesai daul baru
//dilanjutkan dengan bagian yang selanjutnya (bagian baris)
        for (int j = 1; j <= 3; ++j) {
            cout << i << " X " << j << " = " << j * i << "\t";
        }
        //baris baru, setelah ketiga kolom selesai "dibuat"
        cout << "\n";
    }
}
Break dan continue
Ketika melakukan perulangan, ketika sampai batas tertentu kita ingin memberhentikan perulangan tersebut. Untuk itulah, dibuat statement break dan continue.
break
Adalah perintah untuk langsung keluar dari looping (perulangan). Contoh penggunaan statement break adalah:
while (i > 0) {
    cout << i << "\n";
    if (i == 2)
        break;
    --i;
}
Sudah bisa tebak apa kira – kira yang akan dihasilkan oleh program ini? Kalau belum, silahkan baca lebih lanjut.
Program tersebut akan dieksekusi sampai nilai i sama dengan 2. Seharusnya, progrma tersebut akan bejalan sampai dengan nilai i sama dengan 1. Tapi statement break yang diberikan pada kondisi dimana jika nilai i sama dengan 2 maka looping dihentikan, maka ketika nilai i sama dengan 2, nilai i tidak dikurangi lagi (--i;) dan looping keluar. Hasilnya kurang lebih bisa dilihat sama dengan contoh program berikut:
Kodenya adalah sebagai berikut:
#include <iostream>
using namespace std;
void main () {
    int baris;
    cout << "berapa banyak anda ingin mencetak baris?: ";
    cin >> baris;

    for (int i = 1; i <= baris; ++i) {
        cout << "ok, ini adalah baris yang ke-" << i << "\n";

        if (i == (baris - 1))
            break;
    }
    cout << "sorry, hanya bisa sampe di situ doang... :D\n";
}
continue
Nah, ini juga mirip dengan break tadi hanya saja ini kebalikannya. Langsung saja ke contohnya:
    for (int i = 1; i <= 20; ++i) {
        if (i % 7 == 0)
            cout << i << "\n";
        else
            continue;
    }
Yang di atas itu adalah (kurang lebih) contoh yang saya pelajari ketika saya belajar C++ juga :D. Itu adlaah kode untuk mencari bilangan kelipatan 7 dari 1 – 20. Fungs continue diatas adalah, jika bilangan itu tidak habis di bagi 7 (if (i % 7 == 0)), maka lopingnya dilanjutkan terus, tanpa adanya apa – apa yang akan dieksekusi. Contoh tampilannya adalah sebagai berikut (kali ini kita akan mencoba mencari dari 1 sampai 100):
Kodenya adalah sebagai berikut:
#include <iostream>
using namespace std; 
void main () {
    for (int i = 1; i <= 100; ++i) {
        if (i % 7 == 0)
            cout << i << " adalah kelipatan 7!\n";
        else
            continue;
    }
}


(penulis: Verdhana Yogi)

Jumat, 05 November 2010

Kriteria Pemilihan Algoritma

§  Kriteria Pemilihan Algoritma
  1. Ada Output,
  2. Efektifitas dan Efisiensi,
  3. Jumlah langkahnya berhingga,
  4. Berakhir,
  5. Terstruktur.

Suatu Algoritma yang terbaik (the best) : “Suatu algoritma harus menghasilkan output yang tepat guna (efektif) dalam waktu yang relative singkat dan penggunaan memori yang relatif  sedikit (efesien) dengan langkah yang berhingga dan prosedurnya berakhir baik dalam keadaan diperoleh suatu solusi ataupun tidak ada solusi.”

§  Tahapan Analisa Algoritma
  • Bagaimana merencnakan suatu algoritma
  • Bagaimana menyatakan suatu algoritma
  • Bagaimana validitas suatu algoritma
  • Bagaimana menganalisa suatu algoritma
  • Bagaimana menguji program dari suatu algoritma
§  Cara-cara menyatakan algoritma, sebagai berikut:
  • Dengan bahasa semu (pseudocode)
Pseudo artinya semu atau tidak sebenarnya. Pseudocode artinya notasi yang mirip dengan notasi bahasa pemrogaman tingkat tinggi, khusunya (paling sering) bahasa pascal dan C. Bahasa penrogaman yang direportkan dengan tanda titik koma (semicolon), indeks, format keluaran, aturan khusus dan sebagainya, maka sembaranng versi pseudo-code dapat diterima asalkan perintahnya tidak membinggungkan pembaca.
Keuntungan menggunakan notasi pseudo-code adalah kemudahan mengonfersinya-lebih tepat disebut mentranlasi-ke notasi bahasa pemrogaman, karena terdapat kerespondensi antara setiap pseudo-code dengan notasi bahasa pemrograman. Korespondensi ini dapat diwujudkan dengan tabel translasi dari notasi algoritmik ke notasi bahasa pemrograman apapun.
  • Dengan diagram alur atau flowchart
Mengekspresikan algoritma sebagai sekumpulan bentuk-bentuk geometri (seperti persegi panjang, lingkaran, jajaran genjang, bentuk-intan dan sebagainya) yang berisi langkah-langkah komputasi.
  • Dengan statement program / penanggalan program
Proses diawali dengan kata kerja seperti ’baca’, ’bagi’, ’ganti’, dan sebagainya, sedangkan pernyataan kondisional dinyatakan dengan ’jika........maka........’. notasi ini baik buat orang awam, tetapi terdapaat kesukaran penerjemahannya langsung kedalam notasi bahasa pemrogaman.

§  Tahap proses uji algoritma:
  • Fase Debugging
Yaitu fase dari proses program eksekusi yang akan melakukan koreksi terhadap kesalahan.
  • Fase Profilling
Yaitu fase yang akan bekerja jika program tersebut sudah benar (telah melewati fase debugging).

§   Faktor-faktor yng mempengaruhi eisiensi dan efekrifitas algoritma:
  • Waktu tempuh (running time)
    Hal-hal yang mempengaruhi running time:
Banyaknya langkah
Besar dan jenis input data
Jenis operasi
Komputer dan kompilator
             Jumlah memori yang digunakan



§  KONSEP ALOGARITMA
  • Algoritma Pe-ubah
Adalah variabel yang nilainya dapat berubah-ubah sesuai dengan kondisi variabel terkini. Ciri-cirinya adalah menggunakan tanda panah kearah kiri .
Sintaks      : P=Q
Algoritma  : p¬Q
Arti            : nilai P diberi Q

  • Algoritma Pertukaran
Berungsi untuk mempertukarkan masing-masing isi variabel sedemikian sehingga nilai dari tiap variabel akan berubah atau bertukar. Untuk melakukan petukaran diperlukan variabel baru yang bernilai nol. Ciri-cirinya menggunakan tanda panah kearah kanan

(penulis : Rusyanti)




Kamis, 04 November 2010

Diagram Alur (Flowchart)


Flowchart  adalah  representasi  grafik  dari  langkah-langkah  yang  harus  diikuti  dalam menyelesaikan suatu permasalahan yang terdiri atas sekumpulan simbol, dimana masing-masing  simbol  merepresentasikan  suatu  kegiatan  tertentu. 
Flowchart  diawali  dengan penerimaan input, pemrosesan input, dan diakhiri dengan penampilan output.
Simbol-simbol yang digunakan adalah  sebagai berikut :

                               
·           Proses/Prosessing, satu atau beberapa himpunan penugasan yang akan
·           dilaksanakan secara berurutan.

·           Input /output, data yang akan dibaca & dimasukan ke dalam memori computer dari suatu alat input.

·           Terminal, berfungsi sebagai awal (berisi ‘Start’) &sebagai akhir (berisi ‘ End’) dari suatu proses alur.

·           Decision (kotak keputusan), berfungsi untuk memutuskan arah/percabangan yang diambil sesuai dengan kondisi yang dipenuhi, yaitu Benar/Salah.

·           Subroutine, digunakan untuk menjalankan proses suatu bagian (sub program) atau prosedur.

·           Preparation, digunakan untuk pemberian harga awal.


·           Connector/penghubung, digunakan untuk menghubungkan diagram alur yang terputus dimana bagian tersebut masih berada pada halaman yang sama.

·           On Page Connector, untuk menghubungkan sambungan dari bagian Flowchart yang terputus dimana sambungannya berada pada halaman yang lain.

Diagram alur untuk program computer:

Suatu program computer pada umumnya  terdiri atas:

1.       Pembacaan/pemasukkandata kedalam computer
2.      Malakukan komputasi/perhitungan terhadap data tersebut
3.       Mengeluarkan / mencetak / menampilkan hasilnya.

Contoh-contoh flowchart

1.       Stuktur squence / stuktur sederhana.
Contoh:
             
2.       Stuktur Branching
Contoh:
 
3.       Stuktur looping
Contoh:
               
Struktur branching (percabangan)
A.      Bersyarat
IF….
Diagram yang alurnya ada/banyak terjadi alih control berupa percabangan & terjadi apabila kita dihadapkan pada suatu kondisi dengan dua pilihan BENAR atau SALAH.
Bentuk Umum :
If  (kondisi)
                                                   Pernyataan;
                                               
IF….ELSE
Bentuk Umum :

  if  (kondisi)
perintah  1;
        else
perintah  2;

Nested IF
Pernyataan if yang berada dalam pernyataan if yang lain.
Bentuk Umum :
    
      if (syarat)
          if (syarat)
              ….perintah ;
          else
              ….perintah ;
      else
           if (syarat)
                ….perintah ;
           else

                








                                  ….perintah;
IF….ELSE Majemuk (bertingkat)
If-else majemuk mirip dengan nested if. Keuntungan penggunaan if-else majemuk adalah bentuk penulisan yang lebih sederhana.
Bentuk Umum :

If (syarat)
          {
          …perintah ;
     }
    Else if (syarat)
    {
          …perintah;
    }
    Else
   {
         …perintah;
    }

Switch Case
Untuk menangani pengambilan keputusan yang melibatkan sejumlah atau benyak alternatif.
Bentuk Umum :

    switch  (ekspresi integer atau karakter)
    {
       case konstanta1:
                 ….perintah;
                 break;
       case konstanta2:
                 ….perintah;
                break;
    default:
                ….perintah;
               break;

B.      Tidak Bersyarat
GO TO
Bentuk Umum :

                        go to  label;

(penulis: Aifah)

Kamis, 28 Oktober 2010

SEJARAH ALGORITMA


ALGORITMA adalah jantung ilmu komputer atau informatika. Banyak cabang dari ilmu computer yang diacuh dalam terminology algoritma,misalnya algoritma perutean(routing) pesan di dalam jaringan computer,algoritma brensenham untuk menggambar garis lurus(bidang grafika computer),algoritma Knuth-Morris-Pratt untuk mencari suatu pola didalam teks(bidang information retrievel dan sebagainya.
Ditinjau dari asal suku kata,kata “algoritma” sendiri mempunyai sejarah yang cukup aneh.kata ini tidak muncul didalam kamus Webster sampai akhir tahun 1957. Orang hanya menemukan kata algoritma yang berarti proses manghitung dengan angka arab.
Kata algorism berasal dari nama penulis buku arab yang terkenal,yaitu Abu Ja’far Muhammad Ibnu Musa al-Khuwarizmi(al-khuwarizmi dibaca orang barat menjadi algorism).
Menulis buku yang berjudul kitab Al jabar wal-muqobala,yang artinya “buku Pemugaran dan pengurangan”(the book of restoration and reduction).dari judul buku itu kita juga memperoleh akar kata “aljabar”(algebra).perubahan dari kata algorism menjadi algorithm muncul karena kata algorism sering di kelirukan dengan arithmetic.sehingga kehilangan makna aslinya. Dalam bahasa Indonesia,kata algorithm diserap menjadi “algoritma”.
Pada tahun 1950,kata algoritma pertama kali digunakan pada “Algoritma Euclidean”(euclid’s algorithm). Euclid,seorang matematikawan yunani (lahir pada tahun 350 m),dalam bukunya yang berjudul element menuliskan langkah-langkah untuk menemukan pembagi bersama terbesar (common greatest divisor atau gcd),dari dua buah bilangan bulat, m dan n (tentu saja Euclid tidak menyebut metodenya itu sebagai algoritma,baru di abad modernlah orang-orang menyebut metodenya sebagai “algoritma Euclidean”).pembagi bersama terbesar dari dua bilangan bulat tak negatif adalah bilangan bulat positif terbesar yang habis membagi bilangan tersebut.

Algoritma sendiri mempunyai beberapa definisi lain dari algoritma – tetapi pada prinsipnya senada dengan definisi yang diungkapkan di atas-yang kita kutip dari bebagai literature, antara lain:
  •       Alogaritma adalah deretan langkah-langkah komputasi yang mentranformasikian data masukan menjadi keluaran.
  •       Alogaritma adalah deretan intruksi yang jelas, untuk memecahkan masalah, yaitu untuk memperoleh keluaran yang diinginkan dari suatu masukan dalam jumlah waktu yang terbatas.
  •       Alogaritma adalah prosedur komputansi yang terdefinisi dengan baik yang menggunakan beberapa nilai sebagai masukan dan menghasilkan beberapa nilai yang disebut keluaran. Jadi algoritma adalah deretan atau langkah komputasi yang mentranformasikan masukan menjadi keluaran .
  •  
Sebuah algoritma harus mempunyai lima  ciri penting :
1.  Algoritma harus berhenti setelah mengerjakan sejumlah langkah terbatas sebagai contoh, tinjau kembali algoritma Euclidean. Pada langkah  satu, jika n=o,algoritma berhenti. Jika n≠o, maka nilai n selalu berkurang sebagai langkah 2 dan 3, dan pada akhirnya nilai n=o, program yang tidak pernah berhenti mengidingkasikan bahwa program tersebut bersifat algoritma yang salah.
2.  Setiap langkah harus didefinisikan dengan tepat dan tidak berarti – dua (ambiguous).
3.  Algorima memiliki nol atau lebih masukan atau input.
4.  Algoritma mempunyai nol atau lebih keluaran (output).
5.  Algoritma harus sangkil (effective). Setiap langkah harus sederhana sehingga dapat dikerjakan dalam sejumlah waktu yang masuk akal. 




(penulis : Resti Yulia)