BAB IV(Skripsi)
-
Upload
mohamad-irfan-anshari -
Category
Documents
-
view
28 -
download
1
description
Transcript of BAB IV(Skripsi)
BAB IV
PERANCANGAN DAN PEMBUATAN PERANGKAT LUNAK
4.1. Umum
Proses perancangan dan pembuatan perangkat lunak ini bertujuan untuk
mempermudah penyusunan langkah-langkah perencanaan sistem pentanahan
gardu induk. Adapun proses perancangan dan pembuatan perangkat lunak ini
menggunakan Borland Delphi 5.0. Diagram alur (flowchart) yang digunakan
dalam pembuatan perangkat lunak ini, sesuai dengan pedoman IEEE Standard 80-
1986.
4.2. Tampilan Judul
Tampilan judul ini memiliki tiga buah menu, yaitu Program, Help dan
Exit. Menu Program ini memiliki empat buah submenu, yaitu :
1. Data Gardu Induk
Submenu ini digunakan untuk membuka form Data Gardu Induk, yang
berisi data-data gardu induk yang akan dirancang sistem pentanahannya.
2. Perencanaan Elektroda
Submenu ini digunakan untuk membuka form Perencanaan Elektroda
Pentanahan, yang data-data mengenai elektroda yang akan dipergunakan
dalam perencanaan sistem pentanahan.
3. Hasil Perhitungan
Submenu ini digunakan untuk membuka form Hasil Perhitungan, yang
akan menampilkan hasil pengolahan data oleh komputer.
4. Gambar Konduktor
Submenu ini digunakan untuk membuka form Desain Konduktor, yang
akan menampilkan visualisasi gambar yang telah direncanakan.
Menu Help, berisi satu submenu Help, yang berfungsi untuk membuka
form Help, apabila mengalami kesulitan dalam pengisian data. Sedangkan menu
46
Exit berisi submenu exit, yang berfungsi untuk keluar dari program ini. Tampilan
form Judul ini, dapat dilihat pada Gambar 4.1.
Gambar 4.1. Tampilan form Judul
4.3. Tampilan Data Gardu Induk
Form Data Gardu Induk ini berisi data-data mengenai gardu induk yang
akan direncanakan sistem pentanahannya. Form ini memiliki tiga buah menu,
yaitu Program, File dan Exit. Menu Program dan Exit memiliki fungsi yang sama
seperti yang terdapat pada form Judul. Sedangkan untuk menu File terdiri dari
beberapa submenu, yaitu :
1. Save
Submenu ini digunakan untuk menyimpan data-data yang telah diisikan
pada form.
2. Load
Submenu ini digunakan untuk membuka data yang telah disimpan dalam
file.
3. Print
Submenu ini digunakan untuk mencetak data-data yang telah diisikan pada
form.
47
Disamping itu, pada form ini terdapat beberapa tombol yang berfungsi
sebagai berikut :
1. Tombol OK
Digunakan untuk proses inisialisasi data yang telah diisikan ke form.
Apabila terjadi kesalahan dalam pengisian data, maka akan muncul
peringatan message dialog.
2. Tombol Clear
Digunakan untuk proses pengulangan dalam mengisi data.
3. Tombol Back
Digunakan untuk membuka kembali form sebelumnya.
4. Tombol Help
Digunakan untuk memanggil form Help.
Gambar 4.2. Tampilan form Data Gardu Induk
Data-data yang ada dalam form ini antara lain berisi tentang nama proyek,
tegangan sistem, arus gangguan, waktu gangguan, impedansi, luas daerah, tahanan
jenis tanah dan data crushed rock. Inisialisasi data dapat dilihat pada source code
berikut ini :
48
procedure TFormTA1.BitBtnOKClick(Sender: TObject);begintryNama := String (Edit1.Text);Vsis := StrToFloat (Edit2.Text);Iga := StrToFloat (Edit3.Text);ts := StrToFloat (Edit5.Text);tc := StrToFloat (Edit6.Text);Ztra := StrToFloat (Edit7.Text);rho := StrToFloat (Edit8.Text);rhos := StrToFloat (Edit9.Text);hs := StrToFloat (Edit10.Text);Parea := StrToFloat (Edit11.Text);Larea := StrToFloat (Edit12.Text);Zsal := StrToFloat (Edit13.Text);formTA1.hide;formTA2.show;excepton EConvertError doApplication.MessageBox ('Terjadi Kesalahan Input','Warning !',MB_OK);end;
Adapun blok doagram untuk form ini dapat dilihat pada Gambar 4.3. di
bawah ini :
Gambar 4.3. Flowchart Data Gardu Induk
4.4. Tampilan Perencanaan Konduktor Pentanahan
Form Perencanaan Konduktor Pentanahan ini berisi data-data mengenai
konduktor yang akan dipergunakan dalam sistem pentanahan. Ini dapat dilihat
49
Masukkan Data Gardu Induk
Vsis, Iga, ts, tc, Ztra, Zsal, , s,Parea, Larea
Benar ?
Message dialog
Selesai
Ya
Tidak
pada Gambar 4.4. Pada form ini terdapat tiga buah menu yang memiliki fungsi
yang sama seperti pada form Data Gardu Induk.
Gambar 4.4. Tampilan form Konduktor Pentanahan
Pada form ini disajikan tiga buah pilihan jenis sistem pentanahan yang
digunakan dalam perencanaan konduktor, yaitu sistem pentanahan rod, grid dan
kombinasi grid-rod. Setelah memilih jenis sistem pentanahan, maka dilakukan
pengisian data pada kotak data yang kosong. Masing-masing jenis sistem
pentanahan memiliki data yang berbeda-beda. Pengisian data ini terdiri dari
beberapa tahap, yaitu :
1. Pemilihan jenis konduktor
Pemilihan jenis konduktor ini mempengaruhi nilai dari konstanta
bahan yang berbeda-beda. Hal ini dapat dilihat pada Bab III di Tabel 3.1.
Ini berlaku untuk masing-masing jenis konduktor rod maupun konduktor
grid. Pemilihan jenis konduktor ini memiliki source code sebagai berikut :
procedure TFormTA2.ComboBoxTipeChange(Sender: TObject);begin
50
if ComboBoxTipe.Text = 'Standard Annealed Soft Copper Wire (100%)' thenbeginTn := 30;Kt := 0.00393;Rth := 1.7241;Ko := 234;TCAP := 3.42;end;if ComboBoxTipe.Text = 'Commercial Hard Drawn Copper Wire (97%)' thenbeginTn := 30;Kt := 0.00381;Rth := 1.7774;Ko := 242;TCAP := 3.422;end;if ComboBoxTipe.Text = 'Commercial EC Aluminum Wire (61%)' thenbeginTn := 30;Kt := 0.00403;Rth := 2.862;Ko := 228;TCAP := 2.556;end;if ComboBoxTipe.Text = 'Aluminum Alloy Wire (53%)' thenbeginTn := 30;Kt := 0.00353;Rth := 3.2226;Ko := 263;TCAP := 2.598;end;if ComboBoxTipe.Text = 'Copper Clad Steel Core Wire (40%)' thenbeginTn := 30;Kt := 0.00378;Rth := 4.397;Ko := 245;TCAP := 3.846;end;if ComboBoxTipe.Text = 'Copper Clad Steel Core Wire (30%)' then
51
beginTn := 30;Kt := 0.00378;Rth := 5.862;Ko := 245;TCAP := 3.846;end;if ComboBoxTipe.Text = 'Aluminum Clad Steel Core Wire (20%)' thenbeginTn := 30;Kt := 0.00360;Rth := 8.4805;Ko := 258;TCAP := 2.670;end;end;
2. Ukuran Luas Penampang Minimum Konduktor
Ukuran luas penampang minimum konduktor dapat ditentukan
setelah mengetahui jenis konduktor yang akan digunakan. Perhitungan
luas penampang ini berlaku untuk konduktor rod maupun untuk konduktor
grid. Perhitungannya dapat dilihat pada source code dibawah ini :
procedure TFormTA2.ButtonLuasMinGridClick(Sender: TObject);beginIga := StrToFloat (FormTA1.Edit3.Text);tc := StrToFloat (FormTA1.Edit6.Text);tipe := String (ComboBoxTipe.Text);If RadioButtonLas.Checked then Tm := 450;If RadioButtonBaut.Checked then Tm := 250;AminGrid1 := Iga*sqrt(((tc*Kt*Rth*10000)/(TCAP))/(ln(1+((Tm-Tn)/(Ko+Tn)))));AminGrid := AminGrid1*0.6;Edit4.Text := floattostrf (AminGrid,ffgeneral,4,4);end;
procedure TFormTA2.ButtonLuasMinRodClick(Sender: TObject);beginIga := StrToFloat (FormTA1.Edit3.Text);tc := StrToFloat (FormTA1.Edit6.Text);tipe := String (ComboBoxTipe.Text);If RadioButtonLas.Checked then Tm := 450;If RadioButtonBaut.Checked then Tm := 250;
52
AminRod := Iga*sqrt(((tc*Kt*Rth*10000)/(TCAP))/(ln(1+((Tm-Tn)/(Ko+Tn)))));Edit5.Text := floattostrf (AminRod,ffgeneral,4,4);end;
Setelah mengetahui jenis konduktor dan luas penampang minimum, maka
selanjutnya dapat memilih luas penampang yang telah ada dipasaran. Apabila
terjadi kesalahan dalam pemilihan, maka akan muncul peringatan. Source code-
nya dapat dilihat dibawah ini. Adapun blok diagram untuk form ini dapat dilihat
pada Gambar 4.5.
procedure TFormTA2.ComboBoxAgridChange(Sender: TObject);beginButtonLuasMinGridClick (Sender);Agrid := strtofloat (ComboBoxAgrid.Text);if Agrid < AminGrid thenApplication.MessageBox ('Luas Penampang Konduktor Grid Kurang Besar','Warning ! !',mb_OK);end;
Gambar 4.5. Flowchart Perencanaan Konduktor Pentanahan
53
Jenis Konduktor
Hitung Luas Minimum Penampang Konduktor
Amin < Aps Message Dialog
Luas Penampang Konduktor yang Digunakan
Tidak
Ya
4.5. Tampilan Hasil Perhitungan
Tampilan hasil perhitungan ini berisi hasil-hasil perhitungan yang telah
diproses oleh komputer. Form Hasil Perhitungan ini terdiri dari tiga buah page
control yang berbeda-beda. Ini digunakan untuk mempermudah pengamatan hasil
perhitungan. Form ini memiliki beberapa menu dan tombol yang memiliki fungsi
yang sama seperti pada form-form sebelumnya. Tampilan hasil perhitungan ini
tergantung dari jenis sistem pentanahan yang dipilih. Sebagai contoh, disini
ditampilkan jenis sistem pentanahan kombinasi grid-rod yang telah mencakup
semua jenis.
4.5.1. Tampilan Page Control Konduktor yang Digunakan
Tampilan ini berisi data-data mengenai konduktor yang telah dipilih
berdasarkan jenis sistem pentanahan. Ini dapat dilihat pada Gambar 4.6.
Konduktor ini terdiri dari dua jenis, yaitu :
1. Konduktor Grid
Perhitungan yang dilakukan adalah untuk mencari nilai dari
diameter dan panjang konduktor grid. Perhitungan ini dapat dilihat pada
source code di bawah ini :
procedure TFormTA3.PanjangGrid(Sender: TObject);beginParea := StrToFloat (FormTA1.Edit11.Text);Larea := StrToFloat (FormTA1.Edit12.Text);Pmesh := StrToFloat (FormTA2.Edit2.Text);Lmesh := StrToFloat (FormTA2.Edit3.Text);P1 := ((Parea/Pmesh))+1;P2 := ((Larea/Lmesh))+1;Panjgrid:=(((Pmesh*(round(P1)-1))*Round(P1)))+(((Lmesh*(round(P2)-1))*Round(P2)));Edit1.Text := floattostrf (Panjgrid,ffgeneral,6,6);end;
procedure TFormTA3.DiameterGrid(Sender: TObject);beginAgrid := strtofloat (FormTA2.ComboBoxGrid.Text);Dgrid := (sqrt ((4*Agrid)/3.142857143));Edit24.Text := floattostrf (Dgrid,ffgeneral,6,6);
54
Edit25.Text := floattostrf (Agrid,ffgeneral,6,6);end;
2. Konduktor Rod
Perhitungan yang dilakukan adalah untuk mencari nilai dari
diameter dan panjang konduktor rod. Perhitungan ini dapat dilihat pada
source code di bawah ini :
procedure TFormTA3.PanjangRod(Sender: TObject);beginLrod := StrToFloat (FormTA2.Edit7.Text);Nrod := StrToInt (FormTA2.Edit8.Text);Panjrod := Nrod*Lrod;Edit2.Text := floattostrf (Panjrod,ffgeneral,5,5);end;
procedure TFormTA3.DiameterRod(Sender: TObject);beginArod := StrToFloat (FormTA2.ComboBoxArod.Text);Drod := (sqrt ((4*Arod)/3.142857143));Edit26.Text := floattostrf (Drod,ffgeneral,6,6);Edit27.Text := floattostrf (Arod,ffgeneral,6,6);end;
Gambar 4.6. Tampilan page control Konduktor Yang Dipergunakan
55
3. Konstanta Konduktor
Ini menampilkan konstanta dari bahan yang telah dipilih sebagai
elektroda pentanahan. Nilai dari konstanta ini tergantung dari tipe
konduktor yang dipilih.
4.5.2. Tampilan Page Control Kondisi Sebenarnya
Tampilan ini berisi hasil perhitungan resistansi ground, arus ground dan
tegangan sebenarnya yang timbul berdasarkan data-data elektroda yang telah
dipilih sebagai elektroda pentanahan.
Tampilan ini terdiri dari beberapa bagian, yaitu :
1. Resistansi
Perhitungan ini dilakukan untuk menentukan nilai resistansi dari
konduktor grid, konduktor rod dan resistansi ground. Perhitungan ini
dapat dilihat pada source code di bawah ini :
procedure TFormTA3.ResistansiGrid(Sender: TObject);beginLuasArea (Sender);PanjangGrid (Sender);rho := StrToFloat (FormTA1.Edit8.Text);Agrid := StrToFloat (FormTA2.ComboBox2.Text);h := StrToFloat (FormTA2.Edit1.Text);Dgrid := (sqrt ((4*Agrid)/3.142857143))/1000;KonsA := sqrt ((Dgrid*h));Rgrid := (rho/(3.142857143*Panjgrid))*((ln((2*Panjgrid)/KonsA))+((1.2*Panjgrid)/(sqrt(LuasA)))-5);Edit3.Text := floattostrf (Rgrid,ffgeneral,5,5);end;
procedure TFormTA3.ResistansiRod(Sender: TObject);beginrho := StrToFloat (FormTA1.Edit8.Text);Lrod := StrToFloat (FormTA2.Edit7.Text);Nrod := StrToInt (FormTA2.Edit8.Text);Drod := StrToFloat (FormTA2.ComboBox3.Text);Drod1 := Drod/1000;Rrod := (rho/(2*3.142857143*Nrod*Lrod))*((ln((8*Lrod)/Drod1)-1)+(((2*1.2*Lrod)/sqrt(LuasA))*((sqr(sqrt(Nrod)-1)))));Edit4.Text := floattostrf (Rrod,ffgeneral,5,5);end;
56
procedure TFormTA3.ResistansiGround(Sender: TObject);beginRgrid := StrToFloat (Edit3.Text);Rrod := StrToFloat (Edit4.Text);Rkomb := StrToFloat (Edit5.Text);Rgro := (((Rgrid*Rrod)-(sqr(Rkomb)))/((Rgrid+Rrod)(2*Rkomb)));Edit6.Text := floattostrf (Rgro,ffgeneral,5,5);end;
2. Tegangan Sentuh Aktual
Perhitungan ini dilakukan untuk mencari nilai dari konstanta dan
tegangan sentuh aktual berdasarkan data-data dari konduktor yang
digunakan. Besarnya tegangan sentuh ini berbeda-beda, tergantung dari
jenis sistem pentanahannya. Contoh perhitungannya dapat dilihat pada
source code di bawah ini :
procedure TFormTA3.KonstantaM(Sender: TObject);beginParea := StrToFloat (FormTA1.Edit11.Text);Larea := StrToFloat (FormTA1.Edit12.Text);Pmesh := StrToFloat (FormTA2.Edit2.Text);Lmesh := StrToFloat (FormTA2.Edit3.Text);P1 := ((Parea/Pmesh))+1;P2 := ((Larea/Lmesh))+1;Agrid := strtofloat (FormTA2.ComboBoxAgrid.Text);Dgrid := (sqrt ((4*Agrid)/3.142857143))/1000;h := StrToFloat (FormTA2.Edit1.Text);nu := sqrt(P1*P2);KonstM := (1/(2*3.142857143))*((ln((sqr(Lmesh)/(16*h*Dgrid))+((sqr(Lmesh+(2*h)))/(8*Lmesh*Dgrid))-(h/(4*Dgrid)))+((1/Kh)*(ln(8/(3.142857143*((2*nu)-1)))))));Edit8.Text := floattostrf (KonstM,ffgeneral,5,5);end;
procedure TFormTA3.KonstantaI(Sender: TObject);beginParea := StrToFloat (FormTA1.Edit11.Text);Larea := StrToFloat (FormTA1.Edit12.Text);Pmesh := StrToFloat (FormTA2.Edit2.Text);Lmesh := StrToFloat (FormTA2.Edit3.Text);P1 := ((Parea/Pmesh))+1;P2 := ((Larea/Lmesh))+1;nu := sqrt(P1*P2);
57
KonstI := 0.656+(0.172*nu);Edit12.Text := floattostrf (KonstI,ffgeneral,5,5);end;
procedure TFormTA3.TegSentuhAk(Sender: TObject);beginrho := StrToFloat (FormTA1.Edit8.Text);KonstM := strtofloat (Edit8.Text);Konst I := strtofloat (Edit12.Text);Ltot := strtofloat (Edit13.Text);Igro := strtofloat (Edit7.Text);Esak := KonstM*KonstI*rho*Igro/Ltot;Edit9.Text := floattostrf (Esak,ffgeneral,5,5);end;
3. Tegangan Langkah Aktual
Perhitungan ini dilakukan untuk mencari nilai dari tegangan
langkah aktual dan parameter-parameter lain yang mempengaruhinya.
Perhitungan ini dapat dilihat pada source code di bawah ini :
procedure TFormTA3.KonstantaS(Sender: TObject);beginParea := StrToFloat (FormTA1.Edit11.Text);Larea := StrToFloat (FormTA1.Edit12.Text);Pmesh := StrToFloat (FormTA2.Edit2.Text);Lmesh := StrToFloat (FormTA2.Edit3.Text);P1 := ((Parea/Pmesh))+1;P2 := ((Larea/Lmesh))+1;nu := sqrt(P1*P2);h := StrToFloat (FormTA2.Edit1.Text);KonstS := (1/3.142857143)*((1/(2*h))+(1/(Lmesh+h))+((1/Lmesh)*(1-(exp(ln(0.5)*(nu-2))))));Edit11.Text := floattostrf (KonstS,ffgeneral,5,5);end;
procedure TFormTA3.TegLangkahAk(Sender: TObject);beginKonstI := strtofloat (Edit12.Text);KonstS := strtofloat (Edit11.Text);Ltot := strtofloat (Edit13.Text);Igro := strtofloat (Edit7.Text);rho := StrToFloat (FormTA1.Edit8.Text);Elak := KonstS*KonstI*rho*Igro/Ltot;Edit10.Text := floattostrf (Elak,ffgeneral,5,5);end;
58
4. Arus Ground
Perhitungan ini dilakukan untuk mencari nilai dari arus ground
yang sebenarnya berdasarkan data-data gardu induk dan elektroda yang
digunakan. Perhitungan ini dapat dilihat pada source code di bawah ini :
procedure TFormTA3.ArusRangk(Sender: TObject);beginVsis := StrToFloat (FormTA1.Edit2.Text);Zsumb := StrToFloat (Edit22.Text);Ira := (Vsis*1000)/(sqrt(3)*Zsumb);Edit23.Text := floattostrf (Ira,ffgeneral,5,5);end;
procedure TFormTA3.ArusGround(Sender: TObject);beginIra := StrToFloat (Edit23.Text);Rgro := StrToFloat (Edit6.Text);Zsal := StrToFloat (FormTA1.Edit13.Text);Igro := 0.7*Ira*(Zsal/(Zsal+Rgro));Edit7.Text := floattostrf (Igro,ffgeneral,5,5);end;
4.5.3. Tampilan Page Control Batas Keamanan Gardu Induk
Tampilan ini berisi hasil perhitungan batas aman tegangan yang tidak
boleh dilampaui oleh kondisi sebenarnya dari konduktor pentanahan. Ini dapat
dilihat pada Gambar 4.7. Tampilan ini terdiri dari beberapa bagian, yaitu :
1. Kriteria Tegangan Sentuh dan Tegangan Langkah
Perhitungan ini dilakukan untuk mencari nilai dari kriteria batas
aman tegangan sentuh dan tegangan langkah dan parameter lain yang
mempengaruhinya berdasarkan data-data dari kondisi lingkungan di
sekitar gardu induk Perhitungan ini dapat dilihat pada source code di
bawah ini :
procedure TFormTA3.KonstantaCs(Sender: TObject);beginrho := StrToFloat (FormTA1.Edit8.Text);rhos := StrToFloat (FormTA1.Edit9.Text);hs := StrToFloat (FormTA1.Edit10.Text);Cs := 1-(0.106*((1-(rho/rhos))/((2*hs)+0.106)));
59
Edit20.Text := floattostrf (Cs,ffgeneral,5,5);end;
procedure TFormTA3.BatasTeg(Sender: TObject);begints := StrToFloat (FormTA1.Edit5.Text);Esaman := ((1000+(1.5*Cs*rhos))*0.116)/sqrt(ts);Elaman := ((1000+(6*Cs*rhos))*0.116)/sqrt(ts);Edit18.Text := floattostrf (Esaman,ffgeneral,5,5);Edit19.Text := floattostrf (Elaman,ffgeneral,5,5);end;
Gambar 4.7. Tampilan page control Batas Keamanan Gardu Induk
2. Keterangan Gardu Induk
Tombol ini berfungsi sebagai indikator untuk mengetahui apakah
kondisi gardu induk dalam keadaan aman atau tidak. Apabila gardu induk
dalam keadaan tidak aman, maka terdapat pilihan untuk mengisi ulang
data. Perintah ini dapat dilihat pada source code di bawah ini :
procedure TFormTA3.ButtonKeteranganClick(Sender: TObject);beginif (Esak<Esaman) and (Elak<Elaman) thenMessageDlg('GARDU INDUK AMAN',mtInformation,[mbOK],0);if (Esak<Esaman) and (Elak>Elaman) then
60
beginFormWarning.showmodal;end;if (Esak>Esaman) and (Elak<Elaman) thenbeginFormWarning.showmodal;end;if (Esak>Esaman) and (Elak>Elaman) thenbeginFormWarning.showmodal;end;end;
3. Biaya Sistem Pentanahan
Perhitungan yang dilakukan adalah untuk mencari biaya total
diperlukan, apabila harga satuan dan harga pemasangan dari masing-
masing konduktor diketahui. Perhitungan ini dapat dilihat pada source
code di bawah ini :
if FormTA2.RadioButtonGridRod.Checked = true thenbeginHargrid := StrTofloat (FormTA3.Edit30.Text);Harrod := StrTofloat (FormTA3.Edit31.Text);Panjgrid := StrToFloat (FormTA3.Edit1.Text);Panjrod := StrToFloat (FormTA3.Edit2.Text);Pasgrid := StrToFloat (FormTA3.Edit5.Text);Pasrod := StrToFloat (FormTA3.Edit33.Text);Pasangrod := Pasrod * Panjrod;Pasanggrid := Pasgrid * Panjgrid;Gridtot := Hargrid * Panjgrid;Rodtot := Harrod * Panjrod;Biayatotal := Gridtot + Rodtot + Pasangrod + Pasanggrid;Edit33.Text := floattostrf (Biayatotal,ffgeneral,15,5);end;end;
61
Gambar 4.8. Flowchart Hasil Perhitungan
Adapun flowchart dari form Hasil Perhitungan ini dapat dilihat pada
Gambar 4.8.
62
Masukkan Data
Data Gardu IndukData Perencanaan Elektroda
Hitung Resistansi Ground
Batas Aman Tegangan Sentuh dan Tegangan Langkah
Hitung Arus Ground
Hitung Tegangan Sentuh dan Langkah Aktual
Es(ak) < Es
El(ak) < El
Simpan dan Cetak
Design Ulang
Ya
Ya
Tidak
Tidak
4.6. Tampilan Desain Konduktor
Tampilan desain konduktor ini berisi visualisasi gambar dari konduktor
yang telah direncanakan. Tampilan desain konduktor ini tergantung dari jenis
sistem pentanahan yang dipilih. Sebagai contoh, disini ditampilkan jenis sistem
pentanahan kombinasi grid-rod yang telah mencakup semua jenis.
Pada Form Desain Konduktor terdapat suatu canvas yang digunakan untuk
menggambar konduktor. Pada canvas terdapat gambar sumbu x, y dan z, yang
merupakan suatu koordinat tiga dimensi. Untuk konduktor grid, gambar akan
ditampilkan secara otomatis sesuai dengan data perencanaan konduktor.
Sedangkan untuk konduktor rod, memerlukan suatu koordinat untuk menentukan
letak dan panjangnya. Data dari koordinat ini diisikan pada tabel dibawahnya.
Tampilan ini dapat dilihat pada Gambar 4.9.
Form Desain Konduktor ini memiliki beberapa menu dan tombol yang
memiliki fungsi yang sama seperti pada form-form sebelumnya. Disamping itu,
ada beberapa tombol lain yang memiliki fungsi sebagai berikut :
1. Tombol Draw Grid
Tombol ini berfungsi untuk menggambar konduktor grid pada canvas.
Gambar yang muncul sesuai dengan data perencanaan konduktor yang
telah dimasukkan.
2. Tombol Clear Grid
Tombol ini berfungsi untuk menghapus gambar konduktor grid pada
canvas.
3. Tombol Draw Rod
Tombol ini berfungsi untuk menggambar konduktor rod pada canvas.
Gambar yang muncul sesuai dengan data perencanaan konduktor yang
telah dimasukkan.
4. Tombol Clear Rod
Tombol ini berfungsi untuk menghapus gambar konduktor grid pada
canvas.
5. Tombol Rotate
63
Tombol ini berfungsi untuk memutar gambar sesuai dengan besarnya
sudut yang tercantum.
6. Tombol Close
Tombol ini berfungsi untuk mengakhiri program.
Gambar 4.9. Tampilan form Desain Konduktor
Contoh source code untuk proses penggambaran konduktor grid dapat
dilihat dibawah ini :
procedure TFormGambar.ButtonDrawGridClick(Sender: TObject);varmag:real;xmesh,ymesh,YUjungx, YUjungy, ytemp, xtemp :integer;index,x : byte;coX1, coY1, coZ1, coX2, coY2, coZ2, dx, dy, max : integer;beginwith image1.Canvas dobeginmoveto(10,80);lineto(565,80);textout(560,80,'+x');textout(10,80,'-x');pen.Style := psDot;
64
pen.Color := clRed;font.color := clRed;moveto(240,10);lineto(240,340);textout(240,10,'+z');textout(240,335,'-z');pen.Style := psDot;pen.Color := clRed;font.color := clRed;moveto(240,80);lineto(240+proyeksiX(90),80-proyeksiY(90));moveto(240,80);lineto(240-proyeksiX(310),80+proyeksiY(310));textout(240+proyeksiX(90),80-proyeksiY(90),'-y');textout(240-proyeksiX(310),80+proyeksiY(310),'+y');end;dx:=strToint(Edit7.Text);dy:=strtoint(edit8.text);If dx>dy then max:=dx else max:=dy;mag:=max/300;with Image1.Canvas dobeginpen.Style := psSolid;pen.color := clBlack;MoveTo(240,80);LineTo(240 + round(strtoInt(edit7.Text)/mag),80);MoveTo(240,80);YUjungX:=240-proyeksix(round(strtoint(edit8.text)/mag));YUjungy:=80+proyeksiy(round(strtoint(edit8.text)/mag));Lineto(YUjungX,YUjungY);dx:= strtoint(edit1.text);dy:= strtoint(edit2.text);xmesh:= strtoint(edit7.Text) div dx;ymesh:= strtoint(edit8.Text) div dy;for x:=1 to xmesh dobeginmoveto(240 + round(x*dx/mag),80);lineto(YUjungX + round(x*dx/mag),YUjungY);end;for x:=1 to ymesh dobeginxtemp:= 240 - proyeksix(round(x*dy/mag));ytemp:= 80 + proyeksiy(round(x*dy/mag));moveto(xtemp,ytemp);lineto(xtemp+ round(strtoint(edit7.text)/mag),ytemp)end;
65