Minggu, 12 Juni 2011

Contoh Function Recursive


contoh program sederhana yang menggunakan function recursive tanpa menggunakan loop….

uses crt;
var bil:integer;

function hasil1(x:integer):longint; {fungsi unk bilangan x positif}
begin
if (x mod 2) 0 then dec(x); {jika bil bil bukan genap, maka dikurangi satu}
if x=0 then hasil1:=0 else hasil1:=x+hasil1(x-2); {deret terjadi x+(x-2)+(x-4)+……+0}
end;

function hasil2(x:integer):longint; {fungsi untuk x bilangan negatif}
begin
if (x mod 2) 0 then inc(x); {misal x=-11,maka x=x+1=-10}
if x=0 then hasil2:=0 else hasil2:=x+hasil2(x+2); {deret menjadi x+(x+2)+(x+4)+….+0}
end;

begin
write(‘masukkan bilangan sembarang ‘);
readln(bil);
if bil>=0 then writeln(‘Jumlah genap dari ‘,bil,’ adalah ‘,hasil1(bil))
else writeln(‘jumlah genap dari ‘,bil,’ adalah ‘,hasil2(bil));
end.

Selengkapnya...

Recursive Function


Recursive Function untuk menentukan pangkat n suatu bilangan..program ini sangatlah sederhana. tapi untuk yang tidak mengerti mungkin ini sungguh sangat sulit untuk membuatnya…

uses wincrt;
var bil,n:integer;

function pangkat(x,m:integer):longint;
begin
if m=0 then pangkat:=1 else
pangkat:=x*pangkat(x,m-1); {lakukan rekursif dengan mengurngi pangkatnya yaitu m}
end;

begin
write(‘masukkan bilangan sembarang ‘);readln(bil);
write(‘akan dipangkatkan berapa? ‘); readln(n);
if n<0 then writeln('maaf hanya menghitung pangkat positif') {pengecekan jika n<0} else writeln('hasil ',bil,' pangkat ',n,' adalah ',pangkat(bil,n)); end.
Selengkapnya...

Program Toko Kue


Program ini untuk penginputan kue berdasarkan rasa yang telah tersedia, serta berbagai informasi antara lain melakukan pencarian rasa, informasi harga kue tersebut, stok kue, serta merekap hasil jumlah kue yang terjual dan total pendapatan dari toko kue itu buka hingga tutup. program ini menggunkan beberapa menu dan procedure, yang terdapat 5 record. listingnya sebagai berikut :

uses wincrt;
type kue=record
rasa:string;harga:longint;
stok:byte;
end;
larikkue=array[1..5] of kue;
var
bronis:larikkue;
lagi:boolean;isi,terjual,i:byte;
pil:1..6;
hasil:longint;


procedure isiarray(var x:larikkue);
begin
{isi rasa bisa dilakukan secara manual}
x[1].rasa:='coklat';x[2].rasa:='oroginal';x[3].rasa:='keju';x[4].rasa:='bluberi';x[5].rasa:='kacang';
{isi harga ke dalam array dengan if}
for i:=1 to 5 do {karena toko hanya menyediakan 5 rasa}
begin
if (x[i].rasa='coklat') then x[i].harga:=25000 else if (x[i].rasa='original') then x[i].harga:=23000 else
if (x[i].rasa='keju') then x[i].harga:=26500 else if (x[i].rasa='blueberi') then x[i].harga:=26000 else
x[i].harga:=24500;
end;
end;uses wincrt;
type kue=record
rasa:string;harga:longint;
stok:byte;
end;
larikkue=array[1..5] of kue;
var
bronis:larikkue;
lagi:boolean;isi,terjual,i:byte;
pil:1..6;
hasil:longint;


procedure isiarray(var x:larikkue);
begin
{isi rasa bisa dilakukan secara manual}
x[1].rasa:='coklat';x[2].rasa:='oroginal';x[3].rasa:='keju';x[4].rasa:='bluberi';x[5].rasa:='kacang';
{isi harga ke dalam array dengan if}
for i:=1 to 5 do {karena toko hanya menyediakan 5 rasa}
begin
if (x[i].rasa='coklat') then x[i].harga:=25000 else if (x[i].rasa='original') then x[i].harga:=23000 else
if (x[i].rasa='keju') then x[i].harga:=26500 else if (x[i].rasa='blueberi') then x[i].harga:=26000 else
x[i].harga:=24500;
end;
end;



procedure isistok(var x:larikkue);
begin
for i:= 1 to 5 do
begin
write('masukkan tambahan stok untuk rasa ',x[i].rasa, ' = '); {mengisi stok untuk msg2}
readln(isi); x[i].stok:=x[i].stok+isi;
end;
end;

procedure cari(var x:larikkue);
var cari:string;
ketemu:boolean;
ulang:char;

begin
ulang:='y';
while ulang='y' do
begin
ketemu:=false;
writeln('Anda akan mengecek stok untuk rasa? ');readln(cari);
for i:=1 to 5 do
begin if x[i].rasa=cari then
begin
writeln('bronis rasa ',cari,' dengan harga @Rp',x[i].harga,
' masih tersedia sebanyak ',x[i].stok,' kue');
ketemu:=true;
end;
end;
if not ketemu then writeln('rasa ',cari,' tidak tersedia');
writeln;write('mau cek stok rasa lain? ');readln(ulang);
end;
end;

procedure jual(var x:larikkue);
var beli:string;
ulang:char;
belanja:longint;cacah,n:byte;
ketemu:boolean;
label ulangi;


begin
ulang:='y';cacah:=0;belanja:=0;ketemu:=false;
while ulang='y' do
begin
write('Rasa yang akan dibeli ==> ');readln(beli);
for i:=1 to 5 do
begin
if (x[i].rasa =beli) and (x[i].stok<>0) then
begin
ketemu:=true;
ulangi: writeln('rasa ',beli,' ada. berapa buah mau beli rasa tersebut? ');
readln(n);
if x[i].stok ');readln(ulang);
end;
if ketemu then
begin
writeln('Anda telah membeli kue sejumlah ',cacah,' buah, total pembayaran Rp ',belanja);
writeln('Terimakasih selamat datang kembali');
end
else
writeln('Terimakasih');
end;

procedure cetak(x:larikkue);
begin
writeln('DAFTAR STOK BRONIS ENAK MURAH');
writeln('===================================');
writeln('rasa harga stok');
writeln('-----------------------------------');
for i:=1 to 5 do writeln(x[i].rasa:10,' ',' ',x[i].harga,x[i].stok:4);
writeln('-----------------------------------');
end;

begin
lagi:=true;
isiarray(bronis);
while lagi do
begin
clrscr;
writeln('TOKO BRONIS ENAK MURAH');
writeln('1.Mengisi/tambah stok bronis');
writeln('2.Mencari dan Mengecek stok bronis rasa tertentu');
writeln('3.Penjualan');
writeln('4.Cetak stok');
writeln('5.Rekap');
writeln('6. Tutup toko');
writeln('Pilih <1-6>? ');readln(pil);
case pil of
1: isistok(bronis);
2: cari(bronis);
3: jual(bronis);
4: cetak(bronis);
5: begin
writeln('Saat ini sudah terjual kue sebanyak ',terjual);
writeln('Pendapatan mencapai Rp',hasil);
end;
6: begin
writeln('Terimakasih');lagi:=false;
end;
end;
readln;
end;
end.

Selengkapnya...

Selasa, 31 Mei 2011

Program Pascal = Inputan Data Mahasiswa


Disini ane mau berbagi program input data mahasiswa menggunakan pascal, yang kebetulan ini sebagai tugas besar kelompok ane gan. Syntax sebagai berikut:

Uses WinCrt;
Type Mahasiswa = Record
NoMhs : Word;
Nama : String[20];
IPK : Real;
Usia : Byte;
End;

Var Filemhs : File of Mahasiswa;
Data : Mahasiswa;
Pil,Ul : Char;
Procedure Menu;
Begin
Clrscr;
Gotoxy(34,1);Write('MENU PILIHAN');
Gotoxy(34,2);Write('============');
Gotoxy(27,4);Write('1. Tambah Data Mahasiswa');
Gotoxy(27,5);Write('2. Edit Data Mahasiswa');
Gotoxy(27,6);Write('3. Hapus Data Mahasiswa');
Gotoxy(27,7);Write('4. Tampilkan Data Mahasiswa');
Gotoxy(27,8);Write('5. View Mahasiswa Berdasarkan Umur');
Gotoxy(27,9);Write('6. Hapus NoMhs Ganjil');
Gotoxy(27,10);Write('9. Keluar (Exit)');
Gotoxy(32,12);Write('Pilihan [1..9]: ');Pil:=Readkey;
End;
Procedure BukaFile;
Begin
Assign(FileMhs,'Mhs.Dat');
{$I-};
Reset(FileMhs);
{$I+};
End;



Procedure Tambah;
Var Lagi: Char;
Ada : Boolean;
i : Integer;
NOCR: Word;
Begin
Ul:='Y';
Lagi:='Y';
Clrscr;
BukaFile;
If IOResult<>0 Then
Rewrite(FileMhs);
Repeat
Clrscr;
Ada:=False;
i:=0;
Gotoxy(30,1);Write('TAMBAH DATA MAHASISWA');
Gotoxy(30,2);Write('=====================');
Gotoxy(20,4);Write('No. Mahasiswa : ');Readln(NOCR);
While (Ada=False) And (i<>Filesize(FileMhs)) Do
Begin
Seek(FileMhs,i);
Read(FileMhs,Data);
If Data.NoMhs=NOCR Then
Ada:=True
Else
Inc(i);
End;
If (Ada=True) Then
Begin
Gotoxy(20,9);Write('Nomor Mahasiswa "',NOCR,'" Ini Sudah Ada!');
End
Else
Begin
Seek(FileMhs,Filesize(FileMhs));
Data.NoMhs:=NOCR;
Gotoxy(20,5);Write('Nama Mahasiswa : ');Readln(Data.Nama);
Gotoxy(20,6);Write('IPK : ');Readln(Data.IPK);
Gotoxy(20,7);Write('Umur : ');Readln(Data.Usia);
Write(FileMhs,Data);
End;
Gotoxy(20,10);Write('Mau Tambah Data Lagi [Y/T]:');Lagi:=Upcase(Readkey);
Until Lagi<>'Y';
Close(FileMhs);
End;
Procedure Edit;
Var Lagi: Char;
Ada : Boolean;
i : Integer;
NOCR: Word;
Begin
Ul:='Y';
Lagi:='Y';
Clrscr;
BukaFile;
If IOResult<>0 Then
Write('Data Masih Kosong...!')
Else
Begin
Repeat
Clrscr;
Ada:=False;
i:=0;
Gotoxy(30,1);Write('EDIT DATA MAHASISWA');
Gotoxy(30,2);Write('=====================');
Gotoxy(20,4);Write('No. Mahasiswa : ');Readln(NOCR);
While (Ada=False) And (i<>Filesize(FileMhs)) Do
Begin
Seek(FileMhs,i);
Read(FileMhs,Data);
If Data.NoMhs=NOCR Then
Begin
Ada:=True;
Gotoxy(20,5);Write('Nama Mahasiswa : ',Data.Nama);
Gotoxy(20,6);Write('IPK : ',Data.IPK:1:2);
Gotoxy(20,7);Write('Umur : ',Data.Usia);
End
Else
Inc(i);
End;
If (Ada=True) Then
Begin
Data.NoMhs:=NOCR;
Gotoxy(20,9);Write('Nama Mahasiswa : ');Readln(Data.Nama);
Gotoxy(20,10);Write('IPK : ');Readln(Data.IPK);
Gotoxy(20,11);Write('Umur :');Readln(Data.Usia);
Seek(FileMhs,i);
Write(FileMhs,Data);
End
Else
Begin
Gotoxy(20,13);Write('Nomor Mahasiswa "',NOCR,'" Ini Tidak Ada!');
End;
Gotoxy(20,14);Write('Mau Edit Data Lagi [Y/T]:');Lagi:=Upcase(Readkey);
Until Lagi<>'Y';
End;
Close(FileMhs);
End;
Procedure Hapus;
Var FileTmp : File of Mahasiswa;
Lagi,Hapus: Char;
Ada : Boolean;
i : Integer;
NOCR : Word;
Begin
Ul:='Y';
Lagi:='Y';
Clrscr;
Repeat
BukaFile;
If IOResult<>0 Then
Write('Data Masih Kosong...!')
Else
Begin
Clrscr;
Assign(FileTmp,'mhs.tmp');
Rewrite(FileTmp);
Ada:=False;
i:=0;
Gotoxy(30,1);Write('HAPUS DATA MAHASISWA');
Gotoxy(30,2);Write('=====================');
Gotoxy(20,4);Write('No. Mahasiswa : ');Readln(NOCR);
While (Ada=False) And (i<>Filesize(FileMhs)) Do
Begin
Seek(FileMhs,i);
Read(FileMhs,Data);
If Data.NoMhs=NOCR Then
Ada:=True
Else
Inc(i);
End;
If (Ada=True) Then
Begin
Gotoxy(20,5);Write('Nama Mahasiswa : ',Data.Nama);
Gotoxy(20,6);Write('IPK : ',Data.IPK:1:2);
Gotoxy(20,7);Write('Umur : ',Data.Usia);
Gotoxy(20,9);Write('Data Ini Mau Di Hapus [Y/T]:');Readln(Hapus);
If Upcase(Hapus)='Y' Then
Begin
For i := 1 to Filesize(FileMhs) Do
Begin
Seek(FileMhs,i-1);
Read(FileMhs,Data);
If Data.NoMhs<>NOCR Then
Write(FileTmp,Data);
End;
Close(FileMhs);
Assign(FileMhs,'MHS.Dat');
Erase(FileMhs);
Assign(FileTmp,'Mhs.tmp');
Rename(FileTmp,'Mhs.Dat');
Gotoxy(20,10);Write('Nomor Mahasiswa "',NOCR,'" Sudah Di Hapus!');
End;
End
Else
Begin
Gotoxy(20,10);Write('Nomor Mahasiswa "',NOCR,'" Ini Tidak Ada!');
End;
Gotoxy(20,11);Write('Mau Hapus Data Lagi [Y/T]:');Lagi:=Upcase(Readkey);
End;
Until Lagi<>'Y';
End;
Function RataIPK(TIPK:Real;n:integer):Real;
Begin
RataIPK:=TIPK/n;
End;
Procedure Tampil;
Var i : Integer;
TIPK : Real;
Begin
Ul:='Y';
TIPK:=0;
BukaFile;
If IoResult <> 0 Then
Write('Maaf Data Masih Kosong ! ')
Else
Begin
Clrscr;
Writeln(' DATA MAHASISWA ');
Writeln;
Writeln('================================================');
Writeln(' NO NIM NAMA IPK UMUR ');
Writeln('================================================');
i:=0;
While Not EoF(FileMhs) Do
Begin
Inc(i);
Read(FileMhs,Data);
Writeln(i:3,Data.NoMhs:6,Data.Nama:20,Data.IPK:8:2,Data.Usia:10);
TIPK:=TIPK+Data.IPK;
End;
Writeln('================================================');
Writeln('Rata-Rata IPK: ',RataIPK(TIPK,i):1:2);
Writeln('================================================');
Close(FileMhs);
End;
Writeln;
Write('Press Any Key to Continue...');Readkey;
End;
Procedure View_Umur;
Var i : Integer;
Umur : Byte;
Lagi : Char;
Begin
Ul:='Y';
Lagi:='Y';
Repeat
Clrscr;
Write('Tampilkan Umur Besar Dari: ');Readln(Umur);
BukaFile;
If IoResult <> 0 Then
Write('Maaf Data Masih Kosong ! ')
Else
Begin
Writeln(' DATA MAHASISWA ');
Writeln(' UMUR DI ATAS ',Umur:2,' TAHUN');
Writeln;
Writeln('================================================');
Writeln(' NO NIM NAMA IPK UMUR ');
Writeln('================================================');
i:=0;
While Not EoF(FileMhs) Do
Begin
Read(FileMhs,Data);
If Data.Usia>Umur Then
Begin
Inc(i);
Writeln(i:3,Data.NoMhs:6,Data.Nama:20,Data.IPK:8:2,Data.Usia:10);
End;
End;
Writeln('================================================');
Close(FileMhs);
End;
Writeln;
Write('Mau Lihat Data Lagi [Y/T]: ');Lagi:=Upcase(Readkey);
Until Lagi<>'Y';
End;
Procedure Hapus_NoMhs;
Var FileTmp : File of Mahasiswa;
Lagi,Hapus: Char;
i : Integer;
Begin
Ul:='Y';
Lagi:='Y';
Clrscr;
Repeat
BukaFile;
If IOResult<>0 Then
Write('Data Masih Kosong...!')
Else
Begin
Clrscr;
Assign(FileTmp,'mhs.tmp');
Rewrite(FileTmp);
i:=0;
Gotoxy(20,3);Write('Mau Menghapus No. Mahasiswa Yang Ganjil[Y/T]: ');Readln(Hapus);
If Upcase(Hapus)='Y' Then
Begin
For i := 1 to Filesize(FileMhs) Do
Begin
Seek(FileMhs,i-1);
Read(FileMhs,Data);
If (Data.NoMhs Mod 2)=0 Then
Write(FileTmp,Data);
End;
Close(FileMhs);
Assign(FileMhs,'Mhs.Dat');
Erase(FileMhs);
Assign(FileTmp,'Mhs.tmp');
Rename(FileTmp,'Mhs.Dat');
Gotoxy(20,10);Write('Nomor Mahasiswa Sudah Di Hapus!');
End;
Gotoxy(20,11);Write('Mau Hapus Data Lagi [Y/T]:');Lagi:=Upcase(Readkey);
End;
Until Lagi<>'Y';
End;
Begin
Repeat
Menu;
Case Pil Of
'1' : Tambah;
'2' : Edit;
'3' : Hapus;
'4' : Tampil;
'5' : View_Umur;
'6' : Hapus_NoMhs;
End;
Until (Ul<>'Y') Or (Pil='9');
DoneWinCrt;
End.

Selengkapnya...

Sabtu, 21 Mei 2011

Pengenalan Komputer Beserta Hardware



Pengenalan Komputer





Hampir seluruh aspek kehidupan manusia saat ini tidak dapat dilepaskan dari teknologi, khususnya teknologi komputer. Dapat dilihat bahwa untuk menuliskan suatu dokumen, orang cenderung sudah meninggalkan mesin ketik manual dan sudah digantikan perannya oleh komputer. Kasir di suatu pertokoan besar (supermarket) sudah menggunakan peralatan otomatis berupa komputer yang didisain khusus untuk keperluan itu. Kumpulan lagu-lagu yang sebelumnya hanya dapat didengarkan melalui media kaset atau piringan hitam, saat ini sudah mulai dikemas dalam bentuk compact disk (CD) yang dapat didengarkan dengan menggunakan komputer multimedia. Belum lagi perkembangan teknologi komputer di bidang kesehatan yang maju sangat pesat untuk membantu diagnosa penyakit dan proses penyembuahnnya. Dan masih banyak lagi bidang-bidang kehidupan manusia yang saat ini sudah menggunakan peralatan komputer.

Ketiga elemen sistem komputer tersebut harus saling berhubungan dan membentuk satu kesatuan. Perangkat keras tanpa perangkat lunak tidak akan berarti apa-apa, hanya berupa benda mati. Kedua perangkat keras dan lunak juga tidak dapat berfungsi jika tidak ada manusia yang mengoperasikannya.

Setiap mesin yang mampu menerima data, memproses data, menyimpan data, dan menghasilkan bentuk keluaran berupa teks, gambar, simbol, angka dan suara dapat dikategorikan sebagai komputer. Dalam pengoperasian, bentuk, sistem dan fungsinya komputer dapat dibagi menjadi dua(2) bagian yaitu hardware dan software.

Dalam penggunaan komputer ada 3 komponen yang terlibat secara intens, yaitu hardware (perangkat keras), software (perangkat lunak), dan brainware (manusia). Tidak ada sistem komputer dan kegiatan komputasi yang tidak melibatkan ketiga komponen tersebut. Robot, walaupun seakan-akan tidak ada komponen brainware yang terlibat, namun sebelum robot tersebut dapat beraktivitas, dia harus diprogram terlebih dahulu oleh manusia.









HARDWARE (PERANGKAT KERAS)





Perangkat keras komputer (hardware) adalah semua bagian fisik komputer, dan dibedakan dengan data yang berada di dalamnya atau yang beroperasi di dalamnya, dan dibedakan dengan perangkat lunak (software) yang menyediakan instruksi untuk perangkat keras dalam menyelesaikan tugasnya.

Supaya komputer dapat digunakan untuk mengolah data, maka harus berbentuk suatu sistem yang disebut dengan sistem komputer. Secara umum, sistem terdiri dari elemen-elemen yang saling berhubungan membentuk satu kesatuan untuk melaksanakan suatu tujuan pokok dari sistem tersebut.

Perangkat Keras adalah bagian2 dari material komputer. Komponen2 ini mempunyai massa dan akan diinstalasi dengan obeng. Setiap perangkat keras memiliki garansi. Sedangkan Perangkat Lunak adalah kebalikan dari Perangkat Keras yakni bagian2 yg non material dari komputer. Seperti : BIOS, Sistem operas dan program-program. Perangkat Lunak akan diinstalasikan ke dalam komputer melalui "Keyboard" dan "Mouse".Tidak ada perusahaan pembuat perangkat lunak yg bisa memberikan garansi bahwa perangkat lunaknya 100% tidak memiliki kesalahan.



lebih lengkap



Selengkapnya...