Dosen adalah pendidik profesional dan ilmuwan dengan tugas utama mentransformasikan, mengembangkan, dan menyebarluaskan ilmu pengetahuan, teknologi melalui pendidikan, penelitian, dan pengabdian kepada masyarakat (Permendikbud 49/2014 Pasal 1:14)

Sekolah Tinggi Teknologi Garut

Diselenggarakan mulai tahun 1991 dan bernaung di bawah Yayasan Al-Musaddadiyah. http://www.sttgarut.ac.id/

Program Studi Teknik Informatika

Berdiri pada tanggal 30 Juni 1998 dan terakreditasi B. http://informatika.sttgarut.ac.id/

Rinda Cahyana

Dosen PNS Kementrian Riset, Teknologi, dan Pendidikan Tinggi, dpk Sekolah Tinggi Teknologi Garut sejak tahun 2005

Minggu, 25 September 2011

Menyimpan jpg ke database

Seluruh kode yang ditulis di sini memerlukan unit DB dan jpeg sehingga harus dituliskan

uses DB, jpeg;

Cara untuk menyimpan file gambar ke dalam field "photo" bertipe text milik tabel dalam basis data SQL Server adalah sebagai berikut :

  1. Tambahkan komponen bernama OpenDialog1, ADOQuery1, Button1, dan Image1
  2. Pada event onClick komponen tombol Button1, tuliskan kode berikut :
procedure TFormPustaka.Button1Click(Sender: TObject);
var
FileStream: TFileStream;
BlobStream: TStream;
begin
OpenDialog1.Execute;
ADOQuery1.Edit;
try
BlobStream := ADOQuery1.CreateBlobStream(ADOQuery1.FieldByName('photo'),bmWrite);
FileStream := TFileStream.Create(OpenDialog1.FileName,fmOpenRead or fmShareDenyNone);
BlobStream.CopyFrom(FileStream,FileStream.Size);
FileStream.Free;
BlobStream.Free;
ADOQuery.Post; // menimpan gambar ke field "photo"
QDataPustakaAfterScroll(QDataPustaka); // memanggil event AfterScroll (di bawah)
except
ADOQuery1.Cancel;
end;
end;
end;


Cara untuk menampilkan data gambar yang merupakan isi field "photo" dengan menggunakan komponen ADOQuery1 dan Image1 adalah sebagai berikut :

  1. Pastikan properti string dari komponen ADOQuery1 mengandung SQL yang terhubung ke tabel yang memiliki field bertipe text.
  2. Pada event AfterScroll dari komponen ADOQuery1, tuliskan perintah berikut ini :
procedure ADOQuery1AfterScroll(DataSet: TDataSet);
var
JpegImage: TJPEGImage;
BlobStream: TStream;
begin
if (not ADOQuery1.FieldByName('photo').IsNull) then
begin
BlobStream:= ADOQuery1.CreateBlobStream(ADOQuery1.FieldByName('photo'),bmRead);
JpegImage := TJPEGImage.Create;
try
JpegImage.LoadFromStream(BlobStream);
Image1.Picture.Assign(JpegImage);
Image1.Visible := True; // ini tidak perlu jika Image1.Visible := False; tdk ditulis di bawah
finally
JpegImage.Free;
BlobStream.Free;
end;
end
else
Image1.Visible := False; // atau bisa juga Image1.Picture.Assign(nil);
end;

Tambahkan DBGrid, kemudian hubungkan dengan ADOQuery menggunakan DataSource. Setiap anda mengklik sel DBGrid, maka apabila field "photo" pada record tersebut mengandung gambar, akan muncul gambarnya di komponen image1.

Kamis, 22 September 2011

Enkripsi dan Deskripsi Password


unit uEncrypt;

interface

function Decrypt(const S: AnsiString; Key: Word): AnsiString;
function Encrypt(const S: AnsiString; Key: Word): AnsiString;

implementation

const
C1 = 52845;
C2 = 22719;

function Decode(const S: AnsiString): AnsiString;
const
Map: array[Char] of Byte = (0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 62, 0, 0, 0, 63, 52, 53,
54, 55, 56, 57, 58, 59, 60, 61, 0, 0, 0, 0, 0, 0, 0, 0, 1, 2,
3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19,
20, 21, 22, 23, 24, 25, 0, 0, 0, 0, 0, 0, 26, 27, 28, 29, 30,
31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45,
46, 47, 48, 49, 50, 51, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0);
var
I: LongInt;
begin
case Length(S) of
2:
begin
I := Map[S[1]] + (Map[S[2]] shl 6);
SetLength(Result, 1);
Move(I, Result[1], Length(Result))
end;
3:
begin
I := Map[S[1]] + (Map[S[2]] shl 6) + (Map[S[3]] shl 12);
SetLength(Result, 2);
Move(I, Result[1], Length(Result))
end;
4:
begin
I := Map[S[1]] + (Map[S[2]] shl 6) + (Map[S[3]] shl 12) +
(Map[S[4]] shl 18);
SetLength(Result, 3);
Move(I, Result[1], Length(Result))
end
end
end;

function PreProcess(const S: AnsiString): AnsiString;
var
SS: AnsiString;
begin
SS := S;
Result := '';
while SS <> '' do
begin
Result := Result + Decode(Copy(SS, 1, 4));
Delete(SS, 1, 4)
end
end;

function InternalDecrypt(const S: AnsiString; Key: Word): AnsiString;
var
I: Word;
Seed: Word;
begin
Result := S;
Seed := Key;
for I := 1 to Length(Result) do
begin
Result[I] := Char(Byte(Result[I]) xor (Seed shr 8));
Seed := (Byte(S[I]) + Seed) * Word(C1) + Word(C2)
end
end;

function Decrypt(const S: AnsiString; Key: Word): AnsiString;
begin
Result := InternalDecrypt(PreProcess(S), Key)
end;

function Encode(const S: AnsiString): AnsiString;
const
Map: array[0..63] of Char = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' +
'abcdefghijklmnopqrstuvwxyz0123456789+/';
var
I: LongInt;
begin
I := 0;
Move(S[1], I, Length(S));
case Length(S) of
1:
Result := Map[I mod 64] + Map[(I shr 6) mod 64];
2:
Result := Map[I mod 64] + Map[(I shr 6) mod 64] +
Map[(I shr 12) mod 64];
3:
Result := Map[I mod 64] + Map[(I shr 6) mod 64] +
Map[(I shr 12) mod 64] + Map[(I shr 18) mod 64]
end
end;

function PostProcess(const S: AnsiString): AnsiString;
var
SS: AnsiString;
begin
SS := S;
Result := '';
while SS <> '' do
begin
Result := Result + Encode(Copy(SS, 1, 3));
Delete(SS, 1, 3)
end
end;

function InternalEncrypt(const S: AnsiString; Key: Word): AnsiString;
var
I: Word;
Seed: Word;
begin
Result := S;
Seed := Key;
for I := 1 to Length(Result) do
begin
Result[I] := Char(Byte(Result[I]) xor (Seed shr 8));
Seed := (Byte(Result[I]) + Seed) * Word(C1) + Word(C2)
end
end;

function Encrypt(const S: AnsiString; Key: Word): AnsiString;
begin
Result := PostProcess(InternalEncrypt(S, Key))
end;

end.

Sumber : http://www.swissdelphicenter.ch/torry/showcode.php?id=1243

Senin, 05 September 2011

Barangsiapa yang mengenal dirinya, maka sungguh dia akan mengenal Rabb-Nya

Kebetulan dapat kutipan perkataan Yesus dalam Injil Thomas yang dikutip dari buku kajian tentang perpustakaan Nag Hamady, sebagai berikut :

"ketika kalian semua mengenali diri kalian saat itu kalian akan menjadi mengerti (Arifin) …"

Perkataan ini mirip dengan “Barangsiapa yang mengenal dirinya, maka sungguh dia akan mengenal Rabb (Tuhan)-Nya”. yang dianggap Imam Ghazali dalam kitab Kimiya-i Sa'adah sebagai hadits Qudsi. Sejumlah ulama telah meneliti perkataan ini, yang ternyata bukan firman Tuhan dalam hadits qudsi atau perkataan Rasulullah SAW.

Dalam Gus Har disebutkan bahwa Syaikh Al-Albaniy -rahimahullah- dalam Adh-Dha’ifah (1/165) berkata, “Hadits ini tidak ada asalnya” [Adh-Dha’ifah (1/165)]. An-Nawawiy berkata, “Hadits ini tidak tsabit (tidak shahih)” (Al-Maqashid (198) oleh As-Sakhowiy)

As-Suyuthiy berkata, “Hadits ini tidak shahih” (Lihat Al-Qoul Asybah (2/351 Al-Hawi)

Dalam kitab Tamyizutthoyyib Minal Khobits Fima Yadurru Ala Alsinatinnasi Minal Hadits, karya Imam Abdurrahman Assyibani AsSyaf'i, Assamani berkata ucapan tersebut tidak dikenal sebagai hadits marfu yang sampai kepada Nabi, ia hanyalah ungkapan dari Yahya bin Muadz Ar-Razy. Imam Nawawi berkata hadits ini tidak shahih, innahu laysa bitsabit (maksudnya tidka sampai kepada Nabi). Dalam kitab lain yaitu : Asnal Matholib Fi Ahadits Mukhtalifail Marotib karya Syeikh Abdurrahman Albayruthy disebutkan Imam Nawawi berkata ungkapan itu bukan hadits tetapi ucapan Abu Said Al Khorroj atau Yahya bin Muadz Ar-Razy.

Perkataan Yahya bin Muadz Ar-Razy yang dianggap hadits ini sama dengan perkataan Yesus dalam Injil Thomas. Apa perkataan ini sebenarnya kutipan dari sana yang disalahfahami al Ghazali sebagai hadits Qudsi ? Allahu'alam.

Kamis, 01 September 2011

Asal Dosa Manusia


Asal dosa itu adalah mengikuti tipu daya setan jin dan setan manusia.

Dan demikianlah Kami jadikan bagi tiap-tiap nabi itu musuh, yaitu syaitan-syaitan (dari jenis) manusia dan (dan jenis) jin, sebahagian mereka membisikkan kepada sebahagian yang lain perkataan-perkataan yang indah-indah untuk menipu (manusia). Jikalau Tuhanmu menghendaki, niscaya mereka tidak mengerjakannya, maka tinggalkanlah mereka dan apa yang mereka ada-adakan. (6:112)

Jika nafsu manusia tidak diberi rahmat oleh Allah, nafsu inilah yang mendorong manusia mengikuti tipu daya setan

Dan aku tidak membebaskan diriku (dari kesalahan), karena sesungguhnya nafsu itu selalu menyuruh kepada kejahatan, kecuali nafsu yang diberi rahmat oleh Tuhanku. Sesungguhnya Tuhanku Maha Pengampun lagi Maha Penyanyang. (12:53)

Dengan demikian, nafsu dapat menjadi musuh dalam selimut, yang digunakan setan untuk memperkuat pengaruhnya.

Agama yang berisi keterangan halal dan haram dari Tuhan menjadi penyelamat dari tipu daya setan. Orang yang menuruti hawa nafsunya yang meyeru dirinya kepada kejahatan yang dikehendaki setan, akan beroleh dosa.

Maka apakah orang yang berpegang pada keterangan yang datang dari Rabbnya sama dengan orang yang (shaitan) menjadikan dia memandang baik perbuatannya yang buruk itu dan mengikuti hawa nafsunya? (47:14)

Kesimpulannya :

Dan tidaklah seorang membuat dosa melainkan kemudharatannya kembali kepada dirinya sendiri; dan seorang yang berdosa tidak akan memikul dosa orang lain. (al An’am : 164) Kamu tidak akan ditanya (bertanggung jawab) tentang dosa yang kami perbuat dan kami tidak akan ditanya (pula) tentang apa yang kamu perbuat. (Saba’ : 25)