Sunday, 31 January 2016

konversi desimal ke hexadecimal, biner dan oktal dengan c++

Selamat siang.. hari ini kita akan coba membuat konverai bilangan dari decimal ke hexadecimal, biner dan bilangan oktal. Berikut syntaxnya. Silahkan di coba dan semoga membantu.

cout<<"Program Konversi Bilangan\n\n";
cout<<"Masukkan bilangan desimal : ";
cin>>input;
dectohex(input);
dectobin(input);
dectooc(input);
getch();
}

void dectobin(int input)
{     
cout << input <<" dalam Biner adalah ";
for(int x=0; x<input;)
{
++counter;
c[counter] = input % 2;
input = input / 2;
}
while(counter>0)
{
cout << c[counter];
--counter;
}
cout<<"\n";
}

void dectohex(int input)
{
cout << input <<" dalam Hexadesimal adalah ";
for(int x=0; x<input;)
{
++counter;
c[counter] = input % 16;
input = input / 16;
}

while(counter>0)
{
if(c[counter]==15)
{
cout<<"F";       
}
else if(c[counter]==14)
{
cout<<"E";
}
else if(c[counter]==13)
{
cout<<"D";
}
else if(c[counter]==12)
{
cout<<"C";
}
else if(c[counter]==11)
{
cout<<"B";
}
else if(c[counter]==10)
{
cout<<"A";
}
else
{
cout<<c[counter];
}
--counter;
}
cout<<"\n";
}

void dectooc(int input)
{     
cout << input <<" dalam Oktal adalah ";
for(int x=0; x<input;)
{
++counter;
c[counter] = input % 8;
input = input / 8;
}
while(counter>0)
{
cout << c[counter];
--counter;
}
cout<<"\n";
p

Tuesday, 26 January 2016

Syntax bilangan bulat dengan Pascal

Hallo semua... kali ini saya akan memberikan contoh program pascal untuk menampilkan bilangan bulat.
Berikut contoh syntax programnya.


program bilanganbulat ;
uses wincrt ;
var pilih:char ;
begin
writeln (‘program tinggal pilih ‘) ;
write(‘[1]jumlah,[2]kali,[3]bagi’);
readln(pilih);
case pilih of
‘1’=’tambah’;
‘2’=’kali’;
‘3’=’bagi’;
else
write(‘jangan lupa baca perintahnya!!!oke.oke!!!’);
end;
procedure jumlah;
var bil1,bil2,hasil1:integer;
begin
clscr;
writeln(‘program penjumlahan’);
write(‘masukkan bilangan pertama: ‘);
readln(bil1);
write(‘masukkan bilangan kedua: ‘);
readln(bil2);
hasil1:=bil1+bil2;
writeln(‘hasil penjumlahannya adalah:=hasil1’);
end;
procedure repeatulang;
var a,b: integer;
begin
repeat
write(i);
i:i+2;
until i>15;
end;
end;
begin
i:=1;
while i<15 do;
begin
writeln(i);
i:=1+1
end;
end;

Mudah-mudahan bermanfaat. Jika ada yangbkurangbjelas silahkan tinggalkan komentar. Terima kasih..

Monday, 25 January 2016

Hotkey Turbo Pascal

Sekarang kita langsung aja yah mempelajari menu di Turbo Pascal ini.

Menu File
Didalam menu File banyak submenu yang bisa dipilih misalkan saja perintah Load / F3 yang berfungsi untuk memanggil berkas yang sudah tersimpan, dan banyak lainnya.

Submenu Load
Pilihan ini digunakan untuk memanggil program dari suatu folder atau directory ke dalam editor. Didalam submenu ini anda juga bisa memilih submenu yang lain dengan hanya menekan tombol huruf depan dari submenu yang dituju, contohnya anda mau ke submenu New, maka anda tinggal menekan huruf N.

Submenu Pick
Pilihan yang satu ini digunakan untuk mengambil salah satu dari beberapa buah program yang sebelumnya telah dimuat ke dalam jendela Edit. Hal ini ditujukan agar kita tidak perlu repot-repot lagi mencarinya di submenu load.

Submenu New
Program yang ada di editor akan dihapus dan program yang akan anda tulis dianggap sebagai program yang baru dengan nama NONAME.PAS, nama ini bisa anda rubah ketika anda mau menyimpannya.

Submenu Save [F2]
Pilihan ini digunakan untuk menyimpan suatu program yang sudah di edit ke dalam cakram atau folder, jika nama program itu masih NONAME.PAS maka Turbo Pascal akan menanyakan pada anda, nama apa yang akan anda berikan pada program yang akan disimpan tersebut. Atau anda juga bisa menekan tombol F2.

Submenu Write to
pilihan ini digunakan untuk menggantikan program lama dengan program yang baru (istilah kerennya Overwrite…☺). Jika nama program anda sudah ada pada cakram atau folder maka ada verifikasi dari Turbo Pascal untuk penggantian nama.

Submenu Directory
pilihan ini digunakan untuk menampilkan direktori dan nama-nama file yang anda inginkan. Anda juga bisa menggunakan pilihan Load.

Submenu Change Dir
Pilihan yang satu ini digunakan untuk menampilkan direktori yang sedang digunakan dan juga bisa digunakan untuk mengganti nama direktori yang baru.

Submenu OS shell
Perintah ini digunakan bagi anda yang ingin ke tampilan DOS tetapi tanpa mematikan Turbo Pascalnya, untuk kembali lagi ke Turbo Pascal, anda tinggal mengetikan “exit”, tetapi biasanya ketika anda sedang membuat suatu program atau mengedit suatu program perintah ini tidak dapat dijalankan karena kurangnya kapasitas memory.

Submenu Quit [Alt + x]
Dari namanya sudah jelas, perintah ini digunakan untuk keluar dari Turbo Pascal dan kembali ke prompt DOS.

Menu Edit
Perintah edit ini digunakan untuk mengaktifkan editor Turbo Pascal.

Menu Run [Ctrl + F9]
Perintah ini digunakan untuk mengeksekusi program yang sudah anda buat. Anda juga bisa menekan Ctrl + F9 untuk mengeksekusi program anda.

Submenu Program Reset [Ctrl + F2]
Pilihan ini digunakan untuk memberitahukan Turbo Pascal bahwa anda selesai dengan pembetulan-pembetulan dan menginisialisasi debugger untuk operasi yang lain. Pilihan ini sekaligus membebaskan pengingat yang telah dialokasikan dan menutup semua berkas, tetapi tidak merubah nilai-nilai perubah. Pilihan ini sangat berguna jika anda ingin menjalankan pilihan File / OS shell.

Submenu Go to Cursor [F4]
Pilihan ini digunakan untuk memulai / melanjutkan eksekusi program dimulai dari posisi saat eksekusi dimulai sampai tempat kursor berada. Jika kursor berada pada statement yang bersifat executable, seperti spasi atau baris komentar, maka eksekusi akan dilanjutkan sampai statement yang bersifat executable.

Submenu Trace Into [F7]
Perintah ini digunakan untuk mengeksekusi baris berikutnya, jika ada pemanggilan ke suatu subrutin, maka pelacakan akan dimulai dari statement pertama dari subrutin tersebut. Sekaligus juga akan memuat berkas-berkas atau unit Include jika dimungkinkan.

Submenu Step Over
Step over ini memiliki cara kerja yang hampir sama dengan Trace Into, hanya saja jika statement adalah sebuah prosedur atau fungsi, maka keseluruhan subrutin akan dikerjakan sekaligus dan debugger akan berhenti pada statement sesudah pemanggilan ke subrutin.

Submenu User screen [Alt + F5]
Pada umumnya perintah ini digunakan untuk melihat hasil dari program yang telah compile dan kita run. Pada tampilan ini IDE [Integrated Debugger Environment] berpindah-pindah pada saat anda menjalankan dan mendebug program. Perintah ini juga digunakan oleh File / OS shell.

demikian semoga bermanfaat.

Saturday, 23 January 2016

FUNGSI-FUNGSI KONVERSI DI PASKAL

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.


Demikian semoga membantu, jika ada yang ingin ditanyakan silahkan tinggalkan pesan di kolom komentar. terima kasih.























FUNGSI-FUNGSI DATE DI PASKAL

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.

FUNCTION TANGGAL:STRING;
VAR
Y, M, D, DOW : Word;
BEGIN
GETDATE(Y,M,D,DOW);
TANGGAL := INTTOSTR(D) + '-'
+ INTTOSTR(M) + '-' + INTTOSTR(Y);
END;


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

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.

Demikian semoga dapat membatu, jika ada yang kurang jelas silahkan tinggalkan pesan di kolom coment.







Fungsi - fungsi string di pascal

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:

a. Lower Case
Fungsi ini akan mengubah string yang diinputkan menjadi Lower Case (huruf kecil).
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;

b. Upper Case
Fungsi ini akan mengubah string yang diinputkan menjadi Upper Case (huruf besar).
Ketikkan fungsi berikut ini:

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;

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 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;


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.