Langsung ke konten utama

Postingan

Menampilkan postingan dengan label Tips Dan Trick

Meningkatkan Produktivitas dalam Pengembangan Perangkat Lunak dengan ChatGPT

Dalam dunia pemrograman, terus berkembangnya teknologi membawa kemudahan dan efisiensi dalam proses pengembangan perangkat lunak. Salah satu kemajuan terbaru adalah penggunaan ChatGPT dalam bentuk library dan framework yang dapat membantu kerja programmer. Artikel ini akan membahas beberapa contoh library dan framework yang memanfaatkan ChatGPT dan bagaimana penggunaannya dapat meningkatkan produktivitas dalam pengembangan perangkat lunak. OpenAI API  OpenAI menyediakan API yang memungkinkan pengembang untuk mengakses model bahasa GPT-3, termasuk ChatGPT. Dengan menggunakan API ini, programmer dapat memanfaatkan kemampuan ChatGPT untuk memberikan saran dan solusi kode secara otomatis dalam aplikasi mereka. Hal ini dapat menghemat waktu dan usaha dalam mencari solusi kode, mempercepat proses pengembangan, dan meningkatkan efisiensi kerja. GitHub Copilot   GitHub Copilot adalah sebuah extension yang dikembangkan oleh GitHub dan OpenAI. Menggunakan teknologi ChatGPT, exte...

Menggunakan ChatGPT untuk Menulis Kode

ChatGPT, sebuah model bahasa yang dikembangkan oleh OpenAI, telah menjadi alat yang berguna bagi pengembang perangkat lunak untuk menulis kode. Dalam artikel ini, kita akan melihat beberapa cara untuk menggunakan ChatGPT dalam proses pengembangan perangkat lunak. Salah satu cara penggunaan ChatGPT adalah sebagai asisten yang membantu dalam menyelesaikan kode. Dalam pengembangan perangkat lunak, seringkali kita menghadapi masalah atau tantangan yang memerlukan solusi kode tertentu. Dengan menggunakan ChatGPT, kita dapat mengajukan pertanyaan atau menggambarkan masalah yang kita hadapi, dan model bahasa ini dapat memberikan saran atau bahkan menuliskan potongan kode yang relevan. Ini dapat membantu menghemat waktu dan usaha dalam mencari solusi. Selain itu, ChatGPT juga dapat digunakan untuk membantu menjelaskan atau mengkomunikasikan konsep pemrograman kepada orang lain. Misalnya, jika kita perlu menjelaskan logika atau algoritma tertentu kepada kolega yang tidak begitu akrab dengan ...

Menghitung Jumlah Karakter Tertentu Pada Suatu String

Temans, pada tips dan trik berikut ini saya akan menuliskan cara untuk menghitung jumlah karakter terntentu pada suatu string. Ada dua pendekatan yang saya lakukan. Yang pertama dengan looping sepanjang string dan kita cek satu persatu. Adapun cara kedua, adalah dengan me- replace dengan karakter kosong kemudian kita selisihkan panjang sebelum dan sesudah proses pe- replace -an. Selisih itu ada jumlah karakter yang kita cari. Lebih jelasnya perhatikan baris kode berikut ini : 1. Looping class function TAppUtils.HitungKarakterLooping(AStringHitung : Char; AStringSource : String): Integer; var i: Integer; begin Result := 0; for i := 1 to Length(AStringSource) do if AStringSource[i] = AStringHitung then Result := Result + 1; end; 2. Replace class function TAppUtils.HitungKarakterReplace(AStringHitung : Char; AStringSource : String): Integer; begin Result := Length(AStringSource) - Length(StringReplace(AStringSource, AStringHitung, '', [rfReplaceAl...

8 Kebiasaan Buruk Programmer (Yang Harus Dihindari)

Seorang programmer juga manusia biasa :). Berbuat kesalahan adalah suatu kewajaran. Yang membuat tidak wajar jika kesalahan - kesalahan tersebut menjadi kebiasaan. Dalam artikel ini saya akan bawakan beberapa kebiasaan programmer yang harus kita hindari. 1. Copy Paste Copy-paste adalah salah satu dari 10 penyebab kesalahan yang paling sering terjadi di dunia pemrograman. Kalau anda suka main copy-paste mungkin akan terkejut. Kenapa hal ini bisa terjadi? Ya... ketika kita melakukan copy-paste kode program, seringnya kita lupa untuk menyesuaiakan kode baris hasil copy-paste tadi. Padahal, mungkin saja ada variable, nama form, dll yang perlu disesuaikan. 2. Tidak Menginisialisasi Function Jangan serahkan inisialisasi return value sebuah function kepada compiler. Ini yang selalu saya tekankan pada setiap kali membuat function. Kenapa demikian? Karena persepsi kita tentang default value sebuah tipe data mungkin berbeda dengan yang dilakukan oleh compiler. Oleh karena itu, dari pada...

Delphi Optimization Guidelines

Menulis kode dengan baik dan benar (performa optimal) adalah dambaan semua programmer. Berbahagialah para Delphiers. Ada guideline yang bisa membantu mengotimalkan penulisan kode programe delphi. Semuanya bisa didwonload di :  Delphi Optimization Guidelines , browsable version in html Delphi Optimization Guidelines , as a zip of html files Delphi Optimization Guidelines , as a PDF

Cara Memasukkan Object Ke Dalam Combobox

Combobox tidak hanya menyediakan fasilitas untuk menampung string saja. Kita bisa menambahkan object ke dalam combobox. Dengan fasilitas ini kita akan mendapat kan banyak manfaatnya. Mis : Kita menyediakan data cabang dalam combobox. Ketika kita akan menyimpan transaksi yang menggunakan data cabang tersebut, tentunya kita membutuhkan ID atau kode dari cabang yng terpilih. Dengan kemampuan bisa menampung object, kita tidak perlu query lagi ke database guna mendapatkan ID/Kode cabang yang terpilih. Kita tinggal ambil object dari cabang yang terpilih, lalu ambil kode atau ID nya. Untuk memasukkan object kedalam combobox, ikuti langkah - langkah berikut ini : TComboObject = class(TComponent) private FData1: string; FData2: string; FID: Integer; public property Data1: string read FData1 write FData1; property Data2: string read FData2 write FData2; property ID: Integer read FID write FID; end; Kelas TComboObject ini saya turunkan dari TComponent....

Bagaimana Caranya Agar Lebar Kolom ListView Sesuai Dengan Panjang Data?

Pada artikel ini, saya akan memberikan trik membuat lebar kolom pada list view menyesuaikan lebarnya dengan panjang data secara runtime. Agar lebar kolom secara otomatis menyesuaikan dengan lebar data cukup mudah. Kita hanya perlu memberikan nilai width pada kolom tersebut dengan angka -2 (minus 2). Lebih detailnya ikut langkah - langkah berikut : Nama Property Value Name lv1 ViewStyle vsReport Width 505 2. Masukkan komponen TButton ke dalam form, set property di bawah ini : Nama Property Value Name btnBuatKolom Caption Buat Kolom Pada event OnClick button btnBuatKolom isikan baris kode berikut ini : procedure TfrmMain.btnBuatKolomClick(Sender: TObject); var i: Integer; lvColumn: TListColumn; begin for i := 1 to 10 do begin lvColumn := lv1.Columns.Add; lvColumn.Caption := 'Data Ke ' + IntToStr(i); end; end; 3. Masukkan s...

Cara Mengkonversi Angka Romawi Ke Angka Arab

Sistem penomoran yang sering dipakai adalah sistem penomoran angka arab. Angka arab terdiri dari sembilan angka yaitu 0,1,2,3,4,5,6,7,8,9. Selain sistem penomoran arab ada sistem penomoran lain yang juga sering dipakai, yaitu sistem romawi. Sistem penomoran romawi menggunakan 7 simbol yang bisa dikombinasikan untuk merepresentasikan angka 1 s.d. 1.000.000. Sismbol-simbol dalam sistem romawi yaitu : I = 1, V = 5, X = 10, L = 50, C = 100, D = 500, M = 1000. Contoh : 1973 (Arab) sama dengan MCMLXXIII (Romawi). Pada artikel berikut ini akan diberikan cara untuk mengkonversi angka romawi kedalam sistem arab. Berikut ini source code nya : function RomanToArabic(const romanNumber : string) : integer ; const romanChars = 'IVXLCDMvxlcdm?!#' ; decades : array [0..8] of integer = (0, 1, 10, 100, 1000,10000, 100000, 1000000, 10000000) ; OneFive : array [boolean] of byte = (1, 5) ; var newValue, oldValue : integer ; cIdx, P : byte ; begin result := 0; ...

Cara Efektif Menambahkan Komentar Pada Source Code

Dear Delphiers, pada artikel ini saya akan mencoba membahas bagaimana cara membuat komentar yang efektif pada source code aplikasi yang kita bangun. Saya sendiri merasa source code tanpa komentar bagaikan sayur tanpa garam. Ga sedap gitu lho ... : ). Tapi kalau kebanyakan komentar juga tidak bagus juga. Source code jadi kotor, semrawut, dan sulit dibaca. Ibarat sayur kebanyakan garam, ASIN !! Di delphi, ada beberapa cara untuk membuat komentar. Yang pertama dengan menggunakan operator "//". Tanda ini akan menjadikan baris di sebelah kanannya tidak akan dieksekusi oleh compiler . Cara ini sangat cocok untuk menambahkan satu atau dua baris komentar saja. Cara kedua dengan mengapit komentar dengan kurung kurawal "{}" . Karakter yang berada diantara tanda "{}" tidak akan dieksekusi oleh compiler. Cara ini sangat efektif untuk menambahkan komentar yang cukup panjang. Dalam menambahkan komentar, menurut saya, ada beberapa hal yang perlu diperhatikan ...

Function Untuk Menambahkan Karakter ‘0’( Nol) di depan Angka

Biasanya , ketika kita bikin aplikasi database kita akan banyak berurusan dengan data No Bukti. Pada umumnya, data no bukti ini mempunyai pola tertentu, misalnya : PO/10/0000001 : No Bukti Purchase Order, tahun 2010, no Urut 1 GR/10/0000101 : No Bukti Goods Receiving, tahun 2010, no Urut 101. PO/10/0000001 : No Bukti Purchase Order, tahun 2010, no Urut 1 GR/10/0000101 : No Bukti Goods Receiving, tahun 2010, no Urut 101. Dengan pola seperti itu, wajib bagi kita untuk menambahkan karakter 0 sebelum no urut. Pada artikel ini saya akan mencoba memberikan dua contoh function yang bisa melakukan hal di atas. 1. Cara Sendiri function TambahkanKarakterNol(Const AAngka, ALength : Integer) : String; begin Result := IntToStr(AAngka); while length(Result) < ALength do Result := '0' + Result; end; 2. Caranya Delphi : ) function TambahkanKarakterNol(AAngka, ALength : Integer): string; begin Result := SysUtils.Format('%.*d',[ALength, AAngka]); end;

Cara Efektif Menggunakan StringGrid

StringGrid merupakan salah satu VCL yang sangat berguna. Jika anda sudah familiar dengan Webbased Application, anda bisa analogikan StringGrid dengan Table. Table digunakan untuk meenampilkan data. Adapun StringGrid, selain sebagai komponen untuk menampilkan data, dia juga juga bisa sebagai tempat untuk memasukkan data, lihat gambar di bawah ini : Pada gambar di atas, saya menampilkan form jurnal umum sebagai contoh penggunaan StringGrid. Pada contoh di atas, stringgrid dipakai untuk memasukkan data item jurnal berupa Kode dan nama perkiraan, status Debet/Kredit dan Nominal. Untuk memanfaatkan Stringgrid saya mempunyai beberapa konstanta yang mencerminkan nomor urut kolom, misalnya _KolKode merujuk pada kolom Kode Perkiraan, _KolNama merujuk pada kolom Nama. Lebih jelasnya lihat baris kode berikut : Const _KolKode : Integer = 0; _KolNama : Integer = 1; _KolDK : Integer = 2; _KolNominal : Integer = 3; Konstanta-konstanta tersebut saya pakai di beberapa tempat. Diantaran...

Beberapa Hal Yang Menyebabkan Memory Leak

Pada artikel Mendeteksi Memory Leak sudah dijelaskan apa itu memory leak dan cara mendeteksinya. Pada artikel berikut ini akan saya berikan dua penulisan program yang akan menyebabkan memory leak. 1.Object Tidak Di Free Ketika Sudah Tidak Dipakai Jika kita meng-create Object secara runtime maka kita berkewajiban untuk mem-Free Object tersebut. Jika kita lupa, maka akan terjadi memory leak. Lihat contoh di bawah ini : Misalnya kita mempunyai kelas TKaryawan yang di dalamnya ada method SaveToDB. Var Karyawan : TKaryawan; begin Karyawan := TKaryawan.Create(nil); if Karyawan.SaveToDB then begin ShowMessage('Berhasil Simpan Data Karyawan'); end else begin ShowMessage('Gagal Simpan Data Karyawan'); end; end; Pada contoh di atas, kita meng-create object TKaryawan dengan cara Karyawan := TKaryawan.Create(nil); Pada saat create object ini komputer akan mengalokasikan memory untuk object Karyawan. Alokasi memory inilah yang harus dibebaskan ke...

Mendeteksi Memory Leak

Dear Delphiers, Kadang kita mengalami PC yang kita pakai kerja lama-lama lemot. Viruskah? Sudah update antivirus tetap aja masih lemot. Tapi setelah restart PC kita kembali segar bugar. Kalau memang kejadian ini sering kita alami, seharusnya kita mulai curiga jangan-jangan aplikasi yang sedang kita kerjakan mengalami/melakukan “Memory Leak” Apa itu memory leak? Memory Leak adalah ketidak mampuan software yang kita bangun untuk membebaskan memory yang dia pakai . Memory Leak adalah masalah yang srius. Coba bayangkan, ketika kita membangun aplikasi yang harus berjalan 24/7 dan pada setiap procedure menyebabkan memory leak, apa yang akan terjadi? Bisa-bisa Komputer akan hang dan bilang kalo dia kehabisan memory (Out Of Memory). ReportMemoryLeaksOnShutdown Semua versi delphi mulai Delphi 2006 mempunyai fasilitas memory manager yang sangat-sangat lebih bagus dari versi sebelumnya. Salah satu fitur yang sangat berguna adalah, aplikasi bisa kita minta melaporkan apakah ada memory l...

Membuat Form Yang Seragam

Dear Delphiers, Kadang kita menghendaki semua form yang ada di dalam aplikasi kita seragam. Misalnya, di setiap form kita menghendaki ada tombol New,Edit,Save dan Delete. Bagi pemula, biasanya mereka akan membuat sebuah form yang dijadikan acuan ketika membuat form-form baru. Ketika membuat form baru yang mereka lakukan pertama kali ada mengkopi form acuan tersebut kemudian me-Rename form tersebut menjadi form yang mereka kehendaki. Hal ini bisa saja dilakukan, tapi kurang Robust. Coba bayangkan, ketika terjadi perubahan misalkan dalam kasus ini klien menghendaki di setiap form ditambahkan tombol Help. Dengan cara di atas, maka kita harus lakukan adalah membuka tiap form lalu menambahkan tombol Help. Pusingkan? Dear Delphiers, Kadang kita menghendaki semua form yang ada di dalam aplikasi kita seragam. Misalnya, di setiap form kita menghendaki ada tombol New,Edit,Save dan Delete. Bagi pemula, biasanya mereka akan membuat sebuah form yang dijadikan acuan ketika membuat form-form ...

Pengaturan File Project Menggunakan Delphi 2010

Delphi 2010 merupakan IDE (Integrated Development Environtmen) untuk bahasa Object Pascal. Delphi 2010 ini merupakan produk dari Embarcadero Technologies, Inc. Produk ini merupakan versi terbaru dari keluarga Delphi. Delphi 2010 merupakan IDE (Integrated Development Environtmen) untuk bahasa Object Pascal. Delphi 2010 ini merupakan produk dari Embarcadero Technologies, Inc. Produk ini merupakan versi terbaru dari keluarga Delphi. Pada Delphi 2010 ini terdapat sedikit perubahan dalam konfigurasi file-file sebuah proyek. Dalam artikel ini , saya akan mencoba untuk memberikan contoh cara pengaturan file (organisasi file) dalam sebuah proyek yang dikembangkan menggunakan Delphi 2010. Apa yang saya tuliskan di sini merupakan cara yang saya terapkan dalam mengatur file-file proyek saya selama berkecimpung dalam dunia Delphi. Dan Alhamdulillah, apa yang lakukan selama ini terbukti cukup ampuh sehingga saya tidak mengalami permasalahan dalam pengaturan file-file. Dalam setiap proyek yan...

How can I prevent the user from closing a form?

To prevent the user from closing a form you need to disable the close button in the title bar of a form and at the same time disable the "Close" menu item in the form's system menu. This is done by calling the EnableMenuItem API function (see the example below). To prevent the user from closing a form you need to disable the close button in the title bar of a form and at the same time disable the "Close" menu item in the form's system menu. This is done by calling the EnableMenuItem API function (see the example below). Nonetheless, the user can still close the form using the Alt+F4 key combination, so we have to set the KeyPreview form property to True and write an event handler for the OnKeyDown event to cancel out this hot key: procedure TForm1.FormCreate(Sender: TObject); var hSysMenu: HMENU; begin hSysMenu := GetSystemMenu(Self.Handle, False); if hSysMenu <> 0 then begin EnableMenuItem(hSysMenu, SC_CLOSE, MF_BYCOMMAND Or MF_GRA...

FreeVCS Menu Disappears On Delphi 7. How to Fix It?

Obviously Borland introduced no serious changes in the VCS interface, therefore the current FreeVCS IDE version seems to work without problems. Obviously Borland introduced no serious changes in the VCS interface, therefore the current FreeVCS IDE version seems to work without problems. Of course the actual setup program offers no option to set registry keys for the D6/D7 IDE but you can simply create the related entry by yourself: - Create a new reg key "HKCU\Software\Borland\Delphi\6.0(or 7.0)\Version Control". (Remember the space between 'Version' and 'Control') - Create a new string value named "VCSManager". (No space between 'VCS' and 'Manager') - Enter full path and name of the FreeVCS DLL. (Example : c: C:\Program Files\FreeVCS\freevcs.dll) Restart the D6/D7 IDE and the FreeVCS Menu should be there... There is only one known problem related to D6/D7 for now: On some installations you may see the...

Menghitung Lama Procedure/Function Dieksekusi

Untuk Mengetahui berapa lama waktu yang dibutuhkan untuk mengeksekusi suatu procedure bisa kita gunakan function GetTickCount. Apa fungsi GetTickCuunt? Baca sendiri helpnya ya, ini sudah saya copy-kan : Untuk Mengetahui berapa lama waktu yang dibutuhkan untuk mengeksekusi suatu procedure bisa kita gunakan function GetTickCount. Apa fungsi GetTickCuunt? Baca sendiri helpnya ya, ini sudah saya copy-kan : Retrieves the number of milliseconds that have elapsed since the system was started, up to 49.7 days. Bagaimana cara menggunakannya? Simple saja, yang harus kita lakukan hanya mencatat return value dari function GetTickCount sesaat sebalum procedure dieksekusi dan sesudahnya. Kemudian kita selisihkan hasilnya. Oya jangan lupa, hasil selisihnya adalah dalam satuan milliseconds , jika kita mengehendaki hailnya dalam satuan detik tinggal kita bagi dengan 1000. Lebih jelasnya silahkan algoritma berikut ini iAwal := GetTickCount; Eksekusi Procedure; iAkhir := GetTickCount; ...

Merubah Enter Menjadi Tab

Kadang, user menginginkan ketika dia klik ENTER maka kursor akan berpindah ke componet berikutnya. Ada beberapa cara, antar lain memakai coponent EnterAsTab (Silahkan Googling). Kadang, user menginginkan ketika dia klik ENTER maka kursor akan berpindah ke componet berikutnya. Ada beberapa cara, antar lain memakai coponent EnterAsTab (Silahkan Googling). Jika kita tidak bisa menemukan component tersebut, kita bisa akali sebagai berikut : Di method FormKeyDown tuliskan Script Berikut if Key = VK_RETURN then begin SelectNext(ActiveControl,True,True); end; Jangan lupa untuk mengeset properties KeyPreview dari form menjadi TRUE. Sebenarnya untuk component StringGrid ketika Enter harus pindah ke cell berkutnya, script di atas belum bisa , ada yang bisa menambahkan ? :) Selamat Mencoba

Membuat Form Yang Seragam

Kadang, kita dituntut untuk membuat aplikasi yang semua formnya mempunya component yang sama. Hal ini akan sangat melelahkann jika kita harus menempatkan semua component tersebut di tiap-tiap form. Kadang, kita dituntut untuk membuat aplikasi yang semua formnya mempunya component yang sama. Hal ini akan sangat melelahkann jika kita harus menempatkan semua component tersebut di tiap-tiap form. Dengan pemahaman OOP yang dasar saja, sebenarnya kita bisa mengakali kasus di atas, caranya dengan menerapkan konsep inheritance. Yang harus kita lakukan adalah : 1. Buat Form Default (form ini nanti yang menjadi pola bagifrom2 lain) 2. Klik Menu File > New > Other 3. Pilih tab project kita 4. Cari from default tadi, klik OK 5. Simpan dengan nama lain. Nah, kita sudah medapatkan form baru yang sama persis dengan from default. Jika ad perubahan di form default, maka otomatis form turunannya akan ikut berubah. Selamat Mencoba