Tampilkan postingan dengan label Pascal. Tampilkan semua postingan
Tampilkan postingan dengan label Pascal. Tampilkan semua postingan
Sabtu, 19 Januari 2013

Program Menentukan Bilangan Genap atau Ganjil Pada Pascal

Kali ini saya ingin berbagi program untuk menentukan nilai genap ganjil suatu bilangan bulat yang di inputkan.
Berdasarkan pengalaman yang lalu, program ini merupakan salah satu program yang banyak di cari orang. Namun tak banyak pula yang berakhir dengan kekecewaan karena tidak mendapatkannya.
Program ini menggunakan struktur fungsi. Nah, tanpa berlama-lama lagi, silahkan di lihat programnya.


ALGORITMIK

Fungsi :

Function Genap (input n : integer )  boolean
{true jika n adalah bilangan genap, atau false jika sebaliknya}

DEKLARASI
{tidak ada}
ALGORITMA
Return ( n mod 2 = 0)


Program Pemanggil :

PROGRAM GenapGanjjil
{Program untuk menentukan apakah sebuah bilangan genap atau ganjil }

DEKLARASI
x : integer

function Genap (input  n : integer )  boolean
{true jika n adalah bilangan genap, atau false jika sebaliknya}

ALGORITMA
Read (x)
If genap (x) then
    Write (‘genap’)
Else
Write (‘ganjil’)
Endif

Berikut adalah program utamanya dengan memakai pemaparan. Tulisan yang berwarna merah adalah penjelasannya :

Program GenapGanjil;
{Program utama menentukan apakah sebuah bilangan genap atau ganjil}

(*DEKLARASI*)
uses crt;
Var
x : integer ;
function Genap (n : integer ) : Boolean ;
{true jika n adalah bilangan genap, atau false jika sebaliknya}
Begin
Genap :=(n mod 2 =0 );
End;

(*ALGORITMA*)
Begin
Write ('Ketikkan sembarang bilangan bulat : '); readln (x);
If Genap (x) then
Writeln ('Genap')
Else
Writeln ('Ganjil');
readln;
{Endif}
End.

Berikut adalah program utama menentukan nilai ganjil atau genap suatu bilangan bulat.

Program GenapGanjil;
uses crt;
Var
x : integer ;
function Genap (n : integer ) : Boolean ;
Begin
Genap :=(n mod 2 =0 );
End;
Begin
Write ('Ketikkan sembarang bilangan bulat : '); readln (x);
If Genap (x) then
Writeln ('Genap')
Else
Writeln ('Ganjil');
readln;
End.

Penjelasan :
Fungsi di dalam Pascal tidak dapat mengembalikan nilai yang bertipe terstruktur. Karena itu, fungsi yang mengembalikan tipe terstruktur harus di manipulasi dengan cara mengubah tipe hasilnya menjadi tipe dasar (integer atau Boolean).
Baca Selengkapnya ...
Kamis, 17 Januari 2013

Program Menu Pilihan Empat Persegi Panjang Menggunakan Case Of

Di cuaca yang cerah seperti sekarang, saya ingin berbagi Program Menu Empat Persegi Panjang menggunakan struktur case. Di dalam program ini ada 4 menu. Pertama, untuk menghitung luas persegi panjang. Kedua, Untuk menghitung keliling persegi panjang. Ke-3, untuk menghitung panjang diagonal. Dan Ke-4 Untuk keluar dari program.

Program ini merupakan gabungan dari rumus mencari luas, keliling dan diagonal persegi panjang. Dengan menggunakan struktur case, ketiga rumus tersebut di gabung menjadi satu program sehingga dapat menghemat tenaga untuk membuat  program yang menggunakan masing-masing rumus tersebut.

Selain menggunakan case, program membuat menu juga bisa di di lakukan menggunakan strukstur repeat-until.  Sebagai contohnya yaitu pada postingan ‘pembuatan menu menggunakan repeat-until ‘  yang lain di blog ini .

Baik ini dia program menu empat persegi panjang :

Program EmpatPersegiPanjang;
uses crt;
Var
NomorMenu : integer;
Panjang, lebar : real ;
Luas, keliling, diagonal : real ;
Begin
clrscr;
gotoxy(23,2);writeln ('NAMA  : PASCALMATLAB.BLOGSPOT.COM');
gotoxy(23,3);writeln ('NIM   : ______??');
gotoxy(23,4);writeln ('Prodi : MATEMATIKA??');
gotoxy(18,5);writeln('======================================');
gotoxy(23,6); Writeln (' MENU EMPAT PERSEGI PANJANG  ');
gotoxy(23,7);Writeln (' 1. Hitung Luas ');
gotoxy(23,8);Writeln (' 2. Hitung Keliling ');
gotoxy(23,9);Writeln (' 3. Hitung Panjang Diagonal ');
gotoxy(24,10);Writeln ('4. Keluar Program ');
gotoxy(20,11);Write (' Masukkan pilihan anda 1/2/3/4 : ') ; readln (NomorMenu);
Case NomorMenu of
1 : begin
        Clrscr;
gotoxy(21,2)    ;Writeln (' 1. Hitung Luas ');
gotoxy(21,3)    ;Writeln (' ============================== ');
gotoxy(21,4)    ;Write (' Panjang = '); readln (panjang);
gotoxy(21,5)    ;Write (' Lebar = '); readln (lebar);
    Luas := panjang*lebar;
gotoxy(21,6)    ;writeln ('Luas = ',Luas);
    Readln;
    End;
2 : begin
        Clrscr;
gotoxy(21,3)    ;Writeln (' 2. Hitung Keliling ');
gotoxy(21,4)    ;Writeln (' ============================== ');
gotoxy(21,5)    ;Write (' Panjang = '); readln (panjang);
gotoxy(21,6)    ;Write (' Lebar = '); readln (lebar);
    keliling :=2*panjang+2*lebar;
gotoxy(21,7)    ; writeln ('Keliling = ',keliling);
    Readln;
    End;
3 : begin
        Clrscr;
gotoxy(21,4)    ;Writeln (' 3. Hitung Panjang Diagonal ');
gotoxy(21,5)    ;Writeln (' ============================== ');
gotoxy(21,6)    ;Write (' Panjang = '); readln (panjang);
gotoxy(21,7)    ;Write (' Lebar = '); readln (lebar);
    diagonal:= sqrt(panjang*panjang+lebar*lebar);
gotoxy(21,8)    ;writeln ('Diagonal = ',diagonal);
    Readln;
    End;
4 : writeln ('Keluar Program ');
End;
End.

Tambahan :
Tidak semua bahasa pemrograman menyediakan struktur CASE (misalnya Bahasa Fortran). Bahasa Pascal dan C menyediakan struktur ini. Jika bahasa pemrogrman tidak menyediakan struktur CASE, maka dapat dig anti dengan struktur IF-THEn-ELSE yang ekivalen.

Berikut bentuk algoritmik dari program menu empat persegi panjang di atas :

ALGORITMIK :

PROGRAM EmpatPersegiPanjang
{Menampilkan menu perhitungan empat persegi panjang, memilih menu, dan melakukan proses perhitungan }
DEKLARASI
NomorMenu : integer;
Panjang, lebar : real;
Luas, keliling, diagonal : real;
ALGORITMA
{Cetak menu}
Write (‘ MENU EMPAT PERSEGI PANJANG’)
Write (‘ 1. Hitung Luas ‘)
Write (‘ 2. Hitung Kelilling ‘)
Write (‘ 3. Hitung Panjang Diagonal‘)
Write (‘ 4. Keluar Program ‘)
Case NomorMenu
1 : read (panjang,lebar)
Luas   panjang*lebar
Write (luas)
2 : read (panjang,lebar)
keliling   2*panjang+2*lebar
Write (keliling)
3 : read (panjang,lebar)
diagonal   sqrt(panjang*panjang+lebar*lebar)
Write (diagonal)
4: write (‘Keluar Program’)
endcase

Sekian, mudah-mudahan program ini dapat membawa manfaat untuk semua  dan selamat mengerjakan tugas dan dapatkanlah nilai yang bagus dengan program yang anda lihat ini.hehe….
Baca Selengkapnya ...
Minggu, 13 Januari 2013

Program Menentukan Tahun Kabisat Pada Pascal

Tahun kabisat adalah tahun yang habis di bagi dengan 4. Pada tahun kabisat, bulan Februari berjumlah 29 hari. Contoh tahun kabisat adalah 1996 dan 2002 bukan tahun kabisat karena tidak habis di bagi 4.
Penyelesaian.

Misalkan peubah tahun masehi tersebut adalah tahun.

Analisis kasus ;
Kasus 1 : jika tahun mod 4 = 0, maka tahun adalah tahun kabisat
Kasus 2 : jika tahun mod 4 bukan nol, maka tahun bukan tahun kabisat

Ini adalah algoritma programnya :

Program TahunKabisat
{Menentukan apakah suatu tahun merupakan tahun kabisat atau bukan }

DEKLARASI
Tahun : integer

ALGORITMA
Read (tahun)
If tahun mod 4 = 0 then
Write (‘tahun kabisat’)
Else
Write (‘bukan tahun kabisat’)
Endif

Bentuk programnya pada pascal adalah sebagai berikut :

Program TahunKabisat;
uses crt;
var
   tahun : integer;
begin
clrscr;
write ('Masukkan Tahun :'); Readln (tahun);
      If tahun mod 4 = 0 then
      Write ('tahun kabisat')
Else
Write ('bukan tahun kabisat');
readln
end.

( Menentukan apakah sebuah tahun merupakan tahun kabisat versi 1)

Oh ya, ada lagi jenis penentuan tahun kabisat selain menggunakan algoritma di atas. Dan algoritma kali ini tidak sesederhana program di atas. Suatu tahun di sebut tahun kabisat jika memenuhi salah satu syarat berikut : (i) habis di bagi 4 tetapi tidak habis di bagi 100, atau
(ii) habis di bagi 400.  Misalnya, tahun 1996 adalah tahun kabisat karena habis di bagi 4 dan tidak habis di bagi 100, tetapi tahun 1900 bukan tahun kabisat karena 1900 habis di bagi 4 dan habis di bagi 100, juga tidak memenuhi syarat habis di bagi 400. Tahun 2000 adalah tahun kabisat habis di bagi 400.

Berikut bentuk algoritmanya :

Program TahunKabisat
{menentukan apakah suatu tahun merupakan tahun kabisat atau bukan }
DEKLARASI
Tahun : integer

ALGORITMA
Read ( tahun)
If ( tahun mod 4 = 0 and tahun mod 100   0 ) or ( tahun mod 400 = 0 ) then write (‘Tahun Kabisat’)
Else
Write ( ‘Bukan Tahun Kabisat’)
Endif


Bentuk programnya adalah sebagai berikut :

Program TahunKabisat;
uses crt;
var
   tahun : integer;
begin
clrscr;
Write('Masukkan Tahun : '); Readln ( tahun);
if ((tahun mod 4 = 0) and (tahun mod 100 <> 0)) or (tahun mod 400 = 0) then
write ('Tahun Kabisat')
Else
Write ('Bukan Tahun Kabisat');
readln;
end.

( Menentukan apakah sebuah tahun merupakan tahun kabisat versi 1)

Sedikit Tambahan :
Karena saya menggunakan Turbo Pascal versi 7.0, maka saya menambahkan ( clrscr ) pada program di atas. Fungsinya adalah untuk membersihkan layar pada tampilan output program.

Oke sekian untuk kali ini, mudah-mudahan dapat membantu saudara dalam memahami tentang program  tahun kabisat ini. Karena seperti itulah harapan saya,  saya ingin membantu siapa saja dalam menyelesaikan tugas-tugasnya dan sekaligus membagi sedikit ilmu tentang pemrograman. Meskipun saya  masih dalam tahap belajar pula. Hehehe :D
Kalau ada yang salah dari apa yang saya posting. Mohon di maklumi.
Dan silahkan tinggalkan komentar di bawah kalau ada beberapa hal yang belum di pahami
Selamat mengerjakan tugas dan dapatkanlah nilai yang sebagus-bagusnya untuk kalian. Oke terima kasih ya…
Baca Selengkapnya ...
Minggu, 06 Januari 2013

Program menghitung jumlah deret menggunakan repeat

Hai sobat blogger… pada sore hari ini saya ingin berbagi program ni buat sobat sekalian.
Program ini saya dapat ketika masih semester awal kuliah lalu.

Sedikit perkenalan, ini adalah program menghitung jumlah deret 1+2+3+...+N. Walaupun masih dalam masa-masa sibuk, saya berusaha untuk membuat postingan ini agar dapat membantu siapa saja yang membutuhkan.
Dalam pembuatan program deret ini, pertama saya membuatkan algoritma programnya. Setelah itu barulah program intinya dapat tereselesaikan. Kenapa harus pakai algoritma?

Karena algoritma dapat memudahkan seseorang dalam pembuatan program. Tanpa mengetahui algoritma suatu program, maka  program tersebut tidak akan berhasil di buat. 

Algoritma Program :

Program PenjumlahanDeret
{Menjumlahkan deret
        1 + 2 + 3 + … + N
Dengan N adalah bilangan bulat positif. Nilai N di baca terlebih dahulu. }
DEKLARASI
N : integer
I   : integer
Jumlah : integer

ALGORITMA
 Read (N)
Jumlah <= 0       { inisiasi jumlah deret dengan 0}
For  i   <= 1 to N     { ulangi penjumlahan deret sebanyak N kali }
Jumlah    <= jumlah + i
Endfor
Write (jumlah)

Berikut pembuatan program penjumlahan deret 1+2+3+...+N dengan menggunakan operator REPEAT

Program PENJUMLAHAN_DERET;
Var
    N : integer;
    I  : integer;
Jumlah: integer;

Begin
Write ('Berapa N ?') ; readln (N) ;
Jumlah:= 0;
I:= 1;
Repeat
Jumlah := jumlah + I ;
I := I + 1;
Until I > N;
Writeln ('Jumlah deret = ', Jumlah );
readln;
End.

Penjelasan program di atas adalah sebagai berikut :
Bentu umum pernyataan REPEAT  adalah :

Repeat
    Pernyataan
Until kondisi

Notasi ini mendasarkan pengulangan pada kondisi Boolean. Pernyataan di dalam badan kalang ( berisi dua instruksi yaitu, Jumlah := jumlah + I dan I := I + 1 )
Akan terus di ulang- ulang sampai kondisi bernilai true. Dengan kata lain, jika kondisi masih false (belum terpenuhi), proses pengulangan masih akan terus di lakukan.
Untuk lebih jelasnya telitilah :

Repeat
Jumlah := jumlah + I ;     { jumlah deret sekarang }
I := I + 1;     { suku deret berikutnya }
Until I > N;
Writeln ('Jumlah deret = ', Jumlah );

I harus terdefinisi nilainya sebelum pengulangan di laksanakan pertama kali. Oleh karena itu, pada bagian inisiasi, I diisi dengan nilai 1 yang menandakan ia adalah suku deret pertama. Untuk lebih jelasnya perhatikan di bawah

Write ('Berapa N ?') ; readln (N) ;
Jumlah:= 0;     { jumlah deret pertama }
I:= 1;     { karena bernilai 1, ini adalah suku deret yang pertama}
Repeat

Instruksi yang mengubah nilai peubah kondisi adalah pernyataan ( Jumlah := jumlah + I dan I := I + 1).Pernyataan ini mencacah jumlah pengulangan, sehingga jika I > N, pengulangan di hentikan.

Karena proses pengulangan suatu saat harus berhenti, maka di dalam badan pengulangan harus ada pernyataan yang mengubah nilai peubah kondisi ( I > N ) => pengulangan berhenti.

Pernyataan REPEAT memiliki makna yang sama dengan WHILE, dan dalam beberapa masalah kedua pernyataan tersebut komplemen satu sama lain.

Sekian program untuk menghitung jumlah deret, mudah-mudahan dapat bermanfaat bagi semua. Senang rasanya bisa membantu dengan sedikit pengetahuan yang saya miliki. Good bye selamat menyelesaikan tugas….

       


 

Baca Selengkapnya ...
Senin, 31 Desember 2012

Program Mencari Luas N Buah Segitiga Menggunakan Prosedure

Program Segitiga;
uses crt;
Var
   i, N : integer ;
Procedure HitungLuasSegitiga;
Var
        Alas        :    real;
        Tinggi    :     real;
        Luas         :    real;
Begin
     Write (' Panjang alas segitiga ? ') ; readln (Alas);
     Write (' Tinggi segitiga ? ') ; readln (Tinggi);
     Luas := ( Alas * Tinggi)/2;
     Write ('Luas Segitiga = ',Luas);
End;
Begin
Write ('Banyak segitiga ?'); readln (N);
For i :=1 to N do
    HitungLuasSegitiga;

End.

Untuk penjelasan dari program di atas, silahkan lihat penjelasannya di bawah ini. Bagi yang sudah tahu  berikan kesempatan kepada yang lain untuk mengerti.

 Dalam penjabaran program di atas, kalimat yang berada di dalam program yang memiliki warna merah adalah penjelasan dari program.

Program Segitiga;
{Menghitung Luas N buah segitiga}

(*DEKLARASI*)
{ semua nama yang di pakai dalam prosedur dan hanya berlaku local di dalam prosedur }
Var
      I, N : integer ;
Procedure HitungLuasSegitiga;
{ Menghitung Luas segitiga dengan rumus L = ( alas x tinggi )/2 }
{ K. Awal : sembarang} -> keadaan sebelum prosedur di laksanakan
{K. Akhir : luas segitiga tercetak} -> keadaan setelah prosedur di laksanakan

(*DEKLARASI*)
Var
    Alas        :    real ;     {  panjang alas segitiga, dalam cm }
    Tinggi    :     real;    { tinggi segitiga, dalam cm }
    Luas     :    real;    { luas segitiga, dalam cm^2}
( * ALGORITMA : *)
Begin
Write (‘ Panjang alas segitiga ? ‘) ; readln (alas) ;
Write ( ‘ Tinggi segitiga ? ‘ ‘) ; readln (tinggi) ;
Luas := ( alas * tinggi)/2;
Write (‘ Luas Segitiga = ‘ , Luas);
End;
(* PROGRAM UTAMA : *) -> merupakan program utama dalam suatu program
Begin
Write (‘ Banyak segitiga ?’); readln (N)
For I :=1 to N do
    HitungLuasSegitiga;
    {endfor} -> keadaan setelah prosedur di laksanakan
    End.


Program Mencari nilai n buah segitiga ini di tulis dengan program yang modular. Artinya, program ini di pecah menjadi beberapa prosedur (atau fungsi). Program yang di pecah menjadi beberapa prosedur ini  akan menunujukkan teknik pemrograman yang baik dan terstruktur. Mengapa demikian ? karena dapat menghindari penulisan teks yang sama berkali-kali dan sekaligus di gunakan untuk memudahkan dalam melakukan pelacakan kesalahan dalam program yang di buat. Jadi sangat di anjurkan bila program yang di buat menggunakan Prosedur di banding tanpa prosedur.

Mungkin ada yang belum tahu apa itu prosedur. Prosedur adalah suatu kumpulan instruksi yang di buat oleh pemrogram sebagai pengikat dalam suatu block program tersendiri-sendiri/ sekelompok program

Dalam bahasa Pascal, pendefinisian prosedur di tulis bersatu di dalam program utama, kecuali jika di realisasikan sebagai unit.

Prosedur di letakkan di bawah kata var dan juga prosedur mempunyai parameter masukan/keluaran. Parameter formal yang bertipe keluaran atau masukan/keluran harus di awali dengan kata kunci var, sedangkan parameter  formal yang beripe masukan tidak di awali dengan kata kunci var.

Argumen parameter actual di lewatkan ke parameter formal yang bertipe masukan sebagai “by value”, sedangkan bila parameter formalnya bertipe masukan atau masukan/keluaran, maka argument parameter actual di lewatkan sebagai “by reference”

Oke sekian program mencari luas n buah segitiga, mudah-mudahan dapat membantu saudar.
Baca Selengkapnya ...
Sabtu, 29 Desember 2012

Macam - Macam Perintah Pengulangan Pada Pascal

Salah satu kelebihan komputer adalah kemampuannya untuk mengerjakan pekerjaan yang sama berulang kali tanpa mengenal lelah. Ini berbeda dengan manusia yang cepat lelah bila mengerjakan pekerjaan yang sama berulang-ulang. Tidak hanya lelah, tetapi juga cepat  bosan.
Bagaimana menuliskan sebuah kalimat yang sama sebanyak 500 kali ? sewaktu duduk di sekolah dasar, anda  mungkin pernah di hukum oleh Bapak/Ibu guru untuk menuliskan sebuah kalimat sebanyak 500 kali, misalnya karena anda nakal atau tidak membuat PR. Misalkan kalimat yang harus di tulis 50 kali tersebut adalah :
Saya berjanji tidak akan nakal dan malas lagi
Algoritma yang kurang “ cerdas” untuk menuliskan kalimat tersebut sebanyak 500 kali adalah sebagai berikut:
PROGRAM Menuliskan_Kalimat_500 kali
Menuliskan kalimat “Saya berjanji tidak akan nakal dan malas lagi” sebanyak 500 kali.
ALGORITMA
1.                   Tulis “ saya berjanji tidak akan nakal dan malas lagi”
2.                   Tulis “ saya berjanji tidak akan nakal dan malas lagi”
3.                   Tulis “ saya berjanji tidak akan nakal dan malas lagi”
…
449.           Tulis “ saya berjanji tidak akan nakal dan malas lagi”
500.           Tulis “ saya berjanji tidak akan nakal dan malas lagi”
Tentu saja algoritma untuk menuliskan 500 buah kalimat seperti di atas tidak elegan, karena instruksi
Tulis “ saya berjanji tidak akan nakal dan malas lagi”
Harus di buat di dalam teks algoritma sebanyak 500 kali. Untuk mengatasi hal ini, maka anda dapat menggunakan struktur pengulangan for-do sehingga algoritma menulis sebuah kalimat sebanyak 500 kali adalah seperti Algoritma berikut :
PROGRAM Menuliskan_Kalimat_500 kali
Menuliskan kalimat “Saya berjanji tidak akan nakal dan malas lagi” sebanyak 500 kali.
ALGORITMA
For   i dari 1 sampai 500 do
Tulis “ Saya berjanji tidak akan nakal dan malas lagi”
i adalah pencacah pengulangan yang mencacah pengulangan dari 1 sampai 500. Komputer akan melaksanakan aksi tulis sebanyak pencacahan. Struktur pengulangan ini dapat di tulis secara umum dengan pernyataan-pengulanga sebagai:
For pencacah pengulangan dari a sampaii b do
Aksi
Yang artinya adalah aksi di lakukan sebanyak hitungan pencacah pengulangan, yaitu dari 1 sampai N ( yaitu sebanyak N kali). Pencacah pengulangan dapati di-set tidak hanya mulai dari 1, tetapi juga dari sembarang nilai yang lain. Maka, kita dapat menulis struktur for-do lebih umum sebagai:
For pencacah pengulagan dari a sampai b do
Yang artinya adalah aksi di lakukan sebanyak hitungan pencacah pengulangan, yaitu dari a sampai b sebanyak b-a + 1 kali
Struktur pengulangan yang kedua adalah repeat-until (repeat artinya “ulangi” dan until artinya “ sampai” atau “ hingga”) yang mempunyai bentuk umum sebagai berikut:
Repeat
Aksi
Until kondisi
Yang artinya adalah pengulangan aksi di lakukan hingga kondisi (persyaratan) berhenti terpenuhi.
Sebagai contoh penggunaan struktur repeat-until misalkan kita ingin mengambil data dan nomor telepon dari mahasiswa jika data masukkannya adalah NIM( Nomor Induk Mahasiswa). Data mahasiswa tersimpan di dalam sebuah tabel . Tabel terdiri atas kolom (field) NIM, Nama, Alamat, dan Nomor Telepon. Setiap baris tabel kita sebut satu entry kita asumsikan tabel sudah berisi sejumlah data mahasiswa (tabel berisi minimal satu entry data).
 
Jika kita ingin mencari data dari suatu tabel, maka cara yang umum di gunakan adalah membaca setiap entry tabel satu persatu, mulai dari entry pertama sampai data yang di cari di temukan atau seluruh entry tabel sudah habis di baca.
Algoritma yang mungkin:
 Tinjau entry pertama di dalam tabel
If NIM pada entry sama dengan NIM yang di cari then
Ambil alamat dan telepon dari NIM tersebut
Else
Tinjau entry berikutnya di dalam tabel
If NIM pada entry tabel sama dengan NIM yang di cari then
Ambil alamat dan telepon dari NIM tersebut.
else
tinjau entry berikutnya di dalam tabel
if NIM pada entry tabel sama dengan NIM yang di cari then
ambil alamat dan telepon dari NIM tersebut
else
tinjau entry berikutnya di dalam tabel
…
Algoritma di atas mengandung kelemahan karena pemrograman tidak tahu kapan harus berhenti menulis. Dengan kata lain, pemrogram tidak tahu berapa kali pernyataan
If NIM pada entry tabel sama dengan NIM yang di cari then
ambil Alamat dan Telepon dari NIM tersebut.
Else
Tinjau entry  berikutnya di dalam tabel
Harus di tulis sampai data yang di cari di temukan. Tidak seperti pada struktur for-do yang jumlah  pengulangan di laksanakan, maka kita menggunakan struktur repeat-until jika jumlah pengulangan tidak dapat di ketahui di awal. Namun yang pasti, pengulangan aksi akan terus di lakukan sampai di temukan entry dari NIM yang di tanyakan atau akhir tabel sudah terlampaui.
Algoritma pencarian data di dalam tabel dengan struktur repeat-until di tunjukkan pada Algoritma 2.2
PROGRAM Pencarian
Program mencari alamat seorang mahasiswa di dalam tabel dengan NIM=X.
Tabel sudah berisi data NIM, Nama, Alamat dan Telepon mahasiswa .
Di asumsikan tabel berisi minimal satu entry.
ALGORITMA
Tinjau entry pertama tabel
Repeat
If NIM pada entry tabel sama dengan NIM yang di cari then
Ambil alamat dan telepon dari NIM tersebut
Else
Tinjau entry berikutnya di dalam tabel
Until NIM yang di cari di temukan atau akhir tabel sudah terlampaui
Struktur pengulangan yang ketiga adalah while-do (while artinya”selagi” atau “selama” dan do artinya “lakukan”) yang di tulis secara umum pernyataan :
While kondisi do
Aksi
Yang artinya adalah selama kondisi (persyaratan) pengulangan masih benar, maka aksi di kerjakan. Perbedaannya dengan repeat-until, jika pada repeat-until kondisi pengulangan di evaluasi di akhir, maka pada while-do kondisi pengulangan di evaluasi di awal pengulangan.
Masalah pencarian data di dalam tabel dapat juga di tulis menggunakan struktur while-do di tunjukkan pada Algoritma berikut:
PROGRAM Pencarian
Program mencari alamat seorang mahasiswa di dalam tabel dengan NIM=X.
Tabel sudah berisi data NIM, Nama, Alamat dan Telepon mahasiswa .
Di asumsikan tabel berisi minimal satu entry.
ALGORITMA
Tinjau entry pertama tabel
While NIM yang di cari belum di temukan dan akhir tabel belum terlampaui do
If NIM pada entry tabel sama dengan NIM yang di cari then
Ambil alamat dan telepon dari NIM tersebut
Else
Tinjau entry berikutnya di dalam tabel
Meskipun struktur repeat-until dan while-do mempunyai fungsi yang mirip sehingga pada beberapa kasus dapat saling menggantikan, namun secara umum penggunaannya bergantung pada spesifikasi masalah. Lebih lanjut mengenai struktur pengulangan dapat
Baca Selengkapnya ...
Sabtu, 22 Desember 2012

Penjelasan Tentang Pemilihan (If-Then) dalam Pemrograman Pascal

Di dalam suatu program, perintah pemilihan sering di jumpai. Apalagi pada pembuatan program pengandaian. Pengandaian maksudnya suatu aksi dapat di kerjakan jika suatu kondisi tertentu di penuhi. Misalnya, kendaraan anda tiba di perempatan yang ada traffic light. Jika lampu traffic light sekarang berwarna merah, maka kendaraan anda harus berhenti. Langkah ini kita tulis dalam pernyataan berikut :

Jika lampu traffic light berwarna merah, maka
Berhenti

Pernyataan di atas dapat di tulis dalam pernyataan-pemilihan (selection statement) atau di sebut juga pernyataan-kondisional sebagai berikut:

If kondisi then
aksi

Dalam bahasa Indonesia, if berarti “jika” dan then artinya “maka”, kondisi adalah persyaratan yang dapat bernilai benar atau salah ; aksi sesudah kata then hanya di laksanakan apabila kondisi bernilai benar. Sebaliknya, apabila kondisi bernilai salah, maka aksi tidak di laksanakan. Perhatikan bahwa kata yang di garis bawahi. If dan then merupakan kata kunci (keywords) untuk struktur pemilihan ini.
Dalam kehidupan sehari-hari, kita sering menuliskan pelaksanaan aksi bila suatu persyaratan di penuhi. Misalnya :

If air di dalam ketel mendidih then
Matikan api kompor

If suhu ruangan di atas 50 C then
Bunyikan alarm tanda bahaya

If mobil rusak then
Pakai saja sepeda motor

If x habis di bagi 2 then
Tulis bahwa x bilangan genap
Dan lain sebagainya.

Struktur pemilihan if-then hanya memberikan satu pilihan aksi bila kondisi (persyaratan) di penuhi (bernilai benar), dan tidak memberi pilihan aksi lain bila kondisi bernilai salah. Bentuk pemilihan yang lebih umum ialah memilih satu dari dua buah aksi bergantung pada nilai kondisinya :
If kondisi then
aksi 1
else
aksi 2

Else artinya “kalau tidak”. Bila kondisi bernilai benar, aksi 1 akan di kerjakan, tetapi kalau tidak, aksi 2 yang akan di kerjakan. Misalnya pada pernyataan berikut:

If lampu A nyala then
Tekan tombol merah
Else
Tekan tombol biru
Jika lampu A menyala, maka aksi tekan tombol merah di lakukan, sebaliknya, aksi tekan tombol biru di lakukan bila lampu A tidak menyala.
Contoh lainnya adalah menentukan nilai terbesar dari dua buah bilangan bulat, x dan y (andaikan xy).
If x > y then
Tulis x sebagai bilangan terbesar
Else
Tulis y sebagai bilangan terbesar

Menentukan apakah bilangan bulat x merupakakn bilangan genap atau ganjil :

If x habis di bagi 2 then
Tulis x adalah bilangan genap else
Tulis x adalah bilangan ganjil.

Apabila pilihan aksi yang di lakukan lebih dari dua buah, maka struktur pemilihannya menjadi lebih rumit, seperti pada contoh berikut (pemilihan bersarang atau nested-if);

If lampu traffic light berwarna merah then
Berhenti
Else
If lampu traffic light berwarna kuning then jalan hati-hati
Else
Jalan terus

Perhatikanlah bahwa penggunaan indentasi (rongak kosong) membuat algoritma menjadi lebih mudah di baca. Tanpa indentasi, algoritma menjadi sulit di baca, misalnya jika algoritma di tulis seperti ini:
If lampu traffic light berwarna merah then
Hentikan kendaraan anda
Else if lampu traffic light berwarna kuning then
Jalan dengan hati-hati else
Jalan terus

Anda sebagai penulis algoritma sangat di anjurkan untuk membuat indentasi semacam ini pada setiap struktur pemilhan, agar algoritma menjadi lebih mudah di baca.
Contoh lain dari pentingnya penggunaan indentasi adalah pada pemilihan bersarang untuk menentukan bilangan terbesar dari tiga buah bilangan terbesar dari tiga buah bilangan x, y, dan z.
If x > y then
If x > z then
 Tulis x sebagai bilangan terbesar
Else
Tulis z sebagai bilangan terbesar
Else
If y > z then
Tulis y sebagai bilangan terbesar
Else
Tulils z sebagai bilangan terbesar

Bayangkan betapa sulitnya memahami algoritma di atas jika ia tulis seperti di bawah in :
If x > y then
If x > z then
Tulis x sebagai bilangan terbesar
Else tulis z sebagai bilangan terbesar
Else if y > z then
Tulis y sebagai bilangan terbesar
Else tulis z sebagai bilangan terbesar

Tentu saja masalah menentukan bilangan terbesar untuk empat bilangan atau lebih mempunyai struktur pemilihan bersarang yang makin rumit.
Kelebihan struktur pemilihan terletak pada kemampuannya yang memungkinkan pemroses mengikuti jalur aksi yang berbeda berdasarkan kondisi yang ada. Tanpa struktur pemilihan, kita tidak mungkin menulis algoritma untuk permasalahan yang demikian kompleks.
Baca Selengkapnya ...
Selasa, 18 Desember 2012

Struktur Dasar Algoritma dalam Pemrograman

Algoritma berisi langkah-langkah penyelesaian suatu masalah. Langkah-langkah tersebut dapat berupa runtutan aksi. Pemilihan aksi, dan pengulangan aksi. Ketiga jenis langkah tersebut membentuk konstruksi suatu algoritma. Jadi, sebuah algoritma dapat di bangun dari tiga buah struktur dasar, yaitu: Runtutan,Pemillihan dan Pengulangan.

Runtutan
Sebuah runtutan terdiri dari satu atau lebih pernyataan. Tiap pernyataan di kerjakan secara berurutan sesuai dengan urutan penulisannya, yakni sebuah instruksi di laksanakan setelah instruksi sebelumnya selesai di laksanakan. Urutan instruksi menentukan keadaan akhir algoritma. Bila urutannya di ubah, maka hasil akhirnya mungkin juga berubah. Runtunan satu atau lebih pernyataan yang di lambangkan dengan S1,S2,S3,S4 dan S5 berikut:
S1
S2
S3
S4
Mula-mula pemroses melaksanakan pernyataan S1. Pernyataan S2 di laksanakan setelah pernyataan S1 selesai. Selanjutnya, pernyataan S3 di laksanakn setelah pernyataan S2 selesai. Demikian seterusnya sampai pernyataan terakhir S5 di laksanakan. Setelah pernyataan S5 selesai di laksanakan algoritma berhenti.
Kita ambil contoh pada program Tukar_Isi berikut yang mempertukarkan nilai dari dua buah peubah. Misalkan peubah A=8 dan B=5. Kita ingin mempertukarkan nilai A dan B sedemikian hingga A=5 dan B=8. Kalau anda tulis algoritmanya seperti ini:

Isikan nilai A ke dalam B
Isikan nilai B ke dalam A

Maka hasil A=8 dan B=8. Jadi, algoritma pertukarannya salah. Agar pertukarannya benar, maka perlu di gunakan peubah bantu, misalnya C, sehingga algoritmanya menjadi :
Isikan nilai A ke dalam C
Isikan nilai B ke dalam A
Isikan nilai C ke dalam B
Untuk lebih jelasnya silahkan lihat gambar di atas :


Baca Selengkapnya ...
Rabu, 12 Desember 2012

Sejarah Kata Algoritma dalam Pemrograman

Apakah kalian pernah membuat suatu program, misalnya program Euclidean. Dalam membuat program tersebut tentunya agar mendapatkan output yang di inginkan maka program tersebut haruslah berisi urutan penyelesain masalah yang di susun secara sistematis dan di tulis dalam bahasa pemrograman tertentu (misalnnya Bahasa Pascal). Urutan langkah-langkah penyelesaian masalah inilah yang di namakan algoritma.

Ada banyak definisi algoritma yang di jumpai di berbagai literatur, namun definisi yang umum algoritma adalah urutan logis langkah-langkah penyelesaian masalah.
Jadi, program komputer pada hakikatnya adalah realisasi teknis dari sebuah algoritma. Disebut realisasi teknis karena algoritma di kodekan ke dalam bahasa pemrograman tertentu.

Di tinjau dari asal usul kata, kata algoritma sendiri mempunyai sejarah yang aneh. Kata ini tidak muncul di dalam kamus Webster sampai akhir tahun 1957. Orang hanya menemukan kata algorism yang berarti proses menghitung dengan angka Arab [KNU73].Anda di katakana algorist jika anda menggunakan angka Arab. Para ahli bahasa berusaha menemukan asala kata algorism ini namun hasilnya kurang memuaskan. Kata algorism berasal dari nama penulis buku Arab yang terkenal, yaitu Abu Ja’far Muhammad ibnu Musa al-Khuwarizmi(al-Khuwarizmi di baca orang Barat menjadi algorism).

Al-Khuwarizmi menulis buku yang berjudul Kitab al jabar wal-muqabala, yang artinya “Buku pemugaran dan Pengurangan” ( The book of restoration and education). Dari judul buku kita juga memperoleh akar kata “aljabar” ( algebra). Perubahan dari kata algorism menjadi algorithm muncul karena kata algorism sering di kelirukan dengan arithmetic, sehingga akhiran –sm berubah menjadi –thm. Karena perhitungan dengan angka Arab sudah menjadi hal yang sudah biasa/lumrah, maka lambat laun kata algorithm berangsur-angsur di pakai sebagai metode perhitungan (komputasi) secara umum, sehingga kehilangan makna aslinya [PAR95]. Dalam bahasa Indonesia, kata algorithm di serap menjadi algoritma.

Pada tahun 1950, kata algoritma sering di hubungkan dengan “ algoritma Euclidean” (Euclid’s Algorithm), yaitu proses untuk menemukan pembagi bersama terbesar ( Common greatest divisor  atau gcd ), dari dua buah bilangan bulat tak-negatif adalah bilangan bulat positif terbesar yang habis membagi kedua bilangan tersebut. Misalnya, m=8 dan n=12. Faktor pembagi 80 adalah 1,2,4,5,8,10,16,20,40,80 dan factor pembagi 12 adalah 1,2,3,4,6,12, maka gcd (80,12)=4 Langkah-langkah mencari gcd (80,12) dengan algoritma Euclidean sebagai berikut:

80/12=6, sisa 8

12/8 =1, sisa 4

8/4=0, sisa 0

Karena pembagian yang terakhir menghasilkan 0, maka sisa pembagian terakhir sebelum 0, yaitu 4. Menjadi gcd(80,12). Jadi gcd (80,12) = gcd = (12,8)= gcd(8,4)=gcd(4,0) Proses mencari gcd dari 80 dan 12 juga dapat diilustrasikan sebagai berikut:

80= 6.12+8

12=1.8+4

8=2.4+0

Ada beberapa versi algoritma Euclidean, salah satu versinya sebagai berikut:

PROGRAM Euclidean
Diberikan dua buah bilangan bulat tak negative m dan n (m≥n). Algoritma Euclidean mencari pembagi bersama terbesar, dari kedua bilangan tersebut, yaitu bilangan bulat positif yang habis membagi m dan n.

ALGORITMA
Jika n = 0, maka
M adalah jawabannya;
Stop
Tetapi jika n ≠ 0 ,
Lanjutkan ke langkah 2.
Bagilah m dan n dan misalkan r adalah sisanya.
Gantilah nilai m dengan nilai n dan nilai n dengan nilai r, lalu ulang kembali ke langkah 1.
Baca Selengkapnya ...