Home > Inno Setup, Tools Installer > Menambahkan form input pada saat instalasi (inno setup)

Menambahkan form input pada saat instalasi (inno setup)

December 12, 2010

Adakalanya kita ingin menyederhanan proses konfigurasi aplikasi, sehingga sebagian konfigurasi kita pindah pada saat instalasi.

Misal kita akan menambahkan input profil klien seperti nama, telepon, alamat dan kota.

Jadi dengan menggunakan Inno Setup kita bisa dengan mudah melakukan hal ini, dan untuk lokasi penyimpanannya sendiri ada 2 pilihan yaitu disimpan dalam format file INI atau langsung ke registry windows.

Kita akan bahas satu-satu kodenya dan pada artikel ini saya tidak membahas skrip lengkap Inno Setupnya karna sudah saya bahas pada artikel yang lainnya, jadi fokus kita kali ini hanya di section [Code].

Berikut kodenya untuk menambahkan form input dan menyimpannya ke file dengan format INI.

[Code]
var
   INIInputPage: TInputQueryWizardPage;

procedure InitializeWizard();
begin
  // Form Input
  INIInputPage := CreateInputQueryPage(wpInfoAfter, 'Konfigurasi', 'Konfigurasi Program.',
                                       'Isikan konfigurasi program ke dalam form di bawah ini.');

  INIInputPage.Add('Nama', False);
  INIInputPage.Add('Telepon', False);
  INIInputPage.Add('Alamat', False);
  INIInputPage.Add('Kota', False);

  INIInputPage.Values[0] := GetPreviousData('Nama', '');
  INIInputPage.Values[1] := GetPreviousData('Telepon', '');
  INIInputPage.Values[2] := GetPreviousData('Alamat', '');
  INIInputPage.Values[3] := GetPreviousData('Kota', '');
end;

// prosedur ketika user mengklik tombol kembali, setelah pengisian form
procedure RegisterPreviousData(PreviousDataKey: Integer);
begin
  // tampilkan nilai sebelumnya yang sudah diinputkan user
  SetPreviousData(PreviousDataKey, 'Nama', INIInputPage.Values[0]);
  SetPreviousData(PreviousDataKey, 'Telepon', INIInputPage.Values[1]);
  SetPreviousData(PreviousDataKey, 'Alamat', INIInputPage.Values[2]);
  SetPreviousData(PreviousDataKey, 'Kota', INIInputPage.Values[3]);
end;

// prosedur ketika user mengklik tombol lanjut, setelah pengisian form
function NextButtonClick(CurPageID: Integer): Boolean;
begin
  Result := True;
  if CurPageID = INIInputPage.ID then begin
    // validasi input, untuk contoh disini saya validasi semua inputan harus diisi
    if (Trim(INIInputPage.Values[0]) = '') or (Trim(INIInputPage.Values[1]) = '') or
       (Trim(INIInputPage.Values[2]) = '') or (Trim(INIInputPage.Values[3]) = '') then begin
       MsgBox('Anda harus mengisikan data secara lengkap!', mbError, MB_OK);
       Result := False;

    end else begin
      // jika semua input form oke, tulis ke file dengan format INI
      // otomatis akan disimpan di folder instalasi dengan nama konfig.ini
      SetIniString('Konfigurasi', 'Nama', INIInputPage.Values[0], ExpandConstant('{app}') + '\konfig.ini');
      SetIniString('Konfigurasi', 'Telepon', INIInputPage.Values[1], ExpandConstant('{app}') + '\konfig.ini');
      SetIniString('Konfigurasi', 'Alamat', INIInputPage.Values[2], ExpandConstant('{app}') + '\konfig.ini');
      SetIniString('Konfigurasi', 'kota', INIInputPage.Values[3], ExpandConstant('{app}') + '\konfig.ini');
    end;
  end;
end;

Berikut contoh file INI yang dihasilkan dari kode diatas

Sedangkan untuk menyimpan langsung ke registry windows menggunakan perintah RegWriteStringValue

// jika semua input form oke, simpan ke registry windows
RegWriteStringValue(HKEY_CURRENT_USER, 'Software\K4m4r82`s Laboratory\Sistem Informasi Sekolah', 'Nama', INIInputPage.Values[0]);
RegWriteStringValue(HKEY_CURRENT_USER, 'Software\K4m4r82`s Laboratory\Sistem Informasi Sekolah', 'Telepon', INIInputPage.Values[1]);
RegWriteStringValue(HKEY_CURRENT_USER, 'Software\K4m4r82`s Laboratory\Sistem Informasi Sekolah', 'Alamat', INIInputPage.Values[2]);
RegWriteStringValue(HKEY_CURRENT_USER, 'Software\K4m4r82`s Laboratory\Sistem Informasi Sekolah', 'Kota', INIInputPage.Values[3]);

Jika kita lihat di registry windows, hasilnya lebih kurang seperti berikut :

Selamat mencoba🙂

  1. December 13, 2010 at 6:33 am

    thanks, ini yang gw cari2 selama ini…klo lihat dari dokumentasi INNO sendiri kurang jelas…maklum masih pemula…😀

    • December 13, 2010 at 8:26 am

      Oke om sama2x🙂

  2. aang
    January 27, 2011 at 12:46 pm

    cool banget dech contentx…
    klo form inputnya, ditambahkan serial number untuk register yang dibuat scara random, gmna sourcenya ya bos?

    • January 28, 2011 at 2:08 am

      Gampang om, tinggal gabungkan aja postingan di atas dg yg disini.

      Selamat mencoba🙂

  3. Aris
    February 9, 2011 at 9:53 am

    Lha Tempat nyimpan file ini hasil dari dalam itu dimana gan???????
    Thanks sblme

    • February 9, 2011 at 10:10 am

      Difolder aplikasi om

  4. agenda
    April 21, 2011 at 5:43 am

    sory nanya… ini pake vb ato delphi ato apa ya….. kalo liat coding pake delphi bro….

    • April 21, 2011 at 6:01 am

      Gini om, inno setup itu dibuatnya pake delphi n open source dan kebetulan om Jordan Russell memasukkan dukungan skrip pascal ke inno setupnya.

  5. August 24, 2011 at 4:37 pm

    Salam kenal Om….
    mau tanya nihh. kalau paket untuk vb + crystal report 8.0 atau 8.5 gmana yaom? file2 apa saja yang harus dibawa dan penempatannya? trus kalau ada fle yang sudah ada, supaya mau mereplace tanpa konfirmasi gimana om?
    Makasih banyak sebelumnya om…

  6. November 15, 2011 at 5:59 am

    Permisi mas admin, saya pernah pake inno setup buat bikin setup vb6 ama crystal report tapi databasenya acces. Nah, kalo pake SQL server belum tau caranya mas…
    Kira2 gimana caranya biar gak usah install SQL server sama attach databsenya secara manual?
    Jadi begitu install setup program yg saya buat langsung bisa jalanin programnya sama bisa akses databasenya…
    Saya masih belum faham dengan penjelasan diatas, maklum masih newbie…😦
    Mohon bantuannya mas…

    • November 15, 2011 at 12:51 pm

      Sabar aja om, sy juga udah enggak sabaran pengen bahas tuntas permasalahan yg satu ini soalnya udah banyak juga yg nanya (jadi beban batin, halah :D), cuma lagi ada permasalahan klasik “sok sibuk” jadi belum sempat riset lebih dalam😦

      • junaedy
        December 15, 2011 at 10:05 am

        mas, boleh minta script yg full. maklum newbie..
        saya coba belum bisa.
        terima kasih..

        • December 19, 2011 at 1:09 pm

          Klo yang lengkap ada sini.

  7. rudi
    June 29, 2012 at 2:12 pm

    Assalamu’alaikum mas, mau tanya, kalo mau nambahin laporan dari crystal repot pake gmna ya, ane dh coba2 blom bisa :(…
    misal, ane pake C# vs 2010

    • June 30, 2012 at 8:07 pm

      Waalaikumussalam

      1. Klik kanan project -> add -> new item
      2. Pada pilihan installed template pilih reporting (gambar)

      Klo poin 2 enggak ada berarti ada kemungkinan pada saat instalai VS 2010nya pilihan Crystal Reportnya belum diaktifkan.

  8. rudi
    July 3, 2012 at 4:40 pm

    makasih mas…🙂
    kalo mau bikin laporan bawaannya vs d C# ada g mas? selain pake crystal report…
    pake crystl rreport aga berat ngeloadnya, hehhee

  9. Sedengan
    March 6, 2013 at 6:30 pm

    Gan, tolong banget ane dah dapet buat serial + keygen yang kayak ini (http://www.ziddu.com/download/21746890/Trial.zip.html) tapi kurang lengkap gak ada keygennya. Tolong banget gan, buatin keygennya. email please…….
    (blokcung@gmail.com)

    Thanks.

    • March 16, 2013 at 4:43 pm

      Buat keygennya kan gampang om, tinggal om copas fungsi GenCode yg ada di module modRegCode

      Private Sub cmdTesKeygen_Click()
          Dim computerID  As String
          Dim regCode     As String
          
          computerID = "-133893644"
          regCode = modRegCode.GenCode(computerID)
          
          MsgBox "Registration Code : " & regCode
      End Sub
      
  10. September 10, 2013 at 7:40 am

    mas admin cara buat file setup pke inno biar database bisa langsung include gimana ya???
    saya databasenya pake xampp mysq..

    • September 11, 2013 at 9:18 am

      Sudah banyak sekali yg menanyakan masalah ini.

      Coba dicek dulu disini trus tekan tombol CTRL + F ketik keyword “xamp” tanpa tanda petik gandanya.

  11. January 2, 2014 at 12:58 pm

    Permisi gan..
    Bagaimana caranya jika ingin memberikan opsi pada instalasi aplikasi client server dengan file .exe yang berbeda..?
    Misalnya, kalau install di server file exe yang digunakan adalah ‘programS.exe’ dan kalau client ‘programC.exe’.

    • January 2, 2014 at 2:48 pm

      Manfaatkan section Types dan Components, contoh :

      [Types]
      Name: klien; Description: "Instalasi Aplikasi Klien"
      Name: server; Description: "Instalasi Aplikasi Server"
      
      [Components]
      Name: klien; Description: "File-file aplikasi klien"; Types: klien; Flags: fixed
      Name: server; Description: "File-file aplikasi server"; Types: server; Flags: fixed
      
      [Files]
      Source: programS.exe; DestDir: {sys}; Components: server; Flags: uninsneveruninstall onlyifdoesntexist
      Source: programC.exe; DestDir: {sys}; Components: klien; Flags: uninsneveruninstall sharedfile regserver onlyifdoesntexist
      

      Contoh hasilnya :
      null

      • January 3, 2014 at 8:35 pm

        Siiip…..
        terima kasih gan…

  1. No trackbacks yet.
Comments are closed.
%d bloggers like this: