Blogroll

This is default featured post 1 title

Go to Blogger edit html and find these sentences.Now replace these sentences with your own descriptions.This theme is Bloggerized by Lasantha Bandara - Premiumbloggertemplates.com.

This is default featured post 2 title

Go to Blogger edit html and find these sentences.Now replace these sentences with your own descriptions.This theme is Bloggerized by Lasantha Bandara - Premiumbloggertemplates.com.

This is default featured post 3 title

Go to Blogger edit html and find these sentences.Now replace these sentences with your own descriptions.This theme is Bloggerized by Lasantha Bandara - Premiumbloggertemplates.com.

This is default featured post 4 title

Go to Blogger edit html and find these sentences.Now replace these sentences with your own descriptions.This theme is Bloggerized by Lasantha Bandara - Premiumbloggertemplates.com.

This is default featured post 5 title

Go to Blogger edit html and find these sentences.Now replace these sentences with your own descriptions.This theme is Bloggerized by Lasantha Bandara - Premiumbloggertemplates.com.

Sabtu, 08 Desember 2012

string

1.       Fungsi-fungsi String
2. Fungsi-fungsi Date
3. Fungsi-fungsi Konversi
4. Program Permainan
Semoga bahasan ini menjadi menarik dan bermanfaat untuk Anda semua.
FUNGSI-FUNGSI STRING
Berikut ini adalah fungsi-fungsi untuk memanipulasi data String. Jalankan aplikasi
Pascal Anda, ketikkan kode berikut:
PROGRAM MANIPULASISTRING;
USES CRT;
a. Lower Case
Fungsi ini akan mengubah string yang diinputkan menjadi Lower Case (huruf kecil).
Ketikkan fungsi berikut ini:
b. Upper Case
Fungsi ini akan mengubah string yang diinputkan menjadi Upper Case (huruf besar).
Ketikkan fungsi berikut ini:
c. Proper Case
Fungsi ini akan mengubah string yang diinputkan menjadi Proper Case (huruf besar
untuk huruf awal setiap kata). Ketikkan fungsi berikut ini:

FUNCTION LCASE(S:STRING):STRING;
VAR I:INTEGER;
BEGIN
FOR I:= 1 TO LENGTH(S) DO
IF (S[I] >= 'A') AND (S[I] <= 'Z') THEN
INC(S[I], 32);
LCASE := S;
END;
FUNCTION UCASE(S:STRING):STRING;
VAR I:INTEGER;
BEGIN
FOR I:= 1 TO LENGTH(S) DO
IF (S[I] >= 'a') AND (S[I] <= 'z') THEN
DEC(S[I], 32);
UCASE := S;
END;


 


Untuk mencoba fungsi-fungsi di atas, ketikkan program utama sebagai berikut:
{program utama}
BEGIN
CLRSCR;
WRITE(LCASE('Created By vian sastra '));
WRITE(UCASE('Created By vian sastra '));
WRITE(PCASE('Created By vian sastra '));
READLN;
END.

Lihatlah tampilan pada layar monitor Anda!
Baris pertama, tiap kata ditulis dengan huruf kecil, baris ke-2 tiap kata ditulis dengan
huruf besar, dan baris ke-3, tiap kata hanya huruf awal saja yang ditulis dengan huruf
besar.
FUNCTION PCASE(S:STRING):STRING;
VAR I, J:INTEGER;
BEGIN
IF (S[1] >= 'a') AND
(S[1] <= 'z') THEN
DEC(S[1], 32);
FOR I:= 2 TO LENGTH(S) DO
IF (S[I] >= 'A') AND
(S[I] <= 'Z') THEN
INC(S[I], 32);
FOR I:= 2 TO (LENGTH(S)-1) DO
IF (S[I] = ' ') THEN
BEGIN
J := I;
IF (S[J + 1] >= 'a') AND
(S[J + 1] <= 'z') THEN
DEC(S[J + 1], 32);
END;
PCASE := S;
END;

 





FUNGSI-FUNGSI DATE
Berikut ini adalah fungsi-fungsi untuk memanfaat sistem date dari unit Dos, untuk
menampilkan tanggal atau hari sesuai data pada sistem komputer. Jalankan aplikasi
Pascal Anda, ketikkan kode berikut:

PROGRAM TAMPILTANGGAL;
USES CRT, DOS;
(* FUNGSI UNTUK MENGKONVERSI
NILAI INTEGER MENJADI STRING *)
FUNCTION INTTOSTR(I: LONGINT): STRING;
VAR
S: STRING[12];
BEGIN
STR(I, S);
INTTOSTR := S;
END;

a. Menampilkan Tanggal Sistem
Fungsi ini akan menampilkan tanggal dari sistem komputer Anda.
b. Menampilkan Nama Hari
Fungsi ini akan menampilkan tanggal dari sistem komputer Anda.

FUNCTION TANGGAL:STRING;
VAR
Y, M, D, DOW : Word;
BEGIN
GETDATE(Y,M,D,DOW);
TANGGAL := INTTOSTR(D) + '-'
+ INTTOSTR(M) + '-' + INTTOSTR(Y);
END;
FUNCTION HARI_INI:STRING;
CONST
DAYS : ARRAY [0..6] OF STRING[9] =
('MINGGU','SENIN','SELASA',
'RABU','KAMIS','JUMAT',
'SABTU');
VAR
Y, M, D, DOW : Word;
BEGIN
GETDATE(Y,M,D,DOW);
HARI_INI := 'HARI INI : ' + DAYS[DOW] + ', ';
END;

Untuk mencoba fungsi-fungsi di atas, ketikkan program utama sebagai berikut:
(* program utama *)
BEGIN
CLRSCR;
WRITELN(HARI_INI, TANGGAL);
READLN;
END.
Lihatlah tampilan pada layar monitor Anda!

FUNGSI-FUNGSI KONVERSI
Berikut ini adalah fungsi-fungsi untuk mengkonversi suatu nilai ke nilai lain. Jalankan
aplikasi Pascal Anda, ketikkan kode berikut:

PROGRAM KONVERSI;
USES CRT, STRINGS;
VAR MASUKAN : INTEGER;
(* FUNGSI UNTUK MENGKONVERSI
NILAI {INTEGER} MENJADI STRING *)
FUNCTION INTTOSTR(I: LONGINT): STRING;
VAR
S: STRING;
BEGIN
STR(I, S);
INTTOSTR := S;
END;

a. Konversi Desimal ke Angka Romawi
Fungsi ini akan mengkonversi suatu nilai bilangan (decimal) ke angka Romawi. Contoh:
1234 menjadi: MCCXXXIV.
(* FUNGSI UNTUK MENGKONVERSI
BILANGAN DESIMAL MENJADI ANGKA ROMAWI*)
FUNCTION CONVROMAN(INTANGKA : INTEGER): STRING;
VAR
I: INTEGER;
INTSERIBU, INTLIMARATUS : INTEGER;
INTSERATUS, INTLIMAPULUH : INTEGER;
INTSEPULUH, INTLIMA, INTSATU : INTEGER;
STRSERIBU, STRLIMARATUS :STRING;
STRSERATUS, STRLIMAPULUH : STRING;
STRSEPULUH, STRLIMA, STRSATU : STRING;
STRROMAWI : STRING;
BEGIN
I := 0;
STRROMAWI :='';INTSERIBU := 0;
INTLIMARATUS := 0;INTSERATUS := 0;
INTLIMAPULUH := 0;INTSEPULUH := 0;
INTLIMA := 0;INTSATU := 0;
STRSERIBU :='';STRLIMARATUS :='';
STRSERATUS :='';STRLIMAPULUH :='';
STRSEPULUH :='';STRLIMA :='';
STRSATU :='';
(*===============================*)
INTSATU := INTANGKA;
INTSERIBU := INTANGKA DIV 1000;
INTSATU := INTSATU - (INTSERIBU * 1000);
INTLIMARATUS := INTSATU DIV 500;
INTSATU := INTSATU - (INTLIMARATUS * 500);
INTSERATUS := INTSATU DIV 100;
INTSATU := INTSATU - (INTSERATUS * 100);
INTLIMAPULUH := INTSATU DIV 50;
INTSATU := INTSATU - (INTLIMAPULUH * 50);
INTSEPULUH := INTSATU DIV 10;
INTSATU := INTSATU - (INTSEPULUH * 10);
INTLIMA := INTSATU DIV 5;
INTSATU := INTSATU - (INTLIMA * 5);
(*=================================*)
FOR I := 0 TO INTSERIBU-1 DO
STRSERIBU := STRSERIBU + 'M';
IF INTSERATUS <> 4 THEN
FOR I := 0 TO INTLIMARATUS-1 DO
STRLIMARATUS := STRLIMARATUS + 'D';
FOR I := 0 TO INTSERATUS-1 DO
STRSERATUS := STRSERATUS + 'C';
IF INTSERATUS = 4 THEN
IF INTLIMARATUS = 1 THEN
STRSERATUS := STRROMAWI + 'CM'
ELSE
STRSERATUS := STRROMAWI + 'CD';
IF INTSEPULUH <> 4 THEN
FOR I := 0 TO INTLIMAPULUH-1 DO
STRLIMAPULUH := STRLIMAPULUH + 'L';
FOR I := 0 TO INTSEPULUH-1 DO
STRSEPULUH := STRSEPULUH + 'X' ;
IF INTSEPULUH = 4 THEN
IF INTLIMAPULUH = 1 THEN
STRSEPULUH := STRROMAWI + 'XC'
ELSE
STRSEPULUH := STRROMAWI +'XL';
IF INTSATU <> 4 THEN
FOR I := 0 TO INTLIMA-1 DO
STRLIMA := STRLIMA + 'V';
FOR I := 0 TO INTSATU-1 DO
STRSATU := STRSATU + 'I' ;
IF INTSATU = 4 THEN
IF INTLIMA = 1 THEN
STRSATU := STRROMAWI + 'IX'
ELSE
STRSATU := STRROMAWI +'IV';
STRROMAWI := STRSERIBU + STRLIMARATUS
+ STRSERATUS + STRLIMAPULUH
+ STRSEPULUH + STRLIMA + STRSATU;
CONVROMAN := STRROMAWI;
END;
b. Konversi Desimal ke Binear
Fungsi ini akan mengkonversi suatu nilai bilangan (decimal) ke basis Binear. Contoh:
123 menjadi: 1111011.
FUNCTION BINEAR(INTANGKA : INTEGER): STRING;
VAR
INTNILAI :LONGINT;
INTLEN :INTEGER;
J :INTEGER;
STRHASIL :STRING;
STREND :STRING[1];
STRSUB : STRING;
BEGIN
STRHASIL := '';
STREND := '';
STRSUB := '';
REPEAT
INTNILAI := INTANGKA MOD 2;
INTANGKA := INTANGKA DIV 2;
STRHASIL := STRHASIL + IntToStr(INTNILAI);
UNTIL INTANGKA = 1;
INTLEN := LENGTH(STRHASIL);
STREND := IntToStr(INTANGKA);
FOR J := INTLEN DOWNTO 1 DO
STRSUB := STRSUB + COPY(STRHASIL, J, 1);
BINEAR := STREND + STRSUB;
END;
c. Konversi Desimal ke Hexadecimal
Fungsi ini akan mengkonversi suatu nilai bilangan (decimal) ke basis Hexadecimal.
Contoh: 123 menjadi: 7B.
FUNCTION HEXADEC(INTANGKA : INTEGER): STRING;
VAR
INTNILAI :LONGINT;
INTLEN :INTEGER;
J :INTEGER;
STRHASIL :STRING;
STRHEXA :STRING;
STREND :STRING[1];
STRSUB :STRING;
BEGIN
STRHASIL := '';
STRHEXA := '';
STRSUB := '';
STREND := '';
REPEAT
INTNILAI := INTANGKA MOD 16;
INTANGKA := INTANGKA DIV 16;
CASE INTNILAI OF
10: STRHEXA := 'A';
11: STRHEXA := 'B';
12: STRHEXA := 'C';
13: STRHEXA := 'D';
14: STRHEXA := 'E';
15: STRHEXA := 'F';
ELSE
STRHEXA := IntToStr(INTNILAI);
END;
STRHASIL := STRHASIL + STRHEXA;
UNTIL INTANGKA < 16;
INTLEN := LENGTH(STRHASIL);
STREND := IntToStr(INTANGKA);
FOR J := INTLEN DOWNTO 1 DO
STRSUB := STRSUB + COPY(STRHASIL, J, 1);
HEXADEC := STREND + STRSUB;
END;
d. Konversi Desimal ke Nominal
Fungsi ini akan mengkonversi suatu nilai bilangan (decimal) ke huruf nominal. Contoh:
123 menjadi: Seratus duapuluh tiga.
Function DlmHuruf(Var nHuruf:String):String;
Begin
If nHuruf ='1' Then DlmHuruf:='satu' Else
If nHuruf ='2' Then DlmHuruf:='dua' Else
If nHuruf ='3' Then DlmHuruf:='tiga' Else
If nHuruf ='4' Then DlmHuruf:='empat' Else
If nHuruf ='5' Then DlmHuruf:='lima' Else
If nHuruf ='6' Then DlmHuruf:='enam' Else
If nHuruf ='7' Then DlmHuruf:='tujuh' Else
If nHuruf ='8' Then DlmHuruf:='delapan' Else
If nHuruf ='9' Then DlmHuruf:='sembilan' Else
DlmHuruf:=' ';
End;
{-------------------------------------------}
Function Terbilang(Angka:LongInt):String;
var
ChrS : Array[1..10] of String;
StrT : Array[1..10] of String;
Huruf:String;Indeks,Panjang:Integer;
Begin
Huruf:=''; Panjang:=0;
For Indeks := 1 to 10 do begin
ChrS[Indeks]:='';
StrT[Indeks]:='';End;
Panjang:=Length(IntToStr(Angka));
For Indeks := 1 to Panjang do
ChrS[Indeks] :=
Copy(IntToStr(Angka),
(Panjang-(Indeks-1)),1);
If ChrS[8] ='0' Then
Begin
StrT[8] :='';
StrT[7]:=DlmHuruf(ChrS[7]) + 'juta ';
End
Else If ChrS[8] ='1' Then
Begin
StrT[8]:='';
If ChrS[7] = '0' Then
StrT[7]:='Sepuluh juta ' Else
If ChrS[7] = '1' Then
StrT[7]:='Sebelas juta ' Else
StrT[7]:= DlmHuruf(ChrS[7]) +
'belas juta';
End
Else If ChrS[8] >'1' Then
Begin
StrT[7]:=DlmHuruf(ChrS[7]) + 'juta ';
StrT[8]:=DlmHuruf(ChrS[8]) + 'puluh ';
End;
Begin
End;
If ChrS[6] = '0' Then
StrT[6]:=''
Else
Begin
If ChrS[6] <> '1' Then
StrT[6]:=DlmHuruf(ChrS[6]) + 'ratus '
Else
StrT[6]:='Seratus ';
End;
If ChrS[5] = '0' Then
Begin
StrT[5]:='';
If ChrS[4] = '1' Then
StrT[4]:= 'Seribu '
Else
StrT[4] := DlmHuruf(ChrS[4]) + 'ribu ';
End
Else If ChrS[5] = '1' Then
Begin
StrT[5]:='';
If ChrS[4] = '0' Then
StrT[4]:='Sepuluh ribu ' Else
If ChrS[4] = '1' Then
StrT[4]:='Sebelas ribu ' Else
StrT[4]:= DlmHuruf(ChrS[4]) +
'belas ribu ';
End
Else
Begin
StrT[4]:=DlmHuruf(ChrS[4]) + 'ribu ';
StrT[5]:=DlmHuruf(ChrS[5]) + 'puluh ';
End;
If ChrS[3] = '0' Then
StrT[3]:=''
Else If ChrS[3] ='1' Then
StrT[3]:='Seratus '
Else If ChrS[3] > '1' Then
StrT[3]:=DlmHuruf(ChrS[3]) + 'ratus ';
{========================================}
If ChrS[2] = '0' Then
Begin
StrT[2]:='';
StrT[1]:=DlmHuruf(ChrS[1]);
End
Else If ChrS[2] ='1' Then
Begin
StrT[2]:='';
If ChrS[1] = '0' Then
StrT[1]:='Sepuluh' Else
If ChrS[1] = '1' Then
StrT[1]:='Sebelas' Else
StrT[1]:= DlmHuruf(ChrS[1]) +'belas';
End
Else If ChrS[2] > '1' Then
Begin
StrT[1]:=DlmHuruf(ChrS[1]);
StrT[2]:=DlmHuruf(ChrS[2])+'puluh ';
End;
For Indeks := 1 to 8 Do
If Panjang <= Indeks Then
StrT[Indeks + 1] :='';
For Indeks := 8 DownTo 1 Do
Huruf:=Huruf + StrT[Indeks];
Terbilang := Huruf;
Untuk mencoba fungsi-fungsi di atas, ketikkan program utama sebagai berikut:
(* program utama *)
BEGIN
CLRSCR;
WRITE ('MASUKAN ANGKA : ');
READLN(MASUKAN);
WRITELN('ROMAWI = ', CONVROMAN(MASUKAN));
WRITELN('BINEAR = ', BINEAR(MASUKAN));
WRITELN('HEXA = ','&H', HEXADEC(MASUKAN));
WRITELN('TERBILANG = ', TERBILANG(MASUKAN));
READLN
END.
Tampilan akhir program seperti gambar di bawah ini:

PROGRAM PERMAINAN
Berikut ini adalah contoh pembuatan sebuah program permainan, sulap angka. Program
ini akan menebak sebuah angka yang dipilih oleh seorang pemain, setelah menempuh
beberapa wizard. Jalankan Pascal dan ketikkan kode yang banyak ini:
PROGRAM SULAPANGKA;
USES CRT;
VAR I, J, K, L: INTEGER;
YT: CHAR;
NILAI:INTEGER;
FUNCTION CSTR(I: INTEGER): STRING;
VAR
S: STRING[11];
BEGIN
STR(I, S);
CSTR := S;
END;
PROCEDURE TULIS(POSISI:INTEGER; TEKS:STRING);
VAR A, B, C: INTEGER;
BEGIN
A := POSISI;
B := POSISI MOD 10;
C := 1;
IF B = 0 THEN
BEGIN B := 10;C := 0; END;
GOTOXY(B * 8 - 5,
(A DIV 10 + C) * 3 + 1);
WRITE(TEKS);
END;
(* Untuk symbol-symbol seperti : ÉÍÍ,
dapat Anda ganti dengan symbol: # atau lainnya *)
PROCEDURE BIKIN_KOTAK(KOLOM, BARIS: INTEGER);
BEGIN
CLRSCR;
FOR I:= 1 TO KOLOM DO
BEGIN
FOR J := 1 TO BARIS DO
BEGIN
GOTOXY (J * 8 - 7, (I * 3));
WRITE('ÉÍÍÍÍ»');
GOTOXY (J * 8 - 7, (I * 3 + 1));
WRITE('º º');
GOTOXY (J * 8 - 7, (I * 3 + 2));
WRITE('ÈÍÍÍͼ');
END;
END;
END;
PROCEDURE WIZARD7;
BEGIN
CLRSCR;
WRITELN('ANGKA YANG ANDA PILIH = ', NILAI);
WRITELN;
WRITE('INGIN MENGULANG (Y/ESC.)? ');READKEY;
YT := READKEY;
END;
PROCEDURE WIZARD6;
BEGIN
BIKIN_KOTAK(2, 10);
FOR I := 1 TO 19 DO
TULIS(I, CSTR(I + 31));
GOTOXY (5, 15);
WRITE('APAKAH ANGKA YANG ANDA PILIH',
' ADA PADA DERETAN ANGKA DI ATAS (Y/T) ');
REPEAT
YT := READKEY;
UNTIL YT IN ['y', 'Y', 't', 'T', #27];
IF UPCASE(YT) = 'Y' THEN
NILAI := NILAI + 32;
WIZARD7;
{===============================}
END;
PROCEDURE WIZARD5;
BEGIN
BIKIN_KOTAK(2, 10);
FOR I := 1 TO 16 DO
TULIS(I, CSTR(I + 15));
FOR J := 17 TO 19 DO
TULIS (J, CSTR(J + 31));
GOTOXY (5, 15);
WRITE('APAKAH ANGKA YANG ANDA PILIH',
' ADA PADA DERETAN ANGKA DI ATAS (Y/T) ');
REPEAT
YT := READKEY;
UNTIL YT IN ['y', 'Y', 't', 'T', #27];
{===============================}
IF UPCASE(YT) = 'Y' THEN
NILAI := NILAI + 16;
WIZARD6;
END;
PROCEDURE WIZARD4;
BEGIN
BIKIN_KOTAK(3, 10);
FOR J := 0 TO 2 DO
FOR I := 1 TO 8 DO
TULIS(J * 8 + I, CSTR(J * 16 + I + 7));
GOTOXY (5, 15);
WRITE('APAKAH ANGKA YANG ANDA PILIH',
' ADA PADA DERETAN ANGKA DI ATAS (Y/T) ');
REPEAT
YT := READKEY;
UNTIL YT IN ['y', 'Y', 't', 'T', #27];
IF UPCASE(YT) = 'Y' THEN
NILAI := NILAI + 8;
WIZARD5;
{===============================}
END;
PROCEDURE WIZARD3;
BEGIN
BIKIN_KOTAK(3, 10);
FOR J := 0 TO 5 DO
FOR I := 1 TO 4 DO
TULIS(J * 4 + I, CSTR(J * 8 + I + 3));
GOTOXY (5, 15);
WRITE('APAKAH ANGKA YANG ANDA PILIH',
' ADA PADA DERETAN ANGKA DI ATAS (Y/T) ');
REPEAT
YT := READKEY;
UNTIL YT IN ['y', 'Y', 't', 'T'];
IF UPCASE(YT) = 'Y' THEN
NILAI := NILAI + 4;
WIZARD4;
{===============================}
END;
PROCEDURE WIZARD2;
BEGIN
BIKIN_KOTAK(3, 10);
J:=0;
FOR J := 0 TO 12 DO
FOR I := 1 TO 2 DO
TULIS(J * 2 + I, CSTR(J * 4 + I + 1));
GOTOXY (5, 15);
WRITE('APAKAH ANGKA YANG ANDA PILIH',
' ADA PADA DERETAN ANGKA DI ATAS (Y/T) ');
REPEAT
YT := READKEY;
UNTIL YT IN ['y', 'Y', 't', 'T', #27];
IF UPCASE(YT) = 'Y' THEN
NILAI := NILAI + 2;
WIZARD3;
{===============================}
END;
PROCEDURE WIZARD1;
BEGIN
BIKIN_KOTAK(3, 10);
L:= 1;
REPEAT
TULIS ((L + 1) DIV 2,CSTR(L));
L:= L + 2;
UNTIL L > 50;
GOTOXY (5, 15);
WRITE('APAKAH ANGKA YANG ANDA PILIH',
' ADA PADA DERETAN ANGKA DI ATAS (Y/T) ');
REPEAT
YT := READKEY;
UNTIL YT IN ['y', 'Y', 't', 'T', #27];
IF UPCASE(YT) = 'Y' THEN
NILAI := 1;
WIZARD2;
{===============================}
END;
PROCEDURE TULIS_NOMOR;
BEGIN
BIKIN_KOTAK(5, 10);
FOR K:= 1 TO 50 DO
TULIS(K, CSTR(K));
GOTOXY(1, 20);
WRITE ('PILIH SEBUAH ANGKA, ',
'TEKAN: Y, KALO MAU TERUS! ');
WRITE ('TEKAN ESC UNTUK KELUAR ');
REPEAT
YT := READKEY;
IF UPCASE(YT) = 'Y' THEN
BEGIN
NILAI := 0;
WIZARD1;
END;
UNTIL YT IN ['y', 'Y', 't', 'T', #27];
{===============================}
END;
(* Program Utama *)
BEGIN
CLRSCR;
TEXTATTR := $1F;
REPEAT
TULIS_NOMOR;
UNTIL YT = #27;
END.
Tampilan program adalah sebagai berikut:
Tampilan
pertama:
Pada wizard
ini pemain
diminta
memilih
sebuah angka,
tanpa perlu
ditunjuk atau
disebutkan,
kemudian
tekan tombol
Y pada keyboard.
Pada wizard ini, pemain mengamati angka-angka yang ditampilkan, jika angka yang
dipilih (pada wizard sebelumnya) ada pada deretan, tekan tombol Y, jika tidak ada tekan
tombol T
Tampilan dan penggunaan wizard-wizard selanjutnya sama seperti wizard di samping.
Setelah melalui
semua wizard,
maka akan
ditampilkan
hasil seperti
pada gambar di
samping ini.


program cobastring;
uses crt;
var
(*pendeklarasian tipe data variable*)
pil,hasil:integer;
s,s1,s2,hasilconcat,x1,x2:string;
(*string merupakan tipe data yang mengalokasikan ruang untuk 256 karakter*)
a,x:integer;
jawab: char;

begin
clrscr;
repeat
(*repeat untuk pengulangan yang akan terus di lakukan apabila kondisi yg di definisikan masih bernilai false*)
writeln('----------------MENU-----------------');
writeln('1. Mencari panjang dari sebuah string');
writeln('2. Menggabungkan isi dari 2 buah string');
writeln('3. Menyisipkan isi dari sebuah string kedalam string lain');
writeln;
writeln;
write('masukkan nomer menu yang anda pilih : ');readln(pil);

case pil of
(*catatan untuk statement case yaitu kita harus menempatkan statement tersebut di dalam blok begin*)
1: begin
writeln;
write('masukkan sebuah string:  ');readln(s);
a:=length(s); (*length yaitu cara untuk mendapatkan panjang string*)
writeln('Panjang string : ',a);
readln;
end;

2: begin
writeln;
write('masukkan string 1 : ');readln(s1);
writeln;
write('masukkan string 2 : ');readln(s2);
hasilconcat:=concat(s1,s2);
(*concat yaitu fungsi utk melakukan penggabungan terhadap string-string yg menjadi parameternya*)
writeln;
writeln('string baru : ',hasilconcat);
readln;
end;

3:begin
writeln;
write('masukkan string 1 : ');readln(x1);
writeln;
write('masukkan string 2 : ');readln(x2);
writeln;
write('pada posisi ke berapa string 1 akan di sisipkan ke string 2 : ');readln(x);
insert(x1,x2,x);(*insert utk menyisippkan string 1 ke string lainya*)
writeln;
writeln('string baru : ',x2);
readln;
end;

end;
clrscr;
writeln('apakah anda ingin kembali ke menu ? (y/t)');readln(jawab);
until (jawab= 't');
end.















OUTPUT PROGRAM
MENU 1 :
https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg-y8yuelYUK7slWK7OGzdrzBg1_Hv7z1UHJKPK1qnoBDH3sqEt-pmlVsm7nEAS8jHFiPU09t-jjWETDoRbdE2KLK4ZGgqVUCAvQGBqO_YVC4WnE8zpk-CZxt1LgJdgOF6kksMkQoGRUo6I/s1600/untitled1.JPG

https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgyv0bCGjmyoHPfuU5W68omy_KOxkYOCzh0oIRwSwNYvqLV5s1JWSxtXVlfdSdqYi8WE6ONzWwEZQ2KNm0SIyel1P1I-Ev-62cM6nvFLKtbld6gTXaaTlrVRhPF4WBuG539sI8jtBbCb_PK/s1600/untitled3.JPG

https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjvnrMo9oYsSHRCvTEtAlnTz489bRI4kn2itratGWWZB3-MBtcUMmooBDzAsJvrohY6Nkz3fixYMMOvZhZTkc2zghWKIMoi8R_xHTbesAcoJ-TJHBrPnbnOKUhfWC0ydroGWNT9T2ap8VTZ/s1600/untitled2.JPG
2. BUATLAH PROGRAM UNTUK MENAMPILKAN JURUSAN DAN ANGKATAN SEORANG MAHASISWA DI UNIVERSITAS GUNADARMA BERDASARKAN NPM

BERIKUT INI SINTAKS NYA :
program npmdanjurusan;
uses crt;

var
npm,jurusan1,jurusan2,angkatan1,angkatan2: string;
y,z : integer;

begin
clrscr;
write ('Masukkan NPM anda : ');
readln (npm);

(*gunadarma didirikan pada tahun 1981
kode jurusan :
1= strata 1 ; sistem informasi
2= diploma 3 ; manajemen informatika
3= strata 1 ; manajemen komputer dan akuntansi dan seterusnya sesuai database*)

jurusan1:=copy(npm,1,1);
if jurusan1= '1' then jurusan2:='Strata 1 - SISTEM INFORMASI '
else
if jurusan1= '2' then jurusan2:='Diploma3 - MENEJEMEN INFORMATIKA '
else
if jurusan1= '3' then jurusan2:='STRATA 1 - TEKHNIK INFORMATIKA '
else
if jurusan1= '4' then jurusan2:='STRATA 1 - SASTRA INGGRIS '
else
if jurusan1= '5' then jurusan2:='STRATA 1 - MENEJEMEN AKUNTANSI '
else
if jurusan1= '6' then jurusan2:='STRATA 1 - TEKHNIK INDUSTRI '
(*database bisa di update dan di masukkan lebih banyak lagi dg menggunakan fungsi IF*)
else
jurusan2:=' MAAF ANDA TIDAK TERDAFTAR SEBAGAI MAHASISWA UNIVERSITAS GUNADARMA ';
writeln;
writeln('Jurusan anda adalah : ',jurusan2);
writeln;

angkatan1:=copy (npm,4,2);
(*untuk mengambil string angka ke 4 sebanyak 2 karakter*)
val(angkatan1,y,z);
if y>81 then
writeln('Anda adalah mahasisa Universitas Gundarma angkatan 19',y)
else
if y<10 then
begin
str(y:1,angkatan2);
insert('0',angkatan2,1);
writeln('Anda adalah mahasiswa Universitas Gunadarma angkatan 20',angkatan2);
end;
readln;
end.
OUTPUT PROGRAM :

https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgkJw3ntkp360TlF8pSF7ZidfrY7pT36Km4oX5ddg4icOTjizXiKxcK7BO6ASeC6GffGT0Ci-f3okrJz2-HWz-ksK6trA6Zp_sO9dtDQqI3IIOpjt88aB87dkmzNa1Mtfzyx5ASokPK3lib/s1600/untitled4.JPG



Rabu, 28 November 2012

prosedur,fungsi di pascal dan C++



Listing program prosedur pascal
program procedure1;
uses crt;
var
a,b,c,d:real;
procedure nilai;
begin
d:=((a*0.3)+(b*0.3)+(c*0.4));
write(d:2:2);
end;
begin
clrscr;
write('Masukan Nilai Tugas Anda : ');readln(a);
write('Masukan Nilai UTS Anda : ');readln(b);
write('Masukan Nilai UAS Anda : ');readln(c);
write('Nilai Anda : ');
nilai;
readln;
end.

Input program
Logika program
Setelah progrsm dijalankan kemudian program memanggil variable dalam bentuk bilangan real procedur nilai.prgram memulai.selanjutnya program akan cetak  'Masukan Nilai Tugas Anda : ');program meminta kita untuk memasukan nilai a.
write('Masukan Nilai UTS Anda : ');program akan meminta kita untuk memaasukan nilai b
write('Masukan Nilai UAS Anda : ');program akan meminta kita memasukan nilai c.
write('Nilai Anda : '); nilai akhirpun kan terbaca.







Output program

Listing program fungsi pascal
uses crt;
var x,y,z:real;
function pangkat(a,b:real):real;
begin
pangkat:=exp(ln(a)*b);
end;
begin
clrscr;
write('masukan basis yang akan dipangkatkan  =');
readln(x);
write('masukan pangkat  ');
readln(y);
writeln;
z:=pangkat(x,y);
writeln('nilai',x:0:2,'^',y:0:2,'adalah:',z:0:2);
readln;
end.
Input program
Output program

Listing  program prosedur C++
#include<iostream.h>
void volume_limas()
{
double p, l, t;
cout<<"Volume limas segi empat"<<endl;
cout<<"Masukkan panjang: ";
cin>>p;
cout<<"Masukkan lebar: ";
cin>>l;
cout<<"Masukkan tinggi: ";
cin>>t;
cout<<"Volume limas segi empat: "<<p*l*t/3<<endl;
}
void volume_kerucut()
{
double r, t;
cout<<"Volume kerucut"<<endl;
cout<<"Masukkan jari2: ";
cin>>r;
cout<<"Masukkan t: ";
cin>>t;
cout<<"Volume kerucut: "<<3.14*r*r*t/3<<endl;
}
void volume_bola()
{
double r;
cout<<"Volume bola"<<endl;
cout<<"Masukkan nilai r= ";
cin>>r;
cout<<"Volume bola= "<<4*3.14*r*r*r/3<<endl;
}
int main()
{
volume_limas();
volume_kerucut();
volume_bola();

return 0;





input program
Logika program
Setelah program selesai dibuat kemudian program kan memanggil library dalam bentuk double betipe data p,l,t. kemudian akan cetak  Volume limas segi empat <<"Masukkan panjang: "; kemudian program akan membaca nilai p. selanjutnya program akan cetak <<masukan nilai lebar,kemudian program akan memebaca nilai l.selanjutnya  program akan cetak lagi <<"Masukkan tinggi:.selanjutnya akan membaca nilai t. program akan cetak volume limas.
Program memulai lagi ,kemudian program akan memanggil var dalam tipe r,t.program akan cetak  cout<<"Volume kerucut"<<endl; cout<<"Masukkan jari2: ";program akn membaca nilai r dan t. program akan cetak Volume kerucut: "<<3.14*r*r*t/3
Program memulia lagi kemuian program kan memanggil librarydalam tipe r .kemudian program akan cetak <<"Volume bola"<<endl;
cout<<"Masukkan nilai r=. kemudian program akan membaca nilai r,kemudian akan cetak cout<<"Volume bola= "<<4*3.14*r*r*r/3<<endl;
program selesai.



Output program

Listing fungsi C++
#include <iostream.h>
void duplicate (int& a, int& b, int& c)
{
a*=2;
b*=2;
c*=2;
}
int main ()
{
int x=1, y=3, z=7;
duplicate (x, y, z);
cout << "x=" << x << ", y=" << y << ", z=" << z;
return 0;
}


Input program
Logika program
Setelah program selesai dibuat maka program memulai selanjutnya program kan memanggil duplikat dalam bentuk integer a,b,c . kemudian program akan melakukan deklerasi perhitungan. Selanjutnya program kan cetak cout << "x=" << x << ", y=" << y << ", z=" << z; program selesai.

Output program

Senin, 15 Oktober 2012

Penggunaan printf dan cout di C++



Untuk melakukan pencetakan pada program C++ kita dapat mempergunakan perintah
printf cout masing-masing perintah tersebut mempunyai perbedaan misalnya pada pencetakan
variabel, maka pada printf harus dimasukkan string penandanya,sedangkan pada cout harus dipisahkan dengan tanda Pustaka yang harus dimasukkan untuk masing-masing perintah juga berbeda yakni pada printf
maka pustaka
 #include harus dimasukkan, sedangkan pada cout maka pustaka harus dimasukkan.
Contoh:
#include
#include
#include
void main(){
    clrscr();
    int a;
    a = 5;
    printf(“Program pencetakan\n”);
    printf(“Nilai a: %d “, a);
    coutKode \n harus di dalam tanda kutip, sedangkan endl harus diawali oleh atau kode endl bisa
diganti dengan “\n” yang merupakan  esc ( escape sequence character) pada c++.

PERBEDAAN WRITE, WRITELN, READ, DAN READLN



PERBEDAAN WRITE, WRITELN, READ, DAN READLN
Pada bahasa
pemrograman Pascal. Perintah yang
digunakan untuk menampilkan
output adalah write dan
writeln, sedangkan untuk
keperluan input (membaca input)
atau menerima input digunakan
identifier standar READ atau
READLN. Identifier standar
Readln sedikit berbeda dengan
Read. Perintah input dan output
tersebut akan dibahas satu persatu
secara detail sebagai berikut:
1. WRITE
Perintah write
digunakan untuk
menuliskan output, dengan
posisi cursor – penunjuk
aktif, terletak pada akhir
output yang ditampilkan
pada baris yang sama.
Write tidak menambahkan
CR setelah menampilkan
data semua argument.
Write menampilkan hasil
tanpa ganti baris dan
tampilan berikutnya akan
disambung dalam baris
yang sama.
Syntax :
write(’ yang akan
dituliskan’);
write( variabel);
write(‘ tulisan ’, variabel);
Contoh program:
Listing Program 1.1
program nothelloworld;
begin
write(‘not a hello world’);
end.
2. WRITELN
Perintah writeln
digunakan untuk
menuliskan output, dengan
posisi cursor – penunjuk
aktif, terletak pada awal
baris berikutnya. Writeln
menambahkan CR setelah
menampilkan data semua
argument. Writeln
digunakan untuk
menampilkan tampilan
perbaris, akan ganti baris
untuk tampilan berikutnya.
Argumen perintah writeln
boleh berupa ekspresi.
Contoh perintah penyajian
writeln(‘Luas = ‘, luasPSP);
bisa dikerjakan dengan
perintah: writeln(‘Luas = ‘,
panjangPSP * lebarPSP);
Syntax :
writeln(’ yang akan
dituliskan’);
write( variabel);
write(‘ tulisan ’, variabel);
Contoh program:
Listing Program 1.2
program nothelloworld;
begin
writeln(‘not a hello world’);
end.
WRITE dan
WRITELN dapat
menerima:
Argum
en
bertipe
dasar,
jumlah
argum
en bisa
lebih
dari
satu.
Suatu
ekspre
si
Tanpa
argum
en
Writeln (20.13) {argumen
bertipe real}
Writeln (678) {argumen
bertipe integer}
Writeln (True) {argumen
bertipe boolean}
Writeln (‘A’) {argumen
bertipe char}
Writeln (‘Turbo Pascal’)
{argumen bertipe string}
writeln (2 * 3 + 4) {suatu
ekspresi}
writeln (‘Jumlah barang :
‘,jumlahbarang) {lebih dari
satu ekspresi}
Writeln (‘ ‘); {tanpa
argumen}
Writeln ; {tanpa argumen}
Argumen perintah
writeln boleh berupa
ekspresi. Contoh
perintah penyajian
writeln(‘Luas = ‘,
luasPSP); bisa
dikerjakan dengan
perintah: writeln
(‘Luas = ‘, panjangPSP
* lebarPSP);
Format Output
dari Write atau
Writeln
Ada dua format :
data :
n pada
umum
nya
data :
lebar_
total :
lebar_
pecah
an
bilang
an real
writeln (‘
12345678901234567
890′);
writeln (‘Yogya’:
10);
writeln (‘A’ : 8);
writeln (True : 8);
writeln (123 : 8);
writeln (-123 : 8);
writeln
(1234.5678 :8);
writeln
(1234.5678 :12:5);
writeln
(1234.5678 :13:5);
writeln
(1234.5678 :13:4);
writeln
(1234.5678 :13:0);
writeln
(1234.5678 :7:5);
writeln (True : 2);
Bentuk umum
penulisannya :
WRITE (variabel output);
WRITELN (variabel output);
3. READ
Perintah read
digunakan untuk menerima
input, dengan posisi cursor
– penunjuk aktif, setelah
diberi input pada baris
berikutnya. Read tidak
membaca end of line
marker. Pernyataan ini tidak
akan membuang kelebihan
data. Kelebihan data akan
diberikan pada read atau
readln berikutnya. Read
tidak ganti baris, masih
dalam baris yang sama
Syntax :
read( variabel);
Contoh program:
Listing Progra 1.3
program nothelloworld;
var
s : integer;
begin
write(‘not a hello world ’);
read(s);
write(s*s);
end.
4. READLN
Perintah readln
tidak terlalu jauh berbeda
dengan perintah read.
Readln membaca end of
line marker. Pernyataan ini
menyebabkan kelebihan
data akan dibuang (tidak
diberikan ke read atau
readln berikutnya). Readln
juga digunakan untuk
memasukkan data perbaris,
artinya setelah tombol
Enter ditekan, maka akan
ganti baris,
Syntax :
readln( variabel);
Contoh program:
Listing Program 1. 4
program nothelloworld;
var
s : integer;
begin
write(‘not a hello world ’);
readln(s);
write(s*s);
end.
READ dan
READLN tidak
dapat dipakai untuk
memasukkan semua
jenis data. Data
bilangan, string
maupun karakter
dapat ditangani oleh
kedua pernyataan ini.
Perintah read atau
readln dapat
digunakan untuk
membaca data lebih
dari satu sekaligus
dengan berbagai
format.
Bentuk umum
penulisannya :
READ (variabel input) ;
READLN (variabel output);
Ada banyak contoh yang
dapat kita pelajari. Di bawah ini
adalah beberapa contoh yang dapat
kita pelajari dan mencobanya.
Menggunakan Readln
dan Writeln
Program
MasukkanData;
(*Layar*)
Var
A, B : Integer;
C : Real;
D : String[10];
E : Char;
BEGIN
(* Memasukkan
data untuk
masing-masing
variabel *)
ReadLn(A);
ReadLn(B);
ReadLn(C);
ReadLn(D);
ReadLn(E);
(* Menampilkan
data yang dimasukkan *)
WriteLn;
WriteLn(‘A =
‘,A,’ B = ‘,B,’ C = ‘,C);
WriteLn(‘D =
‘,D);
WriteLn(‘E =
‘,E);
End.
50
12345
12345
HALO
HALO JUGA
A = 50 B =
12345 C =
1.2345000000
E+04
D = HALO
E = H
Menggunakan Read,
write, dan Writeln
Program MasukData;
(* Input, Output *)
(*Program untuk
mengkonversikan
dari derajat celcius
menjadi derajad
fahrenheit *)
Var
C, F : Real;
Begin
Write(‘ Berapa
Celcius ? ‘);
ReadLn(C);
F := 1.8 * C + 32;
WriteLn;
WriteLn(C,’ Celcius
adalah ‘,F,’
Fahrenheit’);
End.
Berapa Celcius ? 10
1.0000000000E+01
Celcius adalah
5.0000000000E+01
Fahrenheit
Menggunakan
Readln, write, dan
Writeln
Var
Sisi, panjang, luas :
integer ;
Begin
Write (‘Masukkan
sisi persegi panjang
=’);
Readln (sisi) ;
Write (‘Masukkan
panjang persegi
panjang =’);
Readln (panjang) ;
Luas : = sisi x
panjang ;
Writeln (‘Luas
persegi panjang
adalah’, Luas) ;
End.
Output program :
Masukkan sisi
persegi panjang =
10
�� data yg
diinput melalui
keyboard
Masukkan panjang
persegi panjang =
10
Luas
persegi panjang
adalah 100
Menggunakan write
VAR nama : string
{15};
BEGIN nama :=
‘Dewi’;
write(‘nama : ‘);
write(nama);
END.
Nama : Dewi
Menggunakan writeln
VAR nama : string
{15};
BEGIN nama :=
‘Dewi”;
WriteLn(‘Nama : ‘);
WriteLn(Nama);
END.
Nama :
Dewi
Menggunakan write
dan writeln
write (‘Selamat
Belajar’);
writeln (‘Pascal’);
write (‘Semoga
Sukses’);Dalam layar akan
ditampilkan:

Share

Twitter Delicious Facebook Digg Stumbleupon Favorites More