• Tidak ada hasil yang ditemukan

PENDAHULUAN : IDE DAN STRUKTUR PROGRAM DELPHI PEMROGRAMAN DELPHI

N/A
N/A
Protected

Academic year: 2021

Membagikan "PENDAHULUAN : IDE DAN STRUKTUR PROGRAM DELPHI PEMROGRAMAN DELPHI"

Copied!
145
0
0

Teks penuh

(1)

Sebelum kita memulai Delphi, kita harus menginstalasi program Delphinya terlebih dahulu. Kita bisa menggunakan Delphi 5, 6, 7 atau 8. Sebenarnya Delphi versi berapapun tidak masalah, karena produk Borland ini selalu menjaga kompatibilitas antar versinya. Untuk menginstalasi Delphi cukup mudah, tinggal ikuti petunjuk yang diberikan pada tampilan di layar. Sesudah Delphi terinstalasi pada komputer, kita bisa memulai mengenal dahulu apa itu Delphi? Kelompok bahasa pemrograman apa?

Delphi adalah kompiler / penterjemah bahasa Delphi (awalnya dari Pascal) yang merupakan bahasa tingkat tinggi sekelas dengan Basic, C. Bahasa Pemrograman di Delphi disebut bahasa prosedural artinya bahasa/sintaknya mengikuti urutan tertentu / prosedur. Ada jenis pemrograman non-prosedural seperti pemrograman untuk kecerdasan buatan seperti bahasa Prolog. Delphi termasuk Keluarga Visual sekelas Visual Basic, Visual C, artinya perintah-perintah untuk membuat objek dapat dilakukan secara visual. Pemrogram tinggal memilih objek apa yang ingin dimasukkan kedalam Form/Window, lalu tingkah laku objek tersebut saat menerima event/aksi tinggal dibuat programnya. Delphi merupakan bahasa berorentasi objek, artinya nama objek, properti dan methode/procedure dikemas menjadi satu kemasan (encapsulate). Sebelum mempelajari ketiga struktur pemrograman ada baiknya kenali dahulu tampilan IDE, yang merupakan editor dan tools untuk membuat program Delphi. Pada IDE akan ditampilkan Form baru yang merupakan aplikasi/program Window yang akan dibuat. Aplikasi / program berbasis windows sering disebut dengan jendela (window). Bagaimana membuat aplikasi berbasis windows (berbasis grafik dan bukan berbasis teks seperti pada DOS)? Caranya dengan membuat sebuah form. Pada pemrograman berbasis windows, kita akan diperhadapkan pada satu atau beberapa jendela yang nampak dihadapan kita. Jendela ini dalam Delphi disebut juga dengan form. Pada pemrograman berbasis windows, kita akan diperhadapkan pada satu atau beberapa jendela yang nampak dihadapan kita. Jendela ini dalam Delphi disebut juga dengan form. Delphi adalah sebuah perangkat lunak (bahasa pemrograman) untuk membuat program / aplikasi komputer berbasis windows. Delphi merupakan bahasa pemograman berbasis objek, artinya semua komponen yang ada merupakan objek-objek. Ciri sebuah objek adalah memiliki nama, properti dan method/procedure. Delphi disebut juga visual programming artinya komponen-komponen yang ada tidak hanya berupa teks (yang sebenarnya program kecil) tetapi muncul berupa gambar-gambar.

1.1.1 Membuat Sebuah Form

Saat anda pertama kali masuk ke Delphi, anda akan diperhadapkan pada sebuah form kosong yang akan dibuat secara otomatis. Form tersebut diberi nama Form1. Form ini merupakan tempat bekerja untuk membuat antarmuka pengguna.

PENDAHULUAN : IDE DAN

STRUKTUR PROGRAM DELPHI

PEMROGRAMAN DELPHI

(2)

Gambar1. Form kosong yang dibuat saat anda masuk Delphi 1.1.2 Mengganti Nama Form dan Menambahkan Judul

Biasakan sebelum menjalankan program, sebaiknya ganti nama form dan beri judul sesuai program yang kita buat. Delphi akan secara otomatis memberi nama form1, form2, form3, dst. Nama form tersebut kurang mengandung arti dan akan menyulitkan bila form yang dibuat cukup banyak.

Saat membuka Delphi pertama kali, nampak sebuah jendela Object Inspector. Jika tidak muncul pilih menu View | Object Inspector atau tekan tombol F11. Pada Object Inspector ada dua buah halaman (tab) yaitu Properties dan Events. Properties digunakan untuk mengganti properti (kepemilikan) sebuah objek/komponen. Sedangkan Events digunakan untuk membuat procedure yang diaktifkan (trigered) lewat sebuah event.

Gambar 2. Jendela Object Inspector untuk mengganti properti caption Nama objek Tab events Tab properties

Nilai / isi dari properties Properties Caption Nama form Minimize Maximize Close Tempat bekerja

(3)

Gantilah judul form dengan Hello melalui properti Caption, sedangkan nama form dengan nama frmHello melalui properti Name. Caption digunakan untuk menyimpan keterangan yang dimunculkan pada form, sedangkan Name digunakan sebagai Nama dari objek tersebut.

Anda sekarang sudah membuat aplikasi form kosong dengan tombol standar window : Minimize, Maximize, dan Close. Anda dapat mengubah ukuran form dengan menarik pada bingkai form menggunakan mouse (drag = klik tombol kiri mouse, tahan tombol tersebut lalu geser ke kiri/kanan atau atas/bawah). Anda dapat memindahkan form dengan meletakkan kursor pada form kemudian menggesernya (drag).

1.1.3 Menyimpan Form

Pada Delphi ada 3 buah file utama (*.dpr, *.pas dan *.dfm). a) *.dpr adalah file proyek yang dibuat berisi program kecil untuk :

 mendefinisikan Unit yang ada dalam file proyek  menginisialisasi data

 membangun form  menjalankan aplikasi

b) *.pas adalah unit-unit (pascal code file), bisa terdiri satu atau banyak file

c) *.dfm adalah file definisi Form (special pseudo code file), bisa terdiri satu atau banyak file Catatan :

Isi dari properti Name harus diawali alpabet dan tidak menggunakan spasi atau tanda baca.

uses Forms,

Unit1 in ‘Unit1.pas’ {Form1}; begin

Application.Initialize;

Application.CreateForm(Tform1, Form1); Application.Run;

end.

object Form1: Tform1

Left = 200 Top = 108 Width = 696 Height = 480 Caption = ‘Form1’ :

Font.Name = ‘MS Sans Serif’ Font.Style = []

PixelsPerInch = 96 TextHeight = 13

object Button1: Tbutton

Left = 176 Top = 116 :

(4)

Pilih submenu Save Project atau Save Project As pada menu File, dan Delphi akan menanyakan nama file source code untuk unit (*.pas) dan nama file proyeknya (*.dpr). Beri nama file form dengan HELLO.PAS dan project HELLO.DPR. Sesudah disimpan, jalankan program dengan menekan tombol F9 atau pilih menu Run

| Run.

1.1.4 Menempatkan Komponen pada Form

Karena Delphi merupakan bahasa pemrograman visual, maka komponen-komponen akan nampak pada layar. Anda tinggal menempatkan komponen yang diinginkan pada form. Ada empat cara menempatkan komponen pada form. Misal anda memilih komponen Button pada Components Palette bagian Standard Page. Anda dapat memilih salah satu langkah berikut:

 Klik pada kompenen tersebut, pindahkan kursor ke form, sambil menekan tombol kiri mouse (drag komponen dan geser pada form) atau

Pilih komponen (klik komponen yang diinginkan) pada Components Palette kemudian klik pada form dimana komponen itu akan diletakkan.

 Klik ganda pada komponen yang diinginkan, maka komponen tersebut akan ditambahkan pada form  Anda dapat menggunakan Copy dan Paste bila ingin membuat komponen yang sama yang sudah ada

pada form. Caranya Shift-Klik kiri pada komponen yang ada di form, lalu pilih menu Copy (Ctrl-C) kemudian pilih menu Paste (Ctrl-V).

Gambar 3. Kumpulan komponen

Catatan:

Setiap Form (.dfm) harus memiliki sebuah Unit (.pas), tetapi anda dapat memiliki Unit tanpa sebuah Form (hanya kode saja). Jika ingin melihat kode tersebut anda dapat mengklik kanan mouse, lalu pilih VIEW AS TEXT atau tekan tombol Alt-

F12. Sebaiknya anda tidak mengubah isi code tersebut, karena akan menyebabkan

masalah serius. Tunggu saat anda sudah memahami maksud kode tersebut. Untuk kembali ke bentuk form, pilih VIEW AS FORM atau tekan tombol Alt- F12 kembali.

Speedbar

Menu utama : File, Edit,

Seaarch, View, dll. Component palettebagian Tab Standard

(5)

Pada form ini hanya ada satu button, mungkin ada di bagian tengah form. Anda dapat mengatur letak komponen tersebut dengan menggesernya. Bila anda ingin merapihkan pilih menu View |Alignment Palette, maka muncul sebuah Toolbox Align dengan ikon perapihan (alignment icons).

Gambar 4. Form dan Toolbox Alignment

Dengan toolbox ini anda dapat merapikan beberapa komponen sekaligus, caranya buat fokus beberapa komponen, lalu klik icon pada toolbox yang diinginkan. Untuk mengetahui arti icon tersebut gerakan mouse pada tombol tersebut, lalu akan muncul penjelasan singkat kegunaan icon tersebut atau lihat Help (tekan F1). Anda bisa mempelajarinya sendiri. Cukup mudah!.

Langkah yang penting adalah mengubah nama dan keterangan kompenen button tersebut. Ikuti bagian ini

1.1.6 Mengubah Nilai Properti

Ubah nilai properti Caption menjadi Katakan Hello dan nilai properti Name menjadi btnHello. Langkah ini mirip dengan mengubah nama dan keterangan sebuah form.

Properti name adalah properti internal dan digunakan untuk memberi nama pada sebuah komponen/objek. Nama ini adalah sebuah variabel yang mengacu pada komponen tersebut.

Beberapa aturan penamaan komponen atau variabel atau identifer sebagai berikut  Diawali alpabet, berikutnya boleh angka, garis bawah.

 Tidak memakai spasi atau tanda-tanda baca atau operator  Boleh huruf kapital atau kecil, tidak ada perbedaan

Tidak menggunakan kata kunci (reserve word) yang digunakan Delphi

 Biasakan nama komponen diawali kelompok komponennya, misal btnHello, frmHello, rgrKelas. Setiap komponen sebaiknya diberinama yang memiliki arti dan diawali oleh jenis komponennya. Misal nama dari form Hello adalah “frmHello” atau nama dari button Hello adalah “btnHello”. Tujuannya adalah mengelompokkan komponen-komponen sejenis, karena pada Object Inspector nama komponen diurutkan berdasarkan alpabet.

(6)

Berikut contoh penamaan yang keliru menggunakan spasi

Gambar 5. Pesan kesalahan saat mengubah properti Name.

Sesudah anda mengubah properti anda dapat melihat kode programnya (tekan Alt-F12) sebagai berikut : object Form1: Tform1

:

Caption = ‘Hello’ :

object btnHello: Tbutton Caption = ‘Katakan Hello’ End

end

1.1.7 Membuat Method/Procedure lewat Event

Saat anda menekan tombol pada sebuah form atau komponen, Windows memberitahukan bahwa aplikasi mengirim pesan yang dibangkitkan oleh event tertentu . Delphi akan menanggapi dengan menerima event atau panggilan tersebut. Hal ini yang dinamakan penanganan event (event-handler method). Delphi mendefinisikan sejumlah event pada setiap komponennya. Daftar event ini berbeda untuk setiap komponen. Event yang paling umum pada komponen Button adalah OnClick. Artinya jika komponen Button tersebut di Klik maka akan melakukan procedure apa.

Ada beberapa teknik yang dapat dilakukan untuk menangani event misal OnClick pada komponen button :

 Klik ganda pada button tersebut, maka sebuah method/procedure btnHelloClick

 Pilih button, kemudian pilih Object Inspector’s combo box (called the Object Selector), pilih Tab Events, dan klik ganda pada area putih disebelah kanan event OnClick

 Pilih button, pilih Tab Events, dan masukkan nama method yang dikehendaki, misal btnHelloClick pada area putih di sebelah kanan event OnClick

(7)

Gambar 6. Tab Events pada Object Inspector, dan procedure yang dibangkitkan lewat event OnClick.

Sekarang anda mengisi procedure tersebut dengan perintah untuk menampilkan pesan sebagai berikut :

Perintah ini sangat sederhana, yaitu untuk menampilkan pesan. Fungsi ini mempunyai empat parameter. Untuk rincinya anda dapat melihat bantuan (F1).

 Parameter pertama : kalimat yang akan dimunculkan (pesannya)

 Parameter kedua : tipe message box seperti mtWarning, mtError, mtInformation, atau mtConfirmation. Coba lihat perbedaannya.

 Parameter ketiga : kumpulan tombol yang akan digunakan seperti mbYes, mbNo, mbOK, mbCancel, atau mbHelp.

 Parameter keempat : untuk help context atau nomor halaman pada Help, beri angka nol jika anda tidak mempunyai file help.

Bila anda ingin menghapus procedure atau penanganan event tersebut, anda dapat menghapus pada editor Unit tersebut. Hapus blok procedure tersebut dan hapus pada bagian definisi procedure yang ada diatasnya.

procedure Tform1.BtnHelloClick(Sender: Tobject); begin

MessageDlg (‘Hello, guys’, mtInformation, [mbOK], 0); end;

(8)

Gambar 7. Message box 1.1.8 Kompilasi dan Jalankan Program

Tekan tombol Run atau pilih menu Run | Run, Delphi does the following:

1. Kompilasi Pascal source code file yang mendefinisikan form-form yang ada (.pas,.dfm) 2. Kompilasi project file (.dpr)

3. Buat executable (.EXE) file

4. Jalankan executable file, biasanya pada mode pencarian kesalahan (debug mode).

Perintah-perintah ini akan diproses oleh kompiler secara berurutan. Contoh kita memiliki 3 baris perintah. Kompiler akan memroses mulai dari baris-1, baris-2 kemudian baris-3.

Contoh program untuk menampilkan pesan sebanyak 3 kali seperti berikut :

Berikut latihan ke-1 untuk tiga buah aplikasi yaitu membuat tombol Hello, saat diklik tombolnya, tombol akan beraksi dengan memunculkan pesan. Ikuti langkahnya sebagai berikut :

1. Buat form frmHello1 seperti yang sudah dijelaskan.

Komponen yang dibutuhkan form dengan nama frmHello1 dan button dengan nama btnHello1. Ubah properti name-nya

Ubah properti caption masing-masing komponen menjadi Membuat program Hello1 dan Katakan Hello

Buat method dari komponen btnHello1 lewat event OnClick, seperti berikut

 Jalankan program lihat hasilnya

 Coba ganti parameter ke-1, ke-2 dan ke-3

Simpan dengan nama unit uHello1.pas dan project pHello1.dpr pada direktori Latih1

2. Buat aplikasi baru (File-New-Application) dengan form baru frmHello2 mirip form frmHello1 dengan tambahan sebagai berikut. Apa yang terjadi? (properti caption dari komponen tombol diganti saat program berjalan)

MessageDlg (‘Hello, guys’, mtInformation, [mbOK], 0); MessageDlg (‘Hello, lady’, mtInformation, [mbOK], 0); MessageDlg (‘Hello, everybody’, mtInformation, [mbOK], 0);

procedure TfrmHello1.btnHello1Click(Sender: Tobject); begin

MessageDlg (‘Hello, guys’, mtInformation, [mbOK], 0); end;

(9)

Komponen yang dibutuhkan form dengan nama frmHello2 dan button dengan nama btnHello2. Ubah properti name-nya

Buat method untuk mengubah ukuran formHello2 lewat event OnResize, perhatikan apa yang terjadi bila ukuran form diubah saat program berjalan

Simpan dengan nama unit uHello2.pas dan project pHello2.dpr pada direktori Latih1

3. Buat aplikasi baru (File-New-Application) dengan form baru frmHello3 seperti yang sudah dijelaskan. Objek Properties Value of properties Method lewat event

Form1 Name FrmHello3

Button1 Name BtnHello3 (lihat dibawah)

Caption &Show Me

Label1 Name LblHello3

Font Size 24

Buat method dari komponen btnHello3 lewat event OnClick, seperti berikut

 Jalankan program lihat hasilnya

Simpan dengan nama unit uHello3.pas dan project pHello3.dpr pada direktori Latih1 2.1. Menu dan Perintah pada Delphi

Ada empat cara untuk memberi perintah pada lingkungan Delphi (Delphi environment):  Gunakan menu

procedure TfrmHello2.btnHello2Click (Sender: Tobject); begin

MessageDlg (‘Hello, guys’, mtInformation, [mbOK], 0); BtnHello2.Caption := ‘Say Hello Again’;

end;

procedure TfrmHello2.FormResize(Sender: Tobject); begin

BtnHello2.Top := frmHello2.ClientHeight div 2 – BtnHello2.Height div 2;

BtnHello2.Left := frmHello2.ClientWidth div 2 – BtnHello2.Width div 2;

end;

procedure Tform1.btnHello3Click(Sender: Tobject); begin

if btnHello3.caption =’&Show Me’ then begin

lblHello3.caption := ‘Selamat Datang di Delphi 5.0’; btnHello3.caption :=’&Hide Me’;

end else begin

lblHello3.caption := ‘’;

btnHello3.caption :=’&Show Me’; end;

(10)

 Gunakan Short Cut (misal F9, F12 dsb)  Gunakan SpeedBar (atau toolbar).

 Gunakan SpeedMenu ( lokal menu yang diaktifkan dengan tombol mouse kanan). Berikut menu utama yang ada pada Delphi (untuk mempelajarinya gunakan Help Delphi):

Menu File. Menu ini berhubungan dengan file seperti membuat, menyimpan dan mengakhiri sebuah pekerjaan. Menu Edit .Menu ini berhubungan dengan penyuntingan apa yang dikerjakan seperti Undo , Redo, Cut, Copy, Paste atau dapat dengan tombol Ctrl+Z, Ctrl+X, Ctrl+C, Ctrl+V.

Menu Search. Menu ini berhubungan dengan pencarian dan penggantian data.

Gambar 8. Jendela Find Text

Menu View. Menu ini berhubungan dengan penampilan atau apa yang akan ditampilkan.

Menu Project. Menu ini berhubungan dengan proyek yang sedang dibuat, misal unit yang akan ditambahkan ke proyek ini, unit apa yang akan dihapus, dsb.

Menu Run. Menu ini berhubungan dengan menjalankan program, mencari kesalahan (debug), dsb.

Menu Component. Menu ini berhubungan dengan komponen, misal menambah komponen baru, menghapus komponen yang ada.

Menu Database. Menu ini berhubungan dengan Database, Database Form Wizard dan Database Explorer. Menu Tools. Menu ini berhubungan dengan pengaturan/konfigurasi, tool-tool pembantu Delphi.

Menu Help. Menu ini berhubungan dengan informasi mengenai Delphi, Help / bantuan 2.2. Component, Property, Method, Event

Kode yang akan dilihat, serupa dengan struktur Bahasa Pascal. Delphi adalah bahasa pemrograman berbasis objek, artinya pendekatan pembuatan program melalui objek-objek yang ada. Misalnya objek form, text dsb. Setiap objek akan memiliki properti (atribut) dan method yang diaktifkan / dipicu oleh event. Mari kita lihat penjelasan berikut.

Apakah Objek (COMPONENT) itu?

Ingat sebuah komponen adalah sebuah objek pada Palette, :

 sebuah Objek, adalah sebuah komponen dalam Component Palette,  atau sesuatu yang dibuat melalui kode-kode / bahasa pemrograman

(11)

merupakan komponen, misal TstringList adalah sebuah objek (kumpulan karakter), dan bukan sebuah komponen. Penjelasan mengenai komponen di Lampiran A.

Apakah sebuah PROPERTY itu?

Sebuah Property tidak lain adalah sebuah nama/variabel milik sebuah objek/komponen misal Caption, Text yang dapat diubah nilai baik melalui object Inspector atau melalui program.

Beberapa istilah/ nama berikut yang mirip, dan sering digunakan:

Procedure adalah kumpulan perintah yang melakukan suatu proses tertentu

Function adalah sama dengan procedure, tetapi proses tersebut dapat mengembalikan suatu hasil / nilai misal hasilnya = 1

Method adalah procedure atau function yang tergabung pada sebuah komponen

Subroutine adalah istilah umum dari semuanya (procedure/function/method) misal pada bahasa Basic. Apakah sebuah METHOD itu?

Sebuah method adalah sebuah function/fungsi yang tergabung dalam sebuah objek. Contoh ListBox (dapat berarti sebuah array of strings) yang memiliki Method (Clear) yang membuat Listbox tersebut menjadi kosong. CLEAR adalah sebuah Method pada ListBox tersebut.

Apakah sebuah EVENT itu?

Sebuah Event adalah sebuah aksi pengguna (User Action) misal Mouse Click, KeyPressed. Setiap Events diawali dengan kata ‘On’.

Contoh :

Nama event Nama method

OnClick .. Button1Click(Sender : Tobject) OnKeyDown .. Button1KeyDown(Sender : Tobject) OnMouseMove .. Button1MouseMove(Sender : Tobject) 2.3. Cara Delphi Bekerja

Saat anda menambahkan Components pada Form1 dan merubah nilai properti, Delphi akan membuat (pseudo) code (dalam Unit1.dfm) untuk mendefinikan apa yang anda lakukan. Secara normal, ANDA TIDAK DIHARAPKAN MENGUBAHNYA Unit1.dfm File; Anda hanya bekerja pada Form1 secara Visual. Ini yang dinamakan bahasa pemrograman Visual (Visual Programming)

Apakah Delphi itu?

 Delphi (IDE) adalah sebuah Visual Interface antara anda (the User) dan Komputer anda (yang berjalan diatas Windows ).

Begin

ListBox1.Clear; // Mengosongkan isi ListBox ListBox1.Items.LoadFromFile(‘c:\Data1.txt’);

//properti Items (bertipe string) memiliki method untuk LoadFromFile end;

(12)

 Delphi menterjemahkan Visual Components (Buttons, Panels,..) yang ada pada Form kedalam sebuah kode-kode komputer (pseudo in Unit1.dfm) yang mendefinisikan bagaimana dibentuknya form dan komponennya termasuk juga propertinya.

Saat anda mengkompilasi program, apa yang terjadi?  Delphi akan memanggil file .dpr file (file proyek anda)

 Delphi meminta program yang ada dalam proyek tersebut dan file dpr memberikan sebagai berikut :  Delphi meminta, Apa yang dilakukan pertama kali ? .dpr file memberikan sebagai berikut:

2.4. Forms, Dialog Boxes, Messages , ... Menampilkan Form atau Window

Anda dapat bekerja dengan beberapa form pada sebuah project. Saat anda berada di Form1 untuk menampilkan form yang lain misal Form2 sebagai berikut :

Form2.Show;

Membuka (Shows) Form2 (tetapi user diijinkan untuk dapat mengklik Form1) Form2.ShowModal;

Membuka (Shows) Form2 (tetapi user TIDAK DIIJINKAN mengklik Form1) Menampilkan Pesan (Message)

ShowMessage('Ini kotak pesan);

Tampilan sederhana sebuah baris/teks; User dapat menekan tombol OK untuk keluar dari kotak pesan (message window).

MessageDlg('Msg',mtConfirmation,[mbYes],0);

Mirip ShowMessage tapi dapat lebih dari satu tombol pilihan.

if MessageDlg ('Please say YES or ',mtConfirmation,[mbYes,mbNo],0) = mrYES then begin

Label1.Text:='Tekan tombol YES'; end;

Meminta Masukan (Input Box) uses Forms,

Unit1 in ‘Unit1.pas’ {Form1}; begin

Application.Initialize; itializes stuff Application.CreateForm(Tform1, Form1); Application.Run;

end.

TMsgDlgType = mtWarning,mtError,mtInformation, mtConfirmation, mtCustom TMsgDlgBtn

= mbYes,mbNo,mbOK,mbCancel,mbAbort,mbRetry,mbIgnore,mbAll,mbHelp

Return values

= mrNone, mrYes, mrNo, mrOk, mrCancel, mrAbort, mrRetry, mrIgnore, mrAll

InputBox(...);

var

InputString: string; begin

(13)

3. PERINTAH PENCABANGAN / STRUKTUR PEMILIHAN

Pada beberapa kasus terkadang kita menginginkan komputer melakukan suatu aksi tertentu bila suatu kondisi terpenuhi. Keberadaan perintah bersyarat pada suatu program memberikan pencabangan proses seperti ditunjukkan oleh Error! Not a valid link.. Bahasa Pascal menyediakan dua cara penyajian perintah bersyarat, yaitu If…Then…Else dan Case…of.

Gambar 3.1 Pencabangan pada program Pada prinsipnya pemilihan aksi dapat dikelompokkan menjadi 3 bagian :

3.1. IF … THEN : Pemilihan 1 kasus

Perintah bersyarat If – then digunakan hanya melakukan 1 aksi bila kondisi dipenuhi. Bentuk sintaks dari perintah bersyarat ini adalah:

3.2. IF … THEN … ELSE : Pemilihan 2 kasus

Perintah bersyarat If umumnya digunakan untuk melakukan pencabangan sederhana (antara 2 atau 3 cabang). Atau untuk pencabangan yang banyak, dimana kondisi yang menjadi prasyaratnya melibatkan lebih dari satu parameter. Bentuk sintaks dari perintah bersyarat ini adalah:

Aksi 1 Aksi 2

Kondisi 1 Kondisi 2

Pemilihan 1 pilihan/kasus. Gunakan perintah IF – THEN

Pemilihan 2 pilihan/kasus. Gunakan perintah IF – THEN – ELSE

Pemilihan N pilihan/kasus. Gunakan Case – of (Catatan sebenarnya dapat menggunakan if—then – else bersarang)

If <kondisi_pencabangan> then Begin ... {aksi-1} end; If <kondisi_pencabangan> then Begin ... {aksi-1} end else

(14)

3.3. IF … THEN … ELSE : Pemilihan N kasus

3.4. CASE … OF … : Pemilihan N kasus

Perintah bersyarat Case umumnya digunakan untuk kondisi dengan banyak pencabangan. Syarat pencabangan pada bentuk ini hanya boleh melibatkan satu buah parameter dengan tipe data bukan Real. Pemeriksaan kondisi di sini lebih tepat disebutkan dalam hubungan relasi samadengan (=). Dengan demikian bila parameter bernilai tertentu maka dilakukan suatu aksi terkait, bila bernilai lain maka dilakukan aksi yang lain juga, demikian seterusnya.

Latihan ke-2

Buat aplikasi baru dengan nama form frmWelcome, kemudian ubah nama komponen/objek sebagai berikut: Objek Properti Nilai properti Metode lewat event

Form1 Name FrmWelcome OnActive

Caption Welcome

Button1 Name BtnQuit OnClick, isi dengan:

application.terminate;

Caption &Quit Label1 Name Lblunsur

Caption Lambang Unsur Kimia

Font Times New Roman, Bold, Size : 18 Label2 Name Lblchoose

Caption Pilih Lambang Unsur Label3 Name Lbllambang

If <kondisi_pencabangan1> then Begin ... {aksi-1} end else If <kondisi_pencabangan2> then Begin ... {aksi-2} end else Begin ... {aksi-3} End; Case <Parameter> Of <nilai_1> : <aksi_1> ; <nilai_2> : <aksi_2> ; ... <nilai_n> : <aksi_n> ; Else <aksi_n+1> ; End;

(15)

Caption (kosong)

Font Times New Roman, Bold, Size =12, Color = clTeal

Label4 Name Lblcomment Caption (kosong)

Font Times New Roman,

Bold-Italic,Size = 24, Color = clTeal

listBox1 Name Lbxunsur OnClick

Buat method dari komponen frmWelcome lewat event OnActivate, seperti berikut

Buat method dari komponen lbxCountry lewat event OnClick, seperti berikut

Simpan dengan nama unit uWelcome1.pas dan project pWelcome1.dpr pada direktori Latih3 4. STRUKTUR PENGULANGAN

Dalam menyelesaikan masalah, terkadang kita harus melaku suatu proses yang sama lebih dari satu kali. Untuk itu perlu dibuat suatu algoritma pengulangan. Pascal memberikan tiga alternatif pengulangan, yaitu dengan For, While, atau Repeat. Masing-masing memiliki karakteristik, yang akan dipelajari pada modul ini. Ada dua hal yang penting dalam melakukan merancang perintah pengulangan, yaitu:

 Inisialisasi awal.

 Nilai akhir pengulangan atau kondisi berhenti. 4.1. FOR – TO - DO

Pada pengulangan dengan For, inisialisasi awal dan kondisi akhir ditentukan dengan menggunakan suatu variable kendali yang nilainya dibatasi dalam suatu range tertentu. Sintaks untuk perintah ini adalah:

procedure TForm1.FormActivate(Sender: TObject); begin

lbxCountry.Hint := 'Please choose...'; lbxCountry.Items[0]:='Ca';

lbxCountry.Items[1]:= 'C'; lbxCountry.Items[2]:= 'Cu'; lbxCountry.Items[3]:= 'Cd';

end;

procedure TForm1.lbxCountryClick(Sender: TObject); begin

lblCountry.caption := lbxCountry.Items[lbxCountry.ItemIndex]; case lbxCountry.ItemIndex of

0 : lblComment.caption := 'lambang unsur dari Calsium' ; 1 : lblComment.caption := 'lambang unsur dari Carbon' ; 2 : lblComment.caption := 'lambang unsur dari Cuprum' ; 3 : lblComment.caption := 'lambang unsur dari Cadmium' ; end;

(16)

atau

Perbedaan antara to dan downto adalah pada kondisi nilai awal dan akhir. Pada to: nilai awal lebih kecil dari nilai akhir, sedangkan pada downto nilai awal lebih besar dari nilai akhir. Perlu diingat, bahwa variable kendali harus dideklarasikan dengan tipe data integer.

Contoh program pengulangan menggunakan For-to-do

Hasilnya adalah : 1, 2, 3, 4, 5

Contoh program yang sama jika tapa perintah tanpa pengulangan

Hasilnya adalah : 1, 2, 3, 4, 5 4.2. WHILE - DO

Pada metoda pengulangan ini aksi hanya akan diproses bila kondisi pengulangan terpenuhi, bentuk sintaks dari pengulangan ini adalah:

For <variable_kendali> := <nilai_awal> to <nilai_akhir> do Begin

… {aksi} End ;

For <variable_kendali> := <nilai_awal> downto <nilai_akhir> do Begin

… {aksi} End ;

procedure TfrmPengulangan.btnPengulanganClick(Sender: TObject); var I : integer; begin lbxHasil.Items.Clear; For I := 1 to 5 do Begin lbxHasil.Items.Add(inttoStr(i)); End; End;

procedure TfrmPengulangan.btnPengulanganClick(Sender: TObject); begin lbxHasil.Items.Clear; lbxHasil.Items.Add(inttoStr(1)); lbxHasil.Items.Add(inttoStr(2)); lbxHasil.Items.Add(inttoStr(3)); lbxHasil.Items.Add(inttoStr(4)); lbxHasil.Items.Add(inttoStr(5)); End;

While <kondisi_ pengulangan> do Begin

(17)

Selama kondisi_pengulangan bernilai true maka aksi akan dilakukan, dan baru akan berhenti setelah kondisi pengulangan bernilai false. Karena kondisi pengulangan diperiksa pada bagian awal, maka ada kemungkinan aksi tidak pernah dilakukan, yaitu bila kondisi pengulangan tidak pernah bernilai true.

Contoh program pengulangan menggunakan While-do

4.3. REPEAT - UNTIL

Metoda pengulangan ini juga melakukan pengulangan berdasarkan pemeriksaan kondisi pengulangan. Hanya saja natur dari pengulangan ini adalah sistem seakan-akan memaksa untuk melakukan pengulangan, sampai di ketahui adanya kondisi berhenti. Bentuk sintaks dari pengulangan ini adalah:

Berlawanan dengan While, yang akan memproses aksi hanya bila kondisi_pengulangan bernilai true, pada pengulangan Repeat, sistem akan memproses aksi selama kondisi_berhenti bernilai false. Dengan demikian aksi pasti akan selalu diproses (minimal satu kali). Pada tipe ini, pengulangan dapat terjadi terus-menerus (tidak pernah berhenti), yaitu bila kondisi berhenti tidak pernah bernilai true.

Contoh program pengulangan menggunakan Repeat- Until

Latihan ke-3

Buat aplikasi bari dengan nama form frmPengulangan, kemudian ubah nama komponen/objek sebagai berikut:

procedure TfrmPengulangan.btnPengulanganClick(Sender: TObject); var I : integer; begin lbxHasil.Items.Clear; I := 1; While I<=5 DO Begin lbxHasil.Items.Add(inttoStr(i)); I := I + 1; End; End; Repeat … {aksi}

Until <kondisi_ berhenti>

procedure TfrmPengulangan.btnPengulanganClick(Sender: TObject); var I : integer; begin lbxHasil.Items.Clear; I := 1; Repeat lbxHasil.Items.Add(inttoStr(i)); I := I + 1; Until I > 5; End;

(18)

Objek Properti Nilai properti Method lewat event

Form1 Name FrmPengulangan

Caption Pengulangan

Button1 Name BtnPengulangan Onclick

Caption &Pengulangan

Label1 Name LblComment

Caption (kosong)

Font Times New Roman, Bold-Italic, Size = 12

ListBox1 Name LbxHasil OnClick

Font Times New Roman, Bold-Italic, Size = 20, Color = clTeal

Buat method dari komponen btnPengulangan lewat event OnClick, seperti berikut

Buat method dari komponen lbxHasil lewat event OnClick, seperti berikut

Simpan dengan nama unit uPengulangan1.pas dan project pPengulangan1.dpr pada direktori Latih4

procedure TfrmPengulangan.btnPengulanganClick(Sender: TObject); var I : integer; begin lbxHasil.Items.Clear; For I := 0 to 20 do Begin lbxHasil.Items.Add(inttoStr(i)); end; end;

procedure TfrmPengulangan.lbxHasilClick(Sender: TObject); begin

lblComment.caption := 'Dicetak saat I bernilai ' + IntToStr(lbxHasil.ItemIndex);

(19)

Setiap data yang disimpan di memori komputer harus memiliki tipe data. Tipe data yang sederhana sekali adalah dikelompokkan menjadi 2 bagian :

1.Teks :

a.Char (terdiri dari 1 huruf /1 angka) b.String (terdiri dari beberapa huruf/angka) 2.Bilangan :

a.Integer (bilangan bulat ) b.Real (bilangan pecahan)

Di Delphi ada beberapa tipe data varian dari kedua tipe data tersebut, yang membedakan adalah range (rentang nilainya). Lihat lampiran tipe data lebih lengkap.

1.1.Berlatih Tipe Data Float dan String

Dengan memahami seperti ini kita akan coba membuat sebuah program (projek)untuk menghitung tekanan gas ideal, rumusnya sebagai berikut :

P := (n*R*T)/V ;

Tempatkan komponen-komponen berikut pada form kemudian ubah nilai propertiesnya :

Objek Properti Nilai properti Method lewat event

Label1 Caption Tulis : MENGHITUNG TEKANAN GAS IDEAL

Font Tahoma, style : bold, size : 14, effects : underline, color : green

Label2 Caption Tulis : mol (n)

Font Tahoma, style : bold, size : 12, color : green

Label3 Caption Tulis : suhu (T)

Font Tahoma, style : bold, size : 12, color : green

Label4 Caption Tulis : volume (V)

Font Tahoma, style : bold, size : 12, color : green

Label5 Caption Tulis : tekanan (P)

Font Tahoma, style : bold, size : 12, color : green

Button1 Caption Tulis : HITUNG OnClick

Font Tahoma, style : bold, size : 12

Button2 Caption Tulis : KELUAR OnClick

Font Tahoma, style : bold, size : 12

Form1 Color clMoneyGreen

Name Formtekanan

Edit1 Text (kosong)

Edit2 Text (kosong)

TIPE DATA DALAM DELPHI

(20)

Edit3 Text (kosong)

Edit4 Text (kosong)

Berikut desain form di Delphi :

Gambar12. Desain form tekanan

 Membuat even OnClick pada Button1

Catatan :

 Pada bagian Var, tambahkan : n,T,V,P : real ;

 Pada bagian Const, tambahkan : R = 0.082 ;

 Membuat even OnClick pada Button2

procedure TForm1.Button1Click(Sender:TObject); begin

//Konversi dari String ke Float n :=StrTofloat(Edit1.Text); T :=StrTofloat(Edit2.Text); V :=StrTofloat(Edit3.Text); P := (n*R*T)/V ;

//Konversi dari Float ke String Edit4.Text :=floatToStr(P);

end;

procedure TForm1.Button2Click(Sender:TObject); begin

(21)

 Hasil running program aplikasi

Gambar14. Hasil Running

Di bawah ini adalah sebagian dari tipe data pada Delphi :

1. Integer

Merupakan tipe data bilangan bulat, dengan :

Type Range Format

Integer –2147483648..2147483647 signed 32-bit

Cardinal 0..4294967295 unsigned 32-bit

Secara fundamental, tipe integer terdiri dari :

Type Range Format

Shor int –128..127 signed 8-bit

Smallin –32768..32767 signed 16-bit

Longin –2147483648..2147483647 signed 32-bit

Int64 –263..263 –1 signed 64-bit

Byte 0..255 unsigned 8-bit

Word 0..65535 unsigned 16-bit

Longword 0..4294967295 unsigned 32-bit

2. Real Merupakan bilangan pecahan, dengan :

Type Significant digits Size in bytes Range Real48 11 –12 2.9 x 10–39 ..1.7 x 10386 Single 7 –8 1.5 x 10–45 ..3.4 x 10384

(22)

Double 15 –16 5.0 x 10–324 ..1.7 x 103088

Extended 19 –20 3.6 x 10–4951 ..1.1 x 10493210

Comp 19 –20 –263+1 ..263 –18

Currency 19 –20 –922337203685477.5808..922337203685477.58078 Secara Generik, tipe real adalah :

Type

Significant digits Size in bytes Range

Real 15 –16 5.0 x 10–324 ..1.7 x 103088

3. String

Merupakan huruf, dengan :

Type Maximum lenght Memory required

Char 1 characters 1 bytes

ShortString 255 characters 2 to 256 bytes AnsiString ~231 characters 4 bytes to 2GB

WideString ~230 characters 4 bytes to 2GB

4. Boolean

Merupakan tipe variabel logika. Nilai dari variabel dari bertipe Boolean adalah True atau False.

(23)

FUNGSI STANDAR ARITMATIKA

Dalam aplikasi problem-problem sains sejumlah fungsi matematika sering diperlukan. Beberapa fungsi telah tersedia (integrated) dalam Turbo Pascal dan sebagian lagi diperlukan pemrograman.

Beberapa fungsi dalam Delphi dapat adalah sebagai berikut :

FUNGSI DESKRIPSI

1. FUNGSI ARITMATIKA

1.1. ABS (X) Digunakan untuk menentukan harga mutlak (absolut) dari argumen X Contoh : Var r : single ; i : integer ; begin r := Abs(-2.3) ; {hasil 2.3} i := Abs(-157) ; {hasil 157} end;

1.2. CEIL (X) Digunakan untuk menghasilkan nilai integer terendah yang lebih besar atau sama dengan argumen X. Contoh : Var i, j : real ; begin i := Abs(-2.8) ; {hasil -2} j := Abs(2.8) ; {hasil 3} end;

1.3. EXP (X) Digunakan untuk menghasilkan nilai eksponen, atau nilai e yang dipangkatkan dengan argumen X, dimana e adalah bilangan dasar logaritma 2.718281828 Contoh : Var e : real ; S : string ; begin e := exp(1.0) ; Str(ln(e):3:2, S) ; end;

1.4. FLOOR (X) Digunakan untuk menghasilkan pembulatan (integer) ke bawah dari suatu bilangan ke kelipatan terdekat yang diberikan.

Contoh : Var

i, j : integer ; begin

FUNGSI STANDART & PENULISAN

EKSPRESI ARITMATIKA DELPHI

(24)

i := Floor(-2.8) ; {hasil -3} j := Floor(2.8) ; {hasil 2} end;

1.5. FRAC(X) Digunakan untuk menghasilkan bagian pecahan dari argumen X. Contoh : Var R : real ; begin R := Frac(123.456) ; {hasil 0.456} R := Frac(-123.456) ; {hasil -0.456} end;

1.6. INT(X) Digunakan untuk membulatkan bilangan pecahan dengan pembulatan ke bawah menghasilkan bilangan bulat terdekat.

Contoh : Var R : real ; begin R := Int(123.456) ; {hasil 123.0} R := Int(-123.456) ; {hasil -123.0} end;

1.7. LN(X) Digunakan untuk menampilkan logaritma suatu bilangan dengan basis e. Contoh : Var e : real ; S : string ; begin e := Exp(1.0) ; Str(ln(e):3:2,S); S := ’e=’+FloatToStr(e) ; Edit1.Text := S ; end;

1.8. MAX(X,Y) Menentukan nilai tertinggi atau terbesar dari dua bilangan. Contoh :

Var

S : string ; i : integer ; begin

i := Max(10,15); {menghasilkan nilai 15} S := ’Max’ = ’+IntToStr(i);

Edit1.Text := S ; end;

1.9. MIN(X,Y) Menentukan nilai terendah atau terkecil dari dua bilangan. Var

S : string ; i : integer ; begin

i := Min(10,15); {menghasilkan nilai 10} S := ’Min’ = ’+IntToStr(i);

Edit1.Text := S ; end;

1.10. PI Digunakan untuk menghasilkan nilai pi (3.1415926535897932385) dalam perhitungan matematika.

1.11. POWER(X,Y) Digunakan untuk menghasilkan nilai hasil pemangkatan suatu bilangan X dengan nilai pemangkat Y. Contoh : Var S : string ; i : extended ; begin i := power(2,3); {hasil 8} S := ’Power’ = ’+FloatToStr(i);

(25)

Edit1.Text := S ; end;

1.12. ROUND(X) Digunakan untuk menghitung pembulatan data numerik X yang bertipe real dan menghasilkan suatu nilai yang bertipe integer.

Contoh : Var S, T : String ; Begin Str(1.4:2:1,T) ; {hasil 1} S := T +’menjadi’+IntToStr(Round(1.4)) ; Str(1.5:2:1,T) ; {hasil 2} S := T +’menjadi’+IntToStr(Round(1.5)) ; Str(-1.4:2:1,T) ; {hasil -1} S := T +’menjadi’+IntToStr(Round(-1.4)) ; Str(-1.5:2:1,T) ; {hasil -2} S := T +’menjadi’+IntToStr(Round(-1.5)) ; MessageDlg(S, mtInformation,[mbOk],0) ; end;

1.13. SQR(X) Memberikan nilai kuadrat suatu bilangan X. Contoh : var S, Y : string; begin Str(Sqr(5.0):3:1,Y) ; {hasil 25} S := ’5 bernilai kuadrat’ + Y ; Edit1.Text := S; end;

1.14. SQRT(X) Memberikan nilai akar kuadrat suatu bilangan X. Contoh :

var

S, Y : string; begin

Str(Sqrt(2.0):5:4,Y) ; {hasil 1.4142} S := akar kuadrat dari 2 adalah’ + Y ;

MessageDlg(S, mtInformation,[mbOk],0) ; end;

1.15. TRUNC(X) Menghilangkan bagian nilai pecahan tanpa memperhatikan pembulatan dari suatu data numerik. Contoh : Var S, T : string ; begin Str(1.4:2:1, T); S := T +’hasil’+IntToStr(Trunc(1.4)) ; Edit1.Text := S ; Str(-1.4:2:1, T); S := T +’hasil’+IntToStr(Trunc(-1.4)) ; Edit1.Text :=Edit1.Text + S ; end; 2. FUNGSI TRIGONOMETRI

2.1. ARCCOS(X) Menghitung nilai kebalikan cosinus dari nilai argumen X.Contoh : var S : string ; begin S := FloatToStr(ArcCos(0.5)) ; Edit1.Text := S ; {hasil 1.0471975511966} end;

2.2. ARCSIN(X) Menghitung nilai kebalikan sinus dari nilai argumen X. Contoh :

(26)

S : string ; begin

S := FloatToStr(ArcSin(0.5)) ;

Edit1.Text := S ; {hasil 0.523598775598299} end;

2.3. ARCTAN(X) Menghitung nilai kebalikan tangen dari nilai argumen X. Contoh : var S : string ; begin S := FloatToStr(ArcTan(1)) ; Edit1.Text := S ; {hasil 0.785398163397448} end;

2.4. COS(X) Menghasilkan niai cosinus dari suatu sudut. var S : string ; begin S := FloatToStr(Cos(Pi)) ; Edit1.Text := S ; {hasil -1} end;

2.5. SIN(X) Menghasilkan niai sinus dari suatu sudut. var S : string ; begin S := FloatToStr(Sin(90)) ; Edit1.Text := S ; {hasil 0.893996663600558} end;

2.6. TAN(X) Menghasilkan niai tangen dari suatu sudut. var S : string ; begin S := FloatToStr(Tan(45*Pi/180)) ; Edit1.Text := S ; {hasil 1} end; 3. FUNGSI STATISTIK

3.1. MAXINTVALUE(X) Menghasilkan nilai tertinggi yang terdapat di dalam array dengan tipe data integer. Contoh : var S : string ; begin S := FloatToStr(MaxIntValue([10,20,40,30])); Edit1.Text := S ; {hasil 40} end;

3.2. MAXVALUE(X) Menghasilkan nilai tertinggi yang terdapat di dalam array dengan tipe data integer, dan fungsi MaxValue akan menghasilkan data bertipe Double. Contoh : var S : string ; begin S := FloatToStr(MaxValue([10.5,20,40.25,30])); Edit1.Text := S ; {hasil 40.25} end;

3.3. MEAN(X) Menghasilkan nilai rata-rata dari semua nilai dalam suatu array Contoh : var S : string ; begin S := FloatToStr(Mean([10.5,20,40.25,30])); Edit1.Text := S ; {hasil 25.1875} end;

(27)

3.4. MININTVALUE(X) Menghasilkan nilai terendah yang terdapat di dalam array dengan tipe data integer. Contoh : var S : string ; begin S := FloatToStr(MinIntValue([10,20,40,30])); Edit1.Text := S ; {hasil 10} end;

3.5. NORM(X) Menghasilkan norma Euclidean ’L-2’. Contoh : var S : string ; begin S := FloatToStr(Norm([10,20,40,30])); Edit1.Text := S ; {hasil 54.7722557505166} end;

3.6. POPNSTDDEV(X) Menghitung populasi standar deviasi (akar kuadrat varian populasi) dari semua nilai dalam parameter array data.

Contoh : var S : string ; begin S := FloatToStr(POPNSTDDEV([10,20,40,30])); Edit1.Text := S ; {hasil 11.1803398874989} end;

3.7. POPNVARIANCE Menghitung varian populasi dari semua nilai dalam parameter array data. Contoh : var S : string ; begin S := FloatToStr(POPNVARIANCE([10,20,40,30])); Edit1.Text := S ; {hasil 125} end;

3.8. STDDEV(X) Menghasilkan sampel standart deviasi (akar kuadrat dari varian sampel) dari semua nilai dalam parameter array data.

Contoh : var S : string ; begin S := FloatToStr(StdDev([10,20,40,30])); Edit1.Text := S ; {hasil 12.9099444873581} end;

3.9. SUM(X) Meghasilkan jummlah semua nilai-nilai dari parameter array data. Contoh : var S : string ; begin S := FloatToStr(Sum([10,20,40.25,30])); Edit1.Text := S ; {hasil 100.25} end;

3.10 VARIANCE(X) Menghitung varian sampel dari semua nilai dalam parameter array data, gunakan metode n-1 (tidak bias).

Contoh : var

S : string ; begin

(28)

Edit1.Text := S ; {hasil 166.6666667} end;

Harga x dalam fungsi sinus, cosinus dan arctangen dalam radian karena itu agar dapat memasukkan x dalam satuan derajat harus dilakukan konversi dari derajat ke radian yaitu

x =

π

/ 180

x

Misalnya untuk penulisan sin (x)

y = ) / 180 sin( π x

Untuk perpangkatan ab diturunkan dengan cara berikut x = ab

Ln (x) = b*Ln (a), maka

e

b Ln a

x

=

* ( )

PENULISAN EKSPRESI ARITMATIKA PASCAL UNTUK DELPHI

Beberapa hal yang harus diperhatikan dalam penulisan ekspresi aritmatika adalah

• Penggunaan operasi aritmatika, memiliki urutan yang sama sebagaimana dalam aljabar yaitu pertama perpangkatan, kedua perkalian atau pembagian, dan ketiga penjumlahan atau pengurangan.

• Penggunaan kurung untuk menjamin urutan hitungan dengan benar • Simbol perkalian harus dituliskan

• Untuk rumus yang kompleks maka dilakukan dengan pemecahan rumus menjadi beberapa rumus sederhana Beberapa contoh penulisan ekspresi aritmatika adalah

EKSPRESI ARITMATIKA EKSPRESI PASCAL

A b a − b ab a * b 2b 2 * b 2c + 3b2 2 * c + 3 * Sqr(b) atau 2 * c + 3 * b * b 7 . d c b a − − (a − b)/(c − d) * 7 atau 7 * (a − b)/(c − d) atau 7/(c − d) * (a − b) 7 ). (c d b a − − (a − b)/(c − d) / 7 atau (a − b)/((c − d) * 7) atau 1/7/(c − d) * (a − b) X2 Sqr(x) atau x * x X5 Sqr(x) * Sqr(x) * x atau x * x * x * x * x x Sqrt(x)

x

2 3 x * Sqrt(x) atau Sqrt(x * x * x) atau Sqrt(x * Sqr( x))

(29)

( )

M RT π

8 12 Sqrt((8*R*T)/(Pi*M))

RT

E E/(R * T) atauE/R/T atau E/T/R atau 1/(T * R) * E

e

RT Mgz Exp ((M*g*z)/(R*T)) ) ( ) ( x Cos x Sin Sin (x)/Cos (x) Log(x) Ln (x)/Ln (10) atau Ln (x)/2.303 Abs(x) Abs (x)

Untuk rumus yang kompleks misalnya

    − +     − − = 2 1 2 1 2 1 2 V V V V an nb V nb V nRTLn W Penulisannya adalah W := n*R*T*Ln((V2-n*b)/(V1-n*b)) + a*Sqr(n)*((V1-V2)/(V1*V2));

Penulisan seperti ini memungkinkan banyak kesalahan, karena itu lebih baik jika ditulis secara bertahap sebagai berikut Rumus1 := (V2-n*b)/(V1-n*b); Rumus2 := Ln(Rumus1); Rumus3 := n*R*T*Rumus2; Rumus4 := (V1-V2)/(V1*V2); Rumus5 := a*Sqr(n)*Rumus4; W := Rumus3 + Rumus5; Cara lain Rumus1 := (V2-n*b)/(V1-n*b); Rumus2 := (V1-V2)/(V1*V2); W := n*R*T*Ln(Rumus1) + a*Sqr(n)*Rumus2;

Contoh lain rumus untuk menghitung fraksi molekul pada range kecepatan tertentu per satuan luas interval RT Mc

e

c

RT

M

Fv

2 2 2 2 3

2

4





=

π

π

Penulisan ekspresi Pascal untuk rumus di atas dengan cara langsung akan sulit dan lebih banyak kemungkinan salahnya, karena itu sebaiknya ditulis secara bertahap, sebagai contoh

R1 := M/(2*Pi*R*T); R2 := Sqrt(R1*R1*R1); R3 := (-M*c*c)/(2*R*T); R4 := Exp(R3);

(30)

Cara lain R1 := M/(2*Pi*R*T); R1 := R1*Sqrt(R1); R2 := (-M*c*c)/(2*R*T); R2 := Exp(R2); Fv := 4*Pi*R1*Sqr(c)*R2;

Banyak cara lain untuk menulis rumus di atas, yang penting penulisan rumus dengan ekpresi Pascal tidak boleh menyalahi ekpresi matematikanya.

(31)

Menghitung harga tekanan berdasarkan hukum gas ideal jika jumlah mol, temperatur dan volume sistem diketahui.

Rumus :

V nRT

p=

R adalah konstanta gas dengan harga 0,082054 L.atm/mol.K.

Design Form:

Tabel Properties Object Inspector:

Objek Properti Nilai Properti

Form Caption Hitung Tekanan gas Ideal

Color clMoneyGreen

Label1 Caption MENGHITUNG TEKANAN GAS IDEAL

Font Color: clNavy, Name: Times New Roman, Size: 15, Style: fsBold (True)

Label2 Caption INPUT

Font Color: clRed, Name: Tahoma, Size: 12, Style: fsBold

Label3 Caption Mol

Font Style: fsBold (True)

Label4 Caption R

Font Style: fsBold (True)

6.1. RUMUS GAS IDEAL

APLIKASI SEDERHANA KIMIA

(32)

Label5 Caption Temperatur

Font Style: fsBold (True)

Label6 Caption Volume

Font Style: fsBold (True)

Label7 Caption OUTPUT

Font Color: clRed, Name: Tahoma, Size: 12, Style: fsBold

Label8 Caption RUMUS

Font Color: clRed, Name: Tahoma, Size: 12, Style: fsBold

Edit1 Color clInactiveCaptionText

Text (kosong)

Edit2 Color clInactiveCaptionText

Text 0.082

Edit3 Color clInactiveCaptionText

Text (kosong)

Edit4 Color clInactiveCaptionText

Text (kosong)

Edit5 Color clAqua

Listing Unit Program:

unit hitP; interface uses

Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, ExtCtrls; type TForm1 = class(TForm) Label1: TLabel; Label2: TLabel; Edit1: TEdit; Label3: TLabel; Label4: TLabel; Edit2: TEdit; Label5: TLabel; Edit3: TEdit; Label6: TLabel; Edit4: TEdit; Label7: TLabel; Edit5: TEdit; Button1: TButton; Button2: TButton; Button3: TButton; Image1: TImage; Label8: TLabel;

procedure Button1Click(Sender: TObject); procedure Button2Click(Sender: TObject); procedure Button3Click(Sender: TObject);

(33)

{ Private declarations } public { Public declarations } end; var Form1: TForm1; n,R,T,V,p : real; implementation {$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject); begin n := strtofloat(edit1.Text); R := strtofloat(edit2.Text); T := strtofloat(edit3.Text); V := strtofloat(edit4.Text); p := (n*R*T)/V; Edit5.Text:= floattostr(p); Edit1.SetFocus; end;

procedure TForm1.Button2Click(Sender: TObject); begin Edit1.Clear; Edit2.Clear; Edit3.Clear; Edit4.Clear; Edit5.Clear; Edit1.SetFocus; end;

procedure TForm1.Button3Click(Sender: TObject); begin

Application.Terminate; end;

end. Keterangan :

Layout form program ini sangat sederhana, tetapi memuat bagian input dan output. Bagian input berisi data yang harus diberikan untuk dapat menghitung harga tekanan dengan satuan sesuai permintaan program. Output program menampilkan data input yang diketahui dan harga tekanan hasil hitungan rumus menggunakan format penulisan numerik

di-git di belakang koma. Misal

WriteLn('Jumlah mol = ',n:10:4,' mol'); Akan tampil di monitor

Jumlah mol = 12345.6789 mol 10 angka

(34)

Menghitung harga molaritas dan normalitas larutan dengan rumus : Molaritas x Valensi Normalitas x Mr x PB x BJ Molaritas = = 100 1000

BJ adalah berat jenis zat, PB adalah persen berat zat dan Mr adalah massa molekul zat yang

akan dihitung molaritas dan normalitas larutannya.

Design Form

Tabel Properties Object Inspector:

Objek Properti Nilai Properti

Label1 Caption MOLARITAS DAN NORMALITAS

Label2 Caption INPUT

Label3 Caption OUTPUT

Label4 Caption Densitas Label5 Caption % Berat

Label6 Caption Massa Molekul Label7 Caption Valensi

Label8 Caption Molaritas Label9 Caption Normalitas

Label10 Caption RUMUS

Edit1 Text (kosong)

Edit2 Text (kosong)

(35)

Edit3 Text (kosong)

Edit4 Text (kosong)

Edit5 Text (kosong)

Edit6 Text (kosong)

Button1 Caption HITUNG

Button2 Caption ULANG

Button3 Caption KELUAR

Image1 Picture Load : molaritas.jpg Strecht false

Listing Unit Program

unit molnor; interface uses

Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, ExtCtrls, jpeg;

type TForm1 = class(TForm) Label1: TLabel; Label2: TLabel; Label3: TLabel; Label4: TLabel; Label5: TLabel; Label6: TLabel; Label7: TLabel; Label8: TLabel; Edit1: TEdit; Edit2: TEdit; Edit3: TEdit; Edit4: TEdit; Edit5: TEdit; Button1: TButton; Button2: TButton; Button3: TButton; Edit6: TEdit; Label9: TLabel; Label10: TLabel; Image1: TImage;

procedure Button1Click(Sender: TObject); procedure Button3Click(Sender: TObject); procedure Button2Click(Sender: TObject); private { Private declarations } public { Public declarations } end; var Form1: TForm1; BJ,Pb,Mr,M,N : real;

(36)

val : byte; implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject); begin BJ := strtofloat(Edit1.Text); PB := strtofloat(Edit2.Text); Mr := strtofloat(Edit3.Text); val := strtoint(Edit4.Text); M := (BJ*1000*PB)/(Mr*100); N := val*M; Edit5.Text := floattostr(M); Edit6.Text := floattostr(N); end;

procedure TForm1.Button3Click(Sender: TObject); begin

close; end;

procedure TForm1.Button2Click(Sender: TObject); begin edit1.Text := ' '; edit2.Text := ' '; edit3.Text := ' '; edit4.Text := ' '; edit5.Text := ' '; edit6.Text := ' '; edit1.SetFocus; end; end. Hasil Running

(37)

Keterangan :

Program ini memuat dua rumus untuk menghitung molaritas dan normalitas. Layout program sama dengan praktikum_1. Perhatikan penulisan rumus bagian atas dan bagian bawah. Untuk lebih mantapnya maka bagian atas dan bagian bawah masing-masing diberi kurung.

Untuk menghitung 3 rumus sekaligus dengan input yang diminta. Rumusnya adalah

M RT avg MRT mp MRT rms C C C π 8 2 3 = = =

Crms = root-mean-square speed (akar rata-rata kuadrat kecepatan)

Cmp = most probable speed (kecepatan paling boleh jadi)

Cavg = average speed (kecepaatan rata-rata)

R = konstanta gas

T = temperatur dalam Kelvin

M = massa molekul

Design program

(38)

Tabel Properties Object Inspector:

Objek Properti Nilai Properti

Label1 Caption ROOT MEAN SQUARE

Label2 Caption INPUT

Label3 Caption OUTPUT

Label4 Caption Temperatur Label6 Caption Massa Molekul

Label7 Caption Crms

Label8 Caption Cmp

Label9 Caption Cavg

Label10 Caption RUMUS

Edit1 Text (kosong)

Edit2 Text (kosong)

Edit4 Text (kosong)

Edit5 Text (kosong)

Edit6 Text (kosong)

Button1 Caption HITUNG

Button2 Caption ULANG

Button3 Caption KELUAR

Image1 Picture Load : rootmeansquare.jpg Strecht false

Listing Unit Editor

(39)

interface uses

Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, ExtCtrls, jpeg;

type TForm1 = class(TForm) Label1: TLabel; Label2: TLabel; Label3: TLabel; Label4: TLabel; Label6: TLabel; Label7: TLabel; Label8: TLabel; Edit1: TEdit; Edit2: TEdit; Edit4: TEdit; Edit5: TEdit; Button1: TButton; Button2: TButton; Button3: TButton; Edit6: TEdit; Label9: TLabel; Label10: TLabel; Image1: TImage;

procedure Button1Click(Sender: TObject); procedure Button3Click(Sender: TObject); procedure Button2Click(Sender: TObject); private { Private declarations } public { Public declarations } end; const R = 8.314E+7; var Form1: TForm1; Crms,Cmp,Cavg,T,Mr : real; implementation {$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject); begin

T := strtofloat(Edit1.Text); Mr := strtofloat(Edit2.Text); Crms := sqrt((3*R*T)/Mr);

(40)

Cmp := sqrt((2*R*T)/Mr); Cavg := sqrt((8*R*T)/(pi*Mr)); Edit4.Text := floattostr(Crms); Edit5.Text := floattostr(Cmp); Edit6.Text := floattostr(Cavg); end;

procedure TForm1.Button3Click(Sender: TObject); begin

close; end;

procedure TForm1.Button2Click(Sender: TObject); begin edit1.Text := ' '; edit2.Text := ' '; edit4.Text := ' '; edit5.Text := ' '; edit6.Text := ' '; edit1.SetFocus; end; end. Hasil Running Keterangan :

Program ini memuat tiga rumus sekaligus dengan satu input. Layout program sama dengan praktikum_1. Perhatikan satuan yang diminta input sehingga harga R harus mengikuti satuan yang diminta. Dalam Pascal untuk memasukkan harga π cukup dengan menuliskan pi sehingga tidak perlu dimasukkan sebagai konstanta. Perhatikan penulisan harga konstanta dengan bentuk eksponensial : R = 8.314E+7; Penulisan akar kuadrat menggunakan prosedur sqrt( ).

(41)

Fungsi energi bebas Fo berhubungan dengan fungsi partisi q dengan rumus Fo = R Ln

(q/No). R adalah konstanta gas dan No adalah bilangan Avogadro dan q dihasilkan dari

perkalian qt, qr, Qv (fungsi partisi translasi, rotasi dan vibrasi)

suatu molekul. Tulislah program untuk menghitung harga Fo air menggunakan data dan rumus

berikut qt = (0,02562) x (M)3/2 (T)5/2 qr = ½ x (1042,95)3/2 x 1/(A x B x C)1/2 Qv = qv1 qv2 qv3 dimanaqv1 = 1/(1−exp(−hcw1/kT)); qv2 = 1/(1−exp(hcw2/kT)); qv3 = 1/(1−exp(−hcw3/kT)); diketahui M = 18,015; T = 1500; A = 27,8778; B = 14,5092; C = 9,2869; w1 = 3656,7; w2 = 1594,8 w3 = 3755,8 c = kecepatan cahaya

h = tetapan Planck k = tetapan Boltzmann

Design Form

Tabel Properties Object Inspector:

Objek Properti Nilai Properti

StaticText1 Caption FUNGSI ENERGI BEBAS

GroupBox1 Caption INPUT

GroupBox2 Caption OUTPUT

Label1 Caption Temperatur (T)

Label2 Caption Molaritas (M)

Label3 Caption q

(42)

Label4 Caption qr Label5 Caption qt Label6 Caption Qv Label7 Caption qv3 Label8 Caption qv2 Label9 Caption qv1 Label10 Caption F

Button1 Caption HITUNG

Butoon2 Caption ULANG

Button3 Caption KELUAR

Edit1 Text (kosong)

Edit2 Text (kosong)

Edit3 Text (kosong)

Edit4 Text (kosong)

Edit5 Text (kosong)

Edit6 Text (kosong)

Edit7 Text (kosong)

Edit8 Text (kosong)

Edit9 Text (kosong)

Edit10 Text (kosong)

Listing Unit Editor

unit energibebas; interface

uses

Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls; type TForm1 = class(TForm) StaticText1: TStaticText; GroupBox1: TGroupBox; GroupBox2: TGroupBox; Label1: TLabel; Label2: TLabel; Edit1: TEdit; Edit2: TEdit; Label3: TLabel; Label4: TLabel; Label5: TLabel; Label6: TLabel;

(43)

Label7: TLabel; Label8: TLabel; Label9: TLabel; Label10: TLabel; Button1: TButton; Button2: TButton; Button3: TButton; Edit3: TEdit; Edit4: TEdit; Edit5: TEdit; Edit6: TEdit; Edit7: TEdit; Edit8: TEdit; Edit9: TEdit; Edit10: TEdit;

procedure Button1Click(Sender: TObject); procedure Button3Click(Sender: TObject); procedure Button2Click(Sender: TObject); private { Private declarations } public { Public declarations } end; Const A = 27.8778; B = 14.5092; C = 9.2869; w1= 3656.7; w2= 1594.8; w3= 3755.8; k = 1.38e-23; h = 6.626e-34; No= 6.022e23; cc= 2.99e8; R = 8.314;

(44)

var

Form1: TForm1;

M,T,F,q,qt,qr,Qv,qv1,qv2,qv3 : real; implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject); begin M:= StrtoFloat(edit1.Text); T:= StrtoFloat(edit1.Text); qv1 := 1/(1-exp(-(h*cc*w1)/(k*T))); qv2 := 1/(1-exp( (h*cc*w2)/(k*T))); qv3 := 1/(1-exp(-(h*cc*w3)/(k*T))); Qv := qv1*qv2*qv3; qt := 0.02562*sqrt(M*M*M)*sqrt(T*T*T*T*T); qr := 0.5*sqrt(1042.95*1042.95*1042.95)*(1/(sqrt(A*B*C))); q := qt+qr+Qv; F := -R*ln(q/No); edit9.Text:=FloatToStr(qv1); edit8.Text:=FloatToStr(qv2); edit7.Text:=FloatToStr(qv3); edit6.Text:=FloatToStr(Qv); edit5.Text:=FloatToStr(qt); edit4.Text:=FloatToStr(qr); edit3.Text:=FloatToStr(q); edit10.Text:=FloatToStr(F); end;

procedure TForm1.Button3Click(Sender: TObject); begin

application.Terminate; end;

procedure TForm1.Button2Click(Sender: TObject); begin

edit1.Text:= ' ' ; edit2.Text:= ' ' ;

(45)

edit3.Text:= ' ' ; edit4.Text:= ' ' ; edit5.Text:= ' ' ; edit6.Text:= ' ' ; edit7.Text:= ' ' ; edit8.Text:= ' ' ; edit9.Text:= ' ' ; edit10.Text:= ' ' ; end; end. Hasil Running Keterangan :

Program dibagi dalam 3 prosedur : data, rumus dan hasil. Masing-masing dibuat dulu, lalu disusun urutannya dalam program utama. Dengan memanggil nama prosedurnya saja maka komputer akan menjalankan program sesuai urutan dalam program utama. Perhatikan pula cara penulisan konstanta di bagian deklarasi.

Menghitung fraksi molekul dalam range kecepatan c sampai c + dc per satuan luas interval dengan rumus

        −       = RT Mc c c e RT M dc dn N 2 2 2 2 3 2 4 1 π π

dimana M adalah massa molar molekul, R adalah konstanta gas, c adalah kecepatan cahaya,

T adalah temperatur.

(46)

Design Form

Tabel Properties Object Inspector:

Objek Properti Nilai Properti

StaticText1 Caption DISTRIBUSI PROBABILITAS

StaticText2 Caption INPUT

StaticText3 Caption OUTPUT

StaticText4 Caption RUMUS

Label1 Caption Temperatur (T)

Label2 Caption Massa molekuler (M)

Label3 Caption Distribusi Probabilitas (Dprob)

Button1 Caption HITUNG

Button2 Caption ULANG

Button3 Caption KELUAR

Image1 Picture Load : Dprob.jpg

Bevel1 Shape bsFrame

Style bsRaised

Bevel2 Shape bsFrame

Style bsRaised

Bevel3 Shape bsTopLine

Style bsLowered

Bevel4 Shape bsTopLine

Style bsLowered

Bevel5 Shape bsLeftLine

Style bsRaised

Bevel6 Shape bsFrame

Style bsRaised

Listing Unit Editor

(47)

interface uses

Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, ExtCtrls, StdCtrls, jpeg;

type TForm1 = class(TForm) Label1: TLabel; StaticText1: TStaticText; StaticText2: TStaticText; StaticText3: TStaticText; Label2: TLabel; Edit1: TEdit; Edit2: TEdit; Label3: TLabel; Edit3: TEdit; Button1: TButton; Button2: TButton; Button3: TButton; StaticText4: TStaticText; Bevel1: TBevel; Bevel2: TBevel; Bevel3: TBevel; Bevel4: TBevel; Bevel5: TBevel; Image1: TImage; Bevel6: TBevel;

procedure Button1Click(Sender: TObject); procedure Button2Click(Sender: TObject); procedure Button3Click(Sender: TObject); private { Private declarations } public { Public declarations } end; Const c = 2.99792458E+8; R = 8.31441; var Form1: TForm1; M,T : real; rumus1,rumus2,rumus3,rumus4,Dprob : real; implementation {$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject); begin

(48)

M:= StrtoFloat(edit1.Text); T:= StrtoFloat(edit2.Text); rumus1 := M/(2*pi*R*T); rumus2 := sqr(rumus1)*rumus1; rumus3 := sqrt(rumus2); rumus4 := (M*sqr(c))/(2*R*T); Dprob := 4*pi*rumus3*sqr(c)*exp(-rumus4); edit3.Text := floattostr(Dprob); end;

procedure TForm1.Button2Click(Sender: TObject); begin

edit1.Text := ' ' ; edit2.Text := ' ' ; edit3.Text := ' ' ; end;

procedure TForm1.Button3Click(Sender: TObject); begin close; end; end. Hasil Running Keterangan :

Karena kemungkinan harga fraksi molekul yang dihitung memiliki range di luar range real maka dalam program ini digunakan tipe data double yang memiliki range 5.0e-324...1.7e308 dengan digit 15-16 dan ukuran byte 8, dapat juga menggunakan tipe data

(49)

extended yang memiliki range 3.4e-4932...1.1e4932 dengan digit 19-20 dan ukuran byte 10. Untuk dapat menggunakan tipe data itu maka di atas program harus diletakkan pengarah kompiler {$N+} sebagai kode pemakaian 80x87 Floating Point.

Penulisan rumus dalam Procedure rumus; juga dibuat bagian-bagian untuk menghindari kesalahan. Prinsipnya adalah untuk memudahkan penulisan rumus dengan betul.

Menjumlah bilangan berurutan dari 1 sampai angka tertentu dengan rumus ∑ = = n i i Jumlah 1 Design Form Program Praktikum_6; Uses CRT;

Var sumi,n,i : word; Begin

ClrScr;

Write('Bilangan maksimal = '); readln(n); sumi := 0;

for i := 1 to n do Begin

sumi := sumi + i;

WriteLn('i ',i,' = ',sumi:3); End;

End.

Keterangan :

Program ini menggunakan looping (pengulangan) for .. to .. do untuk menjumlahkan bilangan berurutan dari 1 sampai n. Penjumlahan tertulis pada persamaan sumi := sumi + i; urutan angka yang dijumlah diatur oleh looping for i := 1 to n do.

Menghitung kekuatan ionik dengan rumus ∑

=(1/2) cizi2 I

dimana I adalah kekuatan ionik, ci adalah konsentrasi ion ke-i, dan zi adalah muatan ion ke-i.

Kemudian rumus ini digunakan untuk menghitung koefisien aktivitas menggunakan teori Debye-Huckel dengan rumus

± ± ± ± = − = − = γ γ γ γ ln 2 / 1 2 1 2 / 1 2 1 ) ( 509 , 0 * 303 , 2 ln ) ( 509 , 0 log e I z z I z z 6.6 JUMLAH BILANGAN 6.7 KOEFISIEN AKTIVITAS

(50)

dimana γ± adalah koefisien aktivitas ionik rata-rata.

Program Praktikum_7; Uses crt;

Var i,n,z,sumz : integer;

c,absz,sumi,f1,f2,ion,koef : real; Procedure input;

Begin ClrScr;

Write('Banyaknya ion = '); ReadLn(n); end; Procedure zkali; Begin sumz := 1; for i := 1 to n do begin

write('Muatan ion ',i,' = '); readln(z); sumz := sumz*z; end; absz := abs(sumz); end; Procedure ionic_strength; Begin sumi := 0; for i := 1 to n do Begin

Write('Konsentrasi ion ',i,' = '); ReadLn(c); Write('Muatan ion ',i,' = '); ReadLn(z); WriteLn; sumi := sumi+c*z*z; end; ion := sumi/2; end; Procedure koef_aktivitas; Begin f1 := -0.509*absz*sqrt(ion); f2 := f1*2.303; koef := exp(f2); writeln;

writeln('Kekuatan ionik = ',ion:10:6); writeln('Koefisien aktivitas = ',koef:10:6); end;

{Program utama} Begin

(51)

ClrScr; input; zkali; WriteLn; ionic_strength; koef_aktivitas; ReadLn; End. Keterangan :

Procedure zkali; menghitung perkalian muatan ion ke-i dan harga absolutnya yaitu z1z2.

Looping perkalian ditulis dengan persamaan sumz := sumz*z;

Procedure ionic_strength; menghitung harga ∑ cizi2 pada looping sumi := sumi+c*z*z; dan

menghitung harga kekuatan ionik pada rumus ion := sumi/2;

Procedure koef_aktivitas; menghitung harga koefisien aktivitas pada rumus

f1 := -0.509*absz*sqrt(ion); f2 := f1*2.303;

koef := exp(f2);

dimana f1 = log γ± dan f2 = ln γ±, koef adalah koefisien aktivitas. Harga koefisien aktivitas

dapat juga dihitung menggunakan rumus koef = 10f1.

Menghitung energi rotasi molekul diatomik dengan rumus

I h J J J erot 2 2 8 ). 1 .( ) ( π + =

J adalah bilangan kuantum rotasi (J = 0, 1, 2, 3, ….) I adalah momen inersia, I = µ r2 untuk molekul diatomik

h adalah konstanta Planck

degenerasi keadaan energi J adalah 2J + 1. Rumus fungsi partisi rotasi adalah

∑ + = ∞ = + − 0 . 2 8 2 ) 1 ( ). 1 2 ( J kT I h J J rot J e q π

k adalah konstanta Boltzmann r adalah jarak diantara atom-atom

µ adalah massa tereduksi,  + 2 1 2 1. m m m m

mi adalah massa atom i (berat atom / konstanta Avogadro)

{$N+}

(52)

Program Praktikum_8; Uses CRT;

Const maksimal = 100;

planck = 6.626076e-34; {Joule-detik} Boltzmann = 1.38066e-23; {Joule/Kelvin} Avogadro = 6.02214e+23; {1/mol} Type

urut = array[0..maksimal] of double; Var J,Jmax : integer; h2,ri,ri2,m1km2,m1tm2,faktor,Inersia,RIkatan,pi2,rumus1,masa1,masa2 : double; a,k,T : real; Expon1,Expon2,FPar,Energi : urut; Procedure input; Begin

Write('Masa atom 1 dalam gram/mol = '); ReadLn(m1); Write('Masa atom 2 dalam gram/mol = '); ReadLn(m2); Write('Panjang ikatan dalam Angstrom = '); ReadLn(R); Write('Temperatur dalam Kelvin = '); ReadLn(T); Write('Maximal J = '); ReadLn(Jmax); end; Procedure rumus; Begin k := Boltzmann; a := avogadro; h2 := sqr(planck); ri := R * 1e-10; ri2 := sqr(ri); m1km2 := m1 * m2; m1tm2 := m1 + m2; faktor := 1 / (a * 1000);

Inersia := (m1km2/m1tm2) * faktor * ri2; pi2 := sqr(pi);

rumus1 := h2 / (8 * pi2 * Inersia); j := 0; Fpar[j] := 0; Repeat Energi[J] := rumus1 * J * (J + 1); Expon1[j] := exp(-energi[j]/(k*T)); Expon2[j] := ((2*j)+1)*Expon1[j]; Fpar[j] := Fpar[j] + Expon2[j]; j := j + 1; Until j > Jmax; end; Procedure output; Begin for J := 0 To Jmax do

Gambar

Gambar 2. Jendela Object Inspector untuk mengganti properti caption
Gambar 3. Kumpulan komponen
Gambar 4. Form dan Toolbox Alignment
Gambar 5. Pesan kesalahan saat mengubah properti Name.
+7

Referensi

Dokumen terkait

Adalah variable yang digunakan untuk menyimpan nilai numerik pecahan sebesar 4 byte. Bila tidak didefinisikan, maka variabel integer harus ditunjukkan oleh nama variabelnya

QSize = dipakai untuk membuat objek yang menyimpan ukuran, yang di program ini objek berisi ukuran tersebut diterapkan pada logo dalam tombol.. QFrame = dipakai untuk

Untuk membuat form baru klik tombol New Form atau File &gt; New Form lalu simpan form baru tersebut dengan klik tombol Save atau File &gt; Save beri nama

Dim : Statemen dari Visual Basic untuk mendeklarasikan variabel Namavariabel : nama yang digunakan untuk menyimpan nilai Tipevariabel : tipe variabel yang bergantung pada tipe

Objek / Kontrol merupakan suatu tampilan berbasis grafis yang ditempatkan ke form untuk.. membuat interaksi

Pada Gambar 3.1 dimisalkan membuat dua buah konstanta atau variabel dengan nama identifier nilai dan X yang masing-masing dapat digunakan untuk menyimpan suatu nilai dalam memori

Pemorgraman Berorientasi Objek | 20 Karena static property dan static method adalah milik class, maka kita tidak perlu membuat objek untuk mengaksesnya, tapi langsung menyebutkan nama

Tujuan dari pembuatan web service adalah untuk membuat suatu fungsi yang dapat digunakan kembali dan dibagikan pada aplikasi client walaupun menggunakan platform yang berbeda seperti