Kamis, 09 Desember 2010

PENCARIAN /Searching

PENCARIAN/ SEARCHING

10.1 Definisi
Pencarian adalah proses menemukan suatu nilai (data) tertentu di dalam sekumpulan data yang bertipe sama. Pencarian merupakan proses yang sangat penting dalam pengolahan data. Setiap data yang akan diolah biasanya akan dilakukan pencarian terlebih dahulu baru kemudian dilakukan proses selanjutnya.

10.2 Sequential Searching/ Linier Searching
Sequential searching atau pencarian beruntun adalah proses membandingkan setiap elemen larik satu persatu secara beruntun, mulai dari elemen pertama sampai elemen yang dicari ditemukan atau seluruh elemen sudah diperiksa.
Contoh:
Terdapat sekumpulan data yang tersimpan di dalam elemen larik L sbb:
13 16 14 21 76 15
a. Misalnya nilai yang dicari (x) = 13
Maka elemen yang dibandingkan secara berturut-turut = 13 (ditemukan). Index larik (idx) = 1.
b. Misalnya nilai yang dicari (x) = 21
Maka elemen yang dibandingkan secara berturut-turut = 13,16,14,21 (ditemukan). Index larik (idx) = 4.
c. Misalnya nilai yang dicari (x) = 10
Maka elemen yang dibandingkan secara berturut-turut = 13,16,14,21,76,15 (tidak ditemukan). Index larik (idx) = -1.




Pseudocode Pencarian beruntun:
Algoritma seq_searching;
Var
i,n,x,idx :integer;
L : array [1..100] of integer;
Begin
{misalnya telah terdapat sekumpulan data yng tersimpan di dalam larik L}
i  1;
while (i<> x) do
i  i+1;
If L[i] = x then
idx  i {ditemukan}
Else
idx  -1 {tidak ditemukan}
End if
End while
End.

10.3 Binary Searching
Pencarian pada data yang telah terurut menunjukkan kinerja yang lebih baik daripada pada data yang masih acak, hal ini karena dapat segera diketahui bahwa x tidak terdapat dalam larik bila ditemukan elemen yang lebih besar dari x.
Binary searching atau biasa disebut pencarian bagi dua merupakan metode pencarian yang paling efisien untuk data yang telah terurut. Metode ini digunakan untuk kebutuhan pencarian dengan waktu yang cepat.
Langkah-langkah pencarian bagi dua untuk data yang telah terurut secara ascending:
1. Bagi dua elemen larik yang telah terurut secara ascending, dengan cara menentukan elemen awal pencarian, elemen akhir pencarian dan elemen tengahnya.
- elemen awal pencarain (lo) = 1
- elemen akhir pencarain (hi) = n
- elemen tengah = (lo + hi) div 2



Misalnya terdapat larik L dengan 9 elemen yang telah terurut secara ascending seperti dibawah ini, maka kita akan menentukan elemen awal, akhir dan tengah pencariannya.


3
6 7 9 10
15 20 30 45




Lo = 1
Hi = 9
Mid = ( 1 + 9 ) div 2 = 5
2. Jika elemen yang dicari ada pada elemen di mid, maka ketemu.
3. Jika elemen yang ada di mid > elemen yang dicari, maka hi berubah
Hi = mid - 1
4. Jika elemen yang ada di mid < elemen yang dicari, maka lo berubah Lo = mid + 1 5. Ulangi langkah-langkah tersebut sampai data yang dicari ditemukan atau sampai elemen telah habis dibagi. Contoh: 3 6 7 9 10 15 20 30 45 Misalnya data yang dicari (x) = 7 1. lo = 1 hi = 9 mid = (1 + 9) div 2 = 5 L[5] = 10 L[mid] > x, maka hi berubah
2. hi = mid -1 = 5 – 1 = 4
lo = 1
mid = ( 1 + 4 ) div 2 = 2
L[2] = 6
L[mid] < x, maka lo berubah 3. lo = mid +1 = 2 + 1 = 3 hi = 4 mid = ( 3 + 4 ) div 2 = 3 L[3] = 7 L[mid] = x, maka data ditemukan Pseudocode Pencarian bagi dua: Algoritma bin_searching; Var lo,hi,mid,n,x,idx :integer; ketemu : boolean; L : array [1..100] of integer; Begin {misalnya telah terdapat sekumpulan data yng tersimpan di dalam larik L} lo  1; hi  n; ketemu  false; while (not ketemu) and (lo <= hi) do mid (lo + hi ) div 2; If L[mid] = x then ketemu  true Else If ( L[mid] > x ) then
lo  mid + 1
Else
hi  mid – 1;
End if
End if
End while
If (ketemu) then
Idx  mid
Else
Idx  -1;
End if
End.

Read More......

PENGURUTAN

9.1  Definisi
Pengurutan adalah proses mengatur sekumpulan objek/ data menurut urutan atau susunan tertentu. Susunan pengurutan ada dua macam, yaitu:
1.      Menaik (Ascending)
Pengurutan dengan susunan dari objek data terkecil ke objek data terbesar.
L[1] £ L[2] £ L[3] £ ………… £  L[n]
2.      Menurun (Descending)
Pengurutan dengan susunan dari objek data terbesar ke objek data terkecil.
L[1] ³ L[2] ³ L[3] ³ ………… ³  L[n]
Klasifikasi pengurutan:
Pengurutan Internal
Metode pengurutan untuk data yang disimpan di dalam memory komputer, umumnya memakai struktur larik sehingga disebut pengurutan larik.
Pengurutan Eksternal
Pengurutan untuk data yang disimpan dalam disk storage, disebut pengurutan arsip/ file
Pada mata kuliah ini hanya dibahas untuk pengurutan larik (internal) saja.
Macam-macam metode pengurutan:
Bubble Sort (Pengurutan Apung)
Selection Sort (Pengurutan Seleksi/ Pilihan)
Insertion Sort (Pengurutan Sisipan)
Shell Sort
Dsb.
Semua metode pengurutan selalu melakukan perbandingan elemen larik untuk menemukan posisi urutan yang tepat.
Pada dasarnya tidak ada metode terbaik untuk pengurutan. Pengurutan metode sederhana hanya bagus untuk data yang kecil. Sebaliknya pengurutan metode cepat (quick sort dan merge sort) bagus untuk volume data yang besar tetapi jika diterapkan pada volume data yang kecil menjadi tidak bagus karena memerlukan beban tambahan (overhead) yang boros waktu dan memori.

9.2  Bubble Sort
Pengurutan metode apung diinspirasi oleh gelembung sabun yang selalu berada di permukaan air. Prinsip metode ini adalah membandingkan kemudian mempertukarkan.

Algoritma pengurutan apung secara ascending:
Untuk setiap pass I = 1, 2, …., n-1, lakukan:
Mulai dari elemen k = n, n-1, ……, i+1, lakukan
Bandingkan L[k] dengan l[k-1]
Pertukarkan L[k] dengan L[k-1] jika L[k] < L[k-1]
Contoh:
Terdapat larik sebagai berikut:
            25        27        10        8          76        21
Akan dilakukan pengurutan dengan metode apung
            Pass 1 à 8      25        27        10        21        76
            Pass 2 à 8      10        25        27        21        76
            Pass 3 à 8      25        21        27        10        76
            Pass 4 à 8      25        27        10        21        76
            Pass 5 à 8      25        27        10        21        76




Pseudocode pengurutan apung secara ascending:
Algoritma apung_menaik;
Var
            i, k, n, temp : integer;
            L : array [1..100] of integer;
Begin
            {misalnya telah terdapat sekumpulan data yng tersimpan di dalam larik L}
For i ß 1 to n-1 do
For k ß n downto i+1 do
If L[k]< L[k-1] then
Temp ß L[k];
L[k] ß L[k-1];
L[k-1] ß temp;
End if
End for
End for
{lakukan pencetakan untuk data yang telah terurut pada larik L}
End.
Untuk pengurutan apung secara descending, ganti operator lebih kecil (<) menjadi lebih besar (>).
Metode pengurutan apung kurang efisien karena banyaknya proses pertukaran yang dilakukan pada setiap langkah pengapungan (pass). Untuk ukuran larik yang besar membutuhkan waktu yang lama untuk pengurutan apung. Keuntungan pengurutan ini adalah sederhana dan mudah dipahami.

9.3  Selection Sort
Metode pengurutan seleksi adalah metode yang memilih elemen maksimum atau minimum dari keseluruhan elemen larik, kemudian menempatkan elemen terpilih tersebut pada awal atau akhir larik (elemen terujung). Selanjutnya elemen terujung tersebut diisolasi dan tidak diikut sertakan pada proses pengurutan selanjutnya. Proses yang sama akan diulang sebanyak n-1 kali.
Terdapat dua macam pengurutan seleksi:
1.      Pengurutan seleksi maksimum (maximum selection)
Memilih elemen terbesar sebagai basis pengurutan
2.      Pengurutan seleksi minimum (minimum selection)
Memilih elemen terkecil sebagai basis pengurutan

Algoritma pengurutan seleksi maksimum secara ascending:
Jumlah pass = n-1
Untuk setiap pass I = 1, 2, …., jumlah pass, lakukan:
Cari elemen terbesar (maksimum) mulai dari elemen ke-1 sampai elemen ke-n.
Pertukarkan elemen terbesar (maksimum) dengan elemen ke-n
Kurangi n dengan satu (n-1), karena elemen ke-n sudah terurut
Contoh:
Terdapat larik sebagai berikut:
            29        27        10        8          76        21
Akan dilakukan pengurutan dengan metode seleksi maksimum
            Pass 1 à 29    27        10        8          21        76                   
Pass 2 à 21    27        10        8          29        76       
Pass 3 à 21    8          10        27        29        76       
Pass 4 à 10    8          21        27        29        76
            Pass 5 à 8      10        21        27        29        76







Pseudocode pengurutan seleksi maksimum secara ascending:
Algoritma seleksi_menaik;
Var
            i, j, n, imaks, temp : integer;
            L : array [1..100] of integer;
Begin
            {misalnya telah terdapat sekumpulan data yng tersimpan di dalam larik L}
For i ß n downto 2 do
            imaks ß 1;
For j ß 2 to i do
If L[j]> L[imaks] then
imaks ß j;
End if
End for
Temp ß L[i];
L[i] ß L[imaks];
L[imaks] ß temp;
End for
{lakukan pencetakan untuk data yang telah terurut pada larik L}
End.

Dibandingkan pengurutan apung, metode ini memiliki kinerja yang lebih baik karena operasi pertukaran elemen hanya dilakukan sekali saja setiap pass. Dengan demikian waktu pengurutan lebih cepat.

9.4  Metode Insertion
Metode insertion atau sisipan adalah metode dengan cara menyisipkan elemen larik pada posisi yang tepat. Pencarian posisi yang tepat dilakukan dengan menyisir larik dengan cara pergeseran elemen larik. Metode ini cocok untuk persoalan menyisipkan elemen baru ke dalam sekumpulan elemen yang telah terurut.

Algoritma pengurutan sisipan secara ascending:
Untuk setiap pass i = 2,3,…., n, lakukan
1.      y ßL[i]
2.      Sisipkan y pada tempat yang sesuai antara L[1] … L[i]
Contoh:
Terdapat larik sebagai berikut:
            29        27        10        8          76        21
Akan dilakukan pengurutan dengan metode sisipan
            Pass 1 à 29    27        10        8          76        21                   
Pass 2 à 27    29        10        8          76        21       
Pass 3 à 10    27        29        8          76        21       
Pass 4 à 8      10        27        29        76        21
            Pass 5 à 8      10        27        29        76        21
Pass 6 à 8      10        27        29        21        76














Pseudocode pengurutan sisipan secara ascending:
Algoritma sisip_menaik;
Var
            i, j, n, y : integer;
            L : array [1..100] of integer;
            Ketemu : boolean;
Begin
            {misalnya telah terdapat sekumpulan data yng tersimpan di dalam larik L}
For i ß 2 to n do
            y ß L[i];
j ß i – 1
ketemu ß false;
while (j >=1) and (not ketemu) do
If y <  L[j] then
L[j + 1] ß L[j];
J ß j – 1
                                                Else
                                                            Ketemu ß true;
End if
End while
L[j + 1] ß y;
End for
{lakukan pencetakan untuk data yang telah terurut pada larik L}
End.

Kelemahan metode ini terletak pada banyaknya operasi pergeseran yang diperlukan dalam mencari posisi yang tepat untuk elemen larik. Pada setiap pass I, operasi pergeseran yang diperlukan minimum i-1 kali. Untuk larik berukuran besar, jumlah pergeseran meningkat secara kuadratik sehingga metode ini tidak cocok untuk volume data yang besar.
9.5  Metode Shell
Metode shell dinamakan sesuai dengan nama penemunya yaitu Donald Shell pada tahun 1959. Merupakan metode perbaikan dari pengurutan sisipan. Pada metode sisipan jika data pada posisi ke-1000, ternyata membutuhkan 998 kali pergeseran elemen. Dengan metode Shell, kita akan mengurutkan larik setiap k elemen dengan metode sisipan, selanjutnya kita gunakan step yang lebih kecil, begitu seterusnya sampai k = 1.
Karena nilai step selalu berkurang, maka metode ini disebut juga sebagai metode pengurutan kenaikan yang berkurang (diminishing increment sort).
Nilai-nilai step dapat dipilih sesuka hati (misalnya 5, 3, 1). Pemilihan step yang merupakan perpangkatan dari 2 ( misalnya 8, 4, 2, 1) dapat mengakibatkan perbandingan elemen yang sama pada suatu pass akan terulang pada pass berikutnya. Sampai saat ini tidak ada yang dapat membuktikan bahwa pemilihan step tertentu paling bagus diantara pemilihan step yang lainnya.

Algortima pengurutan shell
Step ß n
while step > 1 do
step ß step div 3 + 1
for i ß 1 to step do
lakukan pengurutan sisipan setiap elemen ke-step mulai dari elemen ke-i









Pseudocode pengurutan shell
Algoritma urut_shell;
Var
            step, start,n : integer;
            L : array [1..100] of integer;
{Procedure pengurutan sisipan}
Begin
            {misalnya telah terdapat sekumpulan data yng tersimpan di dalam larik L}
                        Step ß n
                        While step > 1 do
                                    Step ß step div 3 +1
                                    For start ß 1 to step do
                                                {panggil prosedur pengurutan sisipan}
                                    End for
                        End while
            End.


0 Response to "Bab IX"

Read More......

SUBRUTIN PROSEDUR DAN FUNGSI

SUBRUTIN PROSEDUR DAN FUNGSI


8.1 Definisi
8.1.1 Pemrograman Modular
Sebuah sistem program yang besar dibangun oleh ribuan baris bahkan jutaan baris perintah. Jika hal itu dibuat utuh dalam sebuah program, maka akan muncul beberapa kendala, yaitu:
- Kesulitan membaca logika program
- Kesulitan perbaikan program
- Kesulitan dalam pencarian kesalahan
- Kesulitan pengembangan program
- Kemungkinan banyak perintah yang sama ditulis secara berulang-ulang.
- Pada saat di eksekusi program menjadi lambat karena membutuhkan ruang lebih di dalam memory.
Oleh karena itu program yang besar perlu dipecah menjadi beberapa bagian program (subprogram) yang lebih kecil berupa modul-modul program yang terpisah dari program utama. Modul-modul program ini akan dijalankan dan dikendalikan oleh program utama.
Program yang dibangun oleh beberapa subprogram disebut dengan pemrograman modular. Struktur pemrograman modular dijelaskan dalam gambar berikut:


















Program utama dipecah menjadi beberapa subprogram agar lebih mudah dikodekan, lebih mudah dipahami serta penghematan dalam penulisan kode program. Selain itu penggunaan memory komputer lebih sedikit sehingga program akan berjalan lebih cepat. Hal ini akan mempermudah dalam melakukan perbaikan program (debugging).

8.1.2 Subprogram
Sub program adalah bagian program yang berdiri sendiri, tetapi pengontrolannya tetap dilakukan melalui program utama. Sub program dapat berupa prosedur atau fungsi. Dalam subprogram dikenal 2 macam variabel, yaitu:
1. Variabel Lokal
Variabel yang dideklarasikan di dalam sebuah subprogram, dan hanya dikenali di dalam subprogram yang bersangkutan.
2. Variabel Global
Variabel umum yang dideklarasikan di dalam program utama. Memiliki lingkup yang global sehingga dapat dikenali diseluruh bagian program baik di dalam subprogram maupun dalam program utama.



Ciri-ciri subprogram yang baik:
1. Memiliki satu fungsi tujuan (Logical Inherent)
Artinya hanya mengandung satu fungsi saja, tidak tercampur dengan hal-hal/ fungsi yang lain.
2. Tidak tergantung pada subprogram yang lain (Independent)
Dapat dijalankan sendiri-sendiri tanpa harus menunggu modul lain selesai. Selain itu harus di parameterisasi dengan baik, sehingga tidak merusak nilai dari nama variabel yang didefinisikan diluar subprogram tersebut.
3. Berukuran kecil (Small size)
Jika subprogram terlalu besar, harus dibagi-bagi lagi menjadi subprogram yang lebih sederhana.
4. Tidak menggunakan variabel global dalam badan subprogramnya.
Struktur penulisan subprogram (prosedur/ fungsi) hampir sama dengan proram pada umumnya, yaitu terdiri dari tiga bagian: Header (kepala program), Deklarasi (variabel lokal) dan badan program yang diawali BEGIN dan diakhiri dengan END dan tanda titik koma.

8.2 Parameter
Parameter merupakan suatu variabel yang berfungsi untuk berkomunikasi antara subprogram dengan titik dimana subprogram tersebut dipanggil pada program utama. Eksekusi subprogram yang diparameterisasi akan melakukan komunikasi antara parameter formal dengan parameter aktual yang berupa transfer data dari parameter aktual sebagai pengirim nilai, dan parameter formal sebagai penerima sekaligus pengembali nilai kepada yang mengirim nilai.
Terdapat 2 macam parameter, yaitu:
a. Parameter Formal
Parameter pada pendeklarasian subprogram, digunakan untuk mendefinisikan suatu data yang akan diolah dan hasil olahannya di dalam subprogram.


b. Parameter Aktual
Parameter pada saat eksekusi subprogram dengan cara dipanggil dari program utama yang berfungsi untuk mengirimkan nilai dan menerima hasil olahannya.
Aturan korespondensi antara parameter aktual dan parameter formal:
1. Jumlah parameter aktual pada pemanggilan subprogram harus sama dengan jumlah parameter formal pada pendeklarasian subprogramnya.
2. Tiap parameter aktual harus bertipe sama dengan tipe parameter formal yang bersesuaian.
3. Tiap parameter aktual harus di ekspresikan dengan cara yang taat dengan parameter formal yang bersesuaian.
Berdasarkan maksud penggunaannya, terdapat 3 jenis parameter formal, yaitu:
1. Parameter Masukan (Input Parameter)
Parameter yang nilainya berlaku sebagai masukan untuk subprogram. Biasanya dinamakan parameter nilai (value parameter/ by value). Saat subprogram dieksekusi, parameter ini tidak terpengaruh oleh nilai variabel yang lain karena hanya berfungsi sebagai penerima data saja.
2. Parameter Keluaran (Output Parameter)
Parameter yang menampung keluaran yang di hasilkan oleh subprogram. Parameter ini sebagai pengirim data nilai hasil proses kepada program pemanggilnya. Jika subprogram dieksekusi, parameter ini tidak terpengaruh oleh nilai yang lain karena hanya sebagai pengirim data nilai hasil proses saja.
3. Parameter Rujukan/ Parameter Input-Output (By Reference)
Parameter yang berfungsi ganda sebagai penerima input dan pengirim hasil proses. Parameter ini digunakan jika informasi harus dikit\rim dalam dua arah. Jika subprogram dieksekusi, maka parameter ini akan ikut berubah. Parameter by reference harus berupa variabel tidak boleh berupa konstanta.


8.3 Prosedur
Prosedur merupakan subprogram yang tidak selalu menghasilkan nilai, tetapi menghasilkan suatu efek netto. Efek netto diketahui dengan membandingkan keadaan awal dan keadaan akhir pada pelaksanaan sebuah prosedur.
Suatu prosedur dikenal berdasarkan nama prosedurnya, kemudian diikuti dengan parameter yang ditulis didalam tanda kurung, bila ada.
Bentuk umum penulisan prosedur:

PROCEDURE nama_prosedur (parameter_formal);
Var
……..
Begin
Pernyataan_1;
Pernyataan_2;
.
.
.
End;

Pemanggilan prosedur:
Prosedur dijalankan dengan cara memanggil namanya dari program utama.
a. Prosedur tanpa parameter
Nama_prosedur;
b. Prosedur dengan parameter
Nama_prosedur (parameter_aktual);








Contoh:
Program luas_persegi_panjang;
Var
P,L :Real;
Procedure Luas_pp (var panjang,lebar :real);
Var
Luas : real;
Begin
Luas:=panjang * lebar;
Writeln(‘Luas Persegi Panjang = ‘, Luas:5:2);
End;

Begin
Write(‘Masukkan panjang=); Readln(P);
Write(‘Masukkan lebar=); Readln(L);
Luas_pp (P,L);
End.

8.4 Fungsi
Fungsi merupakan subprogram yang memberikan/ mengembalikan sebuah nilai tertentu (return value). Nilai hasil dikembalikan ke dalam nama fungsi, oleh karena itu nama fungsi juga sebagai variabel yang memiliki tipe data tertentu.









Bentuk umum penulisan fungsi:
FUNCTION nama_fungsi (parameter_formal) : tipe_data;
Var
……..
Begin
Pernyataan_1;
Pernyataan_2;
.
.
.
{return value}
End;

Pemanggilan fungsi:
Fungsi dijalankan dengan cara memanggil namanya dari program utama. Fungsi pada program utama diperlakukan seperti sebuah variabel yang menampung sebuah nilai hasil fungsi.
a. Fungsi tanpa parameter
Var := Nama_fungsi;
Atau
Writeln (nama_fungsi);
b. Fungsi dengan parameter
Var := Nama_ fungsi (parameter_aktual);
Atau
Writeln (nama_fungsi(parameter_aktual));






Contoh:
Program luas_persegi_panjang;
Var
P,L,Lp :Real;
Function Luas_pp (var panjang,lebar :real):Real;
Var
Luas : real;
Begin
Luas:=panjang * lebar;
Luas_pp := Luas;
End;

Begin
Write(‘Masukkan panjang=); Readln(P);
Write(‘Masukkan lebar=); Readln(L);
Lp := Luas_pp (P,L);
Writeln (‘Luas Persegi Panjang = ‘, Lp:5:2);
End.

8.5 Rekursi
Rekursi adalah suatu subprogram yang memanggil dirinya sendiri. Algoritma rekursif menyediakan teknik penyelesaian persoalan yang di dalamnya mengandung definisi persoalan itu sendiri.
Langkah-langkah merancang algoritma rekursif:
1. Menyatakan persoalan secara rekursif
2. Menentukan kasus yang menyebabkan pemanggilan rekursif berhenti (basis)
3. Menentukan kasus yang menyebabkan pemanggilan rekursif (rekurens).


Contoh: Menghitung nilai faktorial
Function faktorial (n :integer): longint;
Begin
If n = 0 then
Faktorial := 1
Else
Faktorial := n * faktorial (n-1);

Read More......

ArAY

ARRAY/ LARIK

7.1 Definisi
Array merupakan tipe data terstruktur sederhana yang homogen. Array mampu menampung sejumlah data dengan tipe data yang sama di dalam sebuah variabel atau konstanta dengan suatu index pada masing-masing elemennya. Array bertujuan untuk alokasi tempat pada memory.
Macam-macam array:
a. Array berdimensi 1
b. Array berdimensi banyak (multidimensi)
Jumlah index pada array menunjukkan banyak dimensinya.

7.2 Array dimensi 1
Dapat digambarkan sebagai sebuah laci dengan rak-rak di dalamnya.
x
1

6
8
10
7








Dari gambar diatas, terdapat variabel x bertipe array dengan 5 elemen bertipe data integer.
x[1] := 1;
x[2] := 6;
x[3] := 5;
x[4] := 10;
x[5] := 7;
Pendeklarasian variabel array berdimensi 1:
Var
Nama_variabel_array : ARRAY [jumlah_elemen] OF tipe_data;
Contoh:
Var
Angka : array [1..100] of integer;
Satuan : array [1..10] of string[6];
Mengakses array berdimensi 1:
a. Inputan data
Bentuk umum penulisan:
Nama_variabel_array[index] := nilai;
Contoh:
Angka[1] := 88;
Angka[2] := 70;

Satuan[1] := ‘Liter’;
Satuan[2] := ‘Box’
b. Proses
Untuk melakukan proses menggunakan variabel array, sama halnya menggunakan variabel biasa tetapi diikuti index dibelakangnya yang ditulis dalam tanda kurung siku. Contoh:
Luas[1] := panjang[1] * lebar[1];


c. Output
Untuk mencetak variabel array juga sama dengan variabel biasa. Contoh:
Writeln (angka[1]);

Biasanya pengaksesan array dipadukan dengan perulangan untuk counter indexnya. Hal ini bertujuan untuk penyederhanaan algoritma program sehingga kita tidak perlu menulis perintah sebanyak index pada variabel array.

7.3 Kegunaan
a. Menjumlahkan beberapa angka
b. Mencari nilai maksimal atau minimal dari sekumpulan data
c. Mengurutkan sekumpulan data
d. Memindahkan sekumpulan data
e. Dsb.

7.4 Array 2 dimensi
Misalnya terdapat variabel array 2 dimensi bernama x dengan 4 x 3 elemen dengan tipe data character, dapat digambarkan sebagai berikut:
x
A
C Z
F G P
I H O
W
R
K



Maka,
x[1,1] := ‘A’
x[1,2] := ‘C’
x[1,3] := ‘Z’
x[2,1] := ‘F’
x[2,2] := ‘G’
x[2,3] := ‘P’
x[3,1] := ‘I’
x[3,2] := ‘H’
x[3,3] := ‘O’
x[4,1] := ‘W’
x[4,2] := ‘R’
x[4,3] := ‘K’

Pendeklarasian variabel array 2 dimensi
Var
Nama_variabel_array : ARRAY [jumlah_elemen_1, jumlah_elemen_2] OF tipe_data;
Contoh:
Var
Mat : array [1..10,1..10] of integer;
Huruf : array [1..4,1..3] of char;

Read More......

teknik Perulangan

TEKNIK PERULANGAN

6.1 Berbagai Statemen Perulangan
6.1.1 FOR-menaik
Bentuk umum penulisan:
FOR pencacah := awal TO akhir DO
Pernyataan;
6.1.2 FOR-menurun
Bentuk umum penulisan:
FOR pencacah := awal DOWNTO akhir DO
Pernyataan;
6.1.3 WHILE-DO
Pernyataan akan terus diulang selama kondisi terpenuhi (bernilai TRUE). Bentuk umum penulisan:
Pencacah := nilai;
WHILE kondisi DO
Begin
Pernyataan;
Pencacah := Pencacah + 1;
End;
6.1.4 REPEAT-Until
Pernyataan akan terus diulang sampai kondisi terpenuhi (bernilai TRUE). Bentuk umum penulisan:
Pencacah := nilai;
REPEAT
Pernyataan;
Pencacah := Pencacah + 1;
UNTIL kondisi;

6.2 Perulangan Bersarang
Perulangan bersarang yaitu suatu perulangan proses yang di dalamnya terdapat perulangan proses yang lain. Kegunaannya untuk pengolahan data yang banyak dan setiap data memiliki sejumlah sub-data lainnya. Contoh: sejumlah mahasiswa mengambil sejumlah mata kuliah yang berbeda-beda.
Bentuk umum penulisan:
a. FOR bersarang
FOR pencacah_1 := awal TO/DOWNTO akhir DO
Begin
FOR pencacah_2 := awal TO/DOWNTO akhir DO
Pernyataan;
End;

b. While bersarang
Pencacah_1 := nilai;
WHILE kondisi_1 DO
Begin
Pencacah_2 := nilai;
WHILE kondisi_2 DO
Begin
Pernyataan;
Pencacah_2 := Pencacah_2 + 1;
End;
Pernyataan;
Pencacah_1 := Pencacah_1 + 1;
End;


c. Repeat bersarang
Pencacah_1 := nilai;
REPEAT
Pernyataan;
Pencacah_2 := nilai;
REPEAT
Pernyataan;
Pencacah_2 := Pencacah_2 + 1;
UNTIL kondisi_2;
Pencacah_1 := Pencacah_1 + 1;
UNTIL kondisi_1;

Read More......

teknik RUNtutan

TEKNIK RUNTUTAN


4.1 Runtutan
Bentuk umum penulisan struktur runtutan:
Pernyataan 1;
Pernyataan 2;
Pernyataan 3;
.
.
.
Pernyataan n;
Contoh: Menghitung luas persegi panjang
Panjang:=10;
Lebar:=5;
Luas:=panjang*lebar;
Writeln (‘Luas=’, Luas);

4.2 Membaca/ menulis dari/ ke arsip
a. Membuka arsip untuk dibaca
Var fin :text;
Begin
Assign(fin,’data.txt’);
Reset(fin)
…………
…………
End.






b. Membuka arsip unutk ditulis
Var fout :text;
Begin
Assign(fout,’hasil.txt’);
Rewrite(fout)
…………
…………
End.

c. Menutup arsip
Close (fin);
Close (fout);

d. Pernyataan untuk membaca data dari arsip
Read (fin,x);

e. Pernyataan untuk menulis data ke dalam arsip
Write (fout,x);
Contoh:
Program luas_persegi_panjang;
Var
Panjang, Lebar : real;
Luas : real;
Fin, Fout : text;
Begin
{ membuka arsip masukan}
Assign (Fin, ‘data.txt’);
Reset (Fin);
{membuka arsip keluaran}
Assign (Fout, ‘hasil.txt’);
Rewrite (Fout);
{membaca panjang dan lebar dari arsip Fin}
Read (Fin, panjang, lebar);
{menghitung luas}
Luas := panjang * lebar;
{menulis hasil perhitungan luas ke dalam arsip Fout}
Writeln (Fout,’Luas persegi panjang = ‘, Luas);
{menutup arsip}
Close (Fin);
Close (Fout);

End.

Read More......

Pseudocode

2.1 Pseudocode
2.1.1 Definisi
Pseudocode merupakan metode yang cukup efisien untuk menggambarkan suatu algoritma tanpa menggunakan tatacara penulisan bahasa pemrograman tertentu. Pseudocode tidak dapat dieksekusi langsung pada komputer, tetapi merupakan model yang harus diubah menjadi bahasa pemrograman yang sebenarnya.
Pseudocode ditulis dengan bahasa yang mudah dipahami (boleh menggunakan bahasa alami suatu daerah tertentu), agar alur logika yang digambarkan dapat lebih mudah dimengerti. Pseudocode disusun dengan tujuan untuk menggambarkan tahap-tahap penyelesaian masalah dengan kata-kata (teks). Tetapi metode ini memiliki kelemahan karena penyusunannya sangat dipengaruhi oleh tata bahasa pembuatnya sehingga kadang sulit dipahami oleh orang lain yang ingin mempelajarinya.
Pseudocode secara alamiah dapat terdiri dari berbagai bentuk, walaupun banyak meminjam tatacara penulisan dari bahasa pemrograman popular seperti C, Lisp dan Fortran.

2.1.2 Aturan penulisan teks algoritma
Tidak ada notasi yang baku dalam penulisan teks algoritma. Algoritma bukanlah program yang harus mengikuti aturan-aturan tertentu tetapi dituliskan mendekati gaya bahasa pemrograman secara umum. Teks algortima disusun dalam 3 bagian, yaitu:
a. Bagian Kepala Algoritma
Kepala algoritma terdiri dari nama algoritma yang berisi penjelasan tentang algoritma yang menguraikan secara singkat hal-hal yang dilakukan oleh algoritma.
b. Bagian Deklarasi
Berisi semua nama yang digunakan, meliputi nama-nama tipe, konstanta, variable dan sub program.
c. Bagian Deskripsi Algortima
Berisi semua langkah-langkah atau aksi untuk menyelesaikan masalah. Algoritma dibaca dari atas ke bawah.
Setiap bagian disertai dengan penjelasan atau dokumentasi tentang maksud pembuatan teks. Bagian penjelasan dituliskan di dalam kurung kurawal {}.
Contoh: algoritma untuk menghitung luas lingkaran
Algoritma luas_lingkaran {kepala program}
{bagian deklarasi}
Const
Phi  3.14
Var
R, L : Real;
{bagian deskripsi}
Begin
{input data R}
Read(R)
{proses}
If R<= 0 then write(“Data Salah”) else L  phi * R * R End if {output} Write (L) End. 2.2 Flowchart Flowchart adalah gambaran dalam bentuk diagram/ bagan alir dari algoritma-algoritma dalam suatu program yang menyatakan arah alur program tersebut. Digunakan sebagai alat Bantu komunikasi, analisa proses dan untuk dokumentasi. Flowchart merupakan bentuk visual dari pseudocode yang lebih mudah dan sederhana. Flowchart program merupakan bagan yang menggambarkan urutan logika dari proses program dalam pemecahan masalah. Pedoman dalam menggambar flowchart: 1. Sebaiknya digambar dari atas ke bawah dan dimulai dari bagian kiri suatu halaman. 2. Ditunjukkan dengan jelas dimulai dan berakhirnya suatu kegiatan 3. Kegiatan harus ditunjukkan dengan jelas dan digunakan suatu kata yang mewakili suatu pekerjaan tersebut. 4. Kegiatannya sudah dalam urutan yang benar 5. Kegiatan yang terpotong dan akan disambung ditunjukkan dengan symbol penghubung. 6. Digunakan symbol-simbol standart flowchat Simbol-simbol Flowchart: Simbol Keterangan Simbol Keterangan Input/output; digunakan untuk mewakili data i/o Proses; digunakan untuk mewakili suatu proses Garis alir; Menunjukkan arus dari proses Keputusan; digunakan untuk suatu seleksi kondisi didalam program Penghubung; Menunjukkan penghubung ke halaman yg sama atau halaman lain Proses terdefinisi; menunjukkan suatu operasi yang rinciannya ditunjukkan ditempat lain Persiapan; digunakan untuk memberi nilai awal suatu besaran Terminal; menunjukkan awal dan akhir dari suatu proses 2.3 Bahasa Pemrograman Program adalah kumpulan instruksi/ perintah yang disusun sebagai satu kesatuan prosedur yang berupa urutan langkah-langkah untuk menyelesaikan suatu masalah sehingga dapat di eksekusi oleh komputer. Program memberitahukan kepada komputer apa yang harus dilakukan. Pemrograman adalah proses mengimplementasikan urutan langkah untuk menyelesaikan suatu masalah dengan menggunakan bahasa pemrograman. Bahasa pemrograman adalah prosedur/ tatacara penulisan program komputer. Bahasa pemrograman berfungsi sebagai media untuk mneyusun dan memahami suatu program komputer serta sebagai alat komunikasi antara programmer dengan komputer. Pemakaian bahasa pemrograman selalu berhubungan dengan: a. Sintak, urutan gramatikal yang mengatur tatacara penulisan kata, ekspresi dan pernyataan. b. Semantik Aturan-aturan untuk menyatakan suatu arti yang terkandung dalam sebuah statement/ pernyataan. c. Kebenaran Logika Apakah urutan langkah-langkah dan logika sudah benar dan sesuai dengan penyelesaian masalahnya. Bahasa pemrograman digolongkan menjadi: a. Bahasa Mesin Bahasa yang dapat dimengerti oleh komputer berupa bahasa numerik. Setiap jenis komputer memiliki bahasa mesin yang berbeda. b. Bahasa Tingkat Rendah /BTR (Low Level Language) Bahasa pemrograman yang berorientasi pada mesin. Bahasa ini lebih dekat ke bahasa mesin daripada bahasa manusia. Contohnya bahasa assembly. Kelebihan BTR: - Kecepatan eksekusi sangat tinggi - Executable file yang dihasilkan ukurannya paling kecil Kekurangan BTR: - Sulit dipelajari - Bahasa assembly untuk setiap jenis mikroprosesor satu dengan yang lain sangat jauh berbeda karena belum ada standarisasi. - Fungsi-fungsi yang tersedia sangat terbatas c. Bahasa Tingkat Tinggi /BTT (High Level Language) Bahasa pemrograman yang lebih dekat dengan bahasa manusia daripada bahasa mesin. BTT merupakan bahasa pemrograman yang memiliki aturan-aturan gramatikal dalam penulisan ekspresi atau pernyataan dengan standart yang mudah dipahami oleh manusia. Contoh: Basic, Fortran, Cobol, Pascal, Prolog, dll. Kelebihan BTT: - Mudah dipelajari - Mempunyai fasilitas trace and debug untuk mendeteksi adanya kesalahan - Mempunyai fungsi/ library yang lengkap sehingga dapat mempermudah dan mempercepat pembuatan program d. Bahasa Tingkat Menengah (Middle Level Language) Bahasa pemrograman yang mempunyai kelebihan hampir menyamai bahasa assembly karena kelengkapan fungsinya dalam mengakses perangkat keras. Contohnya bahasa C, C++. Eksekusi program oleh komputer, dilakukan dengan cara menterjemahkan bahasa pemrograman BTT menjadi kode bahasa mesin. Yang bertugas menterjemahkan disebut Interpreter dan Compiler. Kedua penterjemah ini membaca perintah source code baris per baris kemudian menterjemahkannya menjadi kode mesin yang bersesuaian. Tetapi bedanya pada Interpreter kode mesin dijalankan seketika dan tidak disimpan, sedangkan pada Compiler kode mesin disimpan. Eksekusi program oleh kompuetr digambarkan sebagai berikut: Macam-macam teknik pemrograman : 1. Pemrograan Terstruktur, merupakan teknik yang terstruktur dan sistematis, merupakan proses mengimplementasikan urutan langkah untuk menyelesaikan suatu masalah dalam bentuk program yang memiliki rancang bangun yang terstruktur dan tidak berbelit-belit sehingga mudah ditelusuri dan dipahami serta dikembangkan oleh siapa saja. Ciri-ciri dari pemrograman terstruktur adalah : a. Mengandung algoritma pemecahan masalah yang tepat dan benar, standart dan efektif. b. Memiliki struktur logika dan struktur program yang benar dan mudah dipahami. c. Memiliki dokumentasi yang baik. 2. Pemrograman Modular, pemrograman dengan pembagian masalah yang besar dan komplek menjadi kelompok masalah yang lebih kecil yang disebut modul. Teknik pemrograman terstruktur yang digunakan untuk menyelesaikan masalah tersebut dinamakan teknik pemrograman modular, tetapi setelah masing-masing modul disusun maka harus dibuat suatu sistem untuk mengintegrasikannya sehingga menjadi satu kesatuan program yang lengkap. Modul program adalah sekumpulan instruksi yang memiliki operasi-operasi dan data yang didefinisikan memiliki struktur internal yang tidak tergantung pada sub program lain dan merupakan satu kesatuan yang akan dieksekusi secara berulang-ulang. Untuk menyusun program modular dapat digunakan konsep fungsi atau prosedur. 3. Pemrograman Berorientasi Object, pemrograman berorientasi object diciptakan supaya konsep yang ada pada dunia nyata dapat diterapkan dalam pemrograman. Dalam pemrograman berorientasi object komponen-komponen dalam program disebut sebagai sebuah object yaitu sesuatu yang memiliki sifat (property), kerja (methode), dan respon terhadap kejadian (event), Object tersebut disusun dari sekumpulan data, prosedur dan fungsi yang dibungkus menjadi satu. Langkah-langkah dalam proses pembuatan suatu program dijelaskan pada gambar dibawah ini: 2.4 Bahasa Pemrograman Pascal Bahasa pemrograman Pascal termasuk dalam bahasa pemrograman tingkat tinggi. Struktur Program dalam Pascal terdiri dari 3 bagian, yaitu: 1. Kepala Program 2. Bagian Deklarasi 3. Bagian Pernyataan (program utama) 2.4.1 Kepala Program Sebuah program pascal diawali bagian kepala program. Penulisan kepala program diawali dengan kata tercadang (reserved word) PROGRAM, kemudian diikuti oleh nama program dan diakhiri tanda titik koma. Bentuk umum: PROGRAM nama_program; Contoh: PROGRAM menghitung_luas_lingkaran; Aturan Pemberian Nama Program Pascal 1. Harus dimulai dengan huruf alphabet (a..z atau A..Z). 2. Selanjutnya dapat diikuti oleh angka (0..9), alphabet atau garis bawah. 3. Tidak boleh memuat spasi, spasi dapat digantikan dengan garis bawah. 4. Tidak boleh memuat operator hitung dan karakter-karakter khusus (~ ! @ # $ % ^ & * ( ) - + = \ | [ ] { } : “ ; ‘ , >)
5. tidak boleh memuat kata tercadang.
6. panjang karakter yang dikenali adalah 32 karakter pertama.

2.4.2 Bagian Deklarasi
Bagian deklarasi berfungsi sebagai tempat untuk mendeklarasikan/ mengenalkan nama-nama yang akan digunakan dalam bagian pernyataan. Terdiri dari 5 macam deklarasi, yaitu:
1. Deklarasi Label
Pendeklarasian nama label untuk menandai suatu bagian pernyataan dalam program utama.
2. Deklarasi Konstanta
Pendeklarasian nama konstanta sebagai penampung data yang bersifat konstan/ tetap.
3. Deklarasi Tipe
Pendeklarasian nama tipe yang digunakan untuk membuat tipe data baru.
4. Deklarasi Variabel
Pendeklarasian nama variabel sebagai penampung data yang bersifat dinamis/ dapat diubah-ubah.
5. Deklarasi Subprogram
Pendeklarasian fungsi atau prosedur yang akan dipanggil pada program utama.
Dari 5 macam deklarasi, tidak perlu dideklarasikan semuanya dalam program. Hanya bagian yang dibutuhkan saja yang harus dideklarasikan.

2.4.3 Bagian Pernyataan
Bagian pernyataan merupakan program utama dalam pemrograman Pascal. Pada saat dilakukan ekseskusi program, komputer akan menjalankan bagian pernyataan ini. Program utama diawali dengan kata tercadang BEGIN dan diakhiri dengan kata tercadang END dan tanda titik.

2.4.4 Unit
Dalam bahasa pemrograman Pascal menyediakan suatu cara pemrograman modular dengan menggunakan Unit.. unit adalah suatu pustaka yang umumnya terdiri dari fungsi atau prosedur serta variabel yang dapat dikompilasi secara terpisah. Dalam program dituliskan dengan clausa USES diikuti dengan nama unit dan diakhiri tanda titik koma.
Contoh: USES CRT;

2.4.5 Komentar
Dalam Pascal komentar ditulis dalam tanda kurung kurawal { }. Kita dapat menulis keterangan atau apa saja di dalam komentar. Komentar tidak akan dieksekusi oleh program. Tujuan penggunaa komentar adalah untuk dokumentasi dan memudahkan orang lain untuk memahami program yang telah kita buat.
2.4.6 Contoh kerangka program Pascal
PROGRAM contoh;
{----------------------------------------------------------}
{ contoh program dengan deklarasi yang lengkap }
{ ----------------------------------------------------------}
USES Crt;
LABEL
Selesai;
CONST
Phi = 3.14;
TYPE
BilanganNyata = Real;
VAR
Jari_jari : BilanganNyata;
PROCEDURE HitungLuas(Radius:BilangaNyata);
Begin
Writeln(‘Luas = ‘,0.5*Phi*Radius*Radius);
End;
{ Program Utama }
BEGIN
Clrscr;
Jari_jari:=10.5;
HitungLuas(Jari_jari);
GOTO Selesai;
Writeln(‘Lho, kok saya dilewati’);
Selesai:
Writeln(‘Selesai…..’);
END.

2.4.7 Pernyataan dalam Pascal
1. Pernyataan Penugasan (assigment)
Pernyataan penugasan digunakan dalam proses pemberian harga/ nilai pada suatu variabel dalam sebuah ungkapan, penulisannya menggunakan simbol :=
Contoh: x := 51;
Luas := p * l;
2. Pernyataan Prosedur
Digunakan untuk mengaktifkan/ memanggil prosedur yang didefinisikan oleh pemrogram ataupun prosedur standart dari pascal sendiri. Penulisannya dengan cara menyebutkan nama prosedur dan diakhiri dengan tanda titik koma.
Contoh: Randomize;
HitungLuas;
Clrscr;
3. Pernyataan Input/ Output
a. Input
Digunakan dalam proses pembacaan data melalui peralatan masukan (keyboard, mouse, dsb) atau melalui pengisian data langsung pada suatu variabel di dalam program yang akan digunakan untuk proses selanjutnya.
Pernyataan input menggunakan perintah READ atau READLN.
b. Output
Digunakan sebagai informasi keluaran yang merupakan hasil dari proses program. Pernyataan output menggunakan perintah WRITE atau WRITELN.
4. Pernyataan Majemuk
Merupakan kumpulan dari beberapa pernyataan yang diawali dengan Begin dan diakhiri dengan End dan tanda titik koma.


Bentuk Umum:
Begin
Pernyataan 1;
Pernyataan 2;
.
.
Pernyataan n;
End;

2.4.8 Tipe data dan Operator
Sebuah program selalu berhubungan dengan data untuk diinputkan, diolah dan kemudian memberikan hasil yang diinginkan. Variabel dan konstanta merupakan penampung data di dalam program. Variabel bersifat dinamis sedangkan konstanta bersifat statis.
Setiap data yang disimpan di dalm variabel atau konstanta harus memiliki tipe data. Ada beberapa tipe data sederhana yang dapat digunakan dalam Pascal. Berikut adalah tipe data yang sering digunakan.
a. Tipe bilangan bulat dapat dikelompokan menjadi:
Tipe: Ukuran memory: kawasan (range):
- Byte 1 byte 0…255
- Word 2 byte 0…65535
- ShortInt 1 byte -128…127
- Integer 2 byte -32768…32767
- LongInt 4 byte -2147483638…2147483647
b. Tipe bilangan pecahan (real)
c. Tipe string yaitu data yang berisi nol atau beberapa karakter. Tipe
string diapit dengan tanda petik(‘….’).contoh:’nama’.
d. Tipe Char yaitu untuk data yang berisi hanya sebuah karakter saja. Misalnya:’A’,’1’,’?’.
e. Tipe Boolean adalah suatu data yang nilainya berupa false ( salah ) atau true ( benar ).
Disamping tipe –tipe tersebut masih terdapat beberapa tipe lainnya dan dapat juga tipe tersebut dibuat sendiri.

Data-data dalam program akan diproses dengan menggunakan operator. Operator adalah simbol atau kata yang digunakan dalam program untuk melakukan suatu operasi data seperti penjumlahan, pengurangan, pemberian nilai ke dalam variabel, membandingkan kesamaan dua buah nilai dan sebagainya.
Nilai data yang dioperasikan oleh operator bersama operand membentuk suatu ekspresi. Operator yang digunakan dalam Pascal:
Operator Matematik
Simbol Keterangan Prioritas
*
/
DIV
Mod
+
- Perkalian
Pembagian bilangan real
Pembagian bilangan bulat
Sisa hasil pembagian
Penjumlahan
Pengurangan 1
1
1
1
2
2

Operator Perbandingan
>
< >=
<= <>
= Lebih besar
Lebih kecil
Lebih besar sama dengan
Lebih kecil sama dengan
Tidak sama dengan
Sama dengan

Operator Logika
AND
OR
NOT Dan
Atau
Bukan

Read More......

Jumat, 03 Desember 2010

AlGoritma Dan Penjelasannya

UTS oleh  tugas ngae BloG ikiw,,Req,,  BloG eh ikuw ,,isine tentang,, Mata Kuliah ,,TEkPro,,alias Teknik peMroGraman,,,

Yo masio Aku ra pati paham,,, Tapi Yo est Kuwajiban Kudu di laksanakNo,,, Agar Supaya,,,Oleh Nilai,,,yo gag mungkir,, yo ikuew kan tujuane,,

heheheheh mbukak aib,,
Tapi to ora ikuw thok Dolor,,, Yo cek paham Karo Opo seh MAteRi TekNik PEmrogRaman Ikuw,,,

wes ,,GAg usa Panjang Lebar,,
      Dalam Pembuatan ProgrAm,,,Ada beberapa LAngklah YAng harus Di perHAtikan YAitu:
  • Mendefinisikan Masalah/Defining the problem *AlgorItma
  • Perencanaan/Planning/Desain sistem* Flow chart
  • Implementasi/Koding/Programming* ,
  • Dokumentasi/Documentation
  • Testing
  • Operasional dan Maintenance     

Ikilow dolor PengerTiane AlgOritMa,,

Kata algoritma berasal dari latinisasi nama seorang ahli matematika dari Uzbekistan Al Khawārizmi (hidup sekitar abad ke-9), sebagaimana tercantum pada terjemahan karyanya dalam bahasa latin dari abad ke-12 "Algorithmi de numero Indorum". Pada awalnya kata algorisma adalah istilah yang merujuk kepada aturan-aturan aritmetis untuk menyelesaikan persoalan dengan menggunakan bilangan numerik arab (sebenarnya dari India, seperti tertulis pada judul di atas). Pada abad ke-18, istilah ini berkembang menjadi algoritma, yang mencakup semua prosedur atau urutan langkah yang jelas dan diperlukan untuk menyelesaikan suatu permasalahan.

Lha terus opo pengertiane,,,??

Menurut temen gue (dengan gaya selonnya),
Algoritma adalah suatu seni dimana kita memecahkan suatu masalah atau pekerjaan.
Sedangkan menurut buku pegangan gue  dan dosen gue
Algoritma adalah alur pikiran dalam menyelesaikan suatu pekerjaan, yang dituangkan dalam bentuk tertulis baik berupa tulisan (Pseudo-Code) ataupun gambar (FlowChart) yang dapat dimengerti orang lain.

Terus opok Oh kok Di sebut Seni ?

Karena Algoritma adalah cara berpikir manusia yang pastinya tak sama, dan dari satu masalah yang sama, bisa saja tercipta Algoritma2 yang berbeda.
Mungkin akan ada yang menyelesaikan masalah itu dalam 4 langkah, sedangkan orang lain dapat menyelesaikannya dalam 3 langkah, atau malah ada yang bisa dengan 2 langkah saja. Dan perbedaan itulah yang menjadikan Algoritma sebuah seni dalam berpikir.

COntOHnE…?

Begini, misalnya kita punya 2 buah gelas yang kita sebut dengan gelas A dan gelas B. Gelas A berisi air merah, sedangkan gelas B berisi air biru. Bagaimana cara kita untuk menukar kedua isi gelas tersebut, sehingga gelas A menjadi berisi air biru dan gelas B berisi air merah?
Jawaban 1:
Tuang air dari gelas A ke gelas B, dan setelah itu tuang air dari gelas B ke gelas A, sehingga gelas A berisi air biru dan gelas B berisi air Merah.
Jawaban ini salah dan tidak logis, karna air merah dan biru akan menyatu dan berubah warna menjadi ungu, jadi tidak akan mungkin gelas A akan berisi air biru dan gelas B akan berisi air merah. Maka Algoritma dari jawaban ini tidak benar.
Jawaban 2:
Gunakan bantuan gelas lain, yang disebut gelas C. Tuang air merah dari gelas A ke gelas C, lalu tuang air biru dari gelas B ke gelas A. Kemudian tuang air merah dari gelas C ke gelas B, sehingga gelas A sekarang berisi air biru dan gelas B berisi air merah.
Algoritma dari jawaban ini benar dan sangatlah logis.
Jawaban 3:
Gunakan bantuan 2 buah gelas lain, yang disebut gelas C dan gelas D. Kemudian tuang air merah dari gelas A ke gelas C, dan tuang air biru dari gelas B ke gelas D. Lalu tuang air merah dari gelas C ke gelas B, dan tuang air biru dari gelas D ke gelas A. Sehingga gelas A sekarang berisi air biru dan gelas B berisi air merah.
Lalu bagaimana dengan jawaban di atas, apakah Algoritma di atas salah? Tidak, Algoritma di atas adalah benar karna langkah2nya tersusun dengan logis dan masalah dapat terpecahkan dengan benar. Hanya saja Algoritma tersebut tidak efektif.

NAh ikuw mau sedikit TentanG Opo Ce AlgOriTma Ikuw,,,
karo tak weNEi weroh ConToHne,,,..

LAk MAu Mbahas Tentang AlGoritMA saiki MAsalah Flow Chart

Opo se flow Chart Ikuw,,,,
                   Flowchart adalah suatu diagram menggunakan simbol-simbol   khusus yang sudah menjadi standard internasional yang berisi langkah-langkah untuk menyelesaikan suatu masalah. sedangkan algoritma bukan merupakan simbol tapi keterangan-keterangan yang sesuai dengan  keinginan kita, tidak ada standarnya. Oleh karena itu flowchart biasa juga disebut sebagai algoritma dalam bentuk simbol-simbol khusus yang dihubungkan dengan anak panah.

IkiLoh SimBol~ sImbole Flow Chart 


 

 

Read More......