Kamis, 03 Juni 2010

FUNGSI-FUNGSI STRING PADA PASCAL


PENDAHULUAN
Pascal adalah sebuah bahasa pemograman tempo dulu. Mungkin itu saja yang dapat
saya definiskan, karena saya yakin pembaca lebih tahu mengenai definisi lengkap dari
Pascal. Saya ingin berbagi ilmu walaupun cuma sedikit tentang pemograman dengan
Pascal.
Melalui tulisan ini, saya mencoba untuk mengulas program, prosedur dan fungsi
menarik yang bisa Anda coba dan terapkan dalam pemograman Pascal.
Beberapa yang dapat saya sampaikan, diantaranya:
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.
FUNGSI STRING PADA VB
Fungsi-fungsi VB di bawah ini digunakan untuk mengolah data string.
Left : mengambil n karakter di sebelah kiri suatu string
karakter = Left(“abcdef”,2) ‘karakter = “ab”

Right : mengambil n karakter di sebelah kanan suatu string
karakter = Right(“abcdef”,2) ‘karakter = “ef”

Trim : menghilangkan spasi kosong di awal dan akhir suatu string
karakter = Trim(“ abc def ”) ‘karakter = “abc def”

Ltrim : menghilangkan spasi kosong di awal suatu string
MyStr = Ltrim(AnyString)

Rtrim : menghilangkan spasi kosong di akhir suatu string
MyStr = Rtrim(AnyString)

Ucase : mengubah suatu string menjadi huruf besar semua
MyStr = UCase(AnyString)

Lcase : mengubah suatu string menjadi huruf kecil semua
MyStr = LCase(AnyString)

Mid : mengambil n karakter dari suatu posisi yang ditetapkan
MyStr = Mid(“abcdefghij”, 3, 4) ‘hasil “cdef”

Len : menghitung jumlah karakter yang membentuk suatu string
MyStr = Len(“abcdef”) ‘hasil=6

LSet : menempatkan string di dalam string yang lain, di sebelah kiri
MyStr = “0123456789”
Lset MyStr = “<-Left” ‘hasil “<-Left “

RSet : menempatkan string di dalam string yang lain, di sebelah kanan
MyStr = “0123456789”
Rset MyStr = “>-Right” ‘hasil “ >-Right“

Format : mengatur string sehingga terformat sesuai yang ditentukan
A$ = Format (5455.4, “##,##0.00”) ‘A$ = “5,459.40”
A$ = Format (334.9, “####.##”) ‘A$ = “334.9”
A$ = Format (5, “0.00%”) ‘A$ = “500.00%”
A$ = Format (“HELLO”, “<”) ‘A$ = “hello”
A$ = Format (“This is”, “>”) ‘A$ = “THIS IS”

String: membuat string yang berisi sejumlah karakter yang digandakan
A$ = String (5, “*”) ‘A$ = “*****”

Chr: menghasilkan karakter yang terwakili oleh suatu angka tertentu
A$ = Chr (65) ‘A$ = A
A$ = Chr (97) ‘A$ = a
A$ = Chr (62) ‘A$ = >

Asc: menghasilkan angka ASCII dari suatu karakter tunggal
MyNumber = Asc(‘A’) ‘’hasilnya 65
MyNumber = Asc(‘a’) ‘’hasilnya 97
MyNumber = Asc(‘Apple’) ‘’hasilnya 65

Space: menghasilkan ruang kosong sebanyak n karakter
MyStr = Space(10) ‘buat string 10 spasi
MyStr = “Hello” & Space(10) & “World” ‘menyisipkan 10 spasi diantara kata Hello World

InStr: menentukan apakah string tertentu berada pada string lain
Dim CariString, CariChar, MyPos
CariString = ‘XXpXXpXXPXXP” ‘String yang dianalis
CariChar = “P” ‘String yang dicari “P”
‘mencari mulai dari kolom ke-4, hasilnya 6
MyPos = InStr(4, CariString, CariChar, 1)
‘mencari mulai dari kolom ke-1, hasilnya 9
MyPos = InStr(1, CariString, CariChar, 0)
MyPos = InStr(CariString, CariChar) ‘hasilnya 9
MyPos = InStr(1, SearchString, “W”) ‘hasilnya 0

InStrRev: cari posisi string dalam string yang lain, mulai dari akhir
i = InStrRev(StringCheck, StringMatch[, start[, compare]])

StrComp: membandingkan dua variabel string
StrComp(string1, string2 [, compare] )
Jika Hasilnya
string1 < string 2 -1
string1= string 2 0
string1> string 2 1
string1atau string 2 = Null Null

Dim MyStr1, MyStr2, MyComp
MyStr1 = “ABCD” : MyStr2 = “abcd” ‘nilai awal
A = StrComp(MyStr1, MyStr2, 1) ‘A = 0
A = StrComp(MyStr1, MyStr2, 0) ‘A = -1
A = StrComp(MyStr2, MyStr1) ‘A = 1

StrConv: mengubah huruf besar atau kecil suatu karakter string
A$ = StrConv(“Semua Besar”, 1) ‘A$ = “SEMUA BESAR”
A$ = StrConv(“Semua Kecil”, 2) ‘A$ = “semua kecil”
A$ = StrConv(“pertama BESAR”, 3) ‘A$ = “Pertama Besar”

StrReverse: mengubah urutan karakter suatu string
A$ = StrReverse(“12345678”) ‘A$ = “87654321”
A$ = StrReverse(“abcdefg”) ‘A$ = “gfedcba”

Replace: menggantikan string dari kelompok string
Replace(expression, find, replace[, start[, count[, compare]]])

FormatCurrency: string memakai format currency yang ditetapkan
A$ = FormatCurrency(12000, 1) ‘A$ = “$12,000.0”
A$ = FormatCurrency(12000, 2) ‘A$ = “$12,000.00”
Catatan, untuk mengubah mata uang, gunakan Regional Settings Currency dari sistem operasi Windows

FormatDateTime: menghasilkan ekspresi tanggal dan waktu
A$ = FormatDateTime(Now) ‘hasilnya “10/8/02 11:15:46 AM”
A$ = FormatDateTime(Now, vbLongDate) ‘hasilnya “Tuesday, March 02, 2008”
A$ = FormatDateTime(“3/2/99”, vbShortDate) ‘hasilnya “3/2/99”
A$ = FormatDateTime(“3/2/99”, vbLongDate) ‘hasilnya “12:00:00 AM”

FormatNumber: membuat format bilangan sesuai option yang diberikan
FormatNumber(var1, 2)

FormatPerCent: membuat format bilangan dalam prosentase
A$ = FormatPerCent(0.1255, 2) ‘A$ = 12.55%
A$ = FormatPerCent(0.12555) ‘A$ = 12.56%
A$ = FormatPerCent(12.55, 2) ‘A$ = 1,255.00%
A$ = FormatPerCent(12.55) ‘A$ = 1,255.00%
Fungsi String/Teks Di Datasheet Excel
Dalam semua program, pengolahan string atau teks sangat diperlukan seperti bagaimana memanipulasi teks, mencari panjang teks, dsb. Bahkan bisa dikatakan kita tidak pernah bisa lepas dari urusan teks. Contoh mudahnya ketika kita menemui data teks seperti= '20080808' yang merupakan susunan tahun, bulan dan tanggal. Kita hanya ingin tahu tahun saja maka tentu saja kita harus memotong teks tersebut dan mengambil empat karakter paling depan sebagai tahunnya. Dalam Excel sendiri ada banyak sekali fungsi yang berhubungan dengan manipulasi teks mulai dari memotong teks, menghitung panjang teks, mengganti sebagian atau keseluruhan isi teks dan menggabungkan beberapa teks menjadi satu teks gabungan. Kali ini saya hanya membahas fungsi LEFT, RIGHT, MID, LEN dan CONCATENATE dan (mungkin) REPLACE, SUBSTITUTE.
Fungsi LEFT, RIGHT dan MID
FUNGSI LEFT
=LEFT(B2;4) --atau-- =LEFT("20080808";4)
-1-2-

=RIGHT(B2;2) --atau-- =RIGHT("20080808";2)
-1-2-

=MID(B2;5;2) --atau-- =MID("20080808";5;2)
-1-2-3
Dulu saya sempat bingung menggunakan ketiga fungsi ini, fungsi mana yang harus saya gunakan. Jika anda mengalami hal yang sama, semoga dengan pembahasan kita kali ini anda dapat menentukan fungsi tepat yang dapat digunakan. Konsep dasar fungsi LEFT dan RIGHT hampir sama, cuma perbedaannya terletak pada posisi karakter yang diambil. Fungsi LEFT akan menghasilkan satu atau lebih karakter paling awal (paling kiri) sesuai jumlah yang anda tentukan. Anda maksudkan atau tidak, fungsi LEFT akan selalu mengambil satu atau lebih karakter awal (paling kiri) suatu teks. Jika anda ingin karakter kedua atau lebih maka anda harus menggunakan fungsi MID dan bukan LEFT. Fungsi RIGHT hampir sama dengan LEFT tapi perbedaannya fungsi RIGHT mengambil satu atau lebih karakter dihitung dari akhir (paling kanan) teks. Jadi LEFT menghitung karakter dari kiri sedangkan RIGHT dihitung dari kanan. Ada dua parameter dalam fungsi LEFT dan RIGHT yaitu:
• 1. Sel atau teks yang diuji adalah teks yang ingin anda potong
• 2. Jumlah karakter yang ingin anda ambil dan harus lebih besar atau sama dengan 0. Jika anda memberikan nilai yang lebih besar dari panjang teks maka semua teks akan dihasilkan. Anda dapat mengacuhkan bagian ini dan akan dianggap 1.
Jika anda menginginkan memotong teks yang karakternya berada Tidak Diawal Teks maka anda harus menggunakan fungsi MID. Ada tiga bagian atau parameter dari fungsi ini. Pada contoh kode diatas fungsi MID akan menghasilkan bulan 08. Ketiga parameter tersebut adalah:
• 1. Sel atau teks yang diuji adalah teks yang ingin anda potong
• 2. Nilai mulai. adalah posisi karakter pertama pada teks yang ingin anda potong. Jika anda memberi nilai 1 maka fungsi ini akan hampir mirip dengan fungsi LEFT. Penghitungan karakter dimulai dari kiri dan karakter paling kiri adalah 1. Jika anda beri nilai yang lebih besar dari panjang teks maka MID akan menghasilkan "" (string kosong). Jika lebih kecil dari panjang teks tapi jika nilainya ditambah dengan jumlah karakter yang diambil melebihi panjang teks yang diuji maka MID akan menghasilkan karakter hingga akhir teks. Jika nilai mulai anda beri kurang dari 1 maka fungsi MID akan menghasilkan error #VALUE! dan jika negatif maka MID akan menghasilkan error #VALUE!.
• 3. Jumlah karakter yang ingin anda ambil dalam teks.
Fungsi LEN dan Fungsi CONCATENATE
Ada kalanya kita ingin tahu berapa panjang suatu teks dan dengan fungsi LEN tujuan ini akan dapat kita capai. Mungkin ada sebagian dari anda yang menganggap fungsi ini tidak begitu penting tapi bagi saya fungsi ini justru sangat penting :). Misalkan kita memiliki tabel data dengan panjang teks yang tidak sama misalnya kumpulan nama siswa dan kita ingin memotong dua karakter terakhir saja (kira-kira buat apa ya?). Kita coba pada contoh berikut ini:

Pada gambar diatas anda dapat melihat bahwa panjang teks kode siswa tidak sama. Pada kolom nama siswa kita harus memotong teks dengan membuang tiga karakter terakhir. Kita tidak bisa menggunakan fungsi RIGHT karena fungsi RIGHT justru akan mengambil karakter yang harus kita buang. Karena itu perpaduan fungsi LEFT dan LEN akan dapat menyelesaikan hal tersebut. Dengan LEN kita dapat menghitung jumlah karakter yang ada kemudian jumlah karakter kita kurangi dengan 3 (jumlah karakter yang akan kita buang). Jadi kolom D3 akan kita isi dengan formula seperti berikut:
=LEFT(B3;LEN(B3)-3)
-1 ---2-----
Sebagaimana fungsi LEFT yang kita bahas sebelumnya, ada dua bagian yaitu teks yang akan dipotong, kemudian jumlah karakter yang akan diambil. Jumlah karakter yang diambil ditentukan dengan menghitung total karakter dikurangi dengan 3, mudah kan?. Sekarang kita akan bahas kolom peringkat dimana saya akan mengisikan peringkat siswa diambil dari 2 karakter terakhir yang kemudian akan digabungkan dengan teks 'Peringkat' sehingga hasilnya menjadi seperti 'Peringkat 10'. Untuk mendapatkan angka peringkat kita bisa gunakan fungsi RIGHT dan kemudian digabungkan dengan kata 'Peringkat' menggunakan fungsi CONCATENATE. Jadi sell F3 akan kita isi dengan formula seperti berikut:
=CONCATENATE("Peringkat";" ";RIGHT(B3;2)) --- atau --- =CONCATENATE("Peringkat ";RIGHT(B3;2))
Dan inilah hasil (sementara)nya:

________________________________________
Fungsi SUBSTITUTE
Anda mungkin protes masak ada istilah Peringkat 01? harusnya kan Peringkat 1!. Padahal saya berdoa agar saya bisa melupakan protes anda tapi untunglah ada fungsi SUBSTITUTE yang membantu saya menyelesaikan permasalahan munculnya angka 0 di depan angka 1. Dengan fungsi SUBSTITUTE kita akan mengganti semua teks/angka 0 dengan "" alias string kosong. Sekarang kita coba ganti formula di sell F3 dengan fungsi berikut ini:
=CONCATENATE("Peringkat ";SUBSTITUTE(RIGHT(B3;2);"0";""))
-----1----- -2- -3
Fungsi SUBSTITUTE memiliki tiga bagian atau parameter yaitu: 1. Teks yang diuji, 2. Karakter yang akan diganti dan 3. Karakter penggantinya. Tidak terbatas hanya mengganti satu karakter tapi bahkan anda dapat mengganti kata atau beberapa kata yang diganti dengan kata yang lain. Misalkan ada teks: 'Pacar baru' maka kata 'baru' bisa diganti dengan kata 'lama' menggunakan fungsi: =SUBSTITUTE("Pacar baru";"baru";"lama"). Setelah kita ganti formula di sell F3 dengan fungsi yang baru tentu saja hasilnya akan sesuai dengan yang kita inginkan. Sell F3 akan berisi teks 'Peringkat 1'. Tapi....., setelah anda copykan rumus kebawah, anda pasti terkejut dengan hasil di peringkat 10 karena sang peringkat 10 ikut-ikutan jadi peringkat 1 :). Kita butuh bantuan fungsi IF dan LEFT dan terus terang formulanya akan kelihatan lebih 'ribet'.
=IF(LEFT(RIGHT(B3;2);1)="0";CONCATENATE("Peringkat ";SUBSTITUTE(RIGHT(B3;2);"0";""));
CONCATENATE("Peringkat ";RIGHT(B3;2)))
Phuh....!, terlalu rumit?. Semoga saja tidak karena saya saja membuat fungsi itu cuma sekali ketik saja dan langsung benar :D. Sebagaimana membuat formula yang kadang begitu ribet asalkan kita tahu logika penggunaannya, maka Insyaallah pasti tidak bakalan ada kesulitan. Oh.. iya, saya batal membahas fungsi REPLACE karena sepertinya bakalan tidak sesuai dengan contoh yang saya berikan diatas. Jadi saya mohon maaf, tapi semoga anda bisa semakin memahami beragam fungsi pengolahan teks baik yang sudah kita bahas maupun yang belum. Lain waktu akan kita bahas fungsi yang lain. Sukses selalu untuk anda dan inilah hasil kerja kita:

________________________________________



A. Fungsi LEFT
Fungsi Left digunakan untuk mengambil karakter dari sebelah kiri pada string. Rumus/ formula dasar dari fungsi left adalah …..
= LEFT(String, X) // = LEFT(alamat sel, X) atau
= LEFT(String; X) // = LEFT(alamat sel; X)
Keterangan :
String : kalimat/string, atau sel yang akan diambil karakternya
X : Jumlah karakter yang diambil.
Misal :
=LEFT(“yogyakarta”,5) - Enter - hasilnya : yogya
=LEFT(“teknologi”,4) - Enter - hasilnya : tekn
Bagaimana jika menggunakan tabel di Excel seperti gambar di bawah ini :

B. Fungsi MID
Fungsi MID digunakan untuk mengambil karakter di tengah string/ alamat sel. Rumus/formula dasar dari fungsi MID adalah …..
= MID(string,x1,x2) // =MID(Alamat sel,x1,x2) atau
= MID(string;x1;x2) // =MID(Alamat sel;x1;x2)
Keterangan
String : kalimat/string, atau sel yang akan diambil karakternya
x1 : string diambil dimulai dari karakter ke x1
x2 : banyaknya karakter yang diambil dari kiri
Misal :
=MID(“yogyakarta”;5;4) - Enter - hasil : akar
Ilustrasinya seperti pada gambar berikut

Bagaimana jika digunakan di Excel seperti gambar berikut :

C. Fungsi RIGHT
Fungsi RIGHT digunakan untuk mengambil karakter dari sebelah kanan pada string. Rumus/ formula dasar dari fungsi RIGHT adalah …..
= RIGHT (String, X) // = RIGHT (alamat sel, X) atau
= RIGHT (String; X) // = RIGHT (alamat sel; X)
Keterangan :
String : kalimat/string, atau sel yang akan diambil karakternya
X : Jumlah karakter yang diambil dari kanan.
Misal :
= RIGHT (“yogyakarta”,5) - Enter - hasilnya : karta
= RIGHT (“teknologi”,4) - Enter - hasilnya : logi
Bagaimana jika menggunakan tabel di Excel seperti gambar di bawah ini :

Contoh Kasus : Buatlah tabel seperti gambar berikut …..

Jawab dari kasus.

2 komentar:

  1. saya mau bertanya mengenai coding pada pascal...
    kalau ingin membuat misalnya..masukkan nama:esther
    kemudian masukkan angka: 3 kemudian akan muncul hasil her dari belakang..kira" apa codingnya yah??

    BalasHapus
    Balasan
    1. program jawab_arlonkbomber;
      uses crt;
      var nama,a:string;
      jumlah:integer;

      begin
      clrscr;
      write('masukan nama : ');
      readln(nama);
      write('masukan angka : ');
      readln(jumlah);


      a:=copy(nama,length(nama)-jumlah+1,jumlah);

      write(jumlah ,'huruf dari nama anda yang di ketikan dari belakang adalah : ',a);
      readln();
      end.

      Hapus