Anda di halaman 1dari 287

OPTIMASI BETON BERTULANG PADA STRUKTUR

PORTAL RUANG


TUGAS AKHIR SARJANA STRATA SATU




Oleh :

YOHAN NAFTALI
No. Mahasiswa : 07712/TSS
NIRM : 950051053114120051






















PROGRAM STUDI TEKNIK SIPIL
FAKULTAS TEKNIK
UNIVERSITAS ATMA JAYA YOGYAKARTA
YOGYAKARTA
AGUSTUS 1999
PENGESAHAN


Tugas Akhir Sarjana Strata Satu

OPTIMASI BETON BERTULANG PADA STRUKTUR
PORTAL RUANG



Oleh :

YOHAN NAFTALI
No. Mahasiswa : 07712 / TSS
NIRM : 950051053114120051


telah periksa, disetujui dan diuji oleh Pembimbing


Yogyakarta, ... Agustus 1999





Pembimbing I Pembimbing II





(Dr. Ir. FX. Nurwadji W., M.Sc.) ( Ir. Ch. Arief Sudibyo )



Disahkan oleh :
Ketua Program Studi Teknik Sipil





(Ir. Wiryawan Sardjono P., M.T.)














Sepanjang apapun sebuah perjalanan, selalu dimulai
dengan langkah pertama




















KATA HANTAR

Terima kasih kepada Allah Bapa di surga, karena dengan rahmat dan
tuntunan dari pelita Allah tugas akhir ini berhasil diselesaikan, segenap puji dan
syukur dipanjatkan demi kemuliaan nama Allah Yang Maha Pengasih.
Tugas akhir yang mengambil judul Optimasi Beton Bertulang Pada
Struktur Portal Ruang ini ditulis untuk memenuhi salah satu persyaratan
memperoleh gelar Sarjana Teknik dalam kurikulum Strata-1 Program Studi teknik
Sipil, Fakultas Teknik, Universitas Atma J aya Yogyakarta.
Selama penulisan tugas akhir ini banyak doa, dukungan, dan bimbingan
baik secara moral maupun secara material yang diberikan oleh berbagai pihak
untuk memperlancar penulisan tugas akhir ini. Karena itu pada kesempatan ini
penulis ingin mengucapkan terima kasih yang sebesar-besarnya kepada :
1. Papa dan Mama tercinta atas doa dan restu.
2. Ir. J ohn Tri Hatmoko, M.Sc., selaku Dekan Fakultas Teknik
3. Ir. Wiryawan Sardjono P., M.T., selaku Ketua Program Studi Teknik Sipil
4. Dr. Ir. FX. Nurwadji Wibowo, M.Sc., selaku Dosen Pembimbing I yang telah
memberikan bimbingan dan mengarahkan penulis, sehingga penulis
berkesempatan mengenal dunia optimasi dan pemrograman.
5. Ir. Ch. Arief Sudibyo, selaku Dosen Pembimbing II yang telah memberikan
bimbingan kepada penulis
6. Segenap dosen dan karyawan Program Studi Teknik Sipil Universitas Atma
J aya.
7. Mutiara atas cinta dan kasihnya untuk penulis.
8. Bu Yenny, Pak Wagianto, dan teman-teman di Laboratorium Teknik
Penyehatan.
9. Yerry, Bayu, Fika, Herman, Roy, Benny, Eko, Anwar dan semua teman yang
tidak dapat disebutkan satu-persatu atas bantuan dan dukungannya.
Semoga Allah Bapa memberikan imbalan atas budi baik yang telah
ditanamkan mereka.

iii
DAFTAR ISI



HALAMAN J UDUL ...................................................................................... i
HALAMAN PENGESAHAN ........................................................................ ii
KATA HANTAR ........................................................................................... iii
DAFTAR ISI .................................................................................................. iv
DAFTAR TABEL .......................................................................................... vi
DAFTAR GAMBAR ..................................................................................... vii
DAFTAR LAMPIRAN .................................................................................. viii
ARTI LAMBANG DAN SINGKATAN ....................................................... ix
INTISARI ....................................................................................................... xiv
BAB I PENDAHULUAN ........................................................................... 1
I.1 Latar Belakang ........................................................................ 1
I.2 Materi Tugas Akhir ................................................................. 3
I.2.1. Rumusan Masalah ......................................................... 3
I.2.2. Batasan Masalah ............................................................ 6
I.3 Maksud dan Tujuan Penulisan ................................................ 7
I.4. Kegunaan Penulisan ................................................................ 8
I.5 Metoda Penulisan .................................................................... 8
BAB II TINJ AUAN PUSTAKA .................................................................. 10
II.1 Struktur Portal Ruang ............................................................. 10
II.1.1 Tinjauan Umum ............................................................ 10
II.1.2 Metoda Kekakuan ......................................................... 11
II.1.3 Kekakuan Batang Portal Ruang .................................... 16
II.2 Struktur Beton Bertulang ........................................................ 16
II.2.1 Tinjauan Umum ............................................................ 16
II.2.2 Balok ............................................................................. 17
II.2.3 Kolom Biaksial .............................................................. 23
II.3 Metoda Optimasi Struktur ...................................................... 26
II.3.1 Tinjauan Umum ............................................................ 26
II.3.2 Metoda Optimasi Polihedron Fleksibel ......................... 35
BAB III OPTIMASI BETON BERTULANG PADA STRUKTUR
PORTAL RUANG ........................................................................... 38
III.1 Struktur Program ..................................................................... 38
III.2 Sub Program Masukkan dan Keluaran ................................... 41
III.2.1 Sub Program Untuk Menampilkan Menu Utama ........ 41
III.2.2 Sub Program Memasukkan Data ................................. 42
III.2.3 Sub Program Untuk Membaca Data Masukkan .......... 44
III.3 Subprogram Inti ...................................................................... 45
III.3.1 Sub Program Analisa Struktur ..................................... 45
III.3.2 Sub Program Analisa Balok Persegi Panjang .............. 46
III.3.4 Sub Program Metoda Optimasi Polihedron Fleksibel . 50
III.3.5 Subprogram Mencetak Hasil Akhir Optimasi ............. 52
BAB IV VALIDASI DAN APLIKASI PROGRAM OPTIMASI ................. 53

iv
IV.1 Validasi Program Optimasi ..................................................... 53
IV.2 Aplikasi Program Optimasi .................................................... 58
BAB V KESIMPULAN DAN SARAN ....................................................... 63
V.1 Kesimpulan ............................................................................. 63
V.2 Saran ....................................................................................... 63
DAFTAR PUSTAKA .................................................................................... 65
LAMPIRAN


v
DAFTAR TABEL



2-1 Matrik Kekakuan Batang Portal Ruang ................................................... 15
4-1 Beban Merata Pada Struktur Portal Bidang ............................................. 54
4-2 Beban Tekanan Angin ............................................................................. 55
4-3 Perbandingan Volume Beton dan Berat Besi .......................................... 55
4-4 Perbandingan Harga Struktur ................................................................... 58
4-5 Dimensi Struktur Portal Ruang Hasil Optimasi ....................................... 61
4-6 Rincian Harga Struktur Portal Ruang ...................................................... 62

































vi
DAFTAR GAMBAR



2-1 Penampang Tulangan Rangkap 19
2-2 Diagram Regangan 19
4-1 Geometri Struktur Portal Bidang 53
4-2 Penomoran Titik Kumpul dan Batang Portal Bidang 54
4-3 Geometri Struktur Portal Ruang 59
4-4 Penomoran Titik Kumpul dan Batang Portal Ruang 59
4-5 Grafik Perbandingan Nilai Fitness 60
4-6 Grafik Perbandingan Lama Proses Optimasi 61
































vii
DAFTAR LAMPIRAN



1. Program Utama 67
2. File BORLANDC.HPP 68
3. File HEADER.HPP 69
4. File PROTO.HPP 70
5. File VARIABEL.HPP 71
6. File INOUT.HPP 76
7. File STRUKTUR.HPP 86
8. File PEMBEBANAN.HPP 94
9. File SOLVER.HPP 99
10. File KOLOM.HPP 101
11. File BALOK.HPP 111
12. File ELEMEN.HPP 117
13 File POLYHEDRON.HPP 119
14 File PENORMALAN.HPP 126
15 File PENGACAKAN.HPP 128
16 File DISKRITISASI.HPP 130
17 File KENDALA.HPP 131
18 File TELUSUR.HPP 134
19 File BARU.HPP 137
20 File PENGURUTAN.HPP 140
21 File TAMPILAN.HPP 142
22 File CETAK.HPP 145
23 Konfigurasi kompilasi 152
24 Data input struktur portal gedung 2 lantai 154
25 Data diskrit struktur portal gedung 2 lantai 155
26 Data pembebanan struktur portal gedung 2 lantai 156
27 Hasil informasi struktur portal gedung 2 lantai 157
28 Hasil tiwayat proses optimasi struktur portal gedung 2 lantai 160
29 Hasil akhir struktur terbaik untuk kasus portal gedung 2 lantai 161
30 Hasil analisa struktur portal gedung 2 lantai 170
31 Laporan kendala portal gedung 2 lantai 172
32 Data input struktur portal ruang 174
33 Data diskrit struktur portal ruang 175
34 Data pembebanan struktur portal ruang 176
35 Hasil informasi struktur portal ruang 177
36 Hasil riwayat proses optimasi kasus-kasus portal ruang 179
37 Hasil akhir struktur terbaik untuk kasus portal ruang 181
38 Hasil analisa struktur portal ruang 185


viii
ARTI LAMBANG DAN SINGKATAN



a Tinggi blok tegangan persegi ekivalen

A
C
Beban titik kumpul gabungan

A
E
Beban titik kumpul ekivalen

A
FC
Beban titik kumpul gabungan yang selaras dengan D
F

A
Mi
Gaya di ujung batang i

A
ML
Gaya ujung batang akibat beban

A
MSi
Gaya jepit kedua ujung i dalam arah sumbu struktur

A
R
Reaksi di titik kumpul yang dikekang

A
RC
Beban titik kumpul gabungan yang selaras dengan perpindahan pada
titik kumpul yang dikekang

A
S
Luas tulangan pada daerah tarik

A
S
Luas tulangan pada daerah tekan

b Lebar penampang beton

B Lebar kolom

c J arak dari serat tekan terluar ke garis netral

C
C
Gaya internal pada daerah tekan beton

C
S
Gaya internal pada daerah tekan baja tulangan

d J arak dari serat tekan terluar ke pusat tulangan tarik

d J arak dari serat tarik terluar ke pusat tulangan desak

dia Diameter tulangan pada kolom

diatldslp Diameter tulangan desak pada daerah lapangan balok

diatldstm Diameter tulangan desak pada daerah tumpuan balok

ix

diatlgs Diameter tulangan geser

diatltrlp Diameter tulangan tarik pada daerah lapangan balok

diatltrtm Diameter tulangan tarik pada daerah tumpuan balok

D
F
Perpindahan titik kumpul bebas


D
Mi
Perpindahan di ujung batang i

D
R
Perpindahan titik kumpul yang dikekang

E Modulus elastisitas untuk gaya aksial

E
C
Modulus elastisitas untuk beton

E
S
Modulus elastisitas baja tulangan

f Fungsi sasaran

fc Kuat desak karakteristik beton

f
S
Tegangan yang terjadi pada baja tarik

fy Kuat tarik baja tulangan

g
j
Fungsi kendala pertaksamaan ke-j

G Modulus elastisitas untuk geser

h
j
Fungsi kendala persamaan ke-j

H Tinggi kolom

I
x
Momen inersia pada sumbu x

Iy Momen nersia pada sumbu y

Iz Momen inersia pada sumbu z

jaraktlgs J arak tulangan geser

J VD J umlah variabel desain

L Panjang bentang batang

x

m J umlah batang

M Momen

M
n
Momen tahanan nominal penampang

M
ox
Momen desain efektif pada arah x

M
oy
Momen desain efektif pada arah y

M
x
Momen yang terjadi pada arah sumbu x

M
y
Momen yang terjadi pada arah sumbu y

nB J umlah balok pada struktur

nK J umlah kolom pada struktur

ntldslp J umlah tulangan desak pada daerah lapangan balok

ntldstm J umlah tulangan desak pada daerah tumpuan balok

ntltrlp J umlah tulangan tarik pada daerah lapangan balok

ntltrtm J umlah tulangan tarik pada daerah tumpuan balok

N J umlah tulangan pada salah satu sisi kolom

N
titik
J umlah titik coba

P Gaya aksial

P
u
Gaya aksial ultimit

S
FF
Gaya A
F
akibat satu satuan perpindahan D
F

S
J
Matrik kekakuan titik terakit

S
M
Kekakuan batang dalam arah sumbu struktur

S
MSi
Kekakuan batang untuk kedua ujung batang i dalam arah sumbu
struktur

S
RF
Reaksi A
R
akibat satu perpindahan D
F


xi
T Gaya internal pada daerah tarik baja tulangan

x Variabel Desain

X Ruang variabel Desain

X
B
Koordinat x titik terbaik B

X
G
Koordinat x titik good

X
M
Koordinat x titik tengah

X
S
Koordinat x arah penelusuran

X
T
Koordinat x titik coba baru

X
W
Koordinat x titik terjelek

Y
B
Koordinat y titik terbaik B

Y
G
Koordinat y titik good

Y
M
Koordinat y titik tengah

Y
S
Koordinat y arah penelusuran

Y
T
Koordinat y titik coba baru

Y
W
Koordinat y titik terjelek

Koefisien biaksial

1
Faktor reduksi tinggi blok tegangan

Faktor konvergensi

s
Regangan pada tulangan tarik

s
Regangan pada tulangan desak

Faktor reduksi kekuatan

Rasio penulangan pada daerah tarik

Rasio penulangan pada daerah tekan


xii

b
Rasio imbang

maks
Rasio penulangan maksimum yang diijinkan




xiii


INTISARI

OPTIMASI BETON BERTULANG PADA STRUKTUR PORTAL
RUANG, Yohan Naftali, tahun 1999, Peminatan Program Studi Struktur,
Program Studi Teknik Sipil, Fakultas Teknik, Universitas Atma J aya Yogyakarta.

Desain struktur merupakan salah satu bagian dari keseluruhan proses
perencanaan bangunan. Semakin mahalnya harga material menyebabkan harga
struktur bangunan menjadi semakin mahal, oleh karena itu untuk menekan biaya
bangunan, perlu dicari dimensi batang sehingga memberikan harga struktur yang
paling murah (optimal), tanpa melanggar kendala-kendala yang ada. Salah satu
metoda untuk mendapatkan struktur yang optimal dapat dilakukan dengan proses
optimasi. Kasus optimasi yang terjadi dalam bidang teknik pada umumnya berupa
masalah yang tidak linier, untuk itu perlu digunakan metoda optimasi yang dapat
menyelesaikan masalah tidak linier, dari dua metoda yaitu dengan bantuan
kalkulus dan metoda numerik.
Beton bertulang merupakan material yang banyak digunakan untuk
membuat struktur bangunan karena material pembentuknya mudah didapat. Balok
utama pada struktur beton bertulang langsung ditumpu oleh kolom dan dianggap
menyatu secara kaku dengan kolom, sistem ini dikatakan sebagai sistem portal.
Portal ruang merupakan sistim portal yang dianalisa secara 3 dimensi. Portal
ruang memiliki 6 perpindahan yang mungkin terjadi pada setiap titik kumpulnya.
Harga struktur yang murah tetapi tidak melanggar kendala yang ada
merupakan fungsi sasaran yang dicari dalam tugas akhir ini. Variabel desainnya
berupa dimensi penampang beton dan tulangan baja yang digunakan. Balok dan
kolom berpenampang empat persegi panjang dan uniform sepanjang bentangnya.
Hasil tugas akhir ini berupa sebuah perangkat lunak untuk optimasi beton
bertulang pada struktur portal ruang. Kode program ditulis dengan bahasa C++
dan dikompilasi menggunakan Borland C++.
Penyelesaian masalah optimasi beton bertulang pada struktur portal ruang
memakai metoda kalkulus terlalu rumit, oleh karena itu dalam tugas akhir ini
digunakan metoda optimasi polihedron fleksibel. Dalam menganalisa struktur
portal ruang digunakan metoda kekakuan. Balok dianalisa sebagai balok
berpenampang empat persegi panjang dan bertulangan rangkap, kolom dianalisa
sebagai kolom biaksial bertulangan simetri.
Hasil yang diperoleh dengan menggunakan program optimasi beton
bertulang pada struktur portal ruang yang dikembangkan dalam tugas akhir ini
dapat mengurangi harga struktur sekitar 9,9 % dibandingkan hitungan struktur
yang dikerjakan tanpa dioptimasi. Dalam metoda polihedron fleksibel, semakin
banyak titik coba yang digunakan, harga struktur yang didapat menjadi semakin
murah, akan tetapi membutuhkan waktu proses optimasi yang semakin lama.
Pengembangan optimasi beton bertulang pada struktur portal ruang merupakan
hal yang masih luas dan menarik untuk dipelajari, terutama masalah pendetailan
antara sambungan balok kolom dan analisis struktur dinamis yang belum dibahas
dalam tugas akhir ini.

xiv
BAB I
PENDAHULUAN

I.1 Latar Belakang
Desain struktur merupakan salah satu bagian dari keseluruhan proses
perencanaan bangunan. Proses desain dapat dibedakan menjadi dua tahap, tahap
pertama yaitu desain umum yang merupakan peninjauan secara garis besar
keputusan-keputusan desain, misalnya tata letak struktur, geometri atau bentuk
bangunan, dan material, sedangkan tahap kedua adalah desain secara terinci yang
antara lain meninjau tentang penentuan besar penampang balok dan kolom, luas
dan penempatan tulangan yang dibutuhkan pada struktur beton bertulang dan
sebagainya, untuk itu perlu dimodelkan struktur yang akan didesain sehingga
dapat diperoleh besaran gaya dan informasi perpindahan yang diperlukan dalam
menentukan luasan beton beserta penulangannya.
Untuk memodelkan suatu struktur bangunan yang baik dapat dimodelkan
sebagai portal ruang. Portal ruang merupakan suatu struktur yang pada tiap
titiknya memiliki enam perpindahan yang mungkin terjadi, sehingga bukan lagi
dua atau tiga seperti pada struktur rangka atau portal bidang.
Dalam menentukan dimensi balok dan kolom pada struktur beton
bertulang harus memperhatikan masalah kekuatan dan biaya, terutama pada saat
ini dimana harga material semakin mahal, banyak orang yang menunda bahkan
membatalkan proyeknya karena masalah biaya bahan bangunan yang mahal, oleh
karena itu dalam merencanakan struktur bangunan sangat perlu diperhatikan
1
2
masalah tersebut. Kekuatan yang dibutuhkan oleh suatu struktur beton bertulang
dapat dicapai dengan memberikan luasan penampang beton dan tulangan yang
cukup. Analisis perhitungan yang dilakukan diharapkan dapat memperoleh hasil
yang aman dan ekonomis. Untuk mendapatkan hasil yang paling murah (optimal)
dapat dicapai dengan menggunakan proses optimasi. Hasil yang didapat
merupakan hasil yang mempunyai harga struktur yang paling murah tetapi tetap
masih mampu mendukung beban struktur dengan aman.
Metoda optimasi semakin berkembang seiring dengan perkembangan
komputer. Dalam bidang teknik sipil, formulasi masalah optimasinya berupa
formula tidak linear, oleh karena itu metoda optimasi yang berkembang dalam
bidang teknik adalah metoda optimasi non-linear.
Dalam menyelesaikan masalah optimasi non-linear, dapat diselesaikan
dengan bantuan kalkulus yang memerlukan informasi turunan, hal ini dapat
dilakukan apabila masalah yang ada belum begitu komplek, untuk masalah yang
sangat komplek dikembangkan metoda yang idenya berasal dari alam, seperti
metoda algoritma genetik yang berasal dari teori Darwin Survival to the fittest,
metoda simulated annealling yang didasarkan pada proses mengerasnya logam,
metoda flexible polyhedron yang dalam prosesnya variabel desain akan
membentuk suatu segi banyak yang makin lama semakin mengecil. Dari banyak
metoda di atas, sampai saat ini belum ada metoda yang dapat digunakan untuk
menyelesaikan segala kasus dengan memuaskan, karena masing-masing metoda
memiliki keunggulan dan kerugiannya sendiri-sendiri.
Oleh karena itu dalam tugas akhir ini, untuk melakukan optimasi beton
3
bertulang pada struktur portal ruang digunakan metoda polihedron fleksibel.

I.2 Materi Tugas Akhir
I.2.1 Rumusan Masalah
Proses optimasi adalah proses mencari nilai variabel desain yang
memberikan nilai optimal yang berupa nilai maksimun ataupun nilai minimum
dari fungsi sasaran tanpa melanggar kendala-kendala yang ada.
Secara umum masalah optimasi dapat dirumuskan sebagai :
minimumkan f(x) , x X (1-1)
yang memenuhi kendala :
g
j
(x) 0 j=1,2,,n (1-2)
h
j
(x) = 0 j=1,2,,m (1-3)
pada persamaan di atas x menyatakan variabel desain, X menyatakan ruang
variabel desain, f(x) adalah fungsi sasaran, g(x) fungsi kendala pertaksamaan, h(x)
fungsi kendala persamaan, n jumlah kendala pertaksamaan, m jumlah kendala
persamaan.
Harga struktur yang minimum merupakan fungsi sasaran dalam optimasi
ini, dengan variabel disainnya terdiri dari volume beton dan berat tulangan, dalam
hal ini tulangan terdiri dari tulangan tarik dan desak untuk balok, tulangan geser
untuk balok, tulangan kolom, tulangan geser untuk kolom. Kendala pertaksamaan
yang harus dipenuhi berupa momen yang terjadi pada struktur harus lebih kecil
atau sama dengan momen yang dapat didukung oleh masing-masing batang balok
maupun kolom, gaya geser yang terjadi pada struktur harus lebih kecil atau sama
4
dengan gaya geser yang didukung oleh beton dan tulangan geser pada masing-
masing batang balok maupun kolom, gaya tekan maupun tarik yang terjadi harus
lebih kecil atau sama dengan gaya tekan atau tarik yang didukung oleh kolom,
serta lendutan yang terjadi harus lebih kecil atau sama dengan lendutan ijin.
Optimasi beton bertulang pada struktur portal ruang ini dapat dirumuskan
sebagai :
untuk balok :
minimumkan :
f1(lebar, tinggi, diatltrtm, ntltrtm, diatldstm, ntldstm, diatltrlp,
ntltrlp, diatldslp , ntldslp, diatlgs, jaraktlgs) = (lebar x tinggi x
panjang balok x Rp(harga beton)/m
3
) + ( x x diatltrtm
2
x ntltrtm
x 2 x 0.25 x panjang balok x (berat tulangan)kg/m
3
x Rp(harga
tulangan)/kg) + ( x x diatldstm
2
x ntldstm x 2 x 0.25 x panjang
balok x (berat tulangan)kg/m
3
x Rp(harga tulangan)/kg) + ( x x
diatltrlp
2
x ntltrlp x 0.5 x panjang balok x (berat tulangan)kg/m
3
x
Rp(harga tulangan)/kg) + ( x x diatldslp
2
x ntldslp x 0.5 x
panjang balok x (berat tulangan)kg/m
3
x Rp(harga tulangan)/kg) +
( x x diatlgs
2
x (2 x (lebar - 2 x selimut beton) + 2 x (tinggi 2
selimut beton)) x (panjang balok/jaraktlgs) x (berat tulangan)kg/m
3

x Rp(harga tulangan)/kg) (1-4)
yang memenuhi kendala pertaksamaan :
M intern M extern (1-5)
G intern G extern (1-6)
5
Lendutan Lendutan ijin (1-7)
pada perasamaan di atas f1 menyatakan harga balok pada struktur, lebar dan
tinggi menyatakan ukuran penampang balok. Variabel desainnya terdiri atas
diatltrtm menyatakan diameter tulangan tarik pada daerah tumpuan, ntltrtm
menyatakan jumlah tulangan tarik pada daerah tumpuan, diatldstm menyatakan
diameter tulangan desak pada daerah tumpuan, ntltrtm menyatakan jumlah
tulangan desak pada daerah tumpuan, diatltrlp menyatakan diameter tulangan
tarik pada daerah lapangan, ntltrlp menyatakan jumlah tulangan tarik pada daerah
lapangan, diatldslp menyatakan diameter tulangan desak pada daerah lapangan,
ntldslp menyatakan jumlah tulangan desak pada daerah lapangan, diatlgs
menyatakan diameter tulangan geser, jaraktlgs menyatakan jarak antar tulangan
geser. M adalah momen dan G adalah gaya geser.
untuk kolom :
minimumkan :
f2(B,H,dia,N,diatlgskl,jaraktlgskl) = (B x H x tinggi kolom x
Rp(harga beton)/m
3
) + ( x x dia
2
x (4N-4) x tinggi kolom x
(berat tulangan)kg/m
3
x Rp(harga tulangan)/kg) + ( x x
diatlgskl
2
x (2 x (B - selimut beton) + 2 x (H selimut beton)) x
(tinggi kolom / jaraktlgskl) x (berat tulangan)kg/m
3
x Rp(harga
tulangan)/kg)
(1-8)
yang memenuhi dengan kendala persamaan :
M intern M extern (1-9)
G intern G extern (1-10)
6
P intern P extern (1-11)
pada persamaan di atas f2 menyatakan harga kolom pada struktur, dengan variabel
desain B dan H menyatakan ukuran penampang beton kolom, dia menyatakan
diameter tulangan ,N merupakan jumlah tulangan yang digunakan, diatlgskl
merupakan diameter tulangan geser kolom, jaraktlgskl menyatakan jarak antara
tulangan geser pada kolom. M adalah momen, G adalah gaya geser, P adalah gaya
aksial pada kolom.
Harga struktur portal seluruhnya dapat dihitung dengan

=

+ =
1 1
2 1
b
nB b
k
nK k
k b
f f f
(1-12)

pada persamaan di atas f merupakan harga portal total, f1
b
menyatakan harga
balok b, f2
k
menyatakan harga kolom k, nB menyatakan jumlah balok, nK
menyatakan jumlah kolom.
Untuk menyelesaikan masalah tersebut akan dibuat program komputer
yang ditulis dalam bahasa pemrograman yang sudah banyak digunakan yaitu
bahasa C++ dan menggunakan data diskrit serta menggunakan metoda optimasi
polihedron fleksibel yang dapat digunakan untuk menangani masalah non-linear.
I.2.2 Batasan Masalah
Dalam melakukan optimasi beton bertulang pada struktur portal ruang ini
perhitungan beton bertulang didasarkan pada peraturan yang berlaku di Indonesia
yaitu Tata Cara Perhitungan Struktur Beton Untuk Bangunan Gedung SK SNI T-
15-1991-03 (PU, 1991), sedangkan untuk melakukan perhitungan gaya pada
struktur digunakan metoda kekakuan (Weaver, 1980). Mengingat luasnya
7
permasalahan dan keterbatasan waktu, maka dalam tugas akhir ini diperlukan
pembatasan masalah, yaitu :
a. Analisa struktur portal ruang memakai metoda kekakuan
b. Rigid-end offset diabaikan
c. Beban yang bekerja pada struktur adalah beban gravitasi menerus
d. Balok dan kolom berpenampang empat empat persegi panjang dan uniform
sepanjang bentangnya
e. Tidak ada gelincir antara beton dengan tulangan baja
f. Perencanaan kolom biaksial menggunakan metoda kontur beban
g. Gaya puntir diabaikan
h. Perencanaan beton bertulang menggunakan analisis ultimit

I.3 Maksud dan Tujuan Penulisan
Penulisan tugas akhir ini dimaksudkan untuk memenuhi syarat yudisium
dalam mencapai tingkat kesarjanaan Strata 1 (S1) pada Program Studi Teknik
Sipil, Fakultas Teknik, Universitas Atma Jaya Yogyakarta.
Selain itu penulisan tugas akhir ini juga bertujuan untuk mengetahui lebih
dalam tentang metoda-metoda optimasi yang sekarang ini mulai dirasakan
manfaatnya dan mulai dikembangkan, terutama metoda yang dapat digunakan
untuk melakukan optimasi biaya portal beton bertulang, yang memiliki
permasalahan yang kompleks.
Hasil dari penulisan tugas akhir ini adalah berupa program komputer yang
ditulis dengan bahasa C++ yang dapat dikompilasi menggunakan Borland C++
8
5.0 atau versi yang lebih tinggi pada sistem operasi Windows 32 bit menjadi
sebuah perangkat lunak.

I.4 Kegunaan Penulisan
Perangkat lunak yang dihasilkan dalam penulisan ini berguna untuk
merencanakan ukuran penampang balok dan kolom beserta penulangannya
dengan memasukkan informasi tentang bentuk geometri portal ruang yang akan
direncanakan.
Selain itu program yang dibuat ini dapat dijadikan dasar pengembangan
perangkat lunak untuk menyelesaikan masalah optimasi sehingga dapat tercipta
sebuah program yang lebih baik lagi, sehingga akan didapatkan hasil yang lebih
optimum lagi.

I.5 Metoda Penulisan
Dalam melakukan penulisan ini banyak langkah-langkah yang diambil
sebelum mendapatkan sebuah perangkat lunak yang siap digunakan untuk
melakukan optimasi.
Tahap pertama, dilakukan studi pustaka mengenai optimasi beton
bertulang pada portal ruang, metoda yang digunakan untuk menganalisis struktur
digunakan metoda kekakuan, beton dianalisis dengan analisis ultimit, sedangkan
kolom biaksial dianalisis menggunakan metoda kontur beban.
Tahap kedua adalah membuat suatu listing program untuk melakukan
analisa struktur menggunakan metoda kekakuan, juga membuat listing program
9
untuk melakukan analisa balok menggunakan analisis ultimit, serta listing
program untuk melakukan analisis kolom biaksial menggunakan metoda kontur
beban.
Tahap ketiga adalah menggabungkan listing program yang telah diuji
validasinya masing-masing sebagai subrutin yang dipanggil oleh sebuah fungsi
utama, dalam fungsi utama itu dilakukan proses optimasi.
Tahap keempat adalah melakukan uji validasi dari perangkat lunak yang
digunakan dengan hasil yang pernah dihitung tanpa menggunakan proses optimasi
atau dengan perangkat lunak lain yang sudah jadi.
Tahap terakhir adalah mencoba perangkat lunak untuk memecahkan kasus-
kasus yang ada untuk melakukan penyusunan laporan tugas akhir secara lengkap.


BAB II
TINJAUAN PUSTAKA

II.1 Struktur Portal Ruang
II.1.1 Tinjauan Umum
Langkah pertama dalam mendesain struktur beton bertulang adalah
memperoleh informasi tentang momen, gaya geser, dan gaya aksial yang akan
ditahan. Hal ini biasanya melibatkan perhitungan numerik yang rumit, oleh karena
itu langkah terbaik adalah memprosesnya dengan program analisa struktur yang
telah dibuat dalam komputer (Hulse dan Mosley, 1986, halaman 17).
Dengan perkembangan komputer yang cukup pesat dan harganya relatif
murah, sekarang telah beredar program-program struktur, baik hasil buatan sendiri
maupun perangkat lunak yang diperdagangkan. Dengan perangkat ini suatu
analisis struktur dapat diselesaikan jauh lebih cepat, dan respon sistem struktur
dapat diperoleh. Saat ini analisis tiga dimensi telah umum digunakan (Wahyudi
dan Rahim, 1997, halaman 17).
Dalam menganalisa struktur rangka (Framed structure) dengan bantuan
komputer dapat digunakan metoda matriks, baik dengan metoda gaya (flexibility)
maupun metoda kekakuan (stiffness). Metoda kekakuan atau lebih dikenal sebagai
metoda perpindahan lebih sesuai untuk diprogram dalam komputer, karena setelah
model analisis struktur ditentukan, pertimbangan teknis yang lebih lanjut tidak
lagi diperlukan, di sini terdapat perbedaan dengan metoda gaya, walaupun kedua
metoda ini sama bentuk matematisnya, pada metoda gaya besaran yang tidak
10


11
diketahui adalah gaya kelebihan (redundant) yang dipilih secara sembarang,
sebaliknya dalam metoda kekakuan, yang tidak diketahui adalah perpindahan titik
kumpul yang tertentu secara otomatis. J adi, jumlah yang tak diketahui dalam
metoda kekakuan sama dengan derajat ketidaktentuan (indeterminacy) kinematis
struktur (Weaver dan Gere, 1980, halaman 1).
Struktur rangka dibagi atas enam kategori : balok, rangka batang bidang,
rangka batang ruang, portal bidang, balok silang (grid) dan portal ruang, setiap
struktur rangka terdiri dari batang-batang yang panjangnya jauh lebih besar
dibandingkan ukuran penampang lintangnya. Titik kumpul struktur rangka adalah
titik pertemuan batang-batang, termasuk tumpuan dan ujung bebas suatu batang.
Tumpuan bisa merupakan jepitan, sendi, atau tumpuan rol, dalam kasus tertentu
sambungan antara batang atau batang dengan tumpuan bisa bersifat elastis (atau
semi-tegar). Beban pada struktur rangka bisa berupa gaya terpusat, beban tersebar,
atau kopel (Weaver dan Gere, 1980, halaman 2).
II.1.2. Metoda Kekakuan
Metoda kekakuan pertama dikembangkan dari superposisi gaya untuk
koordinat perpindahan bebas, kemudian metoda ini diformalisasi dan diperluas
dengan memakai matriks kesepadanan (compatibility) dan konsep kerja maya
(virtual). Pada pendekatan kerja maya, matriks kekakuan titik kumpul (joint
stiffness) yang lengkap dirakit dengan perkalian tiga matriks, walaupun versi
formal tersebut menarik dan beraturan, tetapi membutuhkan matriks kesepadanan
yang besar dan jarang (sparse). Selain itu, elemen matriks ini tidak mudah dinilai
dengan tepat. Baik cara pembentukan matriks di atas ataupun perakitan dengan

12
proses perkalian tidak sesuai untuk diprogram pada komputer. Metodologi yang
baik adalah menarik ide dari kedua pendekatan tersebut dan menambahkan
beberapa teknik yang berorientasi pada komputer, sehingga didapatkan suatu cara
yang disebut metoda kekakuan langsung (direct stiffness method) yang lebih
mudah untuk diprogram pada komputer (Weaver dan Gere, 1980, halaman 148).
Wahyudi dan Rahim (1997, halaman 17) menyebutkan prosedur umum
metoda kekakuan ataupun metoda elemen hingga dapat dibagi menjadi lima
bagian yaitu :
a. Penyusunan vektor beban dan matriks kekakuan elemen.
b. Penyusunan vektor beban dan matriks kekakuan global.
c. Penyelesaian persamaan kekakuan yang menghasilkan perpindahan global.
d. Perhitungan deformasi elemen dengan menggunakan transformasi koordinat.
e. Penentuan tegangan atau gaya-gaya elemen.
Kunci penyederhanaan proses perakitan matriks kekakuan titik S
J
ialah
pemakaian matriks kekakuan batang untuk aksi dan perpindahan di kedua ujung
setiap batang. J ika perpindahan batang didasarkan pada koordinat struktur global,
maka ia akan berimpit dengan perpindahan titik kumpul. Dalam hal ini semua
komplikasi geometris harus ditangani secara setempat, dan transfer informasi
batang ke array struktur bersifat langsung, yaitu matriks kekakuan dan vektor
beban ekivalen dapat dirakit dengan penjumlahan langsung sebagai ganti
perkalian matriks. Dengan demikian, perakitan matriks kekakuan titik untuk m
batang dapat dituliskan sebagai :

=
=
m
1 i
MSi J
S S
(2-1)

13
dalam persamaan ini, simbol S
MSi
menyatakan matriks kekakuan batang ke-i
dengan gaya ujung dan perpindahan (untuk kedua ujung) yang dalam arah sumbu
struktur. Agar dapat dijumlahkan, semua matriks kekakuan batang harus diperluas
ke ukuran yang sama seperti S
J
dengan menambahkan baris dan kolom nol. Akan
tetapi, operasi ini dapat dihindari dalam pembuatan program dengan meletakan
elemen dari S
MSi
ke lokasi yang sesuai pada S
J
. Demikian juga halnya, vektor
beban ekivalen A
E
dapat dibentuk dari kontribusi batang sebagai berikut :

=
=
m
i
MSi E
A A
1
(2-2)

dalam hal ini A
Msi
adalah vektor gaya (aksi) jepit ujung dalam arah sumbu struktur
di kedua ujung batang i. Seperti pada S
Msi
, secara teoritis A
MSi
perlu diperbesar
dengan bilangan nol agar dapat dijumlahkan secara matriks, tetapi langkah ini bisa
dihindari dalam program. Beban titik tumpul ekivalen dalam persamaan (2-2)
kemudian dijumlahkan dengan beban sebenarnya yang diberikan di titik kumpul
untuk membentuk vektor beban total atau gabungan.
Untuk memisahkan suku yang berkaitan dengan perpindahan bebas
struktur dari perpindahan pengekang tumpuan (support restraint), matriks
kekakuan dan beban harus ditata ulang (rearranged) dan disekat (partitioned).
Penataan ulang suku-suku ini dapat dilakukan setelah perakitan selesai. Dalam
program komputer, penataan ulang ini lebih mudah dilakukan bila informasi
ditransfer dari array batang yang kecil ke array struktur yang besar.
Setelah matriks kekakuan dan vektor beban ditata ulang (rearranged) dan
disekat-sekat (partitioned), maka penyelesaian dasar untuk perpindahan pada titik

14
kumpul yang bebas akibat beban adalah :

FC
1
FF F
A . S D

=
(2-3)

dalam persamaan ini A
FC
adalah vektor beban titik kumpul gabungan (sebenarnya
dan ekivalen) yang selaras (correspond) dengan D
F
. walaupun secara simbolis
penyelesaian dalam persamaan (2-3) lebih mudah dituliskan sebagai hasil inversi
matriks kekakuan S
FF
, tetapi perhitungan dalam program komputer
hakekatnya tidak efisien. Sebagai gantinya, matriks koefisien difaktorisasi dan
penyelesaian untuk D
1
FF
S

F
diperoleh dari sapuan (sweep) kemuka dan belakang.
Bagian lain yang hendak dicari adalah reaksi tumpuan dan gaya jepit
ujung. Bila hanya pengaruh beban yang diperhitungkan, persamaan untuk reaksi
adalah :

F RF RC R
D . S A A + =
(2-4)

Selain itu gaya ujung batang dituliskan sebagai :

Mi Mi MLi Mi
D . S A A = +
(2-5)

Banyak variasi dalam mengorganisasi metoda kekakuan bisa dilakukan
untuk pemrograman. Tahapan analisa di atas merupakan pendekatan teratur yang
memiliki beberapa segi menguntungkan bila berhadapan dengan masalah yang
besar dan rumit (Weaver dan Gere, 1980, halaman 151).
Untuk menganalisa struktur portal ruang digunakan matrik kekakuan
batang yang terdapat pada tabel 2-1 dan dijelaskan pada bagian II.1.3.
Tabel 2-1
Matriks Kekakuan Batang Portal Ruang


2
Z
2
Y
2
Y
X
2
Y
3
Y
2
Z
Z
Y
2
Y
X
2
Y
3
Y
2
Z

=
2
Z Z
2
Z
Y
2
Y
X
2
Y
3
Y
3
Z
2
Z
3
Z
X x
2
Z Z
2
Z
Y
2
Y
X
2
Y
3
Y
3
Z
2
Z
3
Z
x X
L
4EI
0 0 0
L
6EI
0
L
2EI
0 0 0
L
6EI
0
0 0 0
L
2EI
0
L
6EI
0 0
0 0 0 0
L
GI
0 0 0
0 0 0
L
6EI
0
L
12EI
0 0
L
12EI
0
L
6EI
0 0 0
L
12EI
0
0
L
EA
0 0 0 0 0
L
EA
L
6EI
0
L
4EI
0 0 0
L
6EI
0
0 0 0
L
4EI
0
L
6EI
0 0
0 0 0 0
L
GI
0 0 0
0 0 0
L
6EI
0
L
12EI
0 0
L
12EI
0
L
6EI
0 0 0
L
12EI
0
0
L
EA
0 0 0 0 0
L
EA
Mi
S
0
L
4EI
0
L
6EI
0 0
L
GI
0
0
L
6EI
0
L
12EI
L
6EI
0 0 0
0 0 0 0
L
2EI
0 0 0
0
L
2EI
0
L
6EI
0 0
L
GI
0
0
L
6EI
0
L
12EI
L
6EI
0 0 0
0 0 0 0

16
II.1.3 Kekakuan Batang Portal Ruang
Untuk membentuk matriks kekakuan titik dengan proses penjumlahan
yang ditunjukan oleh persamaan (2-1), matriks kekakuan batang yang lengkap
dalam sumbu arah struktur perlu diturunkan dahulu. Selain itu, matriks kekakuan
batang S
Mi
untuk sumbu arah batang diperlukan dalam menghitung gaya ujung
batang dengan persamaan (2-5). Kekakuan batang terhadap sumbu batang selalu
dapat diperoleh dan ditransformasi ke sumbu struktur.
Portal ruang merupakan kasus yang paling umum untuk struktur rangka,
batang dapat mengalami sembarang kedua belas perpindahan, dengan demikian,
matriks kekakuan batang (S
Mi
) untuk struktur portal ruang berordo 12 x 12 yang
dapat dilihat dalam tabel 2-1, dan setiap kolom pada matriks menyatakan aksi
akibat salah satu perpindahan satuan.
Matriks kekakuan batang portal ruang diperlihatkan pada tabel 2-1,
matriks ini disekat untuk memisahkan bagian yang berkaitan dengan kedua ujung
batang, secara umum bentuknya adalah :

i
Mkk Mkj
Mjk Mjj
Mi
S S
S S
S

=
(2-6)

pada persamaan di atas subskrip j dan k pada submatriks di atas menunjukan
ujung batang (Weaver dan Gere, 1980, halaman 154).

II.2 Struktur Beton Bertulang
II.2.1 Tinjauan Umum
Beton bertulang telah digunakan sebagai material bangunan di setiap

17
negara. Pada banyak negara seperti Amerika dan Kanada, beton bertulang
merupakan material struktur yang dominan dalam konstruksi bangunan.
Keuntungan dari penggunaan beton bertulang adalah tulangan baja dan bahan
pembentuk beton tersedia di banyak tempat, hanya dibutuhkan kemampuan yang
relatif rendah dalam konstruksi beton, dan dari segi ekonomi beton bertulang lebih
menguntungkan dibandingkan bahan konstruksi lainnya (MacGregor, 1997,
halaman 1).
Pada struktur beton bertulang, balok utama yang langsung ditumpu oleh
kolom dianggap menyatu secara kaku dengan kolom. Sistem kolom dan balok
induk seperti ini dikatakan sebagai sistem portal. Sistem portal telah lama
digunakan sebagai sistem bangunan yang dapat menahan beban vertikal gravitasi
dan lateral akibat gempa. Sistem ini memanfaatkan kekakuan balok-balok utama
dan kolom. Dengan demikian integritas antara balok utama dan kolom harus
mendapat perhatian dan pendetailan tersendiri, karena di sekitar daerah ini timbul
gaya geser dan momen yang besar yang dapat menyebabkan retak atau patahnya
penampang (Wahyudi dan Rahim, 1997, halaman 14).
II.2.2 Balok
Balok adalah anggota struktur yang paling utama mendukung beban luar
serta berat sendirinya oleh momen dan gaya geser (MacGregor, 1997, halaman
85).
Dua hal utama yang dialami oleh suatu balok adalah kondisi tekan dan
tarik, yang antara lain karena adanya pengaruh lentur ataupun gaya lateral.
Padahal dari data percobaan diketahui bahwa kuat tarik beton sangatlah kecil,

18
kira-kira 10%, dibandingkan kekuatan tekannya. Bahkan dalam problema lentur,
kuat tarik ini sering tidak diperhitungkan, sehingga, timbul usaha untuk
memasang baja tulangan pada bagian tarik guna mengatasi kelemahan beton
tersebut, menghasilkan beton bertulang (Wahyudi dan Rahim, 1997, halaman 39).
Apabila penampang tersebut dikehendaki untuk menopang beban yang
lebih besar dari kapasitasnya, sedangkan di lain pihak seringkali pertimbangan
teknis pelaksanaan dan arsitektural membatasi dimensi balok, maka diperlukan
usaha-usaha lain untuk memperbesar kuat momen penampang balok yang sudah
tertentu dimensinya tersebut. Apabila hal demikian yang dihadapi, SK-SNI T-15-
1991-03 pasal 3.3.3 ayat 4 memperbolehkan penambahan tulangan baja tarik lebih
dari batas nilai maksimum bersamaan dengan penambahan tulangan baja di
daerah tekan penampang balok. Hasilnya adalah balok dengan penulangan
rangkap dengan tulangan baja tarik dipasang di daerah tarik dan tulangan tekan di
daerah tekan. Pada keadaan demikian berarti tulangan baja tekan bermanfaat
untuk memperbesar kekuatan balok (Dipohusodo, 1994, halaman 85).
Dalam praktek, sistem tulangan tunggal hampir tidak pernah dimanfaatkan
untuk balok, karena pemasangan batang tulangan tambahan di daerah tekan,
misalnya di tepi atas penampang tengah lapangan, akan mempermudah pengaitan
sengkang (stirrup) (Wahyudi dan Rahim, 1997, halaman 60).
Pada gambar 2-1 tampak suatu penampang dengan tulangan tekan yang
ditempatkan dalam jarak d dari serat tekan terluar dan tulangan tarik dalam jarak
tinggi efektif d. Diagram regangan yang terjadi dilukiskan dalam gambar 2-2,
dengan regangan serat tekan beton dianggap telah mencapai regangan maksimum

19
0,003. Garis netral terletak pada jarak c yang belum diketahui nilainya. Melalui
perbandingan segitiga dalam diagram ini, dapat ditentukan besar regangan
masing-masing tulangan, yaitu :

c
=0,003

s
c
d

dan


pada persamaan di atas a=
1
c











Pertama-tama, kedua tulangan A
S
dan A
S
diasumsikan telah mencapai
tegangan leleh fy maka regangannya adalah :
a
d a
,
c
d c
,
s

=
1
003 0 003 0

(2-7)
a
a
,
c
c d
,
s

=
1
003 0 003 0

(2-8)

b
h
d
d
c
Gambar 2-1 Penampang Tulangan Rangkap
Gambar 2-2 Diagram Regangan

20


dan



Bila kedua kondisi persamaan regangan tersebut terpenuhi, tegangan pada baja
tulangan menjadi fs =fs =fy dengan fs adalah tegangan pada baja tulangan tarik,
fs adalah tegangan pada baja tulangan tekan, dan fy adalah tegangan lelehnya.
Diagram tegangan internalnya dapat dianggap menjadi tiga bagian yaitu :
a. pada daerah tekan beton :

b. Pada daerah tekan baja tulangan

c. Pada daerah tarik baja tulangan

dengan A
S
dan A
S
berturut-turut menyatakan luas baja tulangan tekan dan tarik.
Berdasarkan keseimbangan horisontal gaya internal C
C
+C
S
=T, dihasilkan
persamaan :

dengan tinggi blok tegangan adalah :


S
s
E
fy
a
d a
,

=
1
003 0

(2-9)
S
s
E
fy
a
a
,

=
1
003 0

(2-10)
(2-11)
C
C
= 0,85fcab
C
S
=

A
S
fy (2-12)
T = A
S
fy (2-13)
0,85fcab + A
S
fy = A
S
fy (2-14)
b ' fc ,
) ' A A (
a
S S
85 0
+
=
(2-15)

21
momen tahanan nominal penampang adalah :

(2-16)
M
n
= 0,85fcab(d a/2) + A
S
fy(d-d)

Bila regangan dalam persamaan (2-7) dan (2-8) tidak dipenuhi, mungkin tegangan
tulangan tekan ataupun tulangan tarik tidak mencapai tegangan leleh materialnya,
sehingga dalam hal ini persamaan tersebut tidak berlaku lagi. Untuk dapat
menentukan momen ketahanan penampang, regangan aktual harus dihitung, yang
dapat dilakukan dengan persamaan (2-7). Selanjutnya diperoleh :


= =
a
' d a
E , E ' ' f
S S S S
1
003 0

(2-17a)

melalui subtitusi nilai a dari persamaan (2-15) dan dibagi (bd), persamaan di atas
dapat dirumuskan menjadi :

=
a
' d
' f
S
1
1 600

(2-17b)
dan


= =
a
a d
E , E ' ' f
S S S S
1
003 0

(2-18a)

dengan cara yang sama,

=
a
' d
' f
S
1
1 600

(2-18b)

dengan mensubtitusi persamaan (2-17a) dan (2-18a) ke dalam persamaan (2-14),
diperoleh :

b ' fc ,
' f ' A fy A
a
S S S
85 0

=
(2-19)

Sehingga, momen tahanan penampang menjadi :

22

M
n
= 0,85fcab(d a/2) + A
S
fy(d-d)
(2-20)

Momen disain dapat diperoleh dengan memberikan faktor reduksi tertentu,
yang disarankan dalam SK SNI T-15-1991-03, ke dalam persamaan (2-20)
(Wahyudi dan Rahim, 1997, halaman 61-63).
Standar SK SNI T-15-1991-03 pasal 2.2.3 ayat 2 memberikan faktor
reduksi kekuatan untuk berbagai mekanisme, antara lain sebagai berikut :
a. Lentur tanpa beban aksial =0,80
b. Geser dan puntir =0,60
c. Tarik aksial, tanpa dan dengan lentur (sengkang) =0,65
d. Tekan aksial, tanpa dan dengan lentur (spiral) =0,7
e. Tumpuan pada beton =0,70
Dengan demikian dapat dinyatakan bahwa kuat momen M
R
(kapasitas momen)
sama dengan kuat momen ideal M
n
dikalikan faktor (Dipohusodo, 1994,
halaman 41).
Seperti pada tulangan tunggal, keruntuhan tarik atau tekan dapat pula
terjadi pada penampang tulangan rangkap. Bila hal tersebut terjadi, keruntuhan
tarik dengan pelelehan tulangan lebih disukai daripada keruntuhan tekan dengan
kehancuran beton yang mendadak. Keadaan ini dapat dikendalikan dengan
memberikan batasan tertentu pada tulangan terpasang. SK SNI T-15-1991-03
pasal 3.3.3 menetapkan batasan :

(2-21) ' , maks
b
+ = 75 0


23

b
adalah rasio imbang (balance ratio) baja tulangan yang bersesuaian dengan
penampang tulangan tunggal (Wahyudi dan Rahim, 1997, halaman 64).
Untuk menentukan rasio penulangan keadaan seimbang (
b
) digunakan
persamaan :

fy fy
) ' fc , (
b
+
=
600
600 85 0
1

(2-22)

dengan fc dan fy dalam Mpa,
1
adalah konstanta yang merupakan fungsi dari
kelas kuat beton (Dipohusodo, 1994, halaman 37).
Standar SK SNI T-15-1991-03 menetapkan nilai
1
diambil 0,85 untuk fc
30 Mpa, berkurang 0,008 untuk setiap kenaikan 1 Mpa kuat beton, dan nilai
tersebut tidak boleh kurang dari 0,65 (Dipohusodo, 1994, halaman 31).
II.2.3 Kolom Biaksial
Kolom adalah batang tekan vertikal dari rangka (frame) struktur yang
memikul beban dari balok. Kolom meneruskan beban-beban dari elevasi atas ke
elevasi yang lebih bawah hingga akhirnya sampai ke tanah melalui fondasi.
Karena kolom merupakan komponen tekan, maka keruntuhan pada suatu kolom
merupakan lokasi kritis yang dapat menyebabkan keruntuhan (collapse) lantai
yang bersangkutan, dan juga merupakan batas runtuh total (ultimate total
collapse) seluruh strukturnya. Oleh karena itu dalam merencanakan kolom perlu
lebih teliti, yaitu dengan memberikan kekuatan cadangan yang lebih tinggi
daripada yang dilakukan pda balok dan elemen struktur horisontal lainnya,
terlebih lagi keruntuhan tekan tidak memberikan peringatan awal yang cukup jelas
(Nawy, 1990).

24
SK SNI T-15-1991-03 (PU 1991) memberikan definisi, kolom adalah
komponen struktur bangunan yang tugas utamanya menyangga beban tekan aksial
dengan bagian tinggi yang tidak ditopang paling tidak tiga kali dimensi lateral
terkecil. Sedangkan komponen struktur yang menahan beban aksial vertikal
dengan rasio bagian tinggi dengan dimensi terkecil kurang dari tiga disebut
pedestal (Dipohusodo, 1994, halaman 287).
Bila eksentrisitas beban mempunyai harga kecil sehingga gaya aksial tekan
menjadi penentu, dan juga bila dikehendaki suatu kolom beton dengan penampang
lintang yang lebih kecil, maka umumnya distribusi tulangan lebih baik dibuat
merata di sekeliling sisi penampang tersebut. Untuk distribusi tulangan semacam
ini, baja tulangan yang terletak di bagian tengah penampang akan menerima
tegangan yang lebih kecil dibandingkan tulangan lainnya. Ketika kapasitas ultimit
kolom tersebut telah tercapai, tegangan pada baja tulangan belum tentu mencapai
tegangan lelehnya, sedangkan baja tulangan yang berada di tepi kemungkinan
besar sudah leleh (Wahyudi dan Rahim, 1997, halaman 215).
Menurut Winter dan Nilson pada tahun 1994, mekanisme gaya aksial yang
bekerja bersamaan dengan lentur pada kedua arah dari sumbu utama penampang
terjadi pada kolom-kolom sudut bangunan, pada balok-balok yang membentuk
rangka dengan kolom dan menyalurkan momen-momen ujungnya ke kolom dalam
dua bidang yang tegak lurus. Keadaan yang sama juga dapat terjadi pada kolom-
kolom sebelah dalam, khususnya pada tata letak kolom yang tidak teratur.
Kolom-kolom seperti pada sudut bangunan pada struktur rangka memikul
gaya aksial dan sekaligus momen dari dua sumbu aksis yang disebut kolom

25
biaksial. Untuk menyelesaikan masalah kolom biaksial pada kolom persegi, dapat
digunakan prosedur yang umum dipakai yaitu eksentrisitas biaksial, e
x
dan e
y
,
digantikan dengan eksentrisitas uniaksial ekivalen e
0x
atau e
0y
, dan kolom didesain
sebagai kolom uniaksial (MacGregor, 1997, halaman 466).
Apabila eksentrisitas pada arah x (e
x
) dibagi dengan sisi pada arah x lebih
besar daripada eksentrisitas pada arah y (e
y
) dibagi sisi pada arah y maka momen
desain efektif dapat dihitung dengan :

y x ox
M
b
h
M M + =
(2-23)

Dengan cara yang sama apabila eksentrisitas pada arah y dibagi dengan sisi pada
arah y lebih besar daripada eksentrisitas arah x dibagi sisi arah x, maka momen
desain efektifnya adalah :

x y oy
M
h
b
M M + =
(2-24)

Dengan M
x
adalah momen yang terjadi pada arah x dan M
y
adalah momen pada
arah y, b adalah sisi effektif pada arah y, h adalah sisi effektif pada arah x,
sedangkan adalah koefisien biaksial yang dapat dihitung persamaan :

+ =
' bhfc
P
,
,
,
.
u
6 0
6 0
7 0
3 0
(2-25)

Dengan tidak boleh lebih kecil daripada 0,3, P
U
adalah gaya aksial (Hulse dan
Mosley, 1986, halaman 163).


26
II.3 Metoda Optimasi Struktur
II.3.1 Tinjauan Umum
Penggunaan metoda optimasi dalam perencanaan struktur sebenarnya
bukanlah merupakan hal yang baru dan sudah banyak dikembangkan karena
manfaatnya yang banyak dirasakan. Pada tahun 1890 Maxwell mengemukakan
beberapa teori tentang desain yang rasional pada suatu struktur yang kemudian
dikembangkan lebih lanjut oleh Michell pada tahun 1904 (Wu, 1986, halaman 1).
Beberapa penelitian tentang optimasi struktur yang ditujukan untuk penggunaan
praktis telah dilakukan sekitar tahun 1940 dan 1950. Pada tahun 1960 Schmit
mendemonstrasikan penggunaan teknik pemrograman non-linier untuk desain
struktur dan menyebutnya dengan istilah sintesa struktur (Wu, 1986, halaman
1). Komputer digital yang kemudian dibuat dan mampu untuk memecahkan
masalah numeris dalam skala besar telah memberikan momentum yang besar
untuk penelitian. Pada awal tahun 1970 optimasi struktur telah menjadi sesuatu
yang penting dalam berbagai aspek perancangan suatu struktur (Wu, 1986,
halaman 1).
Ada dua pendekatan utama dalam optimasi struktur. Pendekatan yang satu
menggunakan pemrograman matematika dan pendekatan yang lain menggunakan
metoda kriteria optimal. Kedua pendekatan ini masing-masing mempunyai
kelebihan dan kekurangan.
Setiap struktur rangka memiliki empat hal pokok dengan empat hal ini
dapat merupakan suatu variabel yang dapat diubah-ubah untuk mengoptimasi
struktur tersebut (variabel desain). Empat hal ini adalah ukuran elemen, geometri

27
struktur (posisi titik-titik kumpul), gambaran struktur (bagaimana titik-titik
kumpul tersebut dihubungkan oleh elemen-elemen), dan material bangunan.
Material bangunan biasanya ditentukan terlebih dahulu. Persyaratan-persyaratan
yang harus dipenuhi oleh struktur disebut kendala. Dalam sebagian besar kasus,
kendala berhubungan dengan kekuatan dan defleksi struktur.
Dalam banyak kasus optimasi struktur yang telah dipecahkan sejauh ini,
variabel desain diasumsikan dapat berubah secara kontinyu. Akan tetapi dalam
desain yang sesungguhnya kadang-kadang dijumpai variabel desain diskrit yang
terbatas. Balok baja dan balok beton bertulang hanya ada dalam ukuran standar.
Untuk mengatasi masalah diskrit ini, beberapa usaha telah dilakukan untuk
memecahkan kasus-kasus tertentu, antara lain menggunakan pendekatan branch-
and-bound (Wu, 1986, halaman 4).
Keberhasilan optimasi struktur sejauh ini masih terbatas. Pada satu sisi,
optimasi telah berhasil digunakan dalam perancangan berbagai jenis struktur
seperti overhead cranes, bangunan-bangunan standard, menara transmisi, girder
dengan bentang pendek dan medium, dan bermacam-macam kendaraan termasuk
pesawat terbang, mobil, dan kapal. Pada sisi lain, teknik-teknik optimasi masih
kurang dapat diterapkan jika struktur sangat besar atau jika kendala-kendalanya
terlalu kompleks, belum lagi jika ada pertimbangan-pertimbangan lain seperti
standar produksi, pengaruh estetika struktur, dan praktek-praktek konvensional
dalam industri (Wu, 1986, halaman 5).
Kesulitan utama dari penggunaan praktis optimasi struktur adalah lamanya
proses komputasi sehingga biaya perhitungan menjadi relatif tinggi. Akan tetapi

28
belakangan ini biaya perhitungan telah turun secara drastis karena komputer
pribadi mekin cepat dan makin murah harganya. Dengan demikian optimasi
struktur yang sangat tergantung pada komputer akan semakin luas aplikasinya.
Formulasi masalah untuk optimasi struktur dengan variabel desain yang
dapat berubah secara kontinyu dan menggunakan analisa struktur elastik adalah
program non-linier. Pendekatan untuk pemecahannya menggunakan program
linier sekuensial dan program non-linier (Wu, 1986, halaman 6).
Pendekatan linier sekuensialnya adalah melinierkan fungsi kendala non-
linier dan fungsi sasaran kemudian menyelesaikan masalah menggunakan
program linier berulang-ulang. Romstad dan Wang pada tahun 1967 dan 1968
memberikan penjelasan fisik tentang formulasi ini yaitu : yang tidak diketahui
adalah penambahan variabel desain dari suatu titik dalam daerah layak yang
diperoleh dari iterasi sebelumnya, dan kendala dari pendekatan linier ini adalah
perpindahan ijin dari titik kumpul dan gaya-gaya yang terjadi pada elemen tidak
boleh melebihi yang diijinkan. Pendekatan non-liniernya adalah menyelesaikan
masalah optimasi dengan menggunakan program non-linier secara langsung. Akan
tetapi persamaan analisa elastik menunjukkan masalah yang besar sebab tidak ada
algoritma pada program non-linier yang dapat menangani kendala persamaan
secara efisien. Teknik yang biasa digunakan untuk menangani masalah ini adalah
menggunakan matriks untuk analisa struktur dalam algoritmanya (Wu, 1986,
halaman 7).
Formulasi masalah untuk optimasi struktur dengan variabel desain yang
dapat berubah secara kontinyu dan menggunakan analisa struktur plastis (analisa

29
batas) adalah program linier (Wu, 1986, halaman 8). Masalah ini dapat
dipecahkan dengan mudah bahkan untuk struktur yang besar. Akan tetapi analisa
batas belum dipakai secara luas dalam desain struktur. Di samping itu banyak
kendala lain seperti defleksi tidak dapat dipenuhi jika perancangan didasarkan
pada analisa batas.
Optimasi struktur dengan sebagian atau seluruh variabel desain merupakan
nilai diskrit yang terbatas dan menggunakan analisa struktur elastis memberikan
formulasi masalahnya berupa masalah non-linier diskrit. Beberapa pendekatan
untuk memecahkan maslah ini telah diusulkan termasuk program integer
sekuensial, algoritma penelusuran arah variabel diskrit, dan lain-lain (Wu, 1986,
halaman 8).
Program integer sekuensial adalah ekstrapolasi dari program linier
sekuensial ke program diskrit. Dalam setiap iterasi, program linier integer
digunakan untuk menjamin penelusuran hanya berkisar dari satu titik diskrit ke
yang lain. Toakley pada tahun 1968 menemukan bahwa pendekatan ini tidak
efisien dan hasilnya tidak bisa diramalkan. Reinschmidt pada tahun 1971 juga
mempunyai kesimpulan yang sama meskipun dia telah menunjukkan beberapa
contoh kasus numerik yang dipecahkan dengan cara ini, termasuk desain elastis
rangka batang yang terdiri atas 9 elemen. Saglam pada tahun 1976 menggunakan
pendekatan yang mirip dan telah memecahkan beberapa contoh rangka batang.
Algoritma penelusuran arah variabel diskrit dikemukakan oleh Lai dan
Achenbach (1973, halaman 119-131). Struktur portal, kantilever, dan pelat lantai
dua lapis dengan kendala dinamis telah dioptimasi dengan metoda ini.

30
Optimasi struktur dengan sebagian atau seluruh variabel desain merupakan
harga diskrit yang terbatas dan menggunakan analisa struktur plastis, formulasi
masalahnya adalah program integer atau program integer campuran. Toakley
(1968, halaman 1219) merumuskan masalah desain plastis dengan variabel diskrit
sebagai program integer dan telah dipecahkan. Fu dan You pada tahun 1976
menggunakan metoda complex, tetapi mereka menemukan metoda ini konvergen
prematur, kadang-kadang jauh dari nilai optimum. Levey dan Fu (1979, halaman
363-368) menggunakan metoda complex-simplex. Lev (1977, halaman 365-371)
mengusulkan algoritma branch-and-bound untuk memecahkan masalah diskrit
dengan kendala linier. Algoritma ini mengatasi keterbatasan dari beberapa
algoritma program integer yang lain.
Selama perkembangan optimasi struktur, para ilmuwan secara bertahap
mengembangkan banyak cara yang lain untuk merumuskan dan memecahkan
berbagai masalah sehingga banyak algoritma-algoritma yang diusulkan.
Sementara situasi ini dikenal secara umum sebagai sesuatu yang tidak dapat
dihindari dan harus dialami selama tahap awal perkembangan bidang teknologi,
ada juga saran untuk optimasi struktur dengan pendekatan yang disatukan dan
sistematis.
Dalam pendekatan sistematis yang digambarkan oleh Morris dan kawan-
kawan pada tahun 1982, algoritma dibagi dalam tiga bagian, tiap bagian
mempunyai fungsi yang terdefinisi secara baik, dan program komputer untuk tiap
bagian dapat dikembangkan dan diuji secara terpisah. Pendekatan ini
memperbolehkan penggunaan program secara berdiri sendiri yang kemudian

31
dapat dikumpulkan dengan cepat untuk persoalan desain yang spesifik.
Pendekatan ini dapat juga digunakan sebagai bahan perbandingan untuk
perkembangan langkah-langkah optimasi yang baru. Di samping itu, pendekatan
sistematik ini dapat dengan mudah diterapkan pada masalah yang lebih kompleks
di bidang teknik yang lain (Wu, 1986, halaman 10).
Menurut Kirsch pada tahun 1981 biasanya dalam suatu perencanaan terdiri
atas empat langkah yaitu :
1. Perumusan syarat-syarat fungsional, yaitu mencari dan merumuskan syarat-
syarat fungsional yang dalam beberapa kasus tidak terlihat secara nyata.
2. Perencanaan dasar, misalnya pemilihan topologi, tipe struktur dan material.
3. Proses optimasi, yaitu untuk memperoleh kemungkinan perencanaan terbaik
dengan kriteria, pertimbangan dan batas-batas yang ada.
4. Pendetailan, setelah seluruh penyajian optimasi, hasil yang didapat harus
diperiksa dan dimodifikasi jika perlu.
Berdasarkan berbagai kemajuan ilmu dan teknologi, perancangan struktur
bangunan harus direncanakan secara optimal yaitu struktur yang paling ekonomis
serta memenuhi segala persyaratan yang diinginkan. Oleh karena itu perlu
dikembangkan suatu sistem yang mampu menangani berbagai masalah optimasi.
Secara Umum masalah optimasi ada empat jenis, yaitu :
1. Optimasi bentuk.
2. Optimasi topologi.
3. Optimasi geometri.
4. Optimasi ukuran penampang.

32
Dalam metoda optimasi terdapat tiga besaran utama, yaitu:
1. Variabel desain.
Besaran yang tidak berubah nilainya disebut parameter tetap, sedangkan yang
nilai berubah selama proses optimasi disebut variabel desain. Variabel desain
merupakan variabel yang dicari dalam masalah optimasi. Contohnya adalah
ukuran komponen struktur dan geometri struktur. Data variabel desain ada dua
macam, yaitu data diskrit dan data kontinu. Dalam beberapa kasus, khususnya
optimasi bentuk dan geometri, variabel desain lebih sesuai dinyatakan sebagai
variabel desain kontinu dibandingkan variabel diskrit.
2. Fungsi kendala.
Fungsi kendala merupakan suatu fungsi yang memberikan batasan daerah
layak dan daerah tak layak. Dalam bidang teknik terdapat dua macam kendala
yaitu :
a Kendala rencana, yaitu kendala yang menentukan variabel desain selain
yang memberikan batasan berdasarkan sifat. Kendala ini biasanya dapat
dilihat secara nyata, misalnya batasan karena masalah fungsional, fabrikasi
atau keindahan. Contoh kendala rencana adalah ketebalan plat, kemiringan
atap.
b Kendala sifat, yaitu kendala yang didapat dari persyaratan sifat. Biasanya
kendala ini tidak dapat terlihat secara nyata karena berhubungan dengan
analisis struktur. Contoh kendala sifat adalah batas tegangan maksimum,
perpindahan (displacements) yang diijinkan, kekuatan tekuk.
3. Fungsi sasaran

33
Fungsi sasaran adalah suatu fungsi yang mengandung kriteria dari struktur
yang diinginkan, misalnya struktur dengan berat paling ringan, dengan harga
termurah, paling aman atau paling efisien. Pemilihan fungsi sasaran
merupakan hal yang terpenting dalam proses optimasi agar dapat mencapai
sasaran yang sebenarnya sedekat mungkin. Dalam beberapa situasi fungsi
sasaran dapat terlihat jelas. Misalnya jika ingin mencari harga yang termurah
maka fungsi sasarannya dapat diasumsikan ke dalam berat strukturnya.
Namun terkadang sulit juga untuk menentukan harga yang sebenarnya dari
sebuah konstruksi, misalnya struktur dengan berat paling ringan belum tentu
yang termurah, karena biasanya masalah harga minimum akan termasuk juga
harga bahan, fabrikasi, transportasi dan lain-lain. Masalah dalam optimasi
dapat dibedakan menjadi dua, yaitu :
a Masalah optimasi linier merupakan dasar dari metoda optimasi secara
matematis. Dalam masalah ini fungsi kendala dan fungsi sasarannya
semuanya dinyatakan dalam fungsi linier. Fungsi kendala dapat berupa
persamaan maupun pertidaksamaan, dan fungsi sasarannya berupa
meminimumkan dan memaksimumkan.
b Masalah optimasi tak linier, yaitu bila fungsi kendala dan fungsi
sasarannya tak linier.
Masalah optimasi dalam bidang teknik, pada umumnya berupa masalah
optimasi tak linier. Masalah yang tak linier ini juga dapat dilinierkan, tetapi
memberikan hasil yang kurang akurat ditinjau dari segi teknik. Oleh karena itu

34
terpaksa diselesaikan memakai program tak linier yang lebih sulit dipelajari
dibandingkan program linier, karena memerlukan matematika yang kompleks.
Penyelesaian masalah optimasi dapat dipakai dua cara yaitu :
1. Metoda analisa
Metoda ini menggunakan dasar teori matematika yang dibuat oleh Maxwell
pada tahun 1890 dan Michell tahun pada 1904 dan memberikan hasil eksak
namun hanya dapat digunakan untuk masalah optimasi yang sederhana saja
karena pada beberapa masalah yang lebih kompleks pengolahan
matematikanya sangat tidak sederhana (Wibowo, 1996, halaman 2).
2. Metoda numerik
Metoda optimasi numerik berkembang sejak ditemukannya komputer sebagai
alat bantu hitung. Dynamic programming, integer programming, stepest
descent, sequential unconstraint minimization technique, gradient projection,
dan penalty function merupakan metoda optimasi numerik yang sering dipakai
untuk menyelesaikan masalah optimasi di bidang sipil (Wibowo, 1996,
halaman 3). Dalam metoda ini nilai yang akan dicari didekati dengan cara
iterasi dan proses iterasi dihentikan apabila nilai yang dicari sudah cukup
dekat dengan titik optimal yang sesungguhnya (Kirsch, 1981, halaman 5).
Metoda-metoda tersebut di atas mempunyai kelemahan, yaitu mempunyai
peluang relatif besar untuk konvergen ke titik optimum lokal, bila dipakai untuk
menyelesaikan masalah optimasi dengan jumlah titik optimum lebih dari satu. Hal
ini dapat dimaklumi, karena penurunan perumusannya berdasarkan asumsi fungsi
konveks. Selain itu juga memerlukan analisis struktur yang banyak, keharusan

35
mengikutsertakan semua kendala dalam model matematikanya dan modifikasi
variabel yang kurang efisien (Wibowo, 1996, halaman 3).
II.3.2 Metoda Optimasi Polihedron Fleksibel
Metoda polihedron fleksibel merupakan metoda pengembangan dari
metoda simplex, yang dikembangkan oleh Nelder-Mead (Haftka, 1991, halaman
64), dasar pemikiran metoda simplex adalah menurunkan nilai fungsi sasaran
secara kontinu dimulai dari suatu nilai fungsi awal sampai mencapai nilai fungsi
minimum terpenuhi (Haftka, 1991, halaman 64).

Metoda ini bermanfaat untuk mencari harga-harga extrem suatu fungsi
dengan banyak variabel, dengan turunan dari fungsi tersebut sulit untuk dicari.
Metoda polihedron fleksibel menggunakan pencerminan (reflection), ekspansi
(expansion) dan penyusutan (contraction) dalam melakukan penelusuran.
Polihedron Fleksibel menggunakan banyak titik coba, dengan jumlah titik
coba N
titik
minimum sama dengan jumlah variabel desain JVD ditambah satu. N
titik
=JVD +1 dipakai oleh Harb dan Mattews pada tahun 1987. Box mengusulkan
N
titik
=2 * JVD, sedangkan N
titik
=JVD +2 diusulkan oleh Biles pada tahun 1983.
J umlah titik coba makin banyak dimaksudkan untuk mengurangi terjadinya
konvergen prematur, tetapi memperlambat konvergensi.
Masalah meminimumkan fungsi sasaran f = f(x,y), dengan dua variabel
desain x dan y, dan memakai jumlah titik coba N
titik
=JVD +1 =3, prosedurnya
adalah sebagai berikut :
1. Tentukan atau acak tiga buah titik di dalam ruang variabel disain, kemudian
hitung nilai fitnessnya. Titik terbaik disebut titik B (best) dengan koordinat

36
(X
B
,Y
B
), titik terjelek disebut titik W (worst) dengan koordinat (X
W
,Y
W
),
sedang titik lainnya disebut titik G (good) dengan koordinat (X
G
,Y
G
)
2. Hitung titik pusat M dengan koordinat (X
M
,Y
M
) yang didapat dengan merata
rata titik coba selain titik W, sehingga :
X
M
=0.5*(X
B
+X
G
) (2-26)
Y
M
=0.5*(Y
B
+Y
G
) (2-27)
3. Tentukan arah penelusuran, yaitu garis yang menghubungkan titik W dan titik
M dan dinyatakan sebagai :
X
S
=X
N
- X
W
(2-28)
Y
S
=Y
N
- Y
W
(2-29)
4. Cari titik coba baru dalam arah S (search) yang memberikan nilai fitness lebih
baik daripada fitness dititik W, titik coba ini tidak boleh identik dengan titik
M. Titik coba baru T (try) dengan koordinat X
T
,Y
T
adalah :
X
T
=X
W
+.X
S
(2-30)
Y
T
=Y
W
+.Y
S
(2-31)
adalah koefisien refleksi. Kalau tidak ditemukan titik coba baru yang lebih
baik dari titik W maka dilakukan penyusutan menuju B, besarnya penyusutan
sama dengan setengah jaraknya terhadap titik b, sehingga titik B baru adalah :
X
W baru
=0.5 * (X
W
+X
B
) (2-32)
Y
W baru
=0.5 * (Y
W
+Y
B
) (2-33)
dan titik G baru adalah
X
G baru
=0.5 * (X
W
+X
G
) (2-34)
Y
G baru
=0.5 * (Y
w
+Y
G
) (2-35)

37
Kemudian diperiksa apakah sudah konvergen atau belum, kalau sudah maka
berhenti kalau belum ulangi ke langkah dua lagi.
Pemeriksaan konvergensi dapat menggunakan persamaan-persamaan yang ada
di bawah ini :
|X
B
X
G
| (2-36a)
|X
B
X
W
| (2-36b)
|X
W
X
G
| (2-36c)
|Y
B
Y
G
| (2-36d)
|Y
B
Y
W
| (2-36e)
|Y
W
Y
G
| (2-36f)
dengan adalah suatu nilai konvergensi dan diambil sekecil mungkin,
misalnya 0.0003.
Secara umum metoda ini membuat sebuah segi banyak dalam ruang
variabelnya yang terus diiterasi sehingga segi banyak itu makin lama makin
mengecil, dan akan didapatkan hasil yang optimum begitu segi banyak itu
menjadi sangat kecil sekali, yang ditentukan nilainya sebagai suatu nilai
konvergensi.

BAB III
OPTIMASI BETON BERTULANG PADA STRUKTUR PORTAL RUANG

III.1 Struktur Program
Program optimasi beton bertulang pada struktur portal ruang ini ditulis
dengan menggunakan bahasa pemrograman C++. Kode Program ini ditulis pada
beberapa file yaitu file utama yang berekstensi cpp, dan file pembantu berekstensi
hpp. Di dalam file yang berekstensi cpp terdapat suatu fungsi bernama main( ),
fungsi ini akan dijalankan pertama kali oleh program, selanjutnya dari dalam
fungsi ini akan dipanggil fungsi-fungsi lainnya sehingga membentuk suatu
program yang utuh.
Struktur program optimasi beton bertulang pada struktur portal ruang ini
merupakan gabungan dari pemrograman terstruktur dan pemrograman berorientasi
obyek.
Pemrograman terstruktur memiliki kelebihan dalam pengorganisasian
dalam membuat kode-kode program sehingga mudah dibaca dan mudah untuk
dipahami, gagasan pemrograman terstruktur pertama kali dikemukakan oleh
Profesor Edsger W. Dijkstra dari University of Eindhoven Nederland pada tahun
1965 (Sutedjo dan Michael, 1997, halaman 1). Dalam tulisannya, beliau
menyatakan bahwa pernyataan GOTO seharusnya jangan dipergunakan, namun
pernyataan ini ditanggapi oleh HD. Mills yang beranggapan bahwa pemrograman
terstruktur tidak hanya dihubungkan dengan pernyataan GOTO saja, tetapi pada
38

39
struktur program itu sendiri yang menentukan apakah program tersebut terstruktur
atau tidak, baik menggunakan pernyataan GOTO maupun tidak.
Pemrograman berorientasi obyek diciptakan karena masih dirasakan
adanya keterbatasan pada bahasa pemrograman tradisional, konsep pemrograman
berorientasi obyek yaitu membagi masalah-masalah ke dalam obyek, sehingga
data dan fungsi-fungsi yang akan dioperasikan digabung menjadi satu kesatuan
disebut pengkapsulan (encapsulated).
Dalam bidang ilmu teknik, pemrograman terstruktur lebih banyak
digunakan karena rumitnya masalah yang dikerjakan dan memerlukan kemudahan
pemeriksaan (debuging), dalam program ini struktur program utama
menggunakan konsep pemrograman terstruktur, sedangkan konsep pemrograman
berorientasi obyek digunakan pada analisis balok dan analisis kolom. Kelas balok
dan kelas kolom akan dibangkitkan apabila diperlukan analisa balok atau analisa
kolom dan apabila tidak diperlukan lagi kelas-kelas itu dihancurkan, sehingga
pengunaan kelas ini dapat menghemat memori komputer.
File yang terdapat pada program optimasi beton bertulang pada struktur
portal ruang adalah:
a. ORCHISF.CPP merupakan file yang memuat fungsi main( ).
b. BORLANDC.HPP file yang memuat header pustaka yang dibuat oleh
Borland.
c. HEADER.HPP berisi kumpulan header.
d. PROTO.HPP berisi prototipe program.
e. VARIABEL.HPP berisi deklarasi variabel global.

40
f. INOUT.HPP berisi kumpulan sub program penanganan masalah masukan dan
keluaran.
g. STRUKTUR.HPP berisi kumpulan sub program analisa struktur dengan
metoda kekakuan.
h. SOLVER.HPP berisi sub program pembantu penanganan matrik.
i. KOLOM.HPP berisi kelas kolom untuk analsia kolom biaksial bertulangan
simetri.
j. BALOK.HPP berisi kelas balok untuk analisa balok persegi bertulangan
rangkap.
k. ELEMEN.HPP berisi kumpulan sub program yang menangani elemen pada
balok dan kolom.
l. POLYHEDRON.HPP berisi sub program untuk optimasi dengan
menggunakan metoda polihedron fleksibel.
m. PENORMALAN.HPP berisi kumpulan sub program yang menangani
perubahan variabel balok dan kolom menjadi variabel normal.
n. PENGACAKAN.HPP berisi sub program yang mengacak nilai variabel.
o. DISKRITISASI.HPP berisi kumpulan sub program yang merubah nilai
continue menjadi diskrit.
p. KENDALA.HPP berisi sub program untuk menghitung besarnya kendala
yang terjadi pada struktur.
q. TELUSUR.HPP berisi sub program untuk melakukan penelusuran variabel.
r. BARU.HPP berisi sub program untuk menentukan struktur baru dalam metoda
optimasi.

41
s. PENGURUTAN.HPP berisi sub program untuk mengurutkan fitness struktur.
t. TAMPILAN.HPP berisi sub program yang menangani masalah tampilan.
u. CETAK.HPP berisi sub program yang menangani masalah pencetakan hasil
akhir.

III.2 Sub Program Masukkan dan Keluaran
III.2.1 Sub Program Untuk Menampilkan Menu Utama
Pada saat program dijalankan pertama kali akan muncul sebuah menu
yang berisi pilihan untuk menjalankan program, menu utama program optimasi
beton bertulang pada struktur portal ruang seperti diperlihatkan pada gambar 3-1.

*************************************************************************
Pr ogr amOpt i masi Bet on Ber t ul ang Pada St r ukt ur Por t al Ruang
Ol eh : Yohan Naf t al i
7712/ TS
*************************************************************************
Ti me : 23: 09: 48. 10
1. I nput dat a awal ke f i l e
2. I nput dat a beban ke f i l e
3. Mel i hat i si f i l e i nput
4. Mengopt i masi St r ukt ur
5. Kel uar
Pi l i han ( 1- 5) = _





Gambar 3-1 Menu Utama Program
Pilihan yang terdapat pada menu utama terdiri dari :
1. Input data awal ke file, untuk memasukkan data tentang informasi struktur.
2. Input data beban ke file, untuk memasukkan data beban yang bekerja pada
struktur.
3. Melihat isi file input, untuk menampilkan data yang telah dimasukkan.
4. Mengoptimasi struktur, untuk memulai proses optimasi beton bertulang pada
struktur portal ruang.

42
5. Keluar, untuk menghentikan program.
Fungsi-fungsi yang digunakan untuk menampilkan menu utama yang terdapat
pada file TAMPILAN.HPP terdiri dari :
1. void menu_utama ( ), fungsi ini dipanggil dari fungsi void main ( ),
selanjutnya dari fungsi ini dipanggil fungsi-fungsi lainnya.
2. void about ( ), fungsi ini dipanggil untuk menampilkan informasi program
pada layar.
III.2.2 Sub Program Memasukkan Data
Untuk melakukan proses pemasukkan data (input), dapat dilakukan
dengan dua cara yaitu :
1. Mengikuti panduan yang disediakan oleh program.
2. Mengedit teks ASCII dengan bantuan MS-DOS Editor atau Notepad.
Memasukkan data melalui panduan program, maka pertama kali akan
diminta nama file generik (tanpa ekstensi), nama file ini digunakan program untuk
memberi nama file-file bentukan lainnya. Selanjutnya program meminta data-data
struktur, mengedit teks ASCII dengan bantuan ASCII editor lebih mudah
digunakan untuk mengedit data masukkan yang telah ada.
Sebelum memulai pemasukkan data ke komputer, maka data-data struktur
harus kita persiapkan terlebih dahulu supaya mempermudah proses pemasukkan
data, data-data struktur yang perlu kita persiapkan adalah :
1. Nama struktur
2. J umlah batang pada struktur
3. J umlah titik kumpul

43
4. J umlah pengekang tumpuan pada struktur
5. J umlah titik kumpul yang dikekang
6. Koordinat titik kumpul
7. Alokasi elemen batang pada struktur
8. Pengekang titik kumpul
9. Kuat desak beton karakteristik
10. Kuat tarik tulangan utama
11. Kuat tarik tulangan sengkang
12. Beban yang mengenai struktur
13. Data lebar dan tinggi balok
14. Data sisi penampang kolom
15. Data diameter tulangan utama
16. Data diameter tulangan sengkang
17. Data jumlah tulangan
18. Data jarak antara tulangan sengkang
Setelah data kita masukkan ke dalam komputer, selanjutnya diperiksa lagi
data yang telah kita masukkan untuk memastikan bahwa data yang telah
dimasukkan sudah benar, Apabila ada kesalahan, maka data masukkan dapat
dikoreksi dengan mengedit file masukkan.
Struktur file masukkan pada program optimasi beton bertulang pada
struktur rangka ini adalah :
1. Data umum struktur terdapat pada file generik.inp
2. Data beban yang bekerja pada struktur terdapat pada file generik.bbn

44
3. Data diskrit mengenai ukuran penampang batang terdapat pada file generik.isd
4. Data diskrit mengenai diameter tulangan utama terdapat pada file generik.idl
5. Data diskrit mengenai diameter tulangan sengkang terdapat pada file
generik.ids
6. Data diskrit mengenai jumlah tulangan utama pada salah satu penampang
terdapat pada file generik.ijl
7. Data diskrit mengenai jarak antara tulangan sengkang terdapat pada file
generik.ijs
Fungsi-fungsi yang digunakan dalam proses masukkan adalah :
1. void input_data ( ), terdapat pada file INOUT.HPP, untuk menampilkan menu
masukkan
2. void input_data_umum ( ), terdapat pada file INOUT.HPP, untuk
memasukkan data umum struktur ke file
3. void input_data_diskrit ( ), terdapat pada file INOUT.HPP, untuk
memasukkan data elemen batang
4. void load_data ( ), terdapat pada file PEMBEBANAN.HPP, untuk
memasukkan data beban yang bekerja pada struktur
III.2.3 Sub Program Untuk Membaca Data Masukkan
Setelah data masukkan diproses oleh komputer, dan diletakkan ke dalam
file-file masukkan, maka untuk dapat dilakukan proses optimasi maka data
masukkan tersebut perlu dibaca ulang, fungsi-fungsi yang digunakan untuk
melakukan proses ini adalah :
1. void baca_data ( ), terdapat pada file INOUT.HPP, untuk membaca data

45
masukkan
2. void baca_beban ( ), terdapat pada file PEMBEBANAN.HPP, untuk membaca
data pembebanan.

III.3 Sub Program Inti
III.3.1 Sub Program Analisa Struktur
Untuk menganalisa struktur portal ruang digunakan metoda kekakuan
yang dikembangkan oleh Weaver dan Gere (1980). Secara umum proses dalam
analisa struktur adalah sebagai berikut :
1. Pembentukan matrik rotasi
2. Pembentukan matrik kekakuan batang
3. Pembentukan vektor beban
4. Perhitungan perpindahan pada titik kumpul
5. Perhitungan gaya dan reaksi pada struktur
Sub program analisa struktur terdapat pada file STRUKTUR.HPP,
PEMBEBANAN.HPP, dan SOLVER.HPP. File STRUKTUR.HPP berisi fungsi-
fungsi untuk membentuk matrik rotasi, pembentukan matrik kekakuan batang,
perhitungan perpindahan, dan perhitungan gaya dan reaksi pada struktur. Fungsi
untuk membentuk vektor beban terdapat pada file PEMBEBANAN.HPP,
sedangkan file SOLVER.HPP terdapat fungsi void banfac ( ), yang digunakan
untuk melakukan faktorisasi matrik simetris berjalur dengan pendekatan Choleski
yang dimodifikasi, dan terdapat pula fungsi void bansol ( ), yang digunakan
untuk mengolah matrik berjalur.

46
III.3.2 Sub Program Analisa Balok Persegi Panjang
Sub program analisa balok persegi panjang terdapat pada file
BALOK.HPP. Dalam file BALOK.HPP terdapat sebuah kelas yang bernama class
balok. Kelas ini dibangkitkan untuk menghitung kendala yang terdapat pada
setiap balok pada struktur.
Persamaan perhitungan kendala-kendala balok yang terdapat pada kelas
balok adalah :
1. Kendala rasio tulangan maksimum

1

=
RHB
RHO
o_b kendala_rh
(3-1)

pada persamaan di atas RHO adalah rasio penulangan, kendala_rho_b adalah
kendala rasio tulangan maksimum yang dibatasi oleh RHB yaitu rasio
penulangan pada keadaan luluh dikalikan 0,75
2. Kendala rasio penulangan minimum


pada persamaan di atas kendala_rho_m adalah kendala rasio penulangan
minimum, RMIN adalah rasio penulangan minimum yang didapat dari
persamaan.

1

=
RHO
RMIN
o_m kendala_rh
(3-2)
fy
,
RMIN
4 1
=
(3-3)
3. Kendala momen lentur
1

=
FMU
MU
kendala_M
(3-4)


47
pada Persamaan di atas kendala_M merupakan kendala momen lentur, MU
adalah momen yang bekerja pada struktur, FMU adalah momen yang dapat
ditahan oleh balok.
4. Kendala lendutan


pada persamaan di atas kendala_lendutan adalah kendala lendutan,
LENDUTAN adalah lendutan yang terjadi, LENDUTAN_IJ IN adalah
lendutan ijin maksimum.
1

=
IJIN _ LENDUTAN
LENDUTAN
ndutan kendala_le
(3-5)
5. Kendala tulangan geser

1

=
SmakS
S _ Jarak
kendala_sb
(3-6)

pada persamaan di atas kendala_sb adalah kendala tulangan geser, J arak_S
adalah jarak sengkang, SmakS adalah jarak antar sengkang maksimum.
III.3.3 Sub Program Analisa Kolom Biaksial
Sub program analisa kolom biaksial terdapat pada file KOLOM.HPP.
Dalam file KOLOM.HPP terdapat sebuah kelas yang bernama class kolom. Kelas
ini dibangkitkan untuk menghitung kendala yang terdapat pada setiap kolom pada
struktur.
Persamaan perhitungan kendala-kendala kolom yang terdapat pada kelas
kolom adalah :
1. Kendala rasio tulangan maksimum
1
08 0

=
,
RHO
mak kendala_r_
(3-7)

48

pada persamaan di atas RHO adalah rasio penulangan, kendala_r_mak adalah
kendala rasio tulangan maksimum yang dibatasi 0,08 (8 %).
2. Kendala rasio penulangan minimum


pada persamaan di atas kendala_rho_m adalah kendala rasio penulangan
minimum yang dibatasi sebesar 0,01 (1 %).
1
01 0

=
RHO
,
min kendala_r_
(3-8)
3. Kendala gaya aksial minimum
1

=
PO
PN
kendala_po
(3-9)

pada persamaan di atas kendala_po merupakan kendala gaya aksial minimum
atau disebut juga kendala eksentrisitas minimum, PN merupakan gaya aksial
nominal dan PO merupakan batas gaya aksial yang dapat dipikul oleh kolom
dikalikan faktor reduksi kekuatan untuk kolom berpengikat sengkang yaitu 0,8
4. Kendala gaya aksial


pada persamaan di atas kendala_pn adalah kendala gaya aksial nominal, PN
merupakan gaya aksial nominal yang terjadi pada struktur, PNcoba adalah
gaya aksial yang mampu didukung oleh kolom, PNoba dicari bersama-sama
MNcoba berdasarkan eksentrisitas yang terjadi pada kolom dengan metoda
false posisi untuk menentukan letak garis netral.
1

=
PNcoba
PN
kendala_pn
(3-10)

49
5. Kendala momen ekivalen biaksial
Untuk MNX >MNY maka digunakan persamaan :


untuk MNX MNY maka digunakan persamaan :


pada persamaan di atas kendala_mn merupakan kendala momen ekivalaen
biaksial, MOX merupakan momen ekivalen biaksial pada sumbu X, MOY
merupakan momen ekivalen biaksial pada sumbu Y, MNcoba merupakan
momen nominal pada arah sumbu biaksial yang ditinjau.
1

=
MNcoba
MOX
kendala_mn
(3-11a)
1

=
MNcoba
MOY
kendala_mn
(3-11b)
6. Kendala jarak tulangan minimum


pada persamaan di atas kendala_tul adalah kendala jarak antara tulangan
minimum, jarak_min adalah jarak minimum yang diijinkan,
jarak_antar_tulangan adalah jarak antara tulangan utama.
1

=
tulangan _ antar _ jarak
min _ jarak
l kendala_tu (3-12)
7. Kendala kelangsingan kolom


Pada persamaan di atas kendala_kelangsingan merupakan kendala
kelangsinganpada kolom, rasio_kelangsingan merupakan rasio kelangsingan
pada kolom, yang dibatasi minimal 22.
1
22

=
gan sin kelang _ rasio
langsingan kendala_ke
(3-13)

50
III.3.4 Sub Program Metoda Optimasi Polihedron Fleksibel
Untuk melakukan proses optimasi digunakan metoda polihedron fleksibel,
prosedur umum yang digunakan dalam program optimasi beton bertulang pada
struktur portal ruang dengan metoda polihedron fleksibel adalah :
1. Penentuan variabel untuk struktur generasi pertama, yang dilakukan dengan
pengacakan, dalam program optimasi beton bertulang pada struktur portal
ruang ini penentuan variabel terdapat pada file PENGACAKAN.HPP dalam
melakukan pengacakan, sebuah struktur dipilih supaya menggunakan elemen
yang paling besar nilainya supaya dalam salah satu struktur tersebut ada yang
tidak memiliki kendala, hal ini dimaksudkan supaya dalam proses optimasi
tidak terjebak kepada optimal lokal yang berkendala.
2. Pembangkitan generasi pertama, sesudah seluruh struktur dibangkitkan, nilai
fitness, kendala, harga, dan variabel desain disimpan dalam array.
3. Seluruh struktur pada generasi pertama diurutkan berdasarkan fitnessnya,
pengurutan ini terdapat pada file PENGURUTAN.HPP, metoda pengurutan
yang digunakan adalah metoda Bubble Sort, metoda ini berasal dari sifat
gelembung air yang semakin ringan akan menuju ke permukaan air.
4. Penentuan arah baru untuk melakukan penelusuran, terdapat pada file
TELUSUR.HPP.
5. Menggantikan struktur terjelek dengan struktur baru hasil penelusuran yang
memiliki fitness lebih baik, apabila dalam penelusuran tidak ditemukan
struktur yang lebih baik dari pada struktur terjelek, maka dilakukan
penyusutan menuju struktur terbaik.

51
6. Selanjutnya dilakukan lagi pengurutan fitness, proses ini dilakukan berulang-
ulang sampai pada suatu batas konvergensi.
Formulasi untuk fungsi penalti yang digunakan dalam program optimasi
beton bertulang pada struktur portal ruang adalah exterior penalty function, proses
penelusuran dimulai dari daerah tidak layak, yang kemudian secara bertahap
menuju daerah layak. Formulasi fungsi penalti untuk menyelesaikan masalah
meminimumkan f(x) yang memenuhi kendala g
j
(x) 0, j =1,2,3,...,n
g
adalah


=
ng

+

= j
j
) x ( g r ) x ( f
r
1
(3-14)

dalam persamaan di atas merupakan fungsi penalti, f(x) merupakan fungsi
sasaran yang berupa harga struktur yang formulasinya terdapat pada persamaan
(1-12), r parameter penalti, ng jumlah kendala, dan g
j
(x) persamaan kendala yang
telah dihitung dalam kelas balok dan kelas kolom.
Nilai r harus cukup besar agar mampu mengarahkan proses penelusuran
dekat dengan daerah layak, tetapi cukup kecil agar proses peminimuman tidak
mengalami kesulitan.
Dalam program optimasi beton bertulang pada struktur portal ruang
konvergensi ditentukan sebagai berikut :
1. J umlah iterasi melebihi batas yang telah ditentukan
2. Terjadi penyusutan berturut yang menghasilkan fitness yang sama sebanyak
jumlah struktur desain

52
3. Terdapat struktur berjumlah sama dengan jumlah variabel desain yang
memiliki nilai fitness sama.
III.3.5 Sub Program Mencetak Hasil Akhir Optimasi
Setelah suatu proses optimasi selesai, hasil optimasi berupa nilai-nilai
variabel desain terbaik, harga, kendala dan hasil perhitungan struktur dicetak, sub
program untuk mencetak hasil akhir tersebut ke dalam file adalah void
cetak_akhir( ) yang terdapat pada file CETAK.HPP.
File-file hasil keluaran yang dicetak oleh program optimasi beton
bertulang pada struktur portal ruang adalah :
1. generik.opt berisi dimensi balok dan kolom pada struktur yang paling optimal.
2. generik.str berisi hasil perhitungan gaya batang dengan metoda kekakuan.
3. generik.kdl berisi kendala yang terdapat pada struktur.
4. generik.inf berisi informasi data masukkan.
5. generik.his berisi riwayat optimasi.

BAB IV
VALIDASI DAN APLIKASI PROGRAM OPTIMASI

IV.1 Validasi Program Optimasi
Dalam melakukan validasi program optimasi, digunakan hasil
perhitungan beton bertulang pada struktur portal yang dikerjakan oleh Ir. Harsoyo
dalam bukunya berjudul gedung bertingkat II (Harsoyo, 1976), seri bina bangunan
konstruksi beton bertulang. Geometri bangunan yang dimodelkan sebagai struktur
portal bidang digambarkan dalam gambar 4-1.









6 m 4 m 6 m
4 m
4 m
4 m
Gambar 4-1 Geometri Struktur Portal Bidang
Langkah pertama dalam analisa struktur setelah memodelkan struktur
adalah melakukan penomoran titik dan batang, dalam kasus ini terdapat 16 titik
kumpul dan 21 batang yang terdiri dari 12 kolom dan 9 balok. Penomoran titik
dan batang dapat dilihat dalam gambar 4-2.
53

54









x
z
y
13 14 15
18
21 20 19
16 17
1 2 3 4
5 6 7 8
9 10 11 12
16 15 14 13
12 11 10 9
8 7 6 5
4 3 2 1
Gambar 4-2 Penomoran Titik Kumpul dan Batang Portal Bidang
Beban yang bekerja pada struktur portal bidang tersebut berupa beban
merata pada balok dan beban akibat tekanan angin pada titik 5, 9, 13 ke arah x,
besarnya beban merata pada batang diperlihatkan dalam tabel 4-1. Sedangkan
besarnya beban akibat tekanan angin diperlihatkan dalam tabel 4-2.

Nomor
Batang
Beban Merata
Total (t/m)
Berat Sendiri (t/m) Beban Luar (t/m)
13 4,100 0,360 3,740
14 3,491 0,360 3,131
15 4,100 0,360 3,740
16 4,100 0,360 3,740
17 3,491 0,360 3,131
18 4,100 0,360 3,740
19 1,762 0,300 1,462
20 1,447 0,300 1,147
21 1,762 0,300 1,462

Tabel 4-1 Beban Merata Pada Struktur Portal Bidang

55

Nomor titik Beban tekanan angin
(kg)
5 400
9 800
13 800
Tabel 4-2 Beban Tekanan Angin
Dalam tugas akhir ini struktur portal bidang pada gambar 4-1 dioptimasi
dengan program optimasi beton bertulang pada struktur portal ruang, dan hasil
optimasinya dibandingkan dengan hasil yang telah dikerjakan oleh Ir. Harsoyo D.
(1976), semua data masukkan dapat dilihat dalam lampiran 24, dengan
menggunakan mutu beton 17,5 MPa dan mutu baja tulangan 240 MPa, tekuk pada
kolom dianalisa. Perbandingan hasil akhir variabel desain antara hasil yang
dikerjakan oleh Ir. Harsoyo dan hasil optimasi program optimasi beton bertulang
pada struktur portal ruang disajikan pada tabel 4-3.
Batang
No. Variabel Desain
Harsoyo (1976) Naftali (1999)
Lebar 0,30 m 0.41 m
Tinggi 0,75 m
0,9 m
3
0,41 m
0,6724 m
3
Tulangan Utama 1025 / 416 825
1
Tulangan Sengkang 8-150
187,929 kg
12-300
136,8158 kg
Lebar 0,30 m 0,41 m
Tinggi 0,75 m
0,9 m
3
0,41 m
0,6724 m
3
Tulangan Utama 1025 / 416 822
2
Tulangan Sengkang 8-150
187,929 kg
12-300
109,0117 kg
Lebar 0,30 m 0,40 m
Tinggi 0,75 m
0,9 m
3
0,40 m
0,64 m
3
Tulangan Utama 1025 / 416 822
3
Tulangan Sengkang 8-150
187,929 kg
8-300
101,2778 kg
Lebar 0,30 m 0,43 m
Tinggi 0,75 m
0,9 m
3
0,43 m
0,7396 m
3
Tulangan Utama 1025 / 416 819
4
Tulangan Sengkang 8-150
187,929 kg
12-300
85,6326 kg
Lebar 0,30 m 0,44 m
Tinggi 0,60 m
0,72 m
3
0,44 m
0,7744 m
3
Tulangan Utama 1022 / 416 820
5
Tulangan Sengkang 8-180
137,3734 kg
12-300
93,7609 kg

56
Lebar 0,30 m 0,44 m
Tinggi 0,60 m
0,72 m
3
0,44 m
0,7744 m
3
Tulangan Utama 822 / 416 819
6
Tulangan Sengkang 8-180
113,0698 kg
8-300
77,8014 kg
Lebar 0,30 m 0,42 m
Tinggi 0,60 m
0,72 m
3
0,42 m
0,7056 m
3
Tulangan Utama 822 / 416 819
7
Tulangan Sengkang 8-180
113,0698 kg
12-300
85,1948 kg
Lebar 0,30 m 0,42 m
Tinggi 0,60 m
0,72 m
3
0,42 m
0,7056 m
3
Tulangan Utama 1022 / 416 822
8
Tulangan Sengkang 8-180
137,3734 kg
12-300
109,4494 kg
Lebar 0,30 m 0,41 m
Tinggi 0,60 m
0,72 m
3
0,41 m
0,6724 m
3
Tulangan Utama 622 / 416 820
9
Tulangan Sengkang 8-180
88,73483 kg
12-300
92,4476 kg
Lebar 0,30 m 0,45 m
Tinggi 0,60 m
0,72 m
3
0,45 m
0,81 m
3
Tulangan Utama 622 / 416 829
10
Tulangan Sengkang 8-180
88,73483 kg
12-300
86,5081 kg
Lebar 0,30 m 0,46 m
Tinggi 0,60 m
0,72 m
3
0,46 m
0,8464 m
3
Tulangan Utama 622 / 416 828
11
Tulangan Sengkang 8-180
88,73483 kg
8-300
161,6033 kg
Lebar 0,30 m 0,44 m
Tinggi 0,60 m
0,72 m
3
0,44 m
0,7744 m
3
Tulangan Utama 622 / 416 425
12
Tulangan Sengkang 8-180
88,73483 kg
12-300
76,5066 kg
Lebar 0,25 m 0.33 m
Tinggi 0,65 m
0,975 m
3
0.57 m
1,1286 m
3
Tulangan Utama 325 / 325
225 / 425
325 / 325
225 / 328
325 / 222
225 / 328
13
Tulangan Sengkang 8-100
228,126 kg
12-130
212,9059 kg
Lebar 0,25 m 0.33 m
Tinggi 0,65 m
0,65 m
3
0.52 m
0,6864 m
3
Tulangan Utama 325 / 325
325 / 225
325 / 325
222 / 322
325 / 320
222 / 322
14
Tulangan Sengkang 8-100
143,9139 kg
12 - 150
111,5333 kg
Lebar 0,25 m 0,34 m
Tinggi 0,65 m
0,975 m
3
0,55 m
1,122 m
3
Tulangan Utama 325 / 325
225 / 425
325 / 325
222 / 328
322 / 222
222 / 328
15
Tulangan Sengkang 8-100
228,126 kg
12-140
190,1989 kg
Lebar 0,25 m 0,31 m
Tinggi 0,65 m
0,975 m
3
0,55 m
1,023 m
3
Tulangan Utama 325 / 325
225 / 425
325 / 325
228 / 328
325 / 228
228 / 328
16
Tulangan Sengkang 8-100
228,126 kg
12-130
225,0688 kg

57
Lebar 0,25 m 0,33 m
Tinggi 0,65 m
0,65 m
3
0,52 m
0,6864 m
3
Tulangan Utama 325 / 325
325 / 225
325 / 325
225 / 325
320 / 225
225 / 325
17
Tulangan Sengkang 8-100
143,9139 kg
12-170
111,4915 kg
Lebar 0,25 m 0,34 m
Tinggi 0,65 m
0,975 m
3
0,54 m
1,1016 m
3
Tulangan Utama 325 / 325
225 / 425
325 / 325
220 / 328
322 / 225
220 / 328
18
Tulangan Sengkang 8-100
228,126 kg
12-140
191,4206 kg
Lebar 0,25 m 0,33 m
Tinggi 0,50 m
0,75 m
3
0,49 m
0,9702 m
3
Tulangan Utama 319 / 419
219 / 419
319 / 419
225 / 328
322 / 219
225 / 328
19
Tulangan Sengkang 8-100
179,4247 kg
12-160
172,2049 kg
Lebar 0,25 m 0,33 m
Tinggi 0,50 m
0,5 m
3
0,49 m
0,6468 m
3
Tulangan Utama 319 / 219
319 / 219
319 / 219
222 / 322
325 / 228
222 / 322
20
Tulangan Sengkang 8-100
91,3503 kg
12-180
110,299 kg
Lebar 0,25 m 0,33 m
Tinggi 0,50 m
0,75 m
3
0,51 m
1,0098 m
3
Tulangan Utama 319 / 419
219 / 419
319 / 419
222 / 320
325 / 219
222 / 320
21
Tulangan Sengkang 8-100
179,4247 kg
12-170
151,9952
Total Volume Beton : 16,56 m
3
17,1624 m
3
Total Berat Besi : 3113,5654 kg 2693,1281 kg
Tabel 4-3 Perbandingan Volume Beton dan Berat Besi
Selanjutnya dengan menetapkan harga satuan beton Rp. 250.000,00 / m
3

dan harga satuan besi Rp. 5.000,00 / kg dapat dihitung harga struktur secara
keseluruhan seperti yang diperlihatkan dalam tabel 4-4, dalam hal ini harga beton
dan harga besi tersebut sudah termasuk biaya pemasangan seperti upah pekerja,
kawat pengikat dan papan acuan (form work).
Dari tabel 4-4 ternyata harga struktur secara keseluruhan dapat dikurangi
sebesar Rp. 1.951.587,00 atau sebesar 9,9 % dengan melakukan optimasi. Proses
optimasi menggunakan 168 variabel desain dan 171 struktur desain sebagai titik

58
coba. Waktu proses optimasi yang diperlukan adalah 117 detik menggunakan
komputer dengan prosesor Pentium Celeron 333 Mhz dan RAM 64 MB.
Harsoyo (1976) Naftali (1999)
Material
Harga Satuan
(Rp.) Pemakaian
Material
Harga
(Rp.)
Pemakaian
Materaial
Harga
(Rp.)
Beton 250.000,00/m
3
16.56 m
3
4.140.000 17,1624 m
3
4.290.600
Baja 5.000,00/kg 3113,5654 kg 15.567.827 2693,1281 kg 13.465.640
Total 19.707.827 17.756.240
Tabel 4-4 Perbandingan Harga Struktur

IV.2 Aplikasi Program Optimasi
Suatu struktur portal ruang seperti pada gambar 4-3 terbuat dari beton
bertulang memiliki data struktur sebagai berikut :
1. J umlah batang 8 buah, terdiri dari 4 buah balok dan ditopang oleh 4 buah
kolom.
2. Tumpuan jepit pada titik kumpul 1, 2, 3, 4.
3. Kuat desak karakteristik beton =30 MPa.
4. Kuat tarik baja tulangan memanjang =400 MPa.
5. Kuat tarik baja tulangan sengkang =240 MPa.
6. Selimut beton pada balok =50 mm.
7. Selimut beton pada kolom =50 mm.
8. Beban Merata sebesar 35 kN/m pada semua balok.
9. Variabel desain yang digunakan terdapat pada lampiran.
10. Faktor penalti diambil 1e10.
11. J umlah struktur desain sebagai titik coba diambil sama dengan jumlah variabel
desain +3, jumlah variabel desain x 2 dan jumlah variabel desain x 3.

59









5 m
6 m
6 m
x
y
z
Gambar 4-3 Geometri Struktur Portal Ruang
Penomoran titik kumpul (joint) dan penomoran elemen batang
diperlihatkan pada gambar 4-4, pada gambar 4-4 juga diperlihatkan pembebanan
pada struktur.









x
y
z
6
4
1 2
3
8
7
1 2
3
4
5 6
7
8
w =35 kN/m w
5
Gambar 4-4 Penomoran Titik dan Batang Portal Ruang

60
Program dijalankan sebanyak 15 kali dengan 3 variasi jumlah struktur
desain, yaitu jumlah variabel desain +3, jumlah variabel desain x 2, jumlah
variabel desain x 3, masing masing sebanyak 5 kali, dengan menggunakan
komputer dengan prosesor Pentium Celeron 333 Mhz dan RAM 64 MB, hasil
optimasi disajikan dalam bentuk grafik pada gambar 4-5.









0 200 400 600 800 1.000 1.200
JVD + 3
JVD x 2
JVD x 3
884,543
952,009
956,726
920,91
1.030,85
963,602
922,347
1.044,07
1.039,36
975,574
1.061,04
1.077,23
978,844
1.102,15
1.174,59
Run ke-1
Run ke-2
Run ke-3
Run ke-4
Run ke-5
fitness
Gambar 4-5 Grafik Perbandingan Nilai Fitness
Grafik pada gambar 4-5 menunjukkan bahwa semakin banyak struktur
desain yang digunakan, nilai fitness yang dicapai semakin tinggi, hal ini berarti
untuk mendapatkan hasil yang makin optimal dibutuhkan jumlah struktur desain
yang makin banyak, akan tetapi dengan bertambahnya jumlah struktur desain,
waktu yang dibutuhkan untuk proses optimasi juga semakin banyak. Grafik
perbandingan waktu proses optimasi yang dibutuhkan oleh masing-masing
penambahan jumlah variabel desain ditunjukkan dalam grafik yang terdapat pada
gambar 4-6.

61









JVD + 3 JVD x 2 JVD x 3
0
10
20
30
40
50
60
70
80
21
36
43
39
44
54
16
42
48
26
30
63
36
34
74
Run ke-1
Run ke-2
Run ke-3
Run ke-4
Run ke-5
Waktu (detik)
Gambar 4-6 Grafik Perbandingan Lama Proses Optimasi
Hasil terbaik untuk kasus portal ruang pada gambar 4-3 dengan nilai
fitness 1174,59 memerlukan waktu proses optimasi sebesar 74 detik. Fungsi
sasarannya yaitu harga struktur, dengan mengambil harga beton Rp. 250.000,00 /
m
3
dan harga besi Rp. 5.000,00 / kg adalah sebesar Rp. 8.535.430,00, hasilnya
ditunjukkan pada tabel 4-5, sedangkan perhitungan rincian harga terdapat pada
tabel 4-6.
Batang
No. Variabel Desain
Penggunaan Material
Lebar 0,45 m
Tinggi 0,45 m
1,0125 m
3
Tulangan Utama 819
1
Tulangan Sengkang 10-300
102,4988 kg
Lebar 0,50 m
Tinggi 0,50 m
1,25 m
3
Tulangan Utama 822
2
Tulangan Sengkang 10-300
134,7477 kg
Lebar 0,50 m
Tinggi 0,50 m
1,25 m
3
Tulangan Utama 828
3
Tulangan Sengkang 10-300
208,6947 kg

62
Lebar 0,45 m
Tinggi 0,45 m
1,0125 m
3
Tulangan Utama 822
4
Tulangan Sengkang 8-300
127,9512 kg
Lebar 0,25 m
Tinggi 0,60 m
0,9 m
3
Tulangan Utama 425 / 319
419 / 319
425 / 319
5
Tulangan Sengkang 10-160
164,686 kg
Lebar 0,30 m
Tinggi 0,60 m
1,08 m
3
Tulangan Utama 225 / 422
422 / 329
225 / 422
6
Tulangan Sengkang 10-160
195,3126 kg
Lebar 0,35 m
Tinggi 0,50 m
1,05 m
3
Tulangan Utama 219 / 325
428 / 222
219 / 325
7
Tulangan Sengkang 10-160
171,1133 kg
Lebar 0,30 m
Tinggi 0,60 m
1,08 m
3
Tulangan Utama 228 / 222
228 / 329
228 / 222
8
Tulangan Sengkang 10-180
170,3307 kg
Total Volume Beton
Total Berat Besi
8,635 m
3
1275.336 kg
Tabel 4-5 Dimensi Struktur Portal Ruang Hasil Optimasi
Material
Harga Satuan
(Rp.)
Pemakaian
Material
Harga
(Rp.)
Beton 250.000,00/m
3
8,635 m
3
2.158.750
Baja 5.000,00/kg 1275,336 kg 6.376.680
Total 8.535.430
Tabel 4-6 Rincian Harga Struktur Portal Ruang

BAB V
KESIMPULAN DAN SARAN

V.1 Kesimpulan
Dari tugas akhir ini dapat disimpulkan bahwa :
1. Program komputer optimasi beton bertulang pada struktur portal ruang yang
dikembangkan dalam tugas akhir ini dengan menggunakan metoda optimasi
polihedron fleksibel berhasil mengurangi harga struktur sekitar 9,9 %
2. Bertambahnya jumlah struktur desain sebagai titik coba menghasilkan struktur
yang semakin murah, tetapi memerlukan waktu proses optimasi yang semakin
lama
3. Untuk jumlah variabel yang relatif besar, hasil yang didapatkan oleh metoda
optimasi polihedron fleksibel kurang memuaskan, metoda polihedron fleksibel
cukup baik hanya untuk kasus yang memiliki jumlah variabel desain yang
relatif kecil.

V.2. Saran
Untuk menyelesaikan masalah optimasi yang cukup rumit seperti optimasi
beton bertulang pada struktur portal ruang, diperlukan metoda optimasi yang lebih
baik lagi, ada beberapa saran yang mungkin dapat membantu dalam
mengembangkan optimasi beton bertulang pada struktur portal ruang yaitu :
1. Dalam memilih bahasa pemrograman, sebaiknya digunakan bahasa yang dapat
menembus memori lebih dari 64K, karena dalam pemrograman optimasi beton
63

64
bertulang pada struktur portal ruang dibutuhkan dimensi sebesar mungkin,
selain itu untuk sistem operasi dapat dicoba menggunakan sistem operasi yang
sudah berbasiskan 64 bit atau yang flat memory, misalnya menggunakan
kernel linux.
2. Metoda optimasi polihedron fleksibel perlu dikembangkan lagi, terutama
dalam proses penelusurannya, sehingga metoda ini dapat menjadi lebih baik
lagi.
65
DAFTAR PUSTAKA



Balfour, J ames A. D., 1986, Computer Analysis of Structural Frameworks,
Collins, London.

Dipohusodo, I., 1994, Struktur Beton Bertulang, Departemen Pekerjaan Umum
RI, Gramedia Pustaka Utama, J akarta.

Harsoyo, 1976, Seri Bina Bangunan, Konstruksi Beton Bertulang, Gedung
Bertingkat II, R.Sugihardjo BAE, Yogyakarta.

Hulse,R and Mosley W.H., 1989, Reinforced Concrete Design by Computer,
Macmillan, Singapore.

Kirsch, U., 1981, Optimum Structural Design, McGraw-Hill Company.

Lai, Y. S., and Achenbach, J . D, 1973, Direct Search Optimization Method,
Journal of Structural Division, ASCE, Vol. 98, pp.119-131.

Lev, O. E., 1977, A Structural Optimization Solution to a Branch and Bound
Problem, Quarterly of Applied Mathematics, Vol. 34, pp. 365-371.

Levey, G. C., and Fu, K.C., 1979, A Method in Discrete Frame Optimization and
Its Outlook, International Journal of Computers and Structures, Vol. 10, pp.
2177-2197.

MacGregor, J ames G., 1997, International Edition, Reinforced Concrete,
Mechanics and Design, Thrid Edition, Prentice-Hall, New J ersey.

Morris, A. J ., 1982, Foundations of Structural Optimization : A Unified
Approach, J ohn Wiley & Sons, New York.

Nawy, E., 1990, Beton Bertulang Suatu Pendekatan Dasar, Terjemahan, PT
Eresco, Bandung.

SK SNI T-15-1991-03, 1991, Standar Tata Cara Perhitungan Struktur Beton
untuk Bangunan Gedung, Departemen Pekerjaan Umum, Yayasan Lembaga
Penyelidikan Masalah Bangunan, Bandung.

Sutedjo, B. dan Michael, 1997, Algoritma dan Teknik Pemrograman, Andi,
Yogyakarta.

Toakley, A. R., 1968, Optimum Design Using Available Section, Journal of
Structural Division, ASCE, Vol. 34, pp. 1219-1241.
66

Wang, C.K. dan Salmon C.G., 1990, Desain Beton Bertulang, Edisi keempat,
Terjemahan, Erlangga, J akarta.

Wahyudi, L. dan Syahril A.R., 1997, Struktur Beton Bertulang Standar Baru SNI
T-15-1991-03, PT Gramedia Pustaka Utama, J akarta.

Weaver, W.J r. dan J ames M. Gere, Analisa Matriks Untuk Struktur Rangka, Edisi
kedua, Terjemahan, Erlangga, J akarta.

Wibowo, F.N.,1996, Perkembangan Metoda Optimasi pada Teknik Sipil, diktat
kuliah Metoda Optimasi Struktur, Universitas Atma J aya Yogyakarta,
Yogyakarta.

Wu, Peiming, 1986, Structural Optimization with Nonlinear and Discrete
Programming, University Microfilm International, Michigan.

Vis, W.C. dan Kusuma G.H., 1993, Dasar-dasar Perencanaan Beton Bertulang,
Erlangga, J akarta.

Young, Warren C., 1989, Roarks Formulas for Stress & Strain, McGraw-Hill,
New York.
OPTIMASI BETON BERTULANG PADA
STRUKTUR PORTAL RUANG

TUGAS AKHIR SARJ ANA STRATA -1












LAMPIRAN




1
/ ************************************************************************/
/ * PROGRAM UTAMA */
/ * OPTI MASI BETON BERTULANG PADA STRUKTUR PORTAL RUANG */
/ *- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - */
/ * TARGET PLATFORM SI STEM OPERASI KONSOL BERBASI S WI NDOWS 32 BI T */
/ * KOMPI LER BORLAND C++ 5. 02 */
/ *- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - */
/ * KODE PROGRAM DI TULI S OLEH YOHAN NAFTALI - 7712/ TSS */
/ ************************************************************************/

/ *********************************/
/ * I NI SI ALI SASI VARI ABEL KONSTAN */
/ *********************************/
const i nt mak=825;

/ **********************/
/ * PEMANGGI LAN HEADER */
/ **********************/
#i ncl ude " Bor l andC. hpp"
#i ncl ude " Header . hpp"

/ *****************/
/ * PROGRAM UTAMA */
/ *****************/
voi d mai n( )
{
/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
/ / Memanggi l Fungsi Shel l Pr ogr amUnt uk Menj al ankan Ker nel / /
/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
menu_ut ama( ) ;
}


2
/ *************************************************************************/
/ * FI LE : BORLANDC. HPP */
/ * HEADER PUSTAKA BORLAND C++ VERSI 5. 02 YANG DI PAKAI */
/ * PUSTAKA YANG DI PANGGI L DI BUAT OLEH BORLAND I NTERNATI ONAL */
/ *************************************************************************/
#i ncl ude <mat h. h> / / Pust aka Pengol ahan Mat emat i ka
#i ncl ude <_def s. h> / / Def i ni si UmumUnt uk Poi nt er Dan Convent i ons
#i ncl ude <st ddef . h> / / Def i ni si Unt uk Ti pe UmumDan Nul l
#i ncl ude <_nul l . h> / / Def i ni si Nul l Unt uk Poi nt er
#i ncl ude <t i me. h> / / Pust aka Oper asi Wakt u
#i ncl ude <dos. h> / / Fungsi Fasi l i t as Di sk Oper at i ng Syst em
#i ncl ude <i ost r eam. h> / / St r eamI nput Out put Ke Layar
#i ncl ude <st r i ng. h> / / Pust aka Pembant u Oper asi St r i ng
#i ncl ude <f st r eam. h> / / St r eamUnt uk Menangani Masal ah Fi l e
#i ncl ude <st dl i b. h> / / St andar Pust aka C
#i ncl ude <coni o. h> / / Oper asi Rut i n I nput Out put Pada Konsol
#i ncl ude <i omani p. h> / / Oper asi Mani pul asi I nput Out put


3
/ ************************************************************************/
/ * FI LE : HEADER. HPP */
/ * KUMPULAN HEADER PROGRAM OPTI MASI BETON BERTULANG PADA STRUKTUR RUANG */
/ * DENGAN METODA FLEXI BLE POLYHEDRON */
/ ************************************************************************/

/ *****************/
/ * HEADER KERNEL */
/ *****************/
#i ncl ude " Pr ot o. hpp"
#i ncl ude " Var i abel . hpp"
#i ncl ude " I nOut . hpp"

/ ****************************************************************/
/ * HEADER MEKANI KA REKAYASA PORTAL RUANG DENGAN METODA KEKAKUAN */
/ ****************************************************************/
#i ncl ude " St r ukt ur . hpp"
#i ncl ude " Pembebanan. hpp"
#i ncl ude " Sol ver . hpp"

/ **********************************/
/ * HEADER ANALI SA BETON BERTULANG */
/ **********************************/
#i ncl ude " Kol om. hpp"
#i ncl ude " Bal ok. hpp"
#i ncl ude " El emen. hpp"

/ *****************************************************/
/ * HEADER OPTI MASI DENGAN METODA FLEXI BLE POLYHEDRON */
/ *****************************************************/
#i ncl ude " Pol yhedr on. hpp"
#i ncl ude " Penor mal an. hpp"
#i ncl ude " Pengacakan. hpp"
#i ncl ude " Di skr i t i sasi . hpp"
#i ncl ude " Kendal a. hpp"
#i ncl ude " Tel usur . hpp"
#i ncl ude " Bar u. hpp"
#i ncl ude " Pengur ut an. hpp"

/ ****************/
/ * HEADER SHELL */
/ ****************/
#i ncl ude " Tampi l an. hpp"
#i ncl ude " Cet ak. hpp"

4
/ ***********************************************************************/
/ * FI LE : PROTO. HPP */
/ * PROTOTYPE OPTI MASI STRUKTUR BETON BERTULANG PADA PORTAL RUANG */
/ ***********************************************************************/

/ **************************/
/ * PROTOTYPE PROGRAM UMUM */
/ **************************/
voi d menu_ut ama( ) ;
voi d about ( ) ;
voi d i nput _dat a( ) ;
voi d i nput _dat a_umum( ) ;
voi d i nput _dat a_di skr i t ( ) ;

/ ***********************************************************************/
/ * PROTOTYPE PROGRAM MEKANI KA REKAYASA STRUKTUR DENGAN METODA KEKAKUAN */
/ ***********************************************************************/
voi d baca_dat a( ) ;
voi d l oad_dat a( ) ;
voi d kosong_beban( ) ;
voi d baca_beban( ) ;
voi d st r ukt ur ( ) ;
voi d i ner si a( ) ;
voi d kekakuan_bat ang( ) ;
voi d beban( ) ;
voi d ber at _sendi r i ( ) ;
voi d i si _mat r i k_kekakuan( i nt i mk) ;
voi d i ndeks_bat ang( i nt i b) ;
voi d per i ksa_bat ang( i nt b) ;
voi d banf ac( i nt N, i nt NB, f l oat A_SFF[ ] [ mak] ) ;
voi d bansol ( i nt N, i nt NB, f l oat U_SFF[ ] [ mak] , f l oat B_AC[ ] , f l oat X_DF[ ] ) ;
voi d hasi l ( ) ;
voi d out put _par amet er _st r ukt ur al ( ) ;
voi d out put _koor di nat _t i t i k_kumpul ( ) ;
voi d out put _i nf or masi _bat ang( ) ;
voi d out put _pengekang_t i t i k_kumpul ( ) ;
voi d out put _beban_bat ang( ) ;
voi d out put _beban_t i t i k( ) ;

/ *************************************/
/ * PROTOTYPE PROGRAM BETON BERTULANG */
/ *************************************/
voi d i si _el emen_bal ok( i nt no_el _bal ok) ;
voi d el emen_l apangan( i nt no_el _bal ok) ;
voi d el emen_t umpuan( i nt no_el _bal ok) ;
voi d i si _el emen_kol om( i nt no_el _kol om) ;
voi d l endut an( i nt no_bat ang_l ) ;

/ ****************************************************************/
/ * PROTOTYPE PROGRAM OPTI MASI DENGAN METODA FLEXI BLE POLYHEDRON */
/ ****************************************************************/
f l oat Kendal a_Har ga( i nt var _b_nya[ ] , i nt var _k_nya[ ] ) ;
f l oat i si ( i nt no_dat a, f l oat kel ompok_dat a[ ] ) ;
voi d opt i masi ( ) ;
voi d l oad_bat as_at as( ) ;
voi d acak_var i abel ( ) ;
voi d r andomi sasi ( ) ;
voi d car i _st r ukt ur _awal ( ) ;
voi d car i _bar u( ) ;
voi d per i ksa_bat as( ) ;
voi d penel usur an( ) ;
voi d gant i _bar u( ) ;
voi d penyusut an( ) ;
voi d nor mal i sasi _f l oat ( f l oat var _nor [ ] , f l oat var _bv[ ] , f l oat var _kv[ ] ) ;
voi d nor mal i sasi _i nt ( i nt var _nor [ ] , i nt var _bv[ ] , i nt var _kv[ ] ) ;
voi d unnor mal i sasi ( f l oat var _nor [ ] , f l oat var _bv[ ] , f l oat var _kv[ ] ) ;
voi d cet ak_akhi r ( ) ;
voi d sor t ( f l oat ni l ai 1[ ] , f l oat ni l ai 2[ ] , f l oat ni l ai 3[ ]
, i nt ur ut _var _b[ ] [ mak] , i nt ur ut _var _k[ ] [ mak] , i nt n_ar r ay) ;
i nt konver si ( f l oat bi l _asl i ) ;


5
/ ***********************************************************************/
/ * FI LE : VARI ABEL. HPP */
/ * PENDEKLARASI AN VARI ABEL GLOBAL */
/ ***********************************************************************/

/ ******************/
/ * MAKRO VARI ABEL */
/ ******************/
#def i ne pi 3. 14 / / Phi l i ngkar an
#def i ne t et a 0. 8 / / Fakt or r eduksi kekuat an
#def i ne l i mi t _nol 1. E- 3 / / Penet apan angka keci l mendekat i nol
#def i ne bj _besi 7850. / / ber at j eni s besi ( kg/ m^3)
#def i ne MD 12 / / J uml ah per pi ndahan unt uk sat u bat ang

/ *****************/
/ * VARI ABEL UMUM */
/ *****************/
char f i [ 20] ; / / I nput nama f i l e gener i k t anpa ekst ensi
char f i nput [ 20] ; / / Fi l e *. i np unt uk dat a umumst r ukt ur
char f si si [ 20] ; / / Fi l e *. i sd unt uk dat a si si penampang
char f di al [ 20] ; / / Fi l e *. i dl unt uk di amet er t ul angan ut ama
char f j t l [ 20] ; / / Fi l e *. i j l unt uk j uml ah t ul angan ut ama
char f di as[ 20] ; / / Fi l e *. i ds unt uk di amet er t ul angan sengkang
char f j t s[ 20] ; / / Fi l e *. i j s unt uk j ar ak t ul angan sengkang
char f beban[ 20] ; / / Fi l e *. bbn unt uk dat a beban
char f hi st or y[ 20] ; / / Fi l e *. hi s unt uk mencat at r i wayat opt i masi
char f opt i masi [ 20] ; / / Fi l e *. opt unt uk kel uar an hasi l opt i masi
char f st r ukt ur [ 20] ; / / Fi l e *. st r unt uk hasi l anal i sa st r ukt ur
char f kendal a[ 20] ; / / Fi l e *. kdl unt uk kel uar an kendal a st r ukt ur
char f i nf or masi [ 20] ; / / Fi l e *. i nf unt uk kel uar an i nf or masi masukkan
char SubName[ 80] ; / / I nf or masi nama sub masukkan
char I SN[ 80] ; / / I nf or masi nama st r ukt ur

/ **********************************************************/
/ * VARI ABEL MEKANI KA REKAYASA UNTUK STRUKTUR PORTAL RUANG */
/ **********************************************************/
i nt NB; / / Set engah l ebar j al ur mat r i k kekakuan
i nt M; / / J uml ah bat ang
i nt NJ ; / / J uml ah t i t i k kumpul
i nt NR; / / J uml ah Pengekang t umpuan
i nt NRJ ; / / J uml ah t i t i k kumpul yang di kekang
i nt J RL[ mak] ; / / Daf t ar pengekang t i t i k kumpul
i nt T_K[ mak] ; / / Daf t ar t i t i k kumpul yang di kekang
i nt ND; / / J uml ah koor di nat per pi ndahan unt uk semua t i t i k kumpul
i nt N; / / J uml ah der aj at kebebasan
i nt I A[ mak] ; / / Not asi penunj uk nol at au t i daknya sudut al f a
i nt J J [ mak] ; / / Penunj uk unt uk uj ung j
i nt J K[ mak] ; / / penunj uk unt uk uj ung k
i nt I D[ mak] ; / / I ndeks per pi ndahan unt uk t i t i k kumpul
i nt I R, I C; / / I ndeks bar i s dan kol om
i nt I M[ mak] ; / / I ndeks per pi ndahan bat ang
i nt LML[ mak] ; / / Tabel bat ang yang di bebani

f l oat E; / / Modul us el ast i si t as
f l oat G; / / Modul us Punt i r
f l oat X[ mak] ; / / Koor di nat st r ukt ur pada ar ah x ( _ ) | y
f l oat Y[ mak] ; / / Koor di nat st r ukt ur pada ar ah y ( | ) | ___
f l oat Z[ mak] ; / / Koor di nat st r ukt ur pada ar ah z ( / ) z/ x
f l oat b[ mak] ; / / Lebar penampang
f l oat h[ mak] ; / / Ti nggi penampang
f l oat AX[ mak] ; / / Luas Penampang
f l oat XI [ mak] ; / / Konst ant a punt i r bat ang
f l oat YI [ mak] ; / / Momen i ner si a t er hadap sumbu y bat ang
f l oat ZI [ mak] ; / / Momen i ner si a t er hadap sumbu z bat ang
f l oat EL[ mak] ; / / Panj ang penampang

f l oat CX; / / Kosi nus ar ah x
f l oat Cy; / / Kosi nus ar ah y
f l oat CZ; / / Kosi nus ar ah z
f l oat CXZ; / / Penunj uk bal ok at au kol om
f l oat XP[ mak] ; / / Koor di nat x dar i t i t i k P ( m)

6
f l oat YP[ mak] ; / / Koor di nat y dar i t i t i k P ( m)
f l oat ZP[ mak] ; / / Koor di nat z dar i t i t i k P ( m)
f l oat XPS; / / Koor di nat xs dar i t i t i k P ( m)
f l oat YPS; / / Koor di nat ys dar i t i t i k P ( m)
f l oat ZPS; / / Koor di nat zs dar i t i t i k P ( m)
f l oat YPG; / / Koor di nat yg dar i t i t i k P ( m)
f l oat ZPG; / / Koor di nat zg dar i t i t i k P ( m)
f l oat COSA; / / Cosi nus sudut al f a
f l oat SI NA; / / Si nus sudut al f a

f l oat R11[ mak] ; / / ~
f l oat R12[ mak] ; / / |
f l oat R13[ mak] ; / / |
f l oat R21[ mak] ; / / |
f l oat R22[ mak] ; / / - - Mat r i k Rot asi
f l oat R23[ mak] ; / / |
f l oat R31[ mak] ; / / |
f l oat R32[ mak] ; / / |
f l oat R33[ mak] ; / / ~

f l oat SM[ 13] [ 13] ; / / Mat r i k kekakuan bat ang l okal
f l oat SMRT[ 13] [ 13] ; / / Hasi l per kal i an mat r i k SM dan mat r i k Rot asi
f l oat SMS[ mak] [ mak] ; / / Mat r i k kekakuan bat ang gl obal
f l oat SFF[ mak] [ mak] ; / / Mat r i k kekakuan unt uk per pi ndahan bebas
f l oat DF[ mak] ; / / Per pi ndahan t i t i k dal amsumbu gl obal ( m)
f l oat AJ [ mak] ; / / Aksi beban pada t i t i k kumpul dal amar ah gl obal
f l oat AML[ 13] [ mak] ; / / Gaya uj ung bat ang t er kekang dal amar ah l okal
f l oat AE[ mak] ; / / Beban t i t i k kumpul eki val en dal amar ah gl obal
f l oat AC[ mak] ; / / Beban t i t i k kumpul gabungan dal amar ah gl obal
f l oat DJ [ mak] ; / / Per pi ndahan t i t i k kumpul dal amar ah gl obal
f l oat AMD[ mak] ; / / Gaya uj ung bat ang aki bat per pi ndahan t i t i k
f l oat AM[ mak] [ mak] ; / / Gaya uj ung bat ang akhi r
f l oat AR[ mak] ; / / Reaksi t umpuan dal amar ah sumbu gl obal
f l oat W[ mak] ; / / Beban Mer at a
f l oat W_Bal ok[ mak] ; / / Beban Ber at Sendi r i Bal ok
f l oat P_Kol om[ mak] ; / / Gaya Ter pusat Kol om

f l oat MTUM_KI [ mak] ; / / Momen pada t umpuan ki r i
f l oat MTUM_KA[ mak] ; / / Momen pada t umpuan kanan
f l oat MLAP[ mak] ; / / Momen l apangan
f l oat GESER_KI [ mak] ; / / Gaya geser sebel ah ki r i
f l oat GESER_KA[ mak] ; / / Gaya geser sebel ah kanan

f l oat MKX[ mak] ; / / Momen kol omar ah x
f l oat MKY[ mak] ; / / Momen kol omar ah y
f l oat PK[ mak] ; / / Gaya aksi al kol om
f l oat GK[ mak] ; / / Gaya geser kol om

/ ****************************/
/ * VARI ABEL BETON BERTULANG */
/ ****************************/

/ / / / / / / / / / / / / / / / / / / / / / / /
/ / Dat a Masukkan Umum/ /
/ / / / / / / / / / / / / / / / / / / / / / / /
f l oat FC; / / Kuat desak kar akt er i st i k Bet on ( MPa)
f l oat FY; / / Kuat t ar i k baj a t ul angan ut ama ( MPa)
f l oat FYS; / / Kuat t ar i k baj a t ul angan sengkang ( MPa)
f l oat BT1; / / Fakt or r eduksi t i nggi bl ok t egangan eki val en bet on

/ / / / / / / / / / / / / / / / / / / / / / / / / / / / /
/ / Var i abel Desai n Shar i ng / /
/ / / / / / / / / / / / / / / / / / / / / / / / / / / / /
i nt nsi si _B; / / J uml ah dat a di skr i t l ebar bal ok
i nt nsi si _H; / / J uml ah dat a di skr i t t i nggi bal ok
i nt nsi si _K; / / J uml ah dat a di skr i t si si kol om

i nt nDI A; / / J uml ah dat a di skr i t di amet er
i nt nNL; / / J uml ah dat a di skr i t j uml ah di amet er
i nt nDI AS; / / J uml ah dat a di skr i t di amet er sengkang
i nt nJ S; / / J uml ah dat a di skr i t j ar ak ant ar sengkang

7

f l oat DI AS; / / Di amet er sengkang ( mm)
f l oat J ar ak_S; / / J ar ak ant ar sengkang ( mm)
f l oat Sr ef ; / / J ar ak ant ar sengkang yang di but uhkan ( mm)
f l oat j ar ak_ant ar _t ul angan; / / J ar ak ant ar t ul angan ( mm)

f l oat si si _d_B[ mak] ; / / Ar r ay ber i si dat a di skr i t l ebar bal ok ( mm)
f l oat si si _d_H[ mak] ; / / Ar r ay ber i si dat a di skr i t t i nggi bal ok ( mm)
f l oat si si _d_K[ mak] ; / / Ar r ay ber i si dat a di skr i t si si kol om( mm)

f l oat DI A_d[ mak] ; / / Ar r ay ber i si dat a di skr i t di amet er ( mm)
f l oat NL_d[ mak] ; / / Ar r ay ber i si dat a di skr i t j uml ah t ul angan
f l oat DI AS_d[ mak] ; / / Ar r ay ber i si dat a di skr i t di amet er sengkang ( mm)
f l oat J S_d[ mak] ; / / Ar r ay ber i si dat a di skr i t j ar ak ant ar sengkang ( mm)

/ / / / / / / / / / / / / / / / / / / / / / / / / / /
/ / Var i abel Desai n Bal ok / /
/ / / / / / / / / / / / / / / / / / / / / / / / / / /
f l oat B; / / Lebar bal ok ( mm)
f l oat H; / / Ti nggi bal ok ( mm)
f l oat DI A1; / / Di amet er t ul angan t ar i k ( mm)
f l oat DI A2; / / Di amet er t ul angan desak ( mm)
f l oat NL1; / / J uml ah t ul angan t ar i k ( mm)
f l oat NL2; / / J uml ah t ul angan desak ( mm)

/ / / / / / / / / / / / / / / / / / / / / / / / / / /
/ / Var i abel Desai n Kol om/ /
/ / / / / / / / / / / / / / / / / / / / / / / / / / /
f l oat si si ; / / Si si penampang kol ombi aksi al ( mm)
f l oat DI A; / / Di amet er t ul angan ( mm)
f l oat N_DI A; / / J uml ah t ul angan

/ / / / / / / / / / / / / / / / / / / / / / / / / / /
/ / Shar i ng Var i abel Gaya / /
/ / / / / / / / / / / / / / / / / / / / / / / / / / /
f l oat PU; / / Gaya aksi al ul t i mi t ( N)
f l oat MU; / / Momen ul t i mi t ( Nm)
f l oat VU; / / Gaya geser ul t i mi t ( N)
f l oat VC; / / Gaya geser yang di sumbangkan ol eh bet on ( N)
f l oat VS; / / Gaya geser yang di sumbangkan ol eh t ul angan geser ( N)
f l oat FMU; / / Momen Ul t i mi t yang dapat di t ahan( Nm)
f l oat FPU; / / Gaya Aksi al Ul t i mi t yang dapat di t ahan ( N)

/ / / / / / / / / / / / / / / / / / / / / / / / / / / /
/ / Shar i ng Var i abel Bi aya / /
/ / / / / / / / / / / / / / / / / / / / / / / / / / / /
f l oat har ga_bet on; / / Har ga bet on ( Rp. / m^3)
f l oat har ga_besi ; / / Har ga besi ( Rp. / kg)
f l oat vol ume_bet on; / / Vol ume bet on yang di gunakan ( m^3)
f l oat ber at _besi ; / / Ber at besi yang di gunakan ( kg)
f l oat ber at _sengkang; / / Ber at sengkang yang di gunakan ( kg)
f l oat L; / / Panj ang bat ang ( m)

/ / / / / / / / / / / / / / / / / / / / / / / / / / / / /
/ / Shar i ng Var i abel El emen / /
/ / / / / / / / / / / / / / / / / / / / / / / / / / / / /
f l oat DS; / / J ar ak ser at t ar i k t er l uar ke t ul angan t ar i k ( mm)
f l oat D; / / J ar ak ser at t ekan t er l uar ke t ul angan t ar i k ( mm)
f l oat AV; / / Luas t ul angan geser ( mm^2)
f l oat AVmi n; / / Luas t ul angan geser mi ni mum( mm^2)

/ / / / / / / / / / / / / / / / / / / / / / / / / / /
/ / Var i abel Khusus Bal ok / /
/ / / / / / / / / / / / / / / / / / / / / / / / / / /
f l oat sel i mut _bal ok; / / Tebal sel i mut pada bal ok

f l oat DI A1l ap; / / Di amet er t ul angan t ar i k pada daer ah l apangan
f l oat NL1l ap; / / J uml ah t ul angan t ar i k pada daer ah l apangan
f l oat DI A2l ap; / / Di amet er t ul angan desak pada daer ah l apangan
f l oat NL2l ap; / / J uml ah t ul angan desak pada daer ah l apangan


8
f l oat DI A1t um; / / Di amet er t ul angan t ar i k pada daer ah t umpuan
f l oat NL1t um; / / J uml ah t ul angan t ar i k pada daer ah t umpuan
f l oat DI A2t um; / / Di amet er t ul angan desak pada daer ah t umpuan
f l oat NL2t um; / / J uml ah t ul angan desak pada daer ah t umpuan

f l oat AS; / / Luas t ul angan t ar i k
f l oat AS1; / / Luas t ul angan desak
f l oat HMI N; / / Ti nggi Mi ni mum
f l oat n; / / Rasi o Es/ Ec
f l oat f r ; / / Modul us Ker unt uhan l ent ur dar i bet on ( MPa)
f l oat LGN; / / Let ak Gar i s Net r al ( mm)
f l oat I cr ; / / Momen I ner si a Penampang Ret ak ( mm^4)
f l oat I g; / / Momen I ner si a Penampang Kot or ( mm^4)
f l oat I e; / / Momen I ner si a Ef ekt i f ( mm^4)
f l oat Mcr ; / / Momen Ret ak ( Nmm) ;

f l oat LENDUTAN; / / Lendut an pada t engah bent ang ( mm)
f l oat LENDUTAN_I J I N; / / Lendut an i j i n ( mm) ;
f l oat Lambda; / / Fakt or pengal i l endut an j angka panj ang


/ / / / / / / / / / / / / / / / / / / / / / / / / / /
/ / Var i abel Khusus Kol om/ /
/ / / / / / / / / / / / / / / / / / / / / / / / / / /
f l oat MUX; / / Momen ar ah x ul t i mi t ( Nm)
f l oat MUY; / / Momen ar ah y ul t i mi t ( Nm)
f l oat sel i mut _kol om; / / Tebal sel i mut pada kol om
f l oat _K; / / Fakt or kel angsi ngan

/ *******************************************************/
/ * VARI ABEL OPTI MASI DENGAN METODA FLEXI BLE POLYHEDRON */
/ *******************************************************/
i nt j um_susut ; / / J uml ah penyusut an ber t ur ut
i nt f ak_pl us; / / Fakt or penambah ( J STD=J VD+f ak_pl us)
i nt f ak_kal i ; / / Fakt or Pengal i ( J STD=J VD*f ak_kal i )
i nt no_st r ukt ur ; / / Nomor St r ukt ur
i nt J VD; / / J uml ah var i abel desai n
i nt J STD; / / J uml ah st r ukt ur desai n
i nt j _i t er asi _mak; / / J uml ah i t er asi maksi mum
i nt nvm[ mak] ; / / Bat as at as var i abel di skr i t nor mal
i nt nvk[ mak] ; / / Bat as at as var i abel di skr i t kol om
i nt nvb[ mak] ; / / Bat as at as var i abel di skr i t bal ok
i nt i t er asi _var ; / / J uml ah i t er asi unt uk mel angkah
i nt var _b[ mak] [ mak] ; / / Nomor var i abel bal ok di skr i t yang di gunakan
i nt var _k[ mak] [ mak] ; / / Nomor var i abel kol omdi skr i t yang di gunakan
i nt t anda_ar ah_b[ mak] ; / / Tanda ar ah- ar ah penel usur an bagi an bal ok
i nt t anda_ar ah_k[ mak] ; / / Tanda ar ah- ar ah penel usur an bagi an kol om
i nt var _b_j el ek[ mak] ; / / Koor di nat var i abel j el ek bagi an bal ok
i nt var _k_j el ek[ mak] ; / / Koor di nat var i abel j el ek bagi an kol om
i nt ar ah[ mak] ; / / Koor di nat ar ah penel usur an
i nt no_TS_t er j auh; / / Nomor ar ah yang pal i ng j auh
i nt var new_asl i [ mak] ; / / Var i abel t er j el ek hasi l penggandaan
i nt var new[ mak] ; / / Var i abel bar u ber t i pe i nt eger
i nt var _b_cb[ mak] ; / / Var i abel desai n bal ok bar u
i nt var _k_cb[ mak] ; / / Var i abel desai n kol ombar u
i nt var _b_cb_best [ mak] ; / / Var i abel desai n bal ok bar u t er bai k
i nt var _k_cb_best [ mak] ; / / Var i abel desai n kol ombar u t er bai k
i nt no_bal ok[ mak] ; / / I dent i f i kasi nomor bal ok dengan nomor bat ang
i nt no_kol om[ mak] ; / / I dent i f i kasi nomor kol omdengan nomor bat ang
i nt j um_bal ok; / / J uml ah bal ok pada st r ukt ur
i nt j um_kol om; / / J uml ah kol ompada st r ukt ur
i nt j s_bal ok; / / Nomor bal ok ( Pembant u)
i nt j s_kol om; / / Nomor kol om( Pembant u)
i nt l ompat ; / / I dent i f i kasi unt uk mel ompat dar i l oop

f l oat pat ok_f i t ; / / Var i abel Pat okan Fi t ness
f l oat f i nal t i ; / / Fakt or f i nal t i unt uk pel anggar an
f l oat f i t st r [ mak] ; / / Fi t nes st r ukt ur
f l oat f i t cb; / / Fi t ness bar u
f l oat f i t cb_best ; / / Fi t nes bar u yang t er bai k


9
f l oat kendal ast r [ mak] ; / / Kendal a st r ukt ur
f l oat har gast r [ mak] ; / / Har ga st r ukt ur ( Rp. )
f l oat kendal a; / / Kendal a
f l oat kendal asa; / / Kendal a pada saat st r ukt ur awal
f l oat har ga; / / Har ga ( Rp. )
f l oat XM_b[ mak] ; / / Koor di nat t i t i k Mi dl e bagi an bal ok
f l oat XM_k[ mak] ; / / Koor di nat t i t i k Mi dl e bagi an kol om
f l oat XS_b[ mak] ; / / Ar ah- ar ah penel usur an bagi an bal ok
f l oat XS_k[ mak] ; / / Ar ah- ar ah penel usur an bagi an kol om
f l oat TM[ mak] ; / / Koor di nat t i t i k Mi dl e
f l oat TS[ mak] ; / / Koor di nat t i t i k Sear ch
f l oat var pl us[ mak] ; / / Var i abel penambahan
f l oat var new_f [ mak] ; / / Var i abel bar u ber t i pe f l oat

/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
/ / Var i abel Kendal a Kol omBi aksi al / /
/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
f l oat kendal a_gaya; / / Kendal a gaya pada mat er i al
f l oat kendal a_po; / / Gaya t ekan maksi mumaki bat eksent r i si t as
f l oat kendal a_pn; / / Kendal a gaya t ekan
f l oat kendal a_mn; / / Kendal a momen

f l oat kendal a_r ; / / Kendal a r asi o penul angan
f l oat kendal a_r _mi n; / / Rasi o t ul angan mi ni mum
f l oat kendal a_r _mak; / / Rasi o t ul angan maksi mum

f l oat kendal a_sengkang; / / Kendal a sengkang
f l oat kendal a_t ul ; / / Kendal a j uml ah dan j ar ak t ul angan
f l oat kendal a_kel angsi ngan; / / Kendal a kel angsi ngan

/ / / / / / / / / / / / / / / / / / / / / / / / / / / /
/ / Var i abel Kendal a Bal ok / /
/ / / / / / / / / / / / / / / / / / / / / / / / / / / /
f l oat kendal a_r ho; / / Besar nya kendal a aki bat r asi o t ul angan
f l oat kendal a_r ho_b; / / Besar nya kendal a aki bat r asi o t ul angan bal ance
f l oat kendal a_r ho_m; / / Besar nya kendal a aki bat r asi o t ul angan mi ni mum
f l oat kendal a_sb; / / Besar nya kendal a aki bat kebut uhan sengkang
f l oat kendal a_M; / / Besar nya kendal a aki bat momen
f l oat kendal a_l endut an; / / Besar nya kendal a aki bat t i nggi mi ni mum


10
/ ***********************************************************************/
/ * FI LE : I NOUT. HPP */
/ * KUMPULAN SUBPROGRAM MASUKAN DAN KELUARAN */
/ ***********************************************************************/

/ ****************************************/
/ * SUBPROGRAM UNTUK MEMASUKAN DATA AWAL */
/ ****************************************/
voi d i nput _dat a( )
{
cout << " Nama f i l e i nput ( t anpa ekst ensi ) = " ;
ci n >> f i ;
st r cpy( f i nput , f i ) ;
st r cat ( f i nput , " . i np" ) ; / / i nput umum
st r cpy( f si si , f i ) ;
st r cat ( f si si , " . i sd" ) ; / / i nput si si di skr i t
st r cpy( f di al , f i ) ;
st r cat ( f di al , " . i dl " ) ; / / i nput di amet er t ul angan l ent ur
st r cpy( f j t l , f i ) ;
st r cat ( f j t l , " . i j l " ) ; / / i nput j uml ah t ul angan l ent ur
st r cpy( f di as, f i ) ;
st r cat ( f di as, " . i ds" ) ; / / i nput di amet er t ul angan sengkang
st r cpy( f j t s, f i ) ;
st r cat ( f j t s, " . i j s" ) ; / / i nput j ar ak t ul angan sengkang
i nt pi l i h_i nput ;
do
{
cl r scr ( ) ;
cout << " 1. I nput dat a umum\ n" ;
cout << " 2. I nput dat a di skr i t el emen\ n" ;
cout << " 3. Kel uar \ n" ;
cout << " Pi l i han ( 1- 3) = " ;
ci n >> pi l i h_i nput ;
i f ( pi l i h_i nput ==1)
{
i nput _dat a_umum( ) ;
}
i f ( pi l i h_i nput ==2)
{
i nput _dat a_di skr i t ( ) ;
}
}whi l e( pi l i h_i nput ! =3) ;
}

/ ****************************************/
/ * SUBPROGRAM UNTUK MEMASUKAN DATA UMUM */
/ ****************************************/
voi d i nput _dat a_umum( )
{
i nt i i np, j i np;
char uj i ;

/ / / / / / / / / / / / / / / / / / / / / / / / / /
/ / Memasukkan Dat a Umum/ /
/ / / / / / / / / / / / / / / / / / / / / / / / / /
cout << " I nput dat a awal \ n" ;
cout << " Nama f i l e i nput ( Tanpa Ekst ensi ) = " << f i nput << endl ;
do
{
cout << " Nama St r ukt ur ( Tanpa Spasi ) = " ;
ci n >> I SN;
cout << " J uml ah bat ang = " ;
ci n >> M;
cout << " J uml ah t i t i k kumpul = " ;
ci n >> NJ ;
cout << " J uml ah t i t i k kumpul yang di kekang = " ;
ci n >> NRJ ;
cout << " J uml ah pengekang t umpuan = " ;
ci n >> NR;
cout << " Kuat desak Kar akt er i st i k Bet on ( MPa) = " ;
ci n >> FC;

11
cout << " Kuat t ar i k baj a t ul angan l ent ur ( MPa) = " ;
ci n >> FY;
cout << " Kuat t ar i k baj a t ul angan sengkang ( MPa) = " ;
ci n >> FYS;

/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
/ / Hi t ung Par amet er Lai nnya Secar a Ot omat i s / /
/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
E=( 4700. *( sqr t ( FC) ) ) *1E6; / / ( N/ mm^2) - > ( N/ m^2)
G=( E/ 2. ) *( 1. +0. 15) ; / / ( N/ m^2)
ND=6. *NJ ;
N=ND- NR;

out put _par amet er _st r ukt ur al ( ) ;
cout << " \ n I ngi n mengul ang ( y/ t ) " ;
ci n >> uj i ;
i f ( uj i ! = ' y' )
{br eak; }
} whi l e( uj i == ' y' ) ;

/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
/ / Memasukkan Dat a Koor di nat Ti t i k Kumpul / /
/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
cout << " I nput kan koor di nat t i t i k kumpul ( m) , "
<< " pi l i h J = 0 unt uk kel uar \ n" ;
do
{
cout << " Ti t i k kumpul J = " ;
ci n >> j i np;
i f ( j i np == 0 )
{ br eak ; }
cout << " Koor di nat \ n" ;
cout << " X Y Z\ n" ;
ci n >> X[ j i np] >> Y[ j i np] >> Z[ j i np] ;
out put _koor di nat _t i t i k_kumpul ( ) ;
} whi l e( j i np ! = 0) ;

/ / / / / / / / / / / / / / / / / / / / / / / / / / / /
/ / Mengosongkan Pengekang / /
/ / / / / / / / / / / / / / / / / / / / / / / / / / / /
f or ( i nt j i np=1; j i np<=ND; j i np++)
{
J RL[ j i np] =0;
}

/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
/ / Memasukkan Dat a Pengekang J oi nt / /
/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
cout << endl << " I nput kan Pengekang t i t i k kumpul , "
<< " masukan 0 unt uk kel uar \ n" ;
do
{
cout << " Kekangan ke = " ;
ci n >> i i np;
i f ( i i np==0)
{
br eak ;
}
cout << " Ti t i k kumpul yang di kekang = " ;
ci n >> T_K[ i i np] ;
cout << " R ( 1 = di kekang, 0 = t ak di kekang) = " ;
ci n >> J RL[ 6*T_K[ i i np] - 5]
>> J RL[ 6*T_K[ i i np] - 4]
>> J RL[ 6*T_K[ i i np] - 3]
>> J RL[ 6*T_K[ i i np] - 2]
>> J RL[ 6*T_K[ i i np] - 1]
>> J RL[ 6*T_K[ i i np] ] ;
out put _pengekang_t i t i k_kumpul ( ) ;
}whi l e ( i i np ! = 0) ;



12
/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
/ / Memasukkan I nf or masi Bat ang / /
/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
cout << endl << " I nput kan i nf or masi bat ang, "
<< " pi l i h I = 0 unt uk kel uar \ n" ;
do
{
cout << " I ndeks bat ang = " ;
ci n >> i i np;
i f ( i i np == 0)
{ br eak ; }
cout << " t i t i k j = " ;
ci n >> J J [ i i np] ;
cout << " t i t i k k = " ;
ci n >> J K[ i i np] ;
cout << " Not asi unt uk menunj ukan nol at au t i daknya sudut a = " ;
ci n >> I A[ i i np] ;
i f ( I A[ i i np] ! = 0)
{
cout << " Sudut al f a t i dak 0, masukkan koor di nat t i t i k p
\ n" ;
cout << " Unt uk bat ang " << i i np << endl ;
cout << " XP YP ZP\ n" ;
ci n >> XP[ i i np] >> YP[ i i np] >> ZP[ i i np] ;
cout << endl ;
}
out put _i nf or masi _bat ang( ) ;
} whi l e ( i i np ! = 0 ) ;

/ / / / / / / / / / / / / / / / / / / / / / /
/ / Penul i san Ke Fi l e / /
/ / / / / / / / / / / / / / / / / / / / / / /
of st r eamt ul i s( f i nput ) ;
t ul i s << I SN << endl ;
t ul i s << M << endl ;
t ul i s << NJ << endl ;
t ul i s << NRJ << endl ;
t ul i s << NR << endl ;
t ul i s << E << endl ;
t ul i s << G << endl ;
t ul i s << FC << endl ;
t ul i s << FY << endl ;
t ul i s << FYS << endl ;
t ul i s << ND << endl ;
t ul i s << N << endl ;
t ul i s << " [ Koor di nat ] " << endl ;
f or ( i nt kt l =1; kt l <=NJ ; kt l ++)
{
t ul i s << kt l << endl ;
t ul i s << X[ kt l ] << endl ;
t ul i s << Y[ kt l ] << endl ;
t ul i s << Z[ kt l ] << endl ;
}
t ul i s << " [ Pengekang] " << endl ;
f or ( i nt i i np=1; i i np<=NRJ ; i i np++)
{
t ul i s << T_K[ i i np] << endl ;
t ul i s << J RL[ 6*T_K[ i i np] - 5] << endl ;
t ul i s << J RL[ 6*T_K[ i i np] - 4] << endl ;
t ul i s << J RL[ 6*T_K[ i i np] - 3] << endl ;
t ul i s << J RL[ 6*T_K[ i i np] - 2] << endl ;
t ul i s << J RL[ 6*T_K[ i i np] - 1] << endl ;
t ul i s << J RL[ 6*T_K[ i i np] ] << endl ;
}
t ul i s << " [ I nf or masi Bat ang] " << endl ;
f or ( i nt i i np=1; i i np<=M; i i np++)
{
t ul i s << i i np << endl ;
t ul i s << J J [ i i np] << endl ;
t ul i s << J K[ i i np] << endl ;
t ul i s << I A[ i i np] << endl ;

13
i f ( I A[ i i np] ! = 0)
{
t ul i s << XP[ i i np] << endl ;
t ul i s << YP[ i i np] << endl ;
t ul i s << ZP[ i i np] << endl ;
}
}
t ul i s. cl ose( ) ;
}

/ ***********************************************************/
/ * SUBPROGRAM UNTUK MEMASUKAN DATA DI SKRI T VARI ABEL DESAI N */
/ ***********************************************************/
voi d i nput _dat a_di skr i t ( )
{
char ul ang;
i nt bsi si , ksi si ;
i nt bDI A, kDI A;
i nt bNL, kNL;
i nt bDI AS, kDI AS;
i nt bJ S, kJ S;
cl r scr ( ) ;

/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
/ / Menggener asi Dat a Di skr i t Dan Di t ul i s Ke Fi l e / /
/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
do
{
/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
/ / Menul i s Ke Fi l e *. i sd ( I nput Si si Di skr i t ) / /
/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
of st r eamt ul i s1( f si si ) ;

/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
/ / Dat a Di skr i t Lebar Bal ok ( B) / /
/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
cout << " J uml ah dat a si si unt uk l ebar bal ok ( B) = " ;
ci n >> nsi si _B;
cout << " Bat as si si t er bawah ( mm) = " ;
ci n >> bsi si ;
cout << " Kenai kan si si ( mm) = " ;
ci n >> ksi si ;
si si _d_B[ 0] =bsi si ;
t ul i s1 << " [ Lebar Bal ok] " << endl ;
t ul i s1 << nsi si _B << endl ;
t ul i s1 << si si _d_B[ 0] << endl ;
f or ( i nt i t l 1=1; i t l 1<nsi si _B; i t l 1++)
{
si si _d_B[ i t l 1] =si si _d_B[ i t l 1- 1] +ksi si ;
t ul i s1 << si si _d_B[ i t l 1] << endl ;
}
cout << endl ;

/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
/ / Dat a Di skr i t Ti nggi Bal ok ( H) / /
/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
cout << " J uml ah dat a si si unt uk t i nggi bal ok ( H) = " ;
ci n >> nsi si _H;
cout << " Bat as si si t er bawah ( mm) = " ;
ci n >> bsi si ;
cout << " Kenai kan si si ( mm) = " ;
ci n >> ksi si ;
si si _d_H[ 0] =bsi si ;
t ul i s1 << " [ Ti nggi Bal ok] " << endl ;
t ul i s1 << nsi si _H << endl ;
t ul i s1 << si si _d_H[ 0] << endl ;
f or ( i nt i t l 1=1; i t l 1<nsi si _H; i t l 1++)
{
si si _d_H[ i t l 1] =si si _d_H[ i t l 1- 1] +ksi si ;
t ul i s1 << si si _d_H[ i t l 1] << endl ;
}

14
cout << endl ;

/ / / / / / / / / / / / / / / / / / / / / / / / / / / / /
/ / Dat a Di skr i t Si si Kol om/ /
/ / / / / / / / / / / / / / / / / / / / / / / / / / / / /
cout << " J uml ah dat a si si unt uk kol om= " ;
ci n >> nsi si _K;
cout << " Bat as si si t er bawah ( mm) = " ;
ci n >> bsi si ;
cout << " Kenai kan si si ( mm) = " ;
ci n >> ksi si ;
si si _d_K[ 0] =bsi si ;
t ul i s1 << " [ Si si Kol om] " << endl ;
t ul i s1 << nsi si _K << endl ;
t ul i s1 << si si _d_K[ 0] << endl ;
f or ( i nt i t l 1=1; i t l 1<nsi si _K; i t l 1++)
{
si si _d_K[ i t l 1] =si si _d_K[ i t l 1- 1] +ksi si ;
t ul i s1 << si si _d_K[ i t l 1] << endl ;
}
cout << endl ;

t ul i s1. cl ose( ) ;

/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
/ / Menul i s Ke Fi l e *. i dl ( I nput Di amet er Lent ur ) / /
/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
of st r eamt ul i s2( f di al ) ;
cout << " J uml ah dat a di amet er t ul angan ut ama = " ;
ci n >> nDI A;
cout << " Bat as di amet er t er bawah ( mm) = " ;
ci n >> bDI A;
cout << " Kenai kan di amet er ( mm) = " ;
ci n >> kDI A;
DI A_d[ 0] =bDI A;
t ul i s2 << " [ Di amet er Tul anganUt ama] " << endl ;
t ul i s2 << nDI A << endl ;
t ul i s2 << DI A_d[ 0] << endl ;
f or ( i nt i t l 2=1; i t l 2<nDI A; i t l 2++)
{
DI A_d[ i t l 2] =DI A_d[ i t l 2- 1] +kDI A;
t ul i s2 << DI A_d[ i t l 2] << endl ;
}
cout << endl ;
t ul i s2. cl ose( ) ;


/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
/ / Menul i s Ke Fi l e *. i j l ( I nput J uml ah t ul angan Lent ur ) / /
/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
of st r eamt ul i s3( f j t l ) ;
cout << " J uml ah dat a j uml ah t ul angan = " ;
ci n >> nNL;
cout << " Bat as j uml ah t ul angan t er bawah = " ;
ci n >> bNL;
cout << " Kenai kan j uml ah t ul angan = " ;
ci n >> kNL;
NL_d[ 0] =bNL;
t ul i s3 << " [ J uml ahTul anganUt ama] " << endl ;
t ul i s3 << nNL << endl ;
t ul i s3 << NL_d[ 0] << endl ;
f or ( i nt i t l 3=1; i t l 3<nNL; i t l 3++)
{
NL_d[ i t l 3] =NL_d[ i t l 3- 1] +kNL;
t ul i s3 << NL_d[ i t l 3] << endl ;
}
cout << endl ;
t ul i s3. cl ose( ) ;




15

/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
/ / Menul i s Ke Fi l e *. i ds ( I nput J ar ak Sengkang) / /
/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
of st r eamt ul i s4( f di as) ;
cout << " J uml ah dat a di amet er t ul angan sengkang = " ;
ci n >> nDI AS;
cout << " Bat as di amet er sengkang t er bawah ( mm) = " ;
ci n >> bDI AS;
cout << " Kenai kan di amet er sengkang ( mm) = " ;
ci n >> kDI AS;
DI AS_d[ 0] =bDI AS;
t ul i s4 << " [ Di amet er Tul anganSengkang] " << endl ;
t ul i s4 << nDI AS << endl ;
t ul i s4 << DI AS_d[ 0] << endl ;
f or ( i nt i t l 4=1; i t l 4<nDI AS; i t l 4++)
{
DI AS_d[ i t l 4] =DI AS_d[ i t l 4- 1] +kDI AS;
t ul i s4 << DI AS_d[ i t l 4] << endl ;
}
cout << endl ;
t ul i s4. cl ose( ) ;

/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
/ / Menul i s Ke Fi l e *. i j s ( I nput J ar ak Sengkang) / /
/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
of st r eamt ul i s5( f j t s) ;
cout << " J uml ah dat a j ar ak sengkang = " ;
ci n >> nJ S;
cout << " Bat as j ar ak sengkang t er bawah ( mm) = " ;
ci n >> bJ S;
cout << " Kenai kan j ar ak sengkang ( mm) = " ;
ci n >> kJ S;
J S_d[ 0] =bJ S;
t ul i s5 << " [ J ar akAnt ar Sengkang] " << endl ;
t ul i s5 << nJ S << endl ;
t ul i s5 << J S_d[ 0] << endl ;
f or ( i nt i t l 5=1; i t l 5<nJ S; i t l 5++)
{
J S_d[ i t l 5] =J S_d[ i t l 5- 1] +kJ S;
t ul i s5 << J S_d[ i t l 5] << endl ;
}
cout << endl ;
t ul i s5. cl ose( ) ;

cout << " Ul ang ( y/ t ) " ;
ci n >> ul ang;
}whi l e( ul ang ==' y' ) ;
}

/ ****************************************************/
/ * SUBPROGRAM UNTUK MEMBACA DATA DARI FI LE MASUKKAN */
/ ****************************************************/
voi d baca_dat a( )
{
i f st r eambaca( f i nput ) ;
baca >> I SN;
baca >> M;
baca >> NJ ;
baca >> NRJ ;
baca >> NR;
baca >> E;
baca >> G;
baca >> FC;
baca >> FY;
baca >> FYS;
baca >> ND;
baca >> N;
baca >> SubName;
f or ( i nt ki np=1; ki np<=NJ ; ki np++)
{

16
baca >> ki np;
baca >> X[ ki np] ;
baca >> Y[ ki np] ;
baca >> Z[ ki np] ;
}
baca >> SubName;
f or ( i nt i i np=1; i i np<=NRJ ; i i np++)
{
baca >> T_K[ i i np] ;
baca >> J RL[ 6*T_K[ i i np] - 5] ;
baca >> J RL[ 6*T_K[ i i np] - 4] ;
baca >> J RL[ 6*T_K[ i i np] - 3] ;
baca >> J RL[ 6*T_K[ i i np] - 2] ;
baca >> J RL[ 6*T_K[ i i np] - 1] ;
baca >> J RL[ 6*T_K[ i i np] ] ;
}
baca >> SubName;
f or ( i nt i i np=1; i i np<=M; i i np++)
{
baca >> i i np;
baca >> J J [ i i np] ;
baca >> J K[ i i np] ;
baca >> I A[ i i np] ;
i f ( I A[ i i np] ! = 0)
{
baca >> XP[ i i np] ;
baca >> YP[ i i np] ;
baca >> ZP[ i i np] ;
}
}
baca. cl ose( ) ;

/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
/ / Membaca Dat a Di skr i t Si si Dar i Fi l e *. i sd / /
/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
i f st r eambaca1( f si si ) ;

/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
/ / Membaca Dat a Di skr i t Lebar Bal ok ( B) / /
/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
baca1 >> SubName;
baca1 >> nsi si _B;
f or ( i nt i i np=0; i i np<nsi si _B; i i np++)
{
baca1 >> si si _d_B[ i i np] ;
}

/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
/ / Membaca Dat a Di skr i t Ti nggi Bal ok ( H) / /
/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
baca1 >> SubName;
baca1 >> nsi si _H;
f or ( i nt i i np=0; i i np<nsi si _H; i i np++)
{
baca1 >> si si _d_H[ i i np] ;
}

/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
/ / Membaca Dat a Di skr i t Si si Kol om/ /
/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
baca1 >> SubName;
baca1 >> nsi si _K;
f or ( i nt i i np=0; i i np<nsi si _K; i i np++)
{
baca1 >> si si _d_K[ i i np] ;
}

baca1. cl ose( ) ;

i f st r eambaca2( f di al ) ;
baca2 >> SubName;

17
baca2 >> nDI A;
f or ( i nt i i np=0; i i np<nDI A; i i np++)
{
baca2 >> DI A_d[ i i np] ;
}
baca2. cl ose( ) ;

i f st r eambaca3( f j t l ) ;
baca3 >> SubName;
baca3 >> nNL;
f or ( i nt i i np=0; i i np<nNL; i i np++)
{
baca3 >> NL_d[ i i np] ;
}
baca3. cl ose( ) ;

i f st r eambaca4( f di as) ;
baca4 >> SubName;
baca4 >> nDI AS;
f or ( i nt i i np=0; i i np<nDI AS; i i np++)
{
baca4 >> DI AS_d[ i i np] ;
}
baca4. cl ose( ) ;

i f st r eambaca5( f j t s) ;
baca5 >> SubName;
baca5 >> nJ S;
f or ( i nt i i np=0; i i np<nJ S; i i np++)
{
baca5 >> J S_d[ i i np] ;
}
baca5. cl ose( ) ;
}

/ **************************************************************/
/ * SUBPROGRAM UNTUK MENAMPI LKAN PARAMETER STRUKTURAL KE LAYAR */
/ **************************************************************/
voi d out put _par amet er _st r ukt ur al ( )
{
cout << " St r ukt ur Por t al Ruang " << I SN << " \ n\ n" ;
cout << " Par amet er St r ukt ur \ n" ;
cout << " J uml ah bat ang : " << M << endl ;
cout << " DOF : " << N << endl ;
cout << " J uml ah j oi nt : " << NJ << endl ;
cout << " J uml ah pengekang t umpuan : " << NR << endl ;
cout << " J uml ah t i t i k kumpul yang di kekang : " << NRJ << endl ;
cout << " Modul us El ast i si t as aksi al : " << E << " N/ m^2\ n" ;
cout << " Modul us Geser : " << G << " N/ m^2\ n\ n" ;
cout << " Pr oper t i El emen Mat er i al \ n" ;
cout << " Kuat desak bet on kar akt er i st i k : " << FC << " MPa\ n" ;
cout << " Kuat t ar i k baj a t ul angan : " << FY << " MPa\ n" ;
cout << " Kuat t ar i k t ul angan sengkang : " << FYS << " MPa\ n" ;
}

/ ************************************************************/
/ * SUBPROGRAM UNTUK MENAMPI LKAN KOORDI NAT STRUKTUR KE LAYAR */
/ ************************************************************/
voi d out put _koor di nat _t i t i k_kumpul ( )
{
cout << " \ n Koor di nat Ti t i k Kumpul ( m) \ n" ;
cout << " Ti t i k X Y Z \ n" ;
f or ( i nt kout =1; kout <=NJ ; kout ++)
{
cout << set i osf l ags( i os: : l ef t ) ;
cout << " " << set w( 10) << kout
<< set w( 14) << X[ kout ]
<< set w( 14) << Y[ kout ]
<< set w( 14) << Z[ kout ] << endl ;
}
}

18

/ **********************************************************/
/ * SUBPROGRAM UNTUK MENAMPI LKAN I NFORMASI BATANG KE LAYAR */
/ **********************************************************/
voi d out put _i nf or masi _bat ang( )
{
cout << " \ n I nf or masi Bat ang \ n" ;
cout << " Bat ang J J J K I A\ n" ;
f or ( i nt i out =1; i out <=M; i out ++)
{
cout << set i osf l ags( i os: : l ef t ) ;
cout << " " << set w( 8) << i out
<< set w( 8) << J J [ i out ]
<< set w( 8) << J K[ i out ]
<< set w( 3) << I A[ i out ] << endl ;
i f ( I A[ i out ] ! = 0)
{
cout << set i osf l ags( i os: : l ef t ) ;
cout << " XP = " << set w( 12) << XP[ i out ] ;
cout << " YP = " << set w( 12) << YP[ i out ] << ' \ t ' ;
cout << " ZP = " << set w( 12) << ZP[ i out ] << endl ;
cout << endl ;
}
}
}

/ ****************************************************************/
/ * SUBPROGRAM UNTUK MENAMPI LKAN PENGEKANG TI TI K KUMPUL KE LAYAR */
/ ****************************************************************/
voi d out put _pengekang_t i t i k_kumpul ( )
{
cout << " \ n Pengekang Ti t i k Kumpul \ n" ;
cout << " Ti t i k J R1 J R2 J R3 J R4 J R5 J R6\ n" ;
f or ( i nt i out =1; i out <=NRJ ; i out ++)
{
cout << set i osf l ags( i os: : l ef t ) ;
cout << " " << set w( 10) <<T_K[ i out ]
<< set w( 6) << J RL[ 6*T_K[ i out ] - 5]
<< set w( 6) << J RL[ 6*T_K[ i out ] - 4]
<< set w( 6) << J RL[ 6*T_K[ i out ] - 3]
<< set w( 6) << J RL[ 6*T_K[ i out ] - 2]
<< set w( 6) << J RL[ 6*T_K[ i out ] - 1]
<< set w( 6) << J RL[ 6*T_K[ i out ] ] << endl ;
}
}

/ ***********************************************************/
/ * SUBPROGRAM UNTUK MENAMPI LKAN GAYA UJ UNG BATANG KE LAYAR */
/ ***********************************************************/
voi d out put _beban_bat ang( )
{
cout << " \ n Gaya di Uj ung Bat ang Ter kekang Aki bat Beban ( Nm) \ n"
<< " Bat ang AML1 AML2 AML3 "
<< " AML4 AML5 AML6\ n"
<< " AML7 AML8 AML9 "
<< " AML10 AML11 AML12\ n" ;
f or ( i nt kout =1; kout <=M; kout ++)
{
cout << set i osf l ags( i os: : l ef t ) ;
cout << " " << set w( 8) << kout
<< set w( 12) << AML[ 1] [ kout ]
<< set w( 12) << AML[ 2] [ kout ]
<< set w( 12) << AML[ 3] [ kout ]
<< set w( 12) << AML[ 4] [ kout ]
<< set w( 12) << AML[ 5] [ kout ]
<< set w( 12) << AML[ 6] [ kout ] << endl ;
cout << " "
<< set w( 12) << AML[ 7] [ kout ]
<< set w( 12) << AML[ 8] [ kout ]
<< set w( 12) << AML[ 9] [ kout ]
<< set w( 12) << AML[ 10] [ kout ]

19
<< set w( 12) << AML[ 11] [ kout ]
<< set w( 12) << AML[ 12] [ kout ] << endl ;
}
}

/ *****************************************************/
/ * SUBPROGRAM UNTUK MENAMPI LKAN BEBAN TI TI K KE LAYAR */
/ *****************************************************/
voi d out put _beban_t i t i k( )
{
cout << " \ n Beban Ti t i k ( N) \ n"
<< " Ti t i k Ar ah 1 Ar ah 2 Ar ah 3 "
<< " Ar ah 4 Ar ah 5 Ar ah 6\ n" ;
f or ( i nt kout =1; kout <=NJ ; kout ++)
{
cout << set i osf l ags( i os: : l ef t ) ;
cout << " " << set w( 8) << kout
<< set w( 12) << AJ [ ( ( 6*kout ) - 5) ]
<< set w( 12) << AJ [ ( ( 6*kout ) - 4) ]
<< set w( 12) << AJ [ ( ( 6*kout ) - 3) ]
<< set w( 12) << AJ [ ( ( 6*kout ) - 2) ]
<< set w( 12) << AJ [ ( ( 6*kout ) - 1) ]
<< set w( 12) << AJ [ ( 6*kout ) ] << endl ;
}
}

20
/ ***********************************************************************/
/ * FI LE : STRUKTUR. HPP */
/ * KUMPULAN SUBPROGRAM UNTUK MENGHI TUNG STRUKTUR */
/ * DI KEMBANGKAN DARI WEAVER & GERE */
/ ***********************************************************************/

/ ************************************************************/
/ * SUBPROGRAM MENGHI TUNG GAYA DAN PERPI NDAHAN PADA STRUKTUR */
/ ************************************************************/
voi d st r ukt ur ( )
{
kekakuan_bat ang( ) ;
banf ac( N, NB, SFF) ;
beban( ) ;
bansol ( N, NB, SFF, AC, DF) ;
hasi l ( ) ;
}

/ *********************************/
/ * SUBPROGRAM MENGHI TUNG I NERSI A */
/ *********************************/
voi d i ner si a( )
{
j s_bal ok=0;
j s_kol om=0;
f or ( i nt i i n=1; i i n<=M; i i n++)
{
/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
/ / Memer i ksa Kemi r i ngan Bat ang / /
/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
per i ksa_bat ang( i i n) ;

/ / / / / / / / / / / / / / / / / / / / / / / / /
/ / Bat ang Non Ver t i kal / /
/ / / / / / / / / / / / / / / / / / / / / / / / /
i f ( CXZ>0. 001)
{
/ / ( mm) - > ( m)
b[ i i n] =i si ( var _b[ no_st r ukt ur ] [ 0+( 12*j s_bal ok) ] , si si _d_B) / 1000. ;
h[ i i n] =i si ( var _b[ no_st r ukt ur ] [ 1+( 12*j s_bal ok) ] , si si _d_H) / 1000. ;
j s_bal ok++;
}

/ / / / / / / / / / / / / / / / / / / / /
/ / Bat ang Ver t i kal / /
/ / / / / / / / / / / / / / / / / / / / /
el se
{
/ / ( mm) - > ( m)
b[ i i n] =i si ( var _k[ no_st r ukt ur ] [ 0+( 5*j s_kol om) ] , si si _d_K) / 1000. ;
h[ i i n] =b[ i i n] ;
j s_kol om++;
}

/ / / / / / / / / / / / / / / / / / / / / / / / / / /
/ / Menghi t ung Luas ( m^2) / /
/ / / / / / / / / / / / / / / / / / / / / / / / / / /
AX[ i i n] =b[ i i n] *h[ i i n] ;


/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
/ / Menghi t ung Konst ant a Punt i r / /
/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
i f ( b[ i i n] <=h[ i i n] )
{
XI [ i i n] =( ( ( ( 1. / 3. ) - ( 0. 21*b[ i i n] / h[ i i n] *
( ( 1. - ( pow( b[ i i n] , 4) / ( 12. *( pow( h[ i i n] , 4) ) ) ) )
) ) ) ) *( h[ i i n] ) *( pow( b[ i i n] , 3) ) ) ;
}
el se
{

21
/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
/ / For mul a Di ambi l Dar i Buku Roar k' s For mul as f or St r ess & St r ai n / /
/ / War r en C. Young 1989 hal aman 348 / /
/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
f l oat _a=0. 5*b[ i i n] ;
f l oat _b=0. 5*h[ i i n] ;
XI [ i i n] =_a*( pow( _b, 3) ) *
(
( 16. / 3. ) - ( 3. 36*_b/ _a) *( 1. - ( pow( _b, 4) ) / ( 12. *pow( _a, 4) ) )
) ;
}

/ / / / / / / / / / / / / / / / / / /
/ / Momen I ner si a / /
/ / / / / / / / / / / / / / / / / / /
YI [ i i n] =h[ i i n] *( pow( b[ i i n] , 3) ) / 12. ;
ZI [ i i n] =b[ i i n] *( pow( h[ i i n] , 3) ) / 12. ;
}
}

/ ***********************************************/
/ * SUBPROGRAM MERAKI T MATRI K KEKAKUAN STRUKTUR */
/ ***********************************************/
voi d kekakuan_bat ang( )
{
/ / / / / / / / / / / / / / / / / / / / / / /
/ / I ni si al i sasi Awal / /
/ / / / / / / / / / / / / / / / / / / / / / /
NB=0. ;
I R=0;
I C=0;
f or ( i nt i r =1; i r <=M; i r ++)
{
R11[ i r ] =0. ; R12[ i r ] =0. ; R13[ i r ] =0. ;
R21[ i r ] =0. ; R22[ i r ] =0. ; R23[ i r ] =0. ;
R31[ i r ] =0. ; R32[ i r ] =0. ; R33[ i r ] =0. ;
}

/ / / / / / / / / / / / / / / / / / / / / / / / / / / / /
/ / Membent uk Mat r i k Rot asi / /
/ / / / / / / / / / / / / / / / / / / / / / / / / / / / /
f or ( i nt i r =1; i r <=M; i r ++)
{
i f ( ( 6*( abs( J K[ i r ] - J J [ i r ] ) +1) ) >NB)
{
NB=( 6*( abs( J K[ i r ] - J J [ i r ] ) +1) ) ;
}
per i ksa_bat ang( i r ) ;
i f ( I A[ i r ] ! =0)
{
XPS=XP[ i r ] - ( X[ J J [ i r ] ] ) ;
YPS=YP[ i r ] - ( Y[ J J [ i r ] ] ) ;
ZPS=ZP[ i r ] - ( Z[ J J [ i r ] ] ) ;
}

/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
/ / Membent uk Mat r i k Rot asi Unt uk Bat ang Ver t i kal / /
/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
i f ( CXZ<=0. 001)
{
R11[ i r ] =0. ; R12[ i r ] =Cy; R13[ i r ] =0. ;
R21[ i r ] =( - Cy) ; R22[ i r ] =0. ; R23[ i r ] =0. ;
R31[ i r ] =0. ; R32[ i r ] =0. ; R33[ i r ] =1. ;
i f ( I A[ i r ] ==0)
{
cont i nue;
}
COSA=( - XPS*Cy) / ( sqr t ( XPS*XPS+ZPS*ZPS) ) ;
SI NA=( - ZPS) / ( sqr t ( XPS*XPS+ZPS*ZPS) ) ;
R21[ i r ] =( - Cy*COSA) ;
R23[ i r ] =SI NA;

22
R31[ i r ] =Cy*SI NA;
R33[ i r ] =COSA;
cont i nue;
}

/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
/ / Membent uk Mat r i k Rot asi Unt uk Bat ang Non Ver t i kal / /
/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
R11[ i r ] =CX; R12[ i r ] =Cy; R13[ i r ] =CZ;
R21[ i r ] =( - CX*Cy) / CXZ; R22[ i r ] =CXZ; R23[ i r ] =( - Cy*CZ) / CXZ;
R31[ i r ] =( - CZ) / CXZ; R32[ i r ] =0. ; R33[ i r ] =CX/ CXZ;
i f ( I A[ i r ] ==0)
{
cont i nue;
}
YPG=R21[ i r ] *XPS+R22[ i r ] *YPS+R23[ i r ] *ZPS;
ZPG=R31[ i r ] *XPS+R32[ i r ] *YPS+R33[ i r ] *ZPS;
COSA=YPG/ ( sqr t ( YPG*YPG+ZPG*ZPG) ) ;
SI NA=ZPG/ ( sqr t ( YPG*YPG+ZPG*ZPG) ) ;
R21[ i r ] =( ( - CX*Cy*COSA) - CZ*SI NA) / CXZ; R22[ i r ] =CXZ*COSA;
R23[ i r ] =( ( - Cy*CZ*COSA) +CX*SI NA) / CXZ;
R31[ i r ] =( CX*Cy*SI NA- CZ*COSA) / CXZ; R32[ i r ] =( - CXZ*SI NA) ;
R33[ i r ] =( Cy*CZ*SI NA+CX*COSA) / CXZ;
}

/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
/ / I ni si al i sasi Akumul at or N1 = 0 / /
/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
i nt N1=0;

/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
/ / Mengi si I ndeks Per pi ndahan / /
/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
f or ( i nt i r =1; i r <=ND; i r ++)
{
N1+=J RL[ i r ] ;
i f ( ( J RL[ i r ] ) <=0)
{
I D[ i r ] =i r - N1;
cont i nue ;
}
I D[ i r ] =N+N1;
}

/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
/ / Mengosongkan Mat r i k Kekakuan SFF / /
/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
f or ( i nt i r =1; i r <=N; i r ++)
{
f or ( i nt j r =1; j r <=NB; j r ++)
{
SFF[ i r ] [ j r ] =0. ;
}
}

/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
/ / Pembent ukan Mat r i k Kekakuan Bat ang / /
/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
f or ( i nt i r =1; i r <=M; i r ++)
{
per i ksa_bat ang( i r ) ;

/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
/ / Mengi si Mat r i k Kekakuan Bat ang Pada Ar ah Lokal / /
/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
i si _mat r i k_kekakuan( i r ) ;

/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
/ / Membent uk Mat r i k Kekakuan Bat ang Unt uk Sumbu Ar ah St r ukt ur / /
/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
f or ( i nt j r =1; j r <=4; j r ++)

23
{
f or ( i nt kr =( ( 3*j r ) - 2) ; kr <=12; kr ++)
{
SMS[ ( ( 3*j r ) - 2) ] [ kr ] =R11[ i r ] *SMRT[ ( ( 3*j r ) - 2) ] [ kr ]
+R21[ i r ] *SMRT[ ( ( 3*j r ) - 1) ] [ kr ]
+R31[ i r ] *SMRT[ ( 3*j r ) ] [ kr ] ;
SMS[ ( ( 3*j r ) - 1) ] [ kr ] =R12[ i r ] *SMRT[ ( ( 3*j r ) - 2) ] [ kr ]
+R22[ i r ] *SMRT[ ( ( 3*j r ) - 1) ] [ kr ]
+R32[ i r ] *SMRT[ ( 3*j r ) ] [ kr ] ;
SMS[ ( 3*j r ) ] [ kr ] =R13[ i r ] *SMRT[ ( ( 3*j r ) - 2) ] [ kr ]
+R23[ i r ] *SMRT[ ( ( 3*j r ) - 1) ] [ kr ]
+R33[ i r ] *SMRT[ ( 3*j r ) ] [ kr ] ;
}
}

/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
/ / Mengi si Vekt or I ndeks Per pi ndahan Bat ang / /
/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
i ndeks_bat ang( i r ) ;

/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
/ / Mengambi l Mat r i k Kekakuan / /
/ / Unt uk Per pi ndahan Ti t i k Kumpul Yang Bebas ( SFF) / /
/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
f or ( i nt j r =1; j r <=MD; j r ++)
{
i f ( J RL[ I M[ j r ] ] ==0)
{
f or ( i nt kr =j r ; kr <=MD; kr ++)
{
i f ( J RL[ I M[ kr ] ] ==0)
{
I R=I D[ I M[ j r ] ] ;
I C=I D[ I M[ kr ] ] ;
i f ( I R>=I C)
{
i nt I TEM=I R;
I R=I C;
I C=I TEM;
}
I C=( I C- I R+1) ;
SFF[ I R] [ I C] =( ( SFF[ I R] [ I C] ) +( SMS[ j r ] [ kr ] ) ) ;
}
}
}
}
}
}

/ *****************************************************/
/ * SUBPROGRAM UNTUK MENGOLAH HASI L HI TUNGAN STRUKTUR */
/ *****************************************************/
voi d hasi l ( )
{
/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
/ / I ni si al i sasi Vekt or Per pi ndahan = 0 / /
/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
i nt i hs=N+1;
f or ( i nt j hs=1; j hs<=ND; j hs++)
{
i f ( J RL[ ( ND- j hs+1) ] ==0)
{
i hs=( i hs- 1) ;
DJ [ ( ND- j hs+1) ] =0. ;
}
el se
{
DJ [ ( ND- j hs+1) ] =0. ;
}
}


24
/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
/ / Mengi si Vekt or Per pi ndahan Semua Ti t i k Kumpul / /
/ / Dal amAr ah Sumbu Gl obal / /
/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
i hs=N+1;
f or ( i nt j hs=1; j hs<=ND; j hs++)
{
i f ( J RL[ ( ND- j hs+1) ] ==0)
{
i hs=( i hs- 1) ;
DJ [ ( ND- j hs+1) ] =DF[ i hs] ;
}
el se
{
DJ [ ( ND- j hs+1) ] =0. ;
}
}

/ / / / / / / / / / / / / / / / / / / / / / / /
/ / Gaya Pada St r ukt ur / /
/ / / / / / / / / / / / / / / / / / / / / / / /
f or ( i nt i h=1; i h<=M; i h++)
{
per i ksa_bat ang( i h) ;

/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
/ / Mengi si Mat r i k Kekakuan Bat ang Pada Ar ah Sumbu Lokal / /
/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
i si _mat r i k_kekakuan( i h) ;

/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
/ / Mengi si Vekt or I ndeks Per pi ndahan Bat ang / /
/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
i ndeks_bat ang( i h) ;

/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
/ / Mengi si Vekt or Gaya Uj ung Bat ang Akhi r / /
/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
f or ( i nt j h=1; j h<=MD; j h++)
{
/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
/ / I ni si al i sasi Gaya Uj ung Bat ang Aki bat Per pi ndahan = 0 / /
/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
AMD[ j h] =0. ;

/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
/ / Mengi si Vekt or Gaya Di Uj ung Bat ang / /
/ / Aki bat Per pi ndahan Ti t i k Kumpul / /
/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
f or ( i nt kh=1; kh<=MD; kh++)
{
AMD[ j h] =AMD[ j h] +SMRT[ j h] [ kh] *DJ [ I M[ kh] ] ;
}
AM[ i h] [ j h] =AML[ j h] [ i h] +AMD[ j h] ;
}

per i ksa_bat ang( i h) ;

/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
/ / Menyi mpan Gaya Unt uk Per hi t ungan Bal ok / /
/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
i f ( CXZ>0. 001)
{
/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
/ / Momen di t engah bent ang ( Nm) / /
/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
MLAP[ i h] =( - AM[ i h] [ 6] )
+( 0. 125*W[ i h] *pow( EL[ i h] , 2) ) ;

/ / / / / / / / / / / / / / / / / / / / / / / / / / / / /
/ / Momen Pada Tumpuan ( Nm) / /

25
/ / / / / / / / / / / / / / / / / / / / / / / / / / / / /
MTUM_KI [ i h] =( - AM[ i h] [ 6] ) ;
MTUM_KA[ i h] =AM[ i h] [ 12] ;

/ / / / / / / / / / / / / / / / / / / /
/ / Gaya Geser ( N) / /
/ / / / / / / / / / / / / / / / / / / /
GESER_KI [ i h] =AM[ i h] [ 2] ;
GESER_KA[ i h] =( - AM[ i h] [ 8] ) ;
}

/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
/ / Menyi mpan Gaya Unt uk Per hi t ungan Kol omBi aksi al / /
/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
el se
{
/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
/ / Gaya Aksi al Dan Momen ( N) / /
/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
PK[ i h] =f abs( AM[ i h] [ 7] ) ;
MKX[ i h] =f abs( AM[ i h] [ 10] ) ;
MKY[ i h] =f abs( AM[ i h] [ 12] ) ;

/ / / / / / / / / / / / / / / / / / / /
/ / Gaya Geser ( N) / /
/ / / / / / / / / / / / / / / / / / / /
i f ( f abs( AM[ i h] [ 8] ) >f abs( AM[ i h] [ 9] ) )
{
GK[ i h] =f abs( AM[ i h] [ 8] ) ;
}
el se
{
GK[ i h] =f abs( AM[ i h] [ 9] ) ;
}
}

/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
/ / I ni si al i sasi Vekt or Reaksi Tumpuan / /
/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
f or ( i nt j h=1; j h<=4; j h++)
{
i f ( J RL[ I M[ ( ( 3*j h) - 2) ] ] ==1)
{
AR[ I M[ ( ( 3*j h) - 2) ] ] =0. ;
}
i f ( J RL[ I M[ ( ( 3*j h) - 1) ] ] ==1)
{
AR[ I M[ ( ( 3*j h) - 1) ] ] =0. ;
}
i f ( J RL[ I M[ ( 3*j h) ] ] ==1)
{
AR[ I M[ ( 3*j h) ] ] =0. ;
}
}

/ / / / / / / / / / / / / / / / / / / /
/ / Reaksi Tumpuan / /
/ / / / / / / / / / / / / / / / / / / /
f or ( i nt j h=1; j h<=4; j h++)
{
i nt J 1=( ( 3*j h) - 2) , J 2=( ( 3*j h) - 1) , J 3=( 3*j h) ;
i nt I 1=I M[ J 1] , I 2=I M[ J 2] , I 3=I M[ J 3] ;
i f ( J RL[ I 1] ==1)
{
AR[ I 1] =AR[ I 1]
+R11[ i h] *AMD[ J 1]
+R21[ i h] *AMD[ J 2]
+R31[ i h] *AMD[ J 3] ;
}
i f ( J RL[ I 2] ==1)
{

26
AR[ I 2] =AR[ I 2]
+R12[ i h] *AMD[ J 1]
+R22[ i h] *AMD[ J 2]
+R32[ i h] *AMD[ J 3] ;
}
i f ( J RL[ I 3] ==1)
{
AR[ I 3] =AR[ I 3]
+R13[ i h] *AMD[ J 1]
+R23[ i h] *AMD[ J 2]
+R33[ i h] *AMD[ J 3] ;
}
}
}

/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
/ / Menghi t ung Reaksi Tumpuan Unt uk Ti t i k Ter kekang / /
/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
f or ( i nt i h=1; i h<=ND; i h++)
{
i f ( J RL[ i h] ==0)
{
cont i nue;
}
AR[ i h] =AR[ i h] - AJ [ i h] - AE[ i h] ;
}
}

/ ************************************************/
/ * SUBPROGRAM UNTUK MEMERI KSA KEMI RI NGAN BATANG */
/ ************************************************/
voi d per i ksa_bat ang( i nt per b)
{
EL[ per b] = sqr t (
( pow( ( ( X[ J K[ per b] ] ) - ( X[ J J [ per b] ] ) ) , 2) )
+( pow( ( ( Y[ J K[ per b] ] ) - ( Y[ J J [ per b] ] ) ) , 2) )
+( pow( ( ( Z[ J K[ per b] ] ) - ( Z[ J J [ per b] ] ) ) , 2) ) ) ;
CX=( ( X[ J K[ per b] ] ) - ( X[ J J [ per b] ] ) ) / EL[ per b] ;
Cy=( ( Y[ J K[ per b] ] ) - ( Y[ J J [ per b] ] ) ) / EL[ per b] ;
CZ=( ( Z[ J K[ per b] ] ) - ( Z[ J J [ per b] ] ) ) / EL[ per b] ;
CXZ = f abs( sqr t ( CX*CX + CZ*CZ) ) ;
}

/ ****************************************************************/
/ * SUBPROGRAM UNTUK MENGHI TUNG VEKTOR I NDEKS PERPI NDAHAN BATANG */
/ ****************************************************************/
voi d i ndeks_bat ang( i nt i b)
{
I M[ 1] =( ( 6. *J J [ i b] ) - 5. ) ; I M[ 2] =( ( 6. *J J [ i b] ) - 4. ) ;
I M[ 3] =( ( 6. *J J [ i b] ) - 3. ) ; I M[ 4] =( ( 6. *J J [ i b] ) - 2. ) ;
I M[ 5] =( ( 6. *J J [ i b] ) - 1. ) ; I M[ 6] =( 6. *J J [ i b] ) ;
I M[ 7] =( ( 6. *J K[ i b] ) - 5. ) ; I M[ 8] =( ( 6. *J K[ i b] ) - 4. ) ;
I M[ 9] =( ( 6. *J K[ i b] ) - 3. ) ; I M[ 10] =( ( 6. *J K[ i b] ) - 2. ) ;
I M[ 11] =( ( 6. *J K[ i b] ) - 1. ) ; I M[ 12] =( 6. *J K[ i b] ) ;
}

/ ********************************************************************/
/ * SUBPROGRAM UNTUK MENGI SI MATRI K KEKAKUAN BATANG PADA SUMBU LOKAL */
/ ********************************************************************/
voi d i si _mat r i k_kekakuan( i nt i mk)
{
/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
/ / Mengosongkan Mat r i k Kekakuan Bat ang Lokal / /
/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
f or ( i nt i s=1; i s<=12; i s++)
{
f or ( i nt j s=1; j s<=12; j s++)
{
SM[ i s] [ j s] =0. ;
}
}

27

/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
/ / Menghi t ung Del apan Konst ant a / /
/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
f l oat SCM1A=E*AX[ i mk] / EL[ i mk] ;
f l oat SCM1B=G*XI [ i mk] / EL[ i mk] ;
f l oat SCM2Y=4. 0*E*YI [ i mk] / EL[ i mk] ;
f l oat SCM3Y=1. 5*SCM2Y/ EL[ i mk] ;
f l oat SCM4Y=2. 0*SCM3Y/ EL[ i mk] ;
f l oat SCM2Z=4. 0*E*ZI [ i mk] / EL[ i mk] ;
f l oat SCM3Z=1. 5*SCM2Z/ EL[ i mk] ;
f l oat SCM4Z=2. 0*SCM3Z/ EL[ i mk] ;

/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
/ / Mengi si Segi t i ga At as Mat r i k Kekakuan Bat ang / /
/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
SM[ 1] [ 1] =SCM1A; SM[ 1] [ 7] =( - SCM1A) ;
SM[ 2] [ 2] =SCM4Z; SM[ 2] [ 6] =SCM3Z;
SM[ 2] [ 8] =( - SCM4Z) ; SM[ 2] [ 12] =SCM3Z;
SM[ 3] [ 3] =SCM4Y; SM[ 3] [ 5] =( - SCM3Y) ;
SM[ 3] [ 9] =( - SCM4Y) ; SM[ 3] [ 11] =( - SCM3Y) ;
SM[ 4] [ 4] =SCM1B; SM[ 4] [ 10] =( - SCM1B) ;
SM[ 5] [ 5] =SCM2Y; SM[ 5] [ 9] =SCM3Y;
SM[ 5] [ 11] =SCM2Y/ 2. 0; SM[ 6] [ 6] =SCM2Z;
SM[ 6] [ 8] =( - SCM3Z) ; SM[ 6] [ 12] =SCM2Z/ 2. 0;
SM[ 7] [ 7] =SCM1A; SM[ 8] [ 8] =SCM4Z;
SM[ 8] [ 12] =( - SCM3Z) ; SM[ 9] [ 9] =SCM4Y;
SM[ 9] [ 11] =SCM3Y; SM[ 10] [ 10] =SCM1B;
SM[ 11] [ 11] =SCM2Y; SM[ 12] [ 12] =SCM2Z;

/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
/ / Mengi si Segi t i ga Bawah Mat r i k Yang Si met r i / /
/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
f or ( i nt i s=1; i s<=11; i s++)
{
f or ( i nt j s=i s+1; j s<=12; j s++)
{
SM[ j s] [ i s] =SM[ i s] [ j s] ;
}
}

/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
/ / Mengal i kan Mat r i k SM Dengan Mat r i k Rot asi / /
/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
f or ( i nt i s=1; i s<=4; i s++)
{
f or ( i nt j s=1; j s<=12; j s++)
{
SMRT[ j s] [ ( ( 3*i s) - 2) ] =SM[ j s] [ ( ( 3*i s) - 2) ] *R11[ i mk]
+SM[ j s] [ ( ( 3*i s) - 1) ] *R21[ i mk]
+SM[ j s] [ ( 3*i s) ] *R31[ i mk] ;
SMRT[ j s] [ ( ( 3*i s) - 1) ] =SM[ j s] [ ( ( 3*i s) - 2) ] *R12[ i mk]
+SM[ j s] [ ( ( 3*i s) - 1) ] *R22[ i mk]
+SM[ j s] [ ( 3*i s) ] *R32[ i mk] ;
SMRT[ j s] [ ( 3*i s) ] =SM[ j s] [ ( ( 3*i s) - 2) ] *R13[ i mk]
+SM[ j s] [ ( ( 3*i s) - 1) ] *R23[ i mk]
+SM[ j s] [ ( 3*i s) ] *R33[ i mk] ;
}
}
}

28
/ ***********************************************************************/
/ * FI LE : PEMBEBANAN. HPP */
/ * PUSTAKA FUNGSI MENGOLAH DATA PEMBEBANAN KE FI LE */
/ ***********************************************************************/

/ *********************************/
/ * SUBPROGRAM MEMBACA DATA BEBAN */
/ *********************************/
voi d l oad_dat a( )
{
i nt i bn=0;
char uj i ;
cout << " Nama f i l e st r ukt ur yang akan di kenai beban"
<< " ( t anpa ekst ensi ) = " ;
ci n >> f i ;
st r cpy( f i nput , f i ) ;
st r cat ( f i nput , " . i np" ) ;
st r cpy( f beban, f i ) ;
st r cat ( f beban, " . bbn" ) ;
baca_dat a( ) ;
baca_beban( ) ;
cout << " I ngi n mengosongkan dat a beban yang ada ( y/ t ) ? " ;
ci n >> uj i ;
i f ( uj i ! = ' y' )
{
kosong_beban( ) ;
}

/ / / / / / / / / / / / / / / / / / / / / / /
/ / Beban Pada Bat ang / /
/ / / / / / / / / / / / / / / / / / / / / / /
cout << " I nput kan beban mer at a pada bat ang, "
<< " pi l i h bat ang = 0 unt uk kel uar \ n" ;
do
{
cout << " Bat ang = " ;
ci n >> i bn;
i f ( i bn==0)
{ br eak; }
per i ksa_bat ang( i bn) ;
cout << " Panj ang = " << EL[ i bn] <<endl ;
cout << " Beban mer at a ( N/ m) = " ; ci n >> W[ i bn] ;
AML[ 1] [ i bn] =0. ;
AML[ 2] [ i bn] =W[ i bn] *EL[ i bn] / 2. ;
AML[ 3] [ i bn] =0. ;
AML[ 4] [ i bn] =0. ;
AML[ 5] [ i bn] =0. ;
AML[ 6] [ i bn] =W[ i bn] *pow( EL[ i bn] , 2) / 12. ;
AML[ 7] [ i bn] =0. ;
AML[ 8] [ i bn] =W[ i bn] *EL[ i bn] / 2. ;
AML[ 9] [ i bn] =0. ;
AML[ 10] [ i bn] =0. ;
AML[ 11] [ i bn] =0. ;
AML[ 12] [ i bn] =( - W[ i bn] ) *pow( EL[ i bn] , 2) / 12. ;
out put _beban_bat ang( ) ;
} whi l e ( i bn! =0) ;
of st r eamt ul i s( f beban) ;
t ul i s << " [ BebanBat ang] " << endl ;
t ul i s << M << endl ;
f or ( i nt kbn=1; kbn<=M; kbn++)
{
t ul i s << kbn << endl ;
t ul i s << W[ kbn] << endl ;
t ul i s << AML[ 1] [ kbn] << endl ;
t ul i s << AML[ 2] [ kbn] << endl ;
t ul i s << AML[ 3] [ kbn] << endl ;
t ul i s << AML[ 4] [ kbn] << endl ;
t ul i s << AML[ 5] [ kbn] << endl ;
t ul i s << AML[ 6] [ kbn] << endl ;
t ul i s << AML[ 7] [ kbn] << endl ;
t ul i s << AML[ 8] [ kbn] << endl ;

29
t ul i s << AML[ 9] [ kbn] << endl ;
t ul i s << AML[ 10] [ kbn] << endl ;
t ul i s << AML[ 11] [ kbn] << endl ;
t ul i s << AML[ 12] [ kbn] <<endl ;
}

/ / / / / / / / / / / / / / / / / / / / / /
/ / Beban Pada Ti t i k / /
/ / / / / / / / / / / / / / / / / / / / / /
i bn=0;
cout << " I nput kan beban pada t i t i k kumpul , "
<< " pi l i h t i t i k = 0 unt uk kel uar \ n" ;
do
{
cout << " Ti t i k = " ;
ci n >> i bn;
i f ( i bn==0)
{
br eak;
}
cout << " Aksi pada ar ah 1 gl obal = " ; ci n >> AJ [ ( ( 6*i bn) - 5) ] ;
cout << " Aksi pada ar ah 2 gl obal = " ; ci n >> AJ [ ( ( 6*i bn) - 4) ] ;
cout << " Aksi pada ar ah 3 gl obal = " ; ci n >> AJ [ ( ( 6*i bn) - 3) ] ;
cout << " Aksi pada ar ah 4 gl obal = " ; ci n >> AJ [ ( ( 6*i bn) - 2) ] ;
cout << " Aksi pada ar ah 5 gl obal = " ; ci n >> AJ [ ( ( 6*i bn) - 1) ] ;
cout << " Aksi pada ar ah 6 gl obal = " ; ci n >> AJ [ ( 6*i bn) ] ;
out put _beban_t i t i k( ) ;
} whi l e ( i bn! =0) ;
t ul i s << " [ BebanTi t i k] " << endl ;
t ul i s << NJ << endl ;
f or ( i nt kbn=1; kbn<=NJ ; kbn++)
{
t ul i s << kbn << endl ;
t ul i s << AJ [ ( ( 6*kbn) - 5) ] << endl ;
t ul i s << AJ [ ( ( 6*kbn) - 4) ] << endl ;
t ul i s << AJ [ ( ( 6*kbn) - 3) ] << endl ;
t ul i s << AJ [ ( ( 6*kbn) - 2) ] << endl ;
t ul i s << AJ [ ( ( 6*kbn) - 1) ] << endl ;
t ul i s << AJ [ ( 6*kbn) ] << endl ;
}
t ul i s. cl ose( ) ;
}

voi d kosong_beban( )
{
/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
/ / Mengosongkan Beban Pada Bat ang / /
/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
i nt i bn=0;
do
{
W[ i bn] =0;
AML[ 1] [ i bn] =0. ;
AML[ 2] [ i bn] =0. ;
AML[ 3] [ i bn] =0. ;
AML[ 4] [ i bn] =0. ;
AML[ 5] [ i bn] =0. ;
AML[ 6] [ i bn] =0. ;
AML[ 7] [ i bn] =0. ;
AML[ 8] [ i bn] =0. ;
AML[ 9] [ i bn] =0. ;
AML[ 10] [ i bn] =0. ;
AML[ 11] [ i bn] =0. ;
AML[ 12] [ i bn] =0. ;
i bn++;
} whi l e ( i bn<=M) ;

/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
/ / Mengosongkan Beban Pada Ti t i k Kumpul / /
/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
i bn=0;

30
do
{
AJ [ ( ( 6*i bn) - 5) ] =0. ;
AJ [ ( ( 6*i bn) - 4) ] =0. ;
AJ [ ( ( 6*i bn) - 3) ] =0. ;
AJ [ ( ( 6*i bn) - 2) ] =0. ;
AJ [ ( ( 6*i bn) - 1) ] =0. ;
AJ [ ( 6*i bn) ] =0. ;
i bn++;
} whi l e( i bn<=NJ ) ;
}

/ ******************************************************/
/ * SUBPROGRAM UNTUK MEMBACA DATA PEMBEBANAN DARI FI LE */
/ ******************************************************/
voi d baca_beban( )
{
i f st r eambaca( f beban) ;

/ / / / / / / / / / / / / / / / / / / / / / / / / /
/ / Membaca Beban Bat ang / /
/ / / / / / / / / / / / / / / / / / / / / / / / / /
baca >> SubName;
baca >> M;
f or ( i nt ki np=1; ki np<=M; ki np++)
{
baca >> ki np;
baca >> W[ ki np] ;
baca >> AML[ 1] [ ki np] ;
baca >> AML[ 2] [ ki np] ;
baca >> AML[ 3] [ ki np] ;
baca >> AML[ 4] [ ki np] ;
baca >> AML[ 5] [ ki np] ;
baca >> AML[ 6] [ ki np] ;
baca >> AML[ 7] [ ki np] ;
baca >> AML[ 8] [ ki np] ;
baca >> AML[ 9] [ ki np] ;
baca >> AML[ 10] [ ki np] ;
baca >> AML[ 11] [ ki np] ;
baca >> AML[ 12] [ ki np] ;
}

/ / / / / / / / / / / / / / / / / / / / / / / / /
/ / Membaca Beban Ti t i k / /
/ / / / / / / / / / / / / / / / / / / / / / / / /
baca >> SubName;
baca >> NJ ;
f or ( i nt ki np=1; ki np<=NJ ; ki np++)
{
baca >> ki np;
baca >> AJ [ ( ( 6*ki np) - 5) ] ;
baca >> AJ [ ( ( 6*ki np) - 4) ] ;
baca >> AJ [ ( ( 6*ki np) - 3) ] ;
baca >> AJ [ ( ( 6*ki np) - 2) ] ;
baca >> AJ [ ( ( 6*ki np) - 1) ] ;
baca >> AJ [ ( 6*ki np) ] ;
}
baca. cl ose( ) ;
ber at _sendi r i ( ) ;
}

/ *****************************************/
/ * SUBPROGRAM UNTUK MERAKI T VEKTOR BEBAN */
/ *****************************************/
voi d beban( )
{
/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
/ / Mengosongkan Vekt or Beban Ti t i k Kumpul Gabungan / /
/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
f or ( i nt i b=1; i b<=ND; i b++)
{

31
AC[ I D[ i b] ] =0. ;
}

/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
/ / Mengosongkan Vekt or Beban Ti t i k Kumpul Eki val en / /
/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
f or ( i nt i b=1; i b<=M; i b++)
{
per i ksa_bat ang( i b) ;
i f ( CXZ<=0. 001)
{
cont i nue;
}
i ndeks_bat ang( i b) ;
f or ( i nt j b=1; j b<=4; j b++)
{
AE[ I M[ ( 3*j b- 2) ] ] =0. ;
AE[ I M[ ( 3*j b- 1) ] ] =0. ;
AE[ I M[ ( 3*j b) ] ] =0. ;
}
}

/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
/ / Beban Ti t i k Kumpul Eki val en / /
/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
f or ( i nt i b=1; i b<=M; i b++)
{
per i ksa_bat ang( i b) ;
i f ( CXZ<=0. 001)
{
cont i nue;
}
i ndeks_bat ang( i b) ;
f or ( i nt j b=1; j b<=4; j b++)
{
AE[ I M[ ( 3*j b- 2) ] ] =AE[ I M[ ( 3*j b- 2) ] ]
- R11[ i b] *AML[ ( 3*j b- 2) ] [ i b]
- R21[ i b] *AML[ ( 3*j b- 1) ] [ i b]
- R31[ i b] *AML[ ( 3*j b) ] [ i b] ;
AE[ I M[ ( 3*j b- 1) ] ] =AE[ I M[ ( 3*j b- 1) ] ]
- R12[ i b] *AML[ ( 3*j b- 2) ] [ i b]
- R22[ i b] *AML[ ( 3*j b- 1) ] [ i b]
- R32[ i b] *AML[ ( 3*j b) ] [ i b] ;
AE[ I M[ ( 3*j b) ] ] =AE[ I M[ ( 3*j b) ] ]
- R13[ i b] *AML[ ( 3*j b- 2) ] [ i b]
- R23[ i b] *AML[ ( 3*j b- 1) ] [ i b]
- R33[ i b] *AML[ ( 3*j b) ] [ i b] ;
}
}

/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
/ / Beban Ti t i k Kumpul Gabungan / /
/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
f or ( i nt i b=1; i b<=ND; i b++)
{
AC[ I D[ i b] ] =AJ [ i b] +AE[ i b] ;
}
}

/ **********************************************/
/ * SUBPRROGRAM MENGHI TUNG BERAT SENDI RI BALOK */
/ **********************************************/
voi d ber at _sendi r i ( )
{
j s_bal ok=0;
j s_kol om=0;
f or ( i nt i bs=1; i bs<=M; i bs++)
{
/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
/ / Memer i ksa Kemi r i ngan Bat ang / /
/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /

32
per i ksa_bat ang( i bs) ;

/ / / / / / / / / / / / / / / / / / / / / / / / /
/ / Bat ang Non Ver t i kal / /
/ / / / / / / / / / / / / / / / / / / / / / / / /
i f ( CXZ>0. 001)
{
per i ksa_bat ang( i bs) ;
/ / ( mm) - > ( m)
b[ i bs] =i si ( var _b[ no_st r ukt ur ] [ 0+( 12*j s_bal ok) ] , si si _d_B) ;
h[ i bs] =i si ( var _b[ no_st r ukt ur ] [ 1+( 12*j s_bal ok) ] , si si _d_H) ;
W_Bal ok[ i bs] =24000. *b[ i bs] *h[ i bs] *1. E- 6; / / ( N/ m)
W[ i bs] +=W_Bal ok[ i bs] ; / / ( N/ m)
AML[ 2] [ i bs] +=W_Bal ok[ i bs] *EL[ i bs] / 2. ;
AML[ 6] [ i bs] +=W_Bal ok[ i bs] *pow( EL[ i bs] , 2) / 12. ;
AML[ 8] [ i bs] +=W_Bal ok[ i bs] *EL[ i bs] / 2. ;
AML[ 12] [ i bs] +=( - W_Bal ok[ i bs] ) *pow( EL[ i bs] , 2) / 12. ;
j s_bal ok++;
}

/ / / / / / / / / / / / / / / / / / / / /
/ / Bat ang Ver t i kal / /
/ / / / / / / / / / / / / / / / / / / / /
el se
{
per i ksa_bat ang( i bs) ;
b[ i bs] =i si ( var _k[ no_st r ukt ur ] [ 0+( 5*j s_kol om) ] , si si _d_K) ;
h[ i bs] =b[ i bs] ;
P_Kol om[ i bs] =( - 24000. ) *b[ i bs] *h[ i bs] *EL[ i bs] *1. E- 6; / / ( N)

AJ [ ( ( 6*J J [ i bs] ) - 4) ] +=P_Kol om[ i bs] ;

j s_kol om++;
}
}
}

33
/ ***********************************************************************/
/ * FI LE : SOLVER. HPP */
/ * SUBPROGRAM UNTUK MENYELESAI KAN PERSAMAAN */
/ * DENGAN METODA CHOLESKI YANG DI MODI FI KASI */
/ ***********************************************************************/

/ *********************************************************/
/ * SUBPROGRAM UNTUK FAKTORI SASI MATRI K SI METRI S BERJ ALUR */
/ * DENGAN PENDEKATAN CHOLESKI YANG DI MODI FI KASI */
/ *********************************************************/
voi d banf ac( i nt N, i nt NB, f l oat A_SFF[ ] [ mak] )
{
i nt J 2;
f l oat SUM;
f l oat TEMP;
i f ( ( A_SFF[ 1] [ 1] ) >0)
{
f or ( i nt j bf =2; j bf <=N; j bf ++)
{
J 2=( j bf - NB+1) ;
i f ( J 2<1)
{
J 2=1;
}
i f ( ( j bf - 1) ! =1)
{
f or ( i nt i bf =2; i bf <=( j bf - 1) ; i bf ++)
{
i f ( ( i bf - 1) >=J 2)
{
SUM=A_SFF[ i bf ] [ j bf - i bf +1] ;
f or ( i nt kbf =J 2; kbf <=( i bf - 1) ; kbf ++)
{
SUM=SUM- A_SFF[ kbf ] [ i bf - kbf +1]
*A_SFF[ kbf ] [ j bf - kbf +1] ;
}
A_SFF[ i bf ] [ j bf - i bf +1] =SUM;
}
el se
{
cont i nue;
}
}
}
SUM=A_SFF[ j bf ] [ 1] ;
f or ( i nt kbf =J 2; kbf <=( j bf - 1) ; kbf ++)
{
TEMP=A_SFF[ kbf ] [ j bf - kbf +1] / A_SFF[ kbf ] [ 1] ;
SUM=SUM- TEMP*A_SFF[ kbf ] [ j bf - kbf +1] ;
A_SFF[ kbf ] [ j bf - kbf +1] =TEMP;
}
i f ( SUM<=0)
{
br eak;
}
A_SFF[ j bf ] [ 1] =SUM;
}
}
el se
{
cl r scr ( ) ;
cout << " Ti dak posi t i f t ent u ! ! ! \ n" ;
cout << " St r ukt ur t ak st abi l - GAGAL di bangki t kan ! ! \ n\ a" ;
cout << " Per i ksa dat a st r ukt ur anda \ n" ;
cout << " Tekan sembar ang t ombol , pr ogr amakan di hent i kan \ n" ;
get ch( ) ;
exi t ( 1) ;
}
}



34
/ ****************************************************************/
/ * SUBPROGRAM MENGOLAH MATRI K BERJ ALUR DARI SUBPROGRAM BANFAC( ) */
/ ****************************************************************/
voi d bansol ( i nt N, i nt NB, f l oat U_SFF[ ] [ mak]
, f l oat B_AC[ mak] , f l oat X_DF[ mak] )
{
f l oat SUM;

/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
/ / I ni si al i sasi Per pi ndahan Ti t i k Kumpul Bebas = 0 / /
/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
f or ( i nt i ns=1; i ns<=N; i ns++)
{
X_DF[ i ns] =0. ;
}

f or ( i nt i bsl =1; i bsl <=N; i bsl ++)
{
i nt j bns=( i bsl - NB+1) ;
i f ( i bsl <=NB)
{
j bns=1;
}
SUM=B_AC[ i bsl ] ;
i f ( j bns<=( i bsl - 1) )
{
f or ( i nt kbns=j bns; kbns<=( i bsl - 1) ; kbns++)
{
SUM=( SUM- ( ( U_SFF[ kbns] [ i bsl - kbns+1] ) *( X_DF[ kbns] ) ) ) ;
}
}
X_DF[ i bsl ] = SUM;
}

f or ( i nt i bsl =1; i bsl <=N; i bsl ++)
{
X_DF[ i bsl ] =( ( X_DF[ i bsl ] ) / ( U_SFF[ i bsl ] [ 1] ) ) ;
}

f or ( i nt I 1=1; I 1<=N; I 1++)
{
i nt i bsl =( N- I 1+1) ;
i nt j bns=( i bsl +NB- 1) ;
i f ( j bns>N)
{
j bns=N;
}
SUM=X_DF[ i bsl ] ;

i f ( ( i bsl +1) <=j bns)
{
f or ( i nt kbns=( i bsl +1) ; kbns<=j bns; kbns++)
{
SUM=( SUM- ( U_SFF[ i bsl ] [ kbns- i bsl +1] *X_DF[ kbns] ) ) ;
}
}
X_DF[ i bsl ] = SUM;
}
}


35
/ ***********************************************************************/
/ * FI LE : KOLOM. HPP */
/ * KELAS UNTUK MENGHI TUNG HARGA DAN KENDALA PADA KOLOM */
/ ***********************************************************************/
cl ass kol om
{
pr i vat e:

/ ****************************************************/
/ * PENDEKLARASI AN VARI ABEL PRI VATE PADA KELAS KOLOM */
/ ****************************************************/

/ / / / / / / / / / / / / / / / / / / / / / /
/ / Per hi t ungan Kol om/ /
/ / / / / / / / / / / / / / / / / / / / / / /
f l oat RHO; / / Rasi o penul angan
f l oat PN; / / Gaya aksi al nomi nal
f l oat MNX; / / Momen nomi nal ar ah x
f l oat MNY; / / Momen nomi nal ar ah y
f l oat MOX; / / Momen eki val en ar ah x
f l oat MOY; / / Momen eki val en ar ah y
f l oat PO; / / Bat as gaya aksi al kar ena eksent r i si t as mi ni mum( N)
f l oat PNcoba; / / Gaya aksi al nomi nal coba
f l oat PNB; / / Gaya aksi al nomi nal pada kondi si bal ance
f l oat MNcoba; / / Momen nomi nal coba
f l oat bet a; / / Fakt or bent uk bi aksi al
f l oat ASTOT; / / Luas besi t ot al pada penampang ( mm^2)
f l oat CB; / / J ar ak ser at t ekan t er l uar ke gar i s net r al
/ / pada keadaan bal ance ( mm)
f l oat FS; / / Tegangan dal amt ul angan pada beban ker j a
f l oat eks; / / Eksent r i si t as ( mm)
f l oat ekscoba; / / Eksent i r si t as maksi mum( mm)
f l oat eksb; / / Eksent r i si t as pada keadaan bal ance ( mm)
f l oat epsb; / / Regangan baj a pada keadaan bal ance ( mm)
f l oat epsy; / / Regangan baj a pada keadaan l ul uh ( mm)

f l oat r asi o_kel angsi ngan; / / Rasi o kel angsi ngan

f l oat f s1b; / / Tegangan baj a t ul angan pada keadaan bal ance ( MPa)
f l oat f si ; / / Tegangan baj a ( MPa)
f l oat di ; / / J ar ak t ul angan ke gar i s net r al ( mm)
f l oat Fsi ; / / Gaya Yang Di sumbangkan Ol eh Tul angan ( N)
f l oat ASdi ; / / Luas t ul angan pada j ar ak di
f l oat f sf 1;
f l oat d11;

/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
/ / Var i abel Pembant u Unt uk Menyel esai kan Per samaan Kuar dat / /
/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
f l oat asol ;
f l oat bsol ;
f l oat csol ;
f l oat dsol ;

/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
/ / Var i abel Pada Met oda Fal se Posi si / /
/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
i nt i t er asi _f p; / / J uml ah i t er asi dengan met ode f al se posi si

f l oat t r i al ki r i ; / / Ti t i k coba per t ama
f l oat t r i al kanan; / / Ti t i k coba kedua
f l oat t r i al bar u; / / Ti t i k coba bar u
f l oat deki ; / / Ni l ai t i t i k coba per t ama
f l oat deka; / / Ni l ai t i t i k coba kedua
f l oat deba; / / Ni l ai t i t i k coba bar u

/ *************************************/
/ * PROTOTYPE FUNGSI PADA KELAS KOLOM */
/ *************************************/
voi d r ho( ) ;
voi d j ar ak_t ul angan( ) ;

36
voi d kel angsi ngan( ) ;
voi d anal i sa( ) ;
voi d sengkang_kol om( ) ;
f l oat hi t ung_kol om( f l oat Ccoba) ;

publ i c:

/ ***************************/
/ * CONSTRUCTOR CLASS KOLOM */
/ ***************************/
kol om( )
{
/ / / / / / / / / / / / / / / / / / / / / / / / / / / / /
/ / I ni si al i sasi Ni l ai Awal / /
/ / / / / / / / / / / / / / / / / / / / / / / / / / / / /
kendal a=0. ;
har ga=0. ;

/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
/ / Memangsi l Fungsi - Fungsi Kendal a / /
/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
r ho( ) ;
j ar ak_t ul angan( ) ;
kel angsi ngan( ) ;
anal i sa( ) ;
sengkang_kol om( ) ;

/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
/ / Menghi t ung Kendal a Tot al / /
/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
kendal a=kendal a_sengkang
+kendal a_r
+kendal a_t ul
+kendal a_gaya
+kendal a_kel angsi ngan;

/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
/ / Per hi t ungan Ber at Dan Vol ume / /
/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
vol ume_bet on=si si *si si *L/ 1. E6;
ber at _besi =ASTOT*L*bj _besi / 1. E6;
ber at _sengkang=( f abs( L/ ( J ar ak_S/ 1000. ) ) - 1. )
*4. *( ( si si - ( 2. *sel i mut _kol om) ) / 1000. )
*( pi / 4. ) *pow( ( DI AS/ 1000. ) , 2. )
*bj _besi ;

/ / / / / / / / / / / / / / / / / / / / / /
/ / Menghi t ung Har ga / /
/ / / / / / / / / / / / / / / / / / / / / /
har ga=( vol ume_bet on*har ga_bet on)
+( ber at _besi *har ga_besi )
+( ber at _sengkang*har ga_besi ) ;
}
};

/ ****************************************************/
/ * FUNGSI UNTUK MENGHI TUNG KENDALA RASI O PENULANGAN */
/ ****************************************************/
voi d kol om: : r ho( )
{
ASTOT=( ( 4. *N_DI A- 4. ) *( pi / 4. ) *( pow( DI A, 2) ) ) ;
RHO=( ASTOT/ ( pow( si si , 2) ) ) ;

/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
/ / Menghi t ung Kendal a Rho Mi ni mum/ /
/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
kendal a_r _mi n=( ( 0. 01/ RHO) - 1. ) ;
i f ( kendal a_r _mi n<0. )
{
kendal a_r _mi n=0. ;
}

37

/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
/ / Menghi t ung Kendal a Rho Maksi mum/ /
/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
kendal a_r _mak=( ( RHO/ 0. 08) - 1. ) ;
i f ( kendal a_r _mak<0. )
{
kendal a_r _mak=0. ;
}

/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
/ / Menj uml ahkan Kendal a Rho / /
/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
kendal a_r =kendal a_r _mi n+kendal a_r _mak;
}

/ *********************************************************/
/ * FUNGSI UNTUK MENGHI TUNG KENDALA J ARAK ANTARA TULANGAN */
/ *********************************************************/
voi d kol om: : j ar ak_t ul angan( )
{
/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
/ / Mengecek J ar ak Mi ni mumAnt ar a Tul angan / /
/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
f l oat mi n1=( 1. 5*DI A) ;
f l oat mi n2=40. ;
f l oat si sa=si si - ( 2. *sel i mut _kol om) - N_DI A*DI A;

j ar ak_ant ar _t ul angan=si sa/ ( N_DI A- 1. ) ;
i f ( j ar ak_ant ar _t ul angan==0)
{
j ar ak_ant ar _t ul angan=l i mi t _nol ;
}

f l oat j ar ak_mi n=mi n1;
i f ( mi n2<mi n1)
{
j ar ak_mi n=mi n2;
}

/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
/ / Menghi t ung Kendal a Tot al Aki bat Kendal a J ar ak Ant ar Tul angan / /
/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
kendal a_t ul =( ( j ar ak_mi n/ j ar ak_ant ar _t ul angan) - 1. ) ;
i f ( kendal a_t ul <0. )
{
kendal a_t ul =0. ;
}
}

/ ******************************************************/
/ * FUNGSI UNTUK MENGHI TUNG KENDALA KELANGSI NGAN KOLOM */
/ ******************************************************/
voi d kol om: : kel angsi ngan( )
{
/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
/ / Syar at Kel angsi ngan Kol omMenur ut SK SNI T- 15- 1991- 03 / /
/ / KL/ r <= 22 / /
/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
_K=0. 5;
r asi o_kel angsi ngan=( _K*L*1000. / ( si si *( sqr t ( ( 1. / 12. ) ) ) ) ) ;

/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
/ / Menghi t ung Kendal a Kel angsi ngan / /
/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
kendal a_kel angsi ngan=( r asi o_kel angsi ngan/ 22. ) - 1. ;
i f ( kendal a_kel angsi ngan<0)
{
kendal a_kel angsi ngan = 0. ;
}
}

38

/ *************************************************/
/ * FUNGSI UNTUK MENGHI TUNG KENDALA GAYA STRUKTUR */
/ *************************************************/
voi d kol om: : anal i sa( )
{
/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
/ / Per si apan Gaya Yang Membebani / /
/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
PN=f abs( PU/ t et a) ; / / ( N)
MNX=f abs( MUX/ t et a) *1000. ; / / ( Nm) - > ( Nmm)
MNY=f abs( MUY/ t et a) *1000. ; / / ( Nm) - > ( Nmm)

/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
/ / Mengi ni si al i sasi Gaya Aksi al Bi l a Ber ni l ai 0 / /
/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
i f ( PN==0. )
{
PN=l i mi t _nol ; / / ( N)
}

/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
/ / Per i ksa Bat as Gaya Aksi al / /
/ / Sebagai Syar at Eksent r i si t as Mi ni mum/ /
/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
PO=t et a*( 0. 85*FC*( pow( si si , 2) ) +( ASTOT*FY) ) ; / / ( N)

/ / / / / / / / / / / / / / / / / / / / / / / / / / /
/ / Menghi t ung Kendal a PO / /
/ / / / / / / / / / / / / / / / / / / / / / / / / / /
kendal a_po=( ( PN/ PO) - 1. ) ;
i f ( kendal a_po<=0. )
{
kendal a_po=0. ;

/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
/ / Per hi t ungan J ar ak Pusat Tul angan Ke Tepi / /
/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
DS=sel i mut _kol om+( 0. 5*DI A) ; / / ( mm)
D=si si - DS; / / ( mm)

/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
/ / Menghi t ung Fakt or Pengal i Ti nggi Bl ok Tegangan Segi empat / /
/ / Eki val en ( B1) / /
/ / Sumber : SK SNI T- 15- 1991- 03 Pasal 3. 3. 2 but i r 7. ( 3) / /
/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
i f ( FC<=30. )
{
BT1=0. 85;
}
el se
{
BT1=0. 85- 0. 008*( FC- 30. ) ;
}
i f ( BT1<0. 65)
{
BT1=0. 65;
}

/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
/ / Per hi t ungan Fakt or Bent uk Kol omBi aksi al / /
/ / Unt uk Symet r i cal Ar r angement Of Rei nf or cement / /
/ / Rumus Empi r i s Dar i Hul se dan Mosl ey ( 1986) / /
/ / Buku : Rei nf or ced Concr et e Desi gn by Comput er hal . 163 / /
/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
bet a=0. 3+( 0. 7/ 0. 6) *( 0. 6- ( PU/ ( si si *si si *FC) ) ) ;

/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
/ / Dengan Ni l ai bet a Mi ni mum= 0. 3 / /
/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
i f ( bet a<0. 3)

39
{
bet a=0. 3;
}

/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
/ / Mencar i Momen Eki val en Bi aksi al / /
/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
i f ( MNX > MNY)
{
MOX=MNX+( MNY*( ( 1. - bet a) / bet a) ) ; / / Momen eki val en ( Nmm)
eks=( f abs( MOX/ PN) ) ; / / ( mm)

}
el se
{
MOY=MNY+( MNX*( ( 1. - bet a) / bet a) ) ; / / Momen eki val en ( Nmm)
eks=( f abs( MOY/ PN) ) ; / / ( mm)
}

/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
/ / Menghi t ung Let ak Gar i s Net r al Pada Keadaan Bal ance / /
/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
CB=600. *D/ ( FY+600. ) ; / / ( mm)

/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
/ / Menghi t ung Tegangan Pada Keadaan Bal ance / /
/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
deki =hi t ung_kol om( CB) ;
eksb=ekscoba; / / ( mm)
epsb=0. 003*( CB- DS) / CB;
epsy=FY/ 2. E5;

i f ( epsb>epsy)
{
f s1b=FY; / / ( Mpa)
}
i f ( epsb<epsy)
{
f s1b=epsb*2. E5; / / ( MPa)
}

/ / - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - / /
/ / Pr oses Mencar i Let ak Gar i s Net r al Dengan Met ode Fal se Posi si / /
/ / - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - / /

/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
/ / Pembagi an Daer ah Pencar i an / /
/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
t r i al ki r i =40. ;
t r i al kanan=( si si - 40. ) ;
t r i al bar u=( CB) ;

/ / / / / / / / / / / / / / / / / / / / / / / / / / /
/ / Menghi t ung Ni l ai Awal / /
/ / / / / / / / / / / / / / / / / / / / / / / / / / /
deki =hi t ung_kol om( t r i al ki r i ) ;
deka=hi t ung_kol om( t r i al kanan) ;
deba=hi t ung_kol om( t r i al bar u) ;

/ / / / / / / / / / / / / / / / / / / / / / / / /
/ / Per i ksa Bat as Range / /
/ / / / / / / / / / / / / / / / / / / / / / / / /
i f ( ( deki *deka>0) &&( deki ! =0) &&( deka! =0) )
{
do
{
/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
/ / Bi l a Ni l ai Yang Ki t a Car i Ti dak Ada Dal amRange / /
/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
i f ( t r i al ki r i >( l i mi t _nol ) )
{

40
t r i al ki r i =( ( t r i al ki r i ) / 2. ) ;
deki =hi t ung_kol om( t r i al ki r i ) ;
}
el se
{
t r i al kanan+=10. ;
deka=hi t ung_kol om( t r i al kanan) ;
i f ( t r i al kanan>( si si / 0. 85) )
{
br eak;
}
}
}whi l e( deki *deka>0&&( deki ! =0) &&( deka! =0) ) ;
}

/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
/ / Aksel er at or Fal se Posi si / /
/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
i t er asi _f p=1;
do
{
/ / / / / / / / / / / / / / / / / / / / / / / / /
/ / Per i ksa Konver gensi / /
/ / Di ambi l E = 1 mm / /
/ / / / / / / / / / / / / / / / / / / / / / / / /
i f ( deba<1. &&deba>( - 1. ) )
{
i f ( PNcoba<=0)
{
PNcoba=l i mi t _nol ;
}
MNcoba=f abs( MNcoba) ;
br eak;
}

/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
/ / Per i ksa Apakah deki Dan deba Sama Tanda / /
/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
i f ( ( deki *deba) <0. )
{
/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
/ / Geser t r i al kanan menuj u t r i al bar u / /
/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
t r i al kanan=t r i al bar u;
deka=hi t ung_kol om( t r i al kanan) ;
}
el se
{
/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
/ / Geser t r i al ki r i menuj u t r i al bar u / /
/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
t r i al ki r i =t r i al bar u;
deki =hi t ung_kol om( t r i al ki r i ) ;
}

/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
/ / Per sempi t Lagi Daer ah Pencar i an / /
/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
t r i al bar u=( ( t r i al ki r i +t r i al kanan) / 2. ) ;

deba=hi t ung_kol om( t r i al bar u) ;

i t er asi _f p++;

i f ( t r i al ki r i ==t r i al kanan)
{
br eak;
}

}whi l e( i t er asi _f p<=100) ;


41
/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
/ / I nsi al i sasi J uml ah I t er asi / /
/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
i t er asi _f p=1;

/ *- *- *- *- *- *- *- *- *- *- *- *- *- *- *- *- *- *- *- *- *- *- *- *- *- *- *- */
/ * Pr oses Pencar i an Dengan Met oda Fal se Posi si Di mul ai */
/ *- *- *- *- *- *- *- *- *- *- *- *- *- *- *- *- *- *- *- *- *- *- *- *- *- *- *- */
do
{
i f ( t r i al ki r i ==t r i al kanan)
{
br eak;
}
/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
/ / Menent ukan Ti t i k Coba Bar u / /
/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
t r i al bar u=t r i al kanan- ( ( deka) *( t r i al kanan- t r i al ki r i )
/ ( ( deka) - ( deki ) ) ) ;

deba=hi t ung_kol om( t r i al bar u) ;

/ / / / / / / / / / / / / / / / / / / / / / / / /
/ / Per i ksa Konver gensi / /
/ / Di ambi l E = 10 mm / /
/ / / / / / / / / / / / / / / / / / / / / / / / /
i f ( deba<10. &&deba>( - 10. ) )
{
i f ( PNcoba<=0)
{
PNcoba=l i mi t _nol ;
}
MNcoba=f abs( MNcoba) ;
br eak;
}

/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
/ / Per i ksa Apakah deki Dan deba Sama Tanda / /
/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
i f ( ( deki *deba) <0. )
{
/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
/ / Geser t r i al kanan menuj u t r i al bar u / /
/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
t r i al kanan=t r i al bar u;
deka=hi t ung_kol om( t r i al kanan) ;

}
el se
{
/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
/ / Geser t r i al ki r i menuj u t r i al bar u / /
/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
t r i al ki r i =t r i al bar u;
deki =hi t ung_kol om( t r i al ki r i ) ;

}

i t er asi _f p++;
i f ( i t er asi _f p>=100)
{
/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
/ / Di hi t ung Dengan Met oda Pendekat an / /
/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
deka=hi t ung_kol om( ( t r i al ki r i +t r i al kanan) / 2. ) ;
br eak;
}
}whi l e( deki *deka! =0. ) ;
FPU=f abs( PNcoba) ; / / Dal amN
FMU=f abs( MNcoba) / 1000. ; / / Hasi l per hi t ungan dal amNmm- > Nm


42
/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
/ / Menghi t ung Kendal a Aki bat Gaya Aksi al / /
/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
kendal a_pn=( ( PN/ PNcoba) - 1. ) ;
i f ( kendal a_pn<0)
{
kendal a_pn=0. ;
}

/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
/ / Menghi t ung Kendal a Aki bat Gaya Lent ur / /
/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
i f ( MNX > MNY)
{
kendal a_mn=( ( MOX/ MNcoba) - 1. ) ;
i f ( kendal a_mn<0)
{
kendal a_mn=0. ;
}
}
el se
{
kendal a_mn=( ( MOY/ MNcoba) - 1. ) ;
i f ( kendal a_mn<0)
{
kendal a_mn=0. ;
}
}
}

/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
/ / Bi l a Gaya Aksi al Mel anggar Gaya Aksi al Bat as Mi ni mum/ /
/ / Eksent r i si t as Pada Kol omBer pengi kat Sengkang / /
/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
el se
{
FPU=PO;
FMU=0. ;
kendal a_pn=0. ;
kendal a_mn=0. ;
}

/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
/ / Menghi t ung Kendal a Tot al Aki bat Gaya Yang Ter j adi / /
/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
kendal a_gaya=kendal a_po+kendal a_pn+kendal a_mn;
}

/ ***********************************************/
/ * FUNGSI UNTUK MENGHI TUNG TEGANGAN PADA KOLOM */
/ ***********************************************/
f l oat kol om: : hi t ung_kol om( f l oat Ccoba)
{
/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
/ / Menghi t ung Gaya Yang Di t ahan Bet on / /
/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
PNcoba=( 0. 85*BT1*FC*Ccoba*si si ) ;
MNcoba=( 0. 85*BT1*FC*Ccoba*si si ) *( ( si si / 2. ) - ( BT1*Ccoba/ 2. ) ) ;

/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
/ / I t er asi Unt uk Kekuat an Yang Di dukung Tul angan / /
/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
f or ( i nt i kl =1; i kl <=N_DI A; i kl ++)
{
di =( DS+( ( N_DI A- i kl ) *( si si - ( 2. *DS) ) / ( N_DI A- 1. ) ) ) ;

i f ( di ==( 0. 5*si si ) )
{
cont i nue;
}


43
/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
/ / Luas Tul angan Pada Bar i s Luar / /
/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
i f ( ( i kl ==1) | | ( i kl ==N_DI A) )
{
ASdi =( N_DI A*( pi / 4. ) *pow( DI A, 2) ) ;
}

/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
/ / Luas Tul angan Pada Bar i s Dal am/ /
/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
el se
{
ASdi =( 2. *( pi / 4. ) *pow( DI A, 2) ) ;
}

/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
/ / Ant i si pasi Ni l ai Ccoba Dengan Li mi t Nol / /
/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
i f ( Ccoba==0)
{
Ccoba=l i mi t _nol ;
}

/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
/ / Hi t ung Tegangan Tahanan Tul angan / /
/ / f si = Regangan * Modul us El ast i si t as / /
/ / Dengan Regangan = 0. 003[ ( c- di ) / c] / /
/ / Modul us El ast i si t as = 2E5 MPa ( Baj a) / /
/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
f si =( ( 600. *( Ccoba- di ) ) / Ccoba) ;

/ / / / / / / / / / / / / / / / / / / / / / / / / / / /
/ / Per i ksa Range Tegangan / /
/ / / / / / / / / / / / / / / / / / / / / / / / / / / /
i f ( f si >FY)
{
f si =FY;
}
el se i f ( f si <( - FY) )
{
f si =( 0. - FY) ;
}

/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
/ / Reduksi Tegangan Baj a Pada Daer ah Desak / /
/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
i f ( di <( BT1*Ccoba) )
{
f si =( f si - ( 0. 85*FC) ) ;
}

/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
/ / Hi t ung Gaya Yang Di sumbangkan Ol eh Tul angan / /
/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
Fsi =f si *ASdi ;

/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
/ / Hi t ung Gaya Aksi al Dan Momen Tahanan Maksi mal / /
/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
PNcoba=( PNcoba+Fsi ) ;
MNcoba=( MNcoba+( Fsi *( ( si si / 2. ) - di ) ) ) ;
}

/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
/ / Ant i si pasi Di vi de By Zer o Er r or / /
/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
i f ( PNcoba<=0)
{
PNcoba=l i mi t _nol ;
}

44

/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
/ / Hi t ung Momen Dan Gaya Aksi al Tot al / /
/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
ekscoba=( MNcoba/ PNcoba) ;

/ / / / / / / / / / / / / / / / / / / / / / / / / / / / /
/ / Kembal i kan Ni l ai Fungsi / /
/ / / / / / / / / / / / / / / / / / / / / / / / / / / / /
r et ur n ( eks- ekscoba) ;
}

/ *********************************************************/
/ * FUNGSI UNTUK MENGHI TUNG KENDALA GAYA GESER PADA KOLOM */
/ *********************************************************/
voi d kol om: : sengkang_kol om( )
{
/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
/ / Menghi t ung Ant ar J ar ak Sengkang Maksi mal / /
/ / Ber dasar kan SK SNI T- 15- 1991- 03 pasal 3. 16. 10 ayat 5 / /
/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
f l oat Smak[ 3] ;
Smak[ 0] =si si ;
Smak[ 1] =16. *DI A;
Smak[ 2] =48. *DI AS;
f l oat SmakS=Smak[ 0] ;

/ / / / / / / / / / / / / / / / / / / / / / / /
/ / Car i Yang Ter keci l / /
/ / / / / / / / / / / / / / / / / / / / / / / /
f or ( i nt sk=1; sk<3; sk++)
{
i f ( SmakS>Smak[ sk] )
{
SmakS=Smak[ sk] ;
}
}

Sr ef =SmakS;
/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
/ / Menghi t ung Kendal a J ar ak Ant ar Sengkang / /
/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
kendal a_sengkang=( ( J ar ak_S/ SmakS) - 1. ) ;
i f ( kendal a_sengkang<0. )
{
kendal a_sengkang=0. ;
}
}

45
/ ***********************************************************************/
/ * FI LE : BALOK. HPP */
/ * KELAS UNTUK MENGHI TUNG HARGA DAN KENDALA PADA BALOK */
/ ***********************************************************************/
cl ass bal ok
{
pr i vat e:

/ ****************************************************/
/ * PENDEKLARASI AN VARI ABEL PRI VATE PADA KELAS BALOK */
/ ****************************************************/

/ / / / / / / / / / / / / / / / / / / / / / /
/ / Per hi t ungan Bal ok / /
/ / / / / / / / / / / / / / / / / / / / / / /
f l oat FS; / / Tegangan pada t ul angan t ar i k ( N/ mm^2)
f l oat FS1; / / Tegangan pada t ul angan desak ( N/ mm^2)
f l oat ARM; / / Lengan pusat t ekan ke gar i s Net r al ( mm)
f l oat ARMS; / / Lengan pusat t ul angan ke gar i s Net r al ( mm)
f l oat EPS; / / Regangan pada t ul angan t ar i k ( mm)
f l oat EPS1; / / Regangan pada t ul angan t ekan ( mm)
f l oat EPSY; / / Regangan i j i n baj a pada keadaan l ul uh ( mm)
f l oat RHB; / / Rasi o t ul angan bal ance
f l oat RHO; / / Rasi o t ul angan t ar i k
f l oat RH1; / / Rasi o t ul angan desak
f l oat RMI N; / / Rasi o t ul angan mi ni mum
f l oat SmakS; / / J ar ak ant ar sengkang maksi mumyang di i j i nkan ( mm)

/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
/ / Var i abel Pembant u Per samaan Kuar dat / /
/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
f l oat ASOL;
f l oat BSOL;
f l oat CSOL;
f l oat DSOL;

/ *************************************/
/ * PROTOTYPE FUNGSI PADA KELAS BALOK */
/ *************************************/
voi d anal i sa( ) ;
voi d sengkang_bal ok( ) ;
publ i c:

/ ***************************/
/ * CONSTRUCTOR CLASS BALOK */
/ ***************************/
bal ok( )
{
/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
/ / I ni si al i sai Kendal a Dan Har ga = 0 / /
/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
kendal a=0. ;
har ga=0. ;

/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
/ / Menghi t ung Luas Tul angan Tar i k Dan Tekan / /
/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
AS=( 0. 25*pi *( pow( DI A1, 2) ) *NL1) ;
AS1=( 0. 25*pi *( pow( DI A2, 2) ) *NL2) ;

/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
/ / Memanggi l Fungsi Fungsi Kendal a / /
/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
anal i sa( ) ;
sengkang_bal ok( ) ;
kendal a=kendal a_sb+kendal a_r ho+kendal a_M;

/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
/ / Per hi t ungan Ber at Dan Vol ume / /
/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
vol ume_bet on=B*H*0. 5*L/ 1. E6;

46
ber at _besi =( AS+AS1) *0. 5*L*bj _besi / 1. E6;
ber at _sengkang=0. 5*( f abs( L/ ( J ar ak_S/ 1000. ) ) - 1. ) *
(
2. *
(
( ( B- ( 2. *sel i mut _bal ok) ) / 1000. ) +
2. *( ( H- ( 2. *sel i mut _bal ok) ) / 1000. )
)
) *
( pi / 4. ) *pow( ( DI AS/ 1000. ) , 2) *bj _besi ;

/ / / / / / / / / / / / / / / / / / / / / /
/ / Menghi t ung Har ga / /
/ / / / / / / / / / / / / / / / / / / / / /
har ga=vol ume_bet on*har ga_bet on
+ber at _besi *har ga_besi
+ber at _sengkang*har ga_besi ;
}
};

/ *****************************************************/
/ * FUNGSI UNTUK MENGHI TUNG KENDALA TEGANGAN MATERI AL */
/ *****************************************************/
voi d bal ok: : anal i sa( )
{
/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
/ / Menghi t ung Fakt or Pengal i Ti nggi Bl ok Tegangan Segi empat / /
/ / Eki val en ( B1) / /
/ / Sumber : SK SNI T- 15- 1991- 03 Pasal 3. 3. 2 but i r 7. ( 3) / /
/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
i f ( FC<=30. )
{
BT1=0. 85;
}
el se
{
BT1=0. 85- 0. 008*( FC- 30. ) ;
}
i f ( BT1<0. 65)
{
BT1=0. 65;
}

DS=sel i mut _bal ok+( 0. 5*DI A1) ;

D=H- DS;
FS=FY;

EPSY=FY/ 200000. ;

/ / / / / / / / / / / / / / / / / / /
/ / Asumsi Per t ama / /
/ / / / / / / / / / / / / / / / / / /
FS1=FS;

/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
/ / Hi t ung Besar nya Lengan Ke Gar i s Net r al ( mm) / /
/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
ARM=( ( AS- AS1) *FY) / ( 0. 85*FC*B) ;
i f ( ARM==0)
{
ARM=l i mi t _nol ;
}

/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
/ / Per i ksa Regangan Pada Tul angan / /
/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
EPS1=0. 003*( ARM- BT1*DS) / ARM;
EPS=0. 003*( BT1*D- ARM) / ARM;



47
/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
/ / Hi t ung Ul ang Regangan Pada Baj a Apabi l a Tul angan Ti dak Lul uh / /
/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
i f ( ( EPS<EPSY) | | ( EPS1<EPSY) )
{
/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
/ / Hi t ung Koef i si en Per samaan Kuar dat Dan Menyel esai kannya / /
/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
ASOL=0. 85*FC*B;
BSOL=600. *AS1- AS*FY;
CSOL=( - 600. ) *BT1*AS1*DS;
DSOL=pow( BSOL, 2) - ( 4. *( ASOL*CSOL) ) ;
i f ( DSOL<=0)
{
DSOL=0. ;
}
ARMS=( - BSOL) +sqr t ( DSOL) ;
i f ( ARMS<=0&&DSOL>=0)
{
ARMS=( - BSOL) - sqr t ( DSOL) ;
}
ARM=0. 5*( ARMS/ ASOL) ;
i f ( ARM<=0)
{
ARM=l i mi t _nol ;
}

/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
/ / Hi t ung Regangan Pada Tul angan / /
/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
EPS1=0. 003*( ARM- BT1*DS) / ARM;
EPS=0. 003*( BT1*D- ARM) / ARM;
}

i f ( EPS>EPSY)
{
FS=FY;
}

FS1=EPS1*200000. ;
i f ( FS1>FY)
{
FS1=FY;
}
i f ( FS1<0)
{
FS1=0;
}

/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
/ / Per hi t ungan Rasi o Penul angan / /
/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
RH1=AS1/ ( B*D) ;
RHB=( 0. 75*( 0. 85*FC*BT1/ FY) *( 600. / ( 600. +FS) ) ) +RH1*FS1*FS1/ FY;
RHO = AS/ ( B*D) ;
RMI N=1. 4/ FY;

/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
/ / Menghi t ung Kendal a Rasi o Tul angan Bal ance / /
/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
kendal a_r ho_b=( RHO/ RHB) - 1. ;
i f ( kendal a_r ho_b<0)
{
kendal a_r ho_b=0. ;
}

/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
/ / Menghi t ung Kendal a Rasi o Tul angan Mi ni mum/ /
/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
kendal a_r ho_m=( RMI N/ RHO) - 1. ;
i f ( kendal a_r ho_m<0)

48
{
kendal a_r ho_m=0;
}

/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
/ / Menghi t ung Kendal a Rho Tot al / /
/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
kendal a_r ho=kendal a_r ho_b+kendal a_r ho_m;

/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
/ / Momen Pada Bal ok Nmm- > Nm/ /
/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
FMU=( t et a*( ( 0. 85*FC*ARM*B) *( D- ARM/ 2. ) +( AS1*FS1) *( D- DS) ) ) / 1000. ;

/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
/ / Menghi t ung Kendal a Momen Lent ur / /
/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
i f ( FMU>0)
{
kendal a_M=( ( MU) / FMU) - 1. ;
}
el se
{
kendal a_M=0. ;
}
i f ( kendal a_M<0)
{
kendal a_M=0. ;
}
}

/ ****************************************************/
/ * FUNGSI UNTUK MENGHI TUNG KENDALA PENULANGAN GESER */
/ ****************************************************/
voi d bal ok: : sengkang_bal ok( )
{
DS=sel i mut _bal ok+( 0. 5*DI A1) ;
D=H- DS;

AV=0. 25*pi *( pow( DI AS, 2) ) ;

/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
/ / Kuat Geser Nomi nal Yang Di sumbangkan Tul angan Geser / /
/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
VC=( 1. / 6. ) *sqr t ( FC) *B*D;
VS=( ( VU/ t et a) - VC) ;

/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
/ / Menghi t ung J ar ak Sengkang Maksi mal / /
/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
f l oat Smak[ 4] ;
i f ( VS<=0)
{
VS=l i mi t _nol ;
}
Smak[ 0] =3. *AV*FYS/ B;
Smak[ 1] =( AV*FYS*D) / ( VS) ;
Smak[ 2] =0. 5*D;
Smak[ 3] =600. ;
i f ( VS>( ( 1. / 3. ) *sqr t ( FC) *B*D) )
{
Smak[ 2] =0. 25*D;
Smak[ 3] =300. ;
}
SmakS=Smak[ 0] ;

/ / / / / / / / / / / / / / / / / / / / / / / /
/ / Car i Yang Ter keci l / /
/ / / / / / / / / / / / / / / / / / / / / / / /
f or ( i nt sk=1; sk<4; sk++)
{

49
i f ( SmakS>Smak[ sk] )
{
SmakS=Smak[ sk] ;
}
}

Sr ef =SmakS;
/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
/ / Menghi t ung Kendal a J ar ak Ant ar Sengkang Maksi mum/ /
/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
kendal a_sb=( ( J ar ak_S/ SmakS) - 1. ) ;
i f ( kendal a_sb<0. )
{
kendal a_sb=0. ;
}
}

/ **********************************************/
/ * FUNGSI UNTUK MENGHI TUNG LENDUTAN MAKSI MUM */
/ * BERDASARKAN SK SNI - T- 15- 1991- 03 AYAT 3. 2. 5 */
/ **********************************************/
voi d l endut an( i nt no_bat ang_l )
{
/ / / / / / / / / / / / / / / / / / / / / / / / / /
/ / Hi t ung Besar an Dasar / /
/ / / / / / / / / / / / / / / / / / / / / / / / / /
n=2. E5/ ( E*1. E- 6) ;

f r =0. 7*sqr t ( FC) ; / / ( MPa at au N/ mm^2)

/ / / / / / / / / / / / / / / / / / / / / / / /
/ / Let ak Gar i s Net r al / /
/ / / / / / / / / / / / / / / / / / / / / / / /
AS=( 0. 25*pi *( pow( DI A1, 2) ) *NL1) ;
AS1=( 0. 25*pi *( pow( DI A2, 2) ) *NL2) ;

LGN=( n*AS/ B) *( sqr t ( 1. +( ( 2. *B*( H- sel i mut _bal ok) ) / ( n*AS) ) ) - 1. ) ;

/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
/ / Menent ukan Momen I ner si a Penampang Ret ak Tr ansf or masi ( mm^4) / /
/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
I cr =( 1. / 3. ) *B*pow( LGN, 3) +n*AS*pow( ( ( H- sel i mut _bal ok) - LGN) , 2) ;

/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
/ / Momen I ner si a Penampang Kot or ( mm^4) / /
/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
I g=( 1. / 12. ) *B*pow( H, 3) ;

/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
/ / Momen Pada Saat Ti mbul Ret ak Per t ama Kal i ( Nmm) / /
/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
Mcr =f r *I g/ ( 0. 5*H) ;


/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
/ / Momen I ner si a Ef ekt i f Unt uk Per hi t ungan Lendut an ( mm^4) / /
/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
I e=pow( ( Mcr / ( MLAP[ no_bat ang_l ] *1. e3) ) , 3) *I g
+( 1. - pow( ( Mcr / ( MLAP[ no_bat ang_l ] *1. e3) ) , 3) ) *I cr ;

/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
/ / Menghi t ung Lendut an Seket i ka / /
/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
/ / Lendut an Pada Bal ok ( mm) / /
/ / Dar i Buku : Rei nf or ced Concr et e Mechani cs And Desi gn / /
/ / Hal aman : 355 / /
/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
LENDUTAN=(
(
( 5. *( pow( L*1000. , 2) ) )

50
/ ( 48. *( E*1. E- 6) *I e)
) *
(
f abs( MLAP[ no_bat ang_l ] ) *1000.
)
) ;


/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
/ / Menghi t ung Lendut an J angka Panj ang / /
/ / Menur ut SK SNI - T- 15- 1991- 03 pasal 3. 2. 5( 2. 5) / /
/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
Lambda=2. / ( 1. +( 50. *AS1/ ( B*H) ) ) ;
LENDUTAN=( 1. +Lambda) *LENDUTAN;

LENDUTAN_I J I N=( L*1000. ) / 180. ;

kendal a_l endut an=( ( LENDUTAN/ LENDUTAN_I J I N) - 1. ) ;
i f ( kendal a_l endut an<0)
{
kendal a_l endut an=0. ;
}
}

51
/ ***********************************************************************/
/ * FI LE : ELEMEN. HPP */
/ * PENGI SI AN ELEMEN BALOK DAN KOLOM */
/ ***********************************************************************/

/ *******************************/
/ * PENGI SI AN DATA ELEMEN BALOK */
/ *******************************/
voi d i si _el emen_bal ok( i nt no_el _bal ok)
{
B=i si ( var _b[ no_st r ukt ur ] [ 0+( 12*no_el _bal ok) ] , si si _d_B) ; / / ( mm)
H=i si ( var _b[ no_st r ukt ur ] [ 1+( 12*no_el _bal ok) ] , si si _d_H) ; / / ( mm)

DI A1l ap=i si ( var _b[ no_st r ukt ur ] [ 2+( 12*no_el _bal ok) ] , DI A_d) ; / / ( mm)
NL1l ap=i si ( var _b[ no_st r ukt ur ] [ 3+( 12*no_el _bal ok) ] , NL_d) ;
DI A2l ap=i si ( var _b[ no_st r ukt ur ] [ 4+( 12*no_el _bal ok) ] , DI A_d) ; / / ( mm)
NL2l ap=i si ( var _b[ no_st r ukt ur ] [ 5+( 12*no_el _bal ok) ] , NL_d) ;

DI A1t um=i si ( var _b[ no_st r ukt ur ] [ 6+( 12*no_el _bal ok) ] , DI A_d) ; / / ( mm)
NL1t um=i si ( var _b[ no_st r ukt ur ] [ 7+( 12*no_el _bal ok) ] , NL_d) ;
DI A2t um=i si ( var _b[ no_st r ukt ur ] [ 8+( 12*no_el _bal ok) ] , DI A_d) ; / / ( mm)
NL2t um=i si ( var _b[ no_st r ukt ur ] [ 9+( 12*no_el _bal ok) ] , NL_d) ;

DI AS=i si ( var _b[ no_st r ukt ur ] [ 10+( 12*no_el _bal ok) ] , DI AS_d) ; / / ( mm)
J ar ak_S=i si ( var _b[ no_st r ukt ur ] [ 11+( 12*no_el _bal ok) ] , J S_d) ; / / ( mm)
L=EL[ no_bal ok[ no_el _bal ok] ] ; / / ( m)

i f ( f abs( GESER_KI [ no_bal ok[ no_el _bal ok] ] )
>f abs( GESER_KA[ no_bal ok[ no_el _bal ok] ] ) )
{
VU = f abs( GESER_KI [ no_bal ok[ no_el _bal ok] ] / t et a) ; / / ( N)
}
el se
{
VU = f abs( GESER_KA[ no_bal ok[ no_el _bal ok] ] / t et a) ; / / ( N)
}
}

/ **************************/
/ * ELEMEN DAERAH LAPANGAN */
/ **************************/
voi d el emen_l apangan( i nt no_el _bal ok)
{
DI A1=DI A1l ap; / / Tul angan t ar i k ( mm)
NL1=NL1l ap;
DI A2=DI A2l ap; / / Tul angan desak ( mm)
NL2=NL2l ap;
MU=f abs( MLAP[ no_bal ok[ no_el _bal ok] ] / ( t et a) ) ; / / momen di t ahan ( Nm)
}

/ *************************/
/ * ELEMEN DAERAH TUMPUAN */
/ *************************/
voi d el emen_t umpuan( i nt no_el _bal ok)
{
DI A1=DI A1t um; / / Tul angan t ar i k ( mm)
NL1=NL1t um;
DI A2=DI A2t um; / / Tul angan desak ( mm)
NL2=NL2t um;

i f ( f abs( MTUM_KI [ no_bal ok[ no_el _bal ok] ] )
>f abs( MTUM_KA[ no_bal ok[ no_el _bal ok] ] ) )
{
MU=f abs( MTUM_KI [ no_bal ok[ no_el _bal ok] ] / t et a) ; / / ( Nm)
}
el se
{
MU=f abs( MTUM_KA[ no_bal ok[ no_el _bal ok] ] / t et a) ; / / ( Nm)
}
}


52
/ *******************************/
/ * PENGI SI AN DATA ELEMEN KOLOM */
/ *******************************/
voi d i si _el emen_kol om( i nt no_el _kol om)
{
si si =i si ( var _k[ no_st r ukt ur ] [ 0+( 5*no_el _kol om) ] , si si _d_K) ; / / ( mm)
DI A =i si ( var _k[ no_st r ukt ur ] [ 1+( 5*no_el _kol om) ] , DI A_d) ; / / ( mm)
N_DI A =i si ( var _k[ no_st r ukt ur ] [ 2+( 5*no_el _kol om) ] , NL_d) ;
DI AS =i si ( var _k[ no_st r ukt ur ] [ 3+( 5*no_el _kol om) ] , DI AS_d) ; / / ( mm)
J ar ak_S=i si ( var _k[ no_st r ukt ur ] [ 4+( 5*no_el _kol om) ] , J S_d) ; / / ( mm)

PU =( - ( PK[ no_kol om[ no_el _kol om] ] ) / ( t et a) ) ; / / ( N)
MUX =( MKX[ no_kol om[ no_el _kol om] ] ) / ( t et a) ; / / ( Nm)
MUY =( MKY[ no_kol om[ no_el _kol om] ] ) / ( t et a) ; / / ( Nm)
VU =( f abs( ( GK[ no_kol om[ no_el _kol om] ] ) / ( t et a) ) ) ;
/ / ( N)
L=EL[ no_kol om[ no_el _kol om] ] ;
/ / ( m)
}

/ **********************************************/
/ * SUBPROGRAM UNTUK MEMANGGI L I SI DATA ELEMEN */
/ **********************************************/
f l oat i si ( i nt no_dat a, f l oat kel ompok_dat a[ ] )
{
r et ur n kel ompok_dat a[ no_dat a] ;
}


53
/ ***********************************************************************/
/ * FI LE : POLYHEDRON. HPP */
/ * OPTI MASI STRUKTUR DENGAN METODA FLEXI BLE POLYHEDRON */
/ * DI TULI S OLEH YOHAN NAFTALI ( J UNI 1999) */
/ ***********************************************************************/

/ ***************************************/
/ * SUBPROGRAM UNTUK MELAKUKAN OPTI MASI */
/ ***************************************/
voi d opt i masi ( )
{
/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
/ / Pembangki t an Kel as Of st r eamUnt uk Penanganan Masal ah Fi l e / /
/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
of st r eamopt i ( f hi st or y) ;

/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
/ / Membaca Dat a I nput Dar i Fi l e / /
/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
baca_dat a( ) ;

/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
/ / Menghi t ung J uml ah Bal ok Kol omDan I dent i f i kasi Bal ok Kol om/ /
/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
j um_bal ok=0;
j um_kol om=0;
f or ( i nt i op=1; i op<=M; i op++)
{
/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
/ / Memer i ksa Kemi r i ngan Bat ang / /
/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
per i ksa_bat ang( i op) ;

/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
/ / Bat ang Non Ver t i kal - > Bal ok / /
/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
i f ( CXZ>0. 001)
{
no_bal ok[ j um_bal ok] =i op;
j um_bal ok ++;
}

/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
/ / Bat ang Ver t i kal - > Kol om/ /
/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
el se
{
no_kol om[ j um_kol om] =i op;
j um_kol om++;
}
}

/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
/ / Menghi t ung J uml ah Var i abel Desai n / /
/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
J VD=( 12*j um_bal ok) +( 5*j um_kol om) ;

/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
/ / J uml ah St r ukt ur Yang Di bangki t kan / /
/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
J STD=( J VD*f ak_kal i ) +f ak_pl us;

/ / / / / / / / / / / / / / / / / / / / / / /
/ / Mengacak Var i abel / /
/ / / / / / / / / / / / / / / / / / / / / / /
acak_var i abel ( ) ;

/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
/ / Mengi si Bat as At as Var i abel / /
/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
l oad_bat as_at as( ) ;

54

/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
/ / Penor mal an Bat as Var i abel Bal ok Kol om/ /
/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
nor mal i sasi _i nt ( nvm, nvb, nvk) ;

cl r scr ( ) ;
about ( ) ;
cout << " Gener asi ke - 1\ n" ;
cout << " \ nJ uml ah St r ukt ur desai n = \ n" ;
cout << " \ nWakt u yang t el ah ber j al an : 0 det i k\ n" ;
cout << " \ nEst i masi wakt u yang di per l ukan : ?\ n" ;


/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
/ / Pembangki t an Gener asi Per t ama / /
/ / St r ukt ur Di bangki t kan Sebanyak J uml ah St r ukt ur Desai n / /
/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /

f or ( i nt i op=0; i op<J STD; i op++)
{
/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
/ / I ni si al i sasi Var i abel St r ukt ur / /
/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
no_st r ukt ur =i op;
kendal ast r [ i op] =0. ;
har gast r [ i op] =0. ; ;
f i t st r [ i op] =0. ;

/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
/ / Pencat at an J uml ah St r ukt ur Desai n Yang Di bangki t kan / /
/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
got oxy( 26, 9) ;
cout << ( i op+1) << " " ;

/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
/ / Pembacaan Dat a UmumSt r ukt ur / /
/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
baca_dat a( ) ;

/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
/ / Membaca Beban Yang Beker j a Pada St r ukt ur / /
/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
baca_beban( ) ;

/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
/ / Menghi t ung Gaya- Gaya St r ukt ur / /
/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
i ner si a( ) ;
st r ukt ur ( ) ;

/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
/ / Menghi t ung Kendal a Dan Har ga Bal ok / /
/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
f or ( i nt j op=0; j op<j um_bal ok; j op++)
{
/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
/ / Memer i ksa Kemi r i ngan Bat ang / /
/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
per i ksa_bat ang( no_bal ok[ j op] ) ;

/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
/ / Mengi si Pr oper t i El emen Bal ok / /
/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
i si _el emen_bal ok( j op) ;

/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
/ / Membangki t kan Bal ok Pada Lapangan / /
/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
el emen_l apangan( j op) ;
bal ok l apangan;

55

/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
/ / Menggant i j ar ak sengkang / /
/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
f or ( i nt car i _S=( nvb[ 11+( 12*j op) ] - 1) ;
car i _S>0; car i _S- - )
{
i f ( i si ( car i _S, J S_d) <=Sr ef )
{
var _b[ no_st r ukt ur ] [ 11+( 12*j op) ] =car i _S;
J ar ak_S=i si ( car i _S, J S_d) ;
br eak;
}
}
bal ok r ai se_l ap;

kendal ast r [ i op] +=kendal a;
har gast r [ i op] +=har ga;

/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
/ / Menghi t ung Lendut an Pada Tengah Bent ang / /
/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
l endut an( no_bal ok[ j op] ) ;
kendal ast r [ i op] +=kendal a_l endut an;

/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
/ / Membangki t kan Bal ok Pada Tumpuan / /
/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
el emen_t umpuan( j op) ;
bal ok t umpuan;
kendal ast r [ i op] +=kendal a;
har gast r [ i op] +=har ga;
}

/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
/ / Menghi t ung Kendal a Dan Har ga Kol om/ /
/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
f or ( i nt j op=0; j op<j um_kol om; j op++)
{
/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
/ / Memer i ksa Kemi r i ngan Bat ang / /
/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
per i ksa_bat ang( no_kol om[ j op] ) ;

/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
/ / Mengi si Pr oper t i El emen Kol om/ /
/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
i si _el emen_kol om( j op) ;

/ / / / / / / / / / / / / / / / / / / / / / / / /
/ / Membangki t kan Kol om/ /
/ / / / / / / / / / / / / / / / / / / / / / / / /
kol ombangki t ;

/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
/ / Menggant i j ar ak sengkang / /
/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
f or ( i nt car i _S=( nvk[ 4+( 5*j op) ] - 1) ;
car i _S>0; car i _S- - )
{
i f ( i si ( car i _S, J S_d) <=Sr ef )
{
var _k[ no_st r ukt ur ] [ 4+( 5*j op) ] =car i _S;
J ar ak_S=i si ( car i _S, J S_d) ;
br eak;
}
}
kol omr ai se;




56
/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
/ / Bi l a Ada Kendal a Kel angsi ngan Ubah Ni l ai Si si / /
/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
i f ( kendal a_kel angsi ngan>0)
{
L=EL[ no_kol om[ j op] ] ;
f l oat si si _bar u=( ( 0. 75*L*1000. ) / ( 22. *sqr t ( ( 1. / 12. ) ) ) ) ;
f or ( i nt car i _si si =var _k[ no_st r ukt ur ] [ 0+( 5*j op) ] ;
car i _si si <nvk[ 0+( 5*j op) ] ; car i _si si ++)
{
f l oat si si _car i =i si ( car i _si si , si si _d_K) ;
i f ( si si _car i >si si _bar u)
{
var _k[ no_st r ukt ur ] [ 0+( 5*j op) ] =car i _si si ;
si si =i si ( car i _si si , si si _d_K) ;
br eak;
}
}
/ / / / / / / / / / / / / / / / / / / / / / / / /
/ / Hi t ung Kendal a Bar u / /
/ / / / / / / / / / / / / / / / / / / / / / / / /
kol ombangki t ;
}

kendal ast r [ i op] +=kendal a;
har gast r [ i op] +=har ga;
}

/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
/ / Menghi t ung Fi t ness St r ukt ur / /
/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
f i t st r [ i op] =( f i nal t i / ( har gast r [ i op] +( f i nal t i *kendal ast r [ i op] ) ) ) ;
}

/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
/ / Lakukan Pengur ut an Fi t ness / /
/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
sor t ( f i t st r , kendal ast r , har gast r , var _b, var _k, J STD) ;

/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
/ / Pengambi l an wakt u si st em/ /
/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
t i me_t t _awal , t _sekar ang, t _akhi r ;
t i me( &t _awal ) ;

/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
/ / Pr oses Pencar i an Hasi l Opt i mal Di mul ai / /
/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
i nt gener asi =1;
j um_susut =0;
do
{
/ / / / / / / / / / / / / / / / / / / / / / / / / / / /
/ / Menul i s Nomor Gener asi / /
/ / / / / / / / / / / / / / / / / / / / / / / / / / / /
got oxy( 15, 7) ;
cout << ( gener asi +1) << " " ;

/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
/ / Menbangki t kan Kel as Ti mer / /
/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
t i me( &t _sekar ang) ;

/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
/ / Menul i s Lama Wakt u Yang Sedang Ber j al an / /
/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
got oxy( 29, 11) ;
cout << di f f t i me( t _sekar ang, t _awal ) << " det i k " ;




57
/ / / / / / / / / / / / / / / / / / / / / / / / / / / /
/ / Menul i s Est i masi Wakt u / /
/ / / / / / / / / / / / / / / / / / / / / / / / / / / /
got oxy( 34, 13) ;
cout << i nt ( ( di f f t i me( t _sekar ang, t _awal ) / ( gener asi +1) )
*( j _i t er asi _mak- gener asi ) ) << " det i k " ;

/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
/ / Menent ukan Ar ah Penel usur an / /
/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
penel usur an( ) ;

/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
/ / Mencar i Ti t i k Bar u Unt uk Menggant i kan Ti t i k Wor st / /
/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
car i _bar u( ) ;


/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
/ / Membandi ngkan Fi t ness St r ukt ur Bar u / /
/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /


i f ( ( f i t cb_best ) >( f i t st r [ 0] ) )
{
i f ( j um_susut >1)
{
opt i << " Penyusut an ber t ur ut ber akhi r set el ah "
<< j um_susut << " kal i \ n" ;
j um_susut =0;
}

/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
/ / Gant i Var i abel Ter j el ek Dengan Var i abel Bar u / /
/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
gant i _bar u( ) ;

}
el se
{
/ / / / / / / / / / / / / / / / / / / / / / / /
/ / Lakukan Penyusut an / /
/ / / / / / / / / / / / / / / / / / / / / / / /
penyusut an( ) ;
j um_susut ++;
i f ( j um_susut ==1)
{
pat ok_f i t =f i t st r [ J STD- 1] ;
opt i << " Penyusut an ber t ur ut per t ama pada gener asi : " << gener asi
<< " Fi t ness t er bai k : " << f i t st r [ J STD- 1] << endl ;
}
}

/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
/ / I ni si al i sasi Var i abel St r ukt ur / /
/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
no_st r ukt ur =0;
kendal ast r [ 0] =0. ;
har gast r [ 0] =0. ; ;
f i t st r [ 0] =0. ;

/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
/ / Pembacaan Dat a UmumSt r ukt ur / /
/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
baca_dat a( ) ;

/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
/ / Membaca Beban Yang Beker j a Pada St r ukt ur / /
/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
baca_beban( ) ;


58
/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
/ / Menghi t ung Gaya- Gaya St r ukt ur / /
/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
i ner si a( ) ;
st r ukt ur ( ) ;

/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
/ / Menghi t ung Kendal a Dan Har ga Bal ok / /
/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
f or ( i nt i op=0; i op<j um_bal ok; i op++)
{
per i ksa_bat ang( no_bal ok[ i op] ) ;
i si _el emen_bal ok( i op) ;
el emen_l apangan( i op) ;
bal ok l apangan;
kendal ast r [ 0] +=kendal a;
har gast r [ 0] +=har ga;
l endut an( no_bal ok[ i op] ) ;
kendal ast r [ 0] +=kendal a_l endut an;
el emen_t umpuan( i op) ;
bal ok t umpuan;
kendal ast r [ 0] +=kendal a;
har gast r [ 0] +=har ga;
}

/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
/ / Menghi t ung Kendal a Dan Har ga Kol om/ /
/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
f or ( i nt i op=0; i op<j um_kol om; i op++)
{
per i ksa_bat ang( no_kol om[ i op] ) ;
i si _el emen_kol om( i op) ;
kol ombangki t ;
kendal ast r [ 0] +=kendal a;
har gast r [ 0] +=har ga;
}
f i t st r [ 0] =f i nal t i / ( har gast r [ 0] +( f i nal t i *kendal ast r [ 0] ) ) ;

/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
/ / Lakukan Pengur ut an Fi t ness / /
/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
sor t ( f i t st r , kendal ast r , har gast r , var _b, var _k, J STD) ;

/ / / / / / / / / / / / / / / / / / / / / / / / /
/ / Pencet akan Ke Layar / /
/ / / / / / / / / / / / / / / / / / / / / / / / /
got oxy( 1, 17) ;
cout << " Fi t ness t er bai k : " << f i t st r [ J STD- 1]
<< " \ n\ n" ;
cout << " Har ga : " << har gast r [ J STD- 1]
<< " \ n\ n" ;
cout << " Kendal a : " << kendal ast r [ J STD- 1]
<< " \ n\ n" ;

/ / / / / / / / / / / / / / / / / / / / / / / / / / /
/ / Memer i ksa Konver gensi / /
/ / / / / / / / / / / / / / / / / / / / / / / / / / /
i f ( f i t st r [ J STD- 1] ==f i t st r [ ( J STD- J VD) - 1] )
{
opt i << " Konver gen pada gener asi : " << gener asi << endl ;
br eak;
}


/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
/ / Accel er at or Konver gensi / /
/ / Di j al ankan Apabi l a Tel ah Ter j adi 0. 5*J STD Penyusut an / /
/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /

i f ( j um_susut ==J STD)
{

59
/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
/ / Hent i kan I t er asi Apabi l a Set el ah J VD Kal i Menyusut / /
/ / Dan Fi t ness Ter bai k Tet ap / /
/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
i f ( pat ok_f i t ==f i t st r [ J STD- 1] )
{
opt i << " Konver gen Pada Gener asi : " << gener asi
<< " kar ena j uml ah penyusut an mel ebi hi bat as" << endl ;
br eak;
}

/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
/ / J uml ah Penyusut an Di Reset Lagi / /
/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
j um_susut =0;
}

/ / / / / / / / / / / / / / /
/ / I ncr eat or / /
/ / / / / / / / / / / / / / /
gener asi ++;
}whi l e( gener asi <j _i t er asi _mak) ;

/ / / / / / / / / / / / / / / / / / / / / / / / / / /
/ / Mengambi l Wakt u Akhi r / /
/ / / / / / / / / / / / / / / / / / / / / / / / / / /
t i me( & t _akhi r ) ;

/ / / / / / / / / / / / / / / / / / / /
/ / Cet ak Ke Layar / /
/ / / / / / / / / / / / / / / / / / / /
got oxy( 1, 17) ;
cout << " Wakt u opt i masi : " << di f f t i me( t _akhi r , t _awal )
<< " det i k \ n\ a" ;
cout << " \ nFi t ness Ter bai k : " << f i t st r [ J STD- 1]
<< " " << endl ;
cout << " Har ga : " << har gast r [ J STD- 1]
<< " " << endl ;
cout << " Kendal a : " << kendal ast r [ J STD- 1]
<< " " << endl ;
got oxy( 55, 24) ;
cout << " Tekan <CR> unt uk kel uar " ;
get ch( ) ;

/ / / / / / / / / / / / / / / / / / /
/ / Cet ak Ke Fi l e / /
/ / / / / / / / / / / / / / / / / / /
i f ( gener asi ==j _i t er asi _mak)
{
opt i << " Sel esai pada gener asi " << ( gener asi )
<< " kar ena j uml ah i t er asi mencapai j uml ah i t er asi maksi mum\ n" ;
}
opt i << " Fi t ness = " << f i t st r [ J STD- 1] << endl ;
opt i << " Har ga = " << har gast r [ J STD- 1] << endl ;
opt i << " Kendal a = " << kendal ast r [ J STD- 1] << endl ;
opt i << " Wakt u opt i masi : " << di f f t i me( t _akhi r , t _awal )
<< " det i k " ;
opt i . cl ose( ) ;
cet ak_akhi r ( ) ;
}

60
/ ***********************************************************************/
/ * FI LE : PENORMALAN. HPP */
/ * PENANGANAN MASALAH VARI ABEL BALOK DAN KOLOM */
/ * DENGAN VARI ABEL GABUNGAN BALOK KOLOM */
/ ***********************************************************************/

/ *****************************************************/
/ * SUBPROGRAM MENGEMBALI KAN VARI ABEL BALOK DAN KOLOM */
/ *****************************************************/
voi d unnor mal i sasi ( i nt var _nor [ mak] , i nt var _bv[ mak] , i nt var _kv[ mak] )
{
i nt novar =0;
f or ( i nt i sum=0; i sum<j um_bal ok; i sum++)
{
f or ( i nt j sum=0; j sum<12; j sum++)
{
var _bv[ j sum+( 12*i sum) ] =var _nor [ novar ] ;
novar ++;
}
}
f or ( i nt i sum=0; i sum<j um_kol om; i sum++)
{
f or ( i nt j sum=0; j sum<5; j sum++)
{
var _kv[ j sum+( 5*i sum) ] =var _nor [ novar ] ;
novar ++;
}
}
}

/ *******************************************************************/
/ * SUBPROGRAM MENORMALI SASI KAN VARI ABEL BALOK DAN KOLOM TI PE FLOAT */
/ *******************************************************************/
voi d nor mal i sasi _f l oat ( f l oat var _nor [ ] , f l oat var _bv[ ] , f l oat var _kv[ ] )
{
i nt novar =0;
f or ( i nt i sum=0; i sum<j um_bal ok; i sum++)
{
f or ( i nt j sum=0; j sum<12; j sum++)
{
var _nor [ novar ] =var _bv[ j sum+( 12*i sum) ] ;
novar ++;
}
}
f or ( i nt i sum=0; i sum<j um_kol om; i sum++)
{
f or ( i nt j sum=0; j sum<5; j sum++)
{
var _nor [ novar ] =var _kv[ j sum+( 5*i sum) ] ;
novar ++;
}
}
}

/ *********************************************************************/
/ * SUBPROGRAM MENORMALI SASI KAN VARI ABEL BALOK DAN KOLOM TI PE I NTEGER */
/ *********************************************************************/
voi d nor mal i sasi _i nt ( i nt var _nor [ ] , i nt var _bv[ ] , i nt var _kv[ ] )
{
i nt novar =0;
f or ( i nt i sum=0; i sum<j um_bal ok; i sum++)
{
f or ( i nt j sum=0; j sum<12; j sum++)
{
var _nor [ novar ] =var _bv[ j sum+( 12*i sum) ] ;
novar ++;
}
}
f or ( i nt i sum=0; i sum<j um_kol om; i sum++)
{
f or ( i nt j sum=0; j sum<5; j sum++)

61
{
var _nor [ novar ] =var _kv[ j sum+( 5*i sum) ] ;
novar ++;
}
}
}

62
/ ***********************************************************************/
/ * FI LE : PENGACAKAN. HPP */
/ * PUSTAKA URUSAN VARI ABEL DESAI N ACAK */
/ ***********************************************************************/

/ ******************************************/
/ * SUBPROGRAM PENGENDALI LOOP RANDOMI SASI */
/ ******************************************/
voi d acak_var i abel ( )
{
/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
/ / Pengacakan Seed Unt uk RandomNumber Gener at or / /
/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
r andomi ze( ) ;

l oad_bat as_at as( ) ;

f or ( i nt i av=0; i av<J STD; i av++)
{
no_st r ukt ur =i av;

i f ( i av==1)
{
car i _st r ukt ur _awal ( ) ;
cont i nue;
}

/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
/ / RandomSt r ukt ur Sel anj ut nya / /
/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
r andomi sasi ( ) ;
}
}

/ ******************************************/
/ * SUBPROGRAM UNTUK MELAKUKAN RANDOMI SASI */
/ ******************************************/
voi d r andomi sasi ( )
{
/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
/ / Randomi sasi Var i abel Desai n Bal ok / /
/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
f or ( i nt i r an=0; i r an<j um_bal ok; i r an++)
{
f or ( i nt nv_b=0; nv_b<12; nv_b++)
{
var _b[ no_st r ukt ur ] [ nv_b+( 12*i r an) ] =r andom( nvb[ nv_b] ) ;
}
}

/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
/ / Randomi sasi Var i abel Desai n Kol om/ /
/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
f or ( i nt i r an=0; i r an<j um_kol om; i r an++)
{
f or ( i nt nv_k=0; nv_k<5; nv_k++)
{
var _k[ no_st r ukt ur ] [ nv_k+( 5*i r an) ] =r andom( nvk[ nv_k] ) ;
}
}
}

/ **********************************************************/
/ * SUBPROGRAM UNTUK MENENTUKAN BATAS ATAS VARI ABEL DESAI N */
/ **********************************************************/
voi d l oad_bat as_at as( )
{
f or ( i nt i si nv=0; i si nv<j um_bal ok; i si nv++)
{
nvb[ 0+( 12*i si nv) ] =nsi si _B; / / B
nvb[ 1+( 12*i si nv) ] =nsi si _H; / / H

63
nvb[ 2+( 12*i si nv) ] =nDI A; / / Di amet er t ul angan t ar i k l apangan
nvb[ 3+( 12*i si nv) ] =nNL; / / j uml ah t ul angan t ar i k l apangan
nvb[ 4+( 12*i si nv) ] =nDI A; / / Di amet er t ul angan desak l apangan
nvb[ 5+( 12*i si nv) ] =nNL; / / j uml ah t ul angan desak l apangan
nvb[ 6+( 12*i si nv) ] =nDI A; / / Di amet er t ul angan t ar i k t umpuan
nvb[ 7+( 12*i si nv) ] =nNL; / / j uml ah t ul angan t ar i k t umpuan
nvb[ 8+( 12*i si nv) ] =nDI A; / / Di amet er t ul angan desak t umpuan
nvb[ 9+( 12*i si nv) ] =nNL; / / j uml ah t ul angan desak t umpuan
nvb[ 10+( 12*i si nv) ] =nDI AS; / / Di amet er t ul angan sengkang
nvb[ 11+( 12*i si nv) ] =nJ S; / / j ar ak ant ar t ul angan sengkang
}
f or ( i nt i si nv=0; i si nv<j um_kol om; i si nv++)
{
nvk[ 0+( 5*i si nv) ] =nsi si _K; / / Si si B=H
nvk[ 1+( 5*i si nv) ] =nDI A; / / Di amet er t ul angan bawah l apangan
nvk[ 2+( 5*i si nv) ] =nNL; / / j uml ah t ul angan pada sat u si si
nvk[ 3+( 5*i si nv) ] =nDI AS; / / Di amet er t ul angan sengkang
nvk[ 4+( 5*i si nv) ] =nJ S; / / j ar ak ant ar t ul angan sengkang
}
}

voi d car i _st r ukt ur _awal ( )
{
f or ( i nt i r an=0; i r an<j um_bal ok; i r an++)
{
f or ( i nt nv_b=0; nv_b<12; nv_b++)
{
var _b[ no_st r ukt ur ] [ nv_b+( 12*i r an) ] =( nvb[ nv_b] - 1) ;
i f ( nv_b==5| | nv_b==9| | nv_b==11)
{
var _b[ no_st r ukt ur ] [ nv_b+( 12*i r an) ] =0;
}
}
}

f or ( i nt i r an=0; i r an<j um_kol om; i r an++)
{
f or ( i nt nv_k=0; nv_k<5; nv_k++)
{
var _k[ no_st r ukt ur ] [ nv_k+( 5*i r an) ] =( nvk[ nv_k] - 1) ;
}
}
}

64
/ *************************************************************************/
/ * FI LE : DI SKRI TI SASI . HPP
*/
/ * SUBPROGRAM UNTUK MELAKUKAN KONVERSI MENJ ADI BI LANGAN DI SKRI T */
/ *************************************************************************/
i nt konver si ( f l oat bi l _asl i )
{
i f ( ( f abs( bi l _asl i ) - ( abs( bi l _asl i ) ) ) <=0. 5)
{
bi l _asl i =f l oor ( bi l _asl i ) ;
}
el se
{
bi l _asl i =cei l ( bi l _asl i ) ;
}
r et ur n bi l _asl i ;
}

65
/ ***********************************************************************/
/ * FI LE : KENDALA. HPP */
/ * SUBPROGRAM UNTUK MENGHI TUNG KENDALA */
/ ***********************************************************************/
f l oat Kendal a_Har ga( i nt var _b_nya[ ] , i nt var _k_nya[ ] )
{
/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
/ / I ni si al i sasi Kendal a Dan Har ga / /
/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
f l oat kendal anya=0. ;
f l oat har ganya=0. ;

/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
/ / Pembacaan Dat a UmumSt r ukt ur / /
/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
baca_dat a( ) ;

/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
/ / Membaca Beban Yang Beker j a Pada St r ukt ur / /
/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
baca_beban( ) ;

/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
/ / Menghi t ung Gaya- Gaya St r ukt ur / /
/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
i ner si a( ) ;
st r ukt ur ( ) ;


/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
/ / Menghi t ung Kendal a Dan Har ga Bal ok / /
/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
f or ( i nt i KH=0; i KH<j um_bal ok; i KH++)
{
/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
/ / Memer i kasa Kemi r i ngan Bat ang / /
/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
per i ksa_bat ang( no_bal ok[ i KH] ) ;

/ / / / / / / / / / / / / / / / / / / / / / / / / / / /
/ / Pengi si an El emen Bal ok / /
/ / / / / / / / / / / / / / / / / / / / / / / / / / / /
B=i si ( var _b_nya[ 0+( 12*i KH) ] , si si _d_B) ;
H=i si ( var _b_nya[ 1+( 12*i KH) ] , si si _d_H) ;

DI A1l ap=i si ( var _b_nya[ 2+( 12*i KH) ] , DI A_d) ;
NL1l ap=i si ( var _b_nya[ 3+( 12*i KH) ] , NL_d) ;
DI A2l ap=i si ( var _b_nya[ 4+( 12*i KH) ] , DI A_d) ;
NL2l ap=i si ( var _b_nya[ 5+( 12*i KH) ] , NL_d) ;

DI A1t um=i si ( var _b_nya[ 6+( 12*i KH) ] , DI A_d) ;
NL1t um=i si ( var _b_nya[ 7+( 12*i KH) ] , NL_d) ;
DI A2t um=i si ( var _b_nya[ 8+( 12*i KH) ] , DI A_d) ;
NL2t um=i si ( var _b_nya[ 9+( 12*i KH) ] , NL_d) ;

DI AS=i si ( var _b_nya[ 10+( 12*i KH) ] , DI AS_d) ;
J ar ak_S=i si ( var _b_nya[ 11+( 12*i KH) ] , J S_d) ;
L=EL[ no_bal ok[ i KH] ] ;

/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
/ / Menent ukan Gaya Geser Yang Ter j adi / /
/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
i f ( f abs( GESER_KI [ no_bal ok[ i KH] ] ) >GESER_KA[ no_bal ok[ i KH] ] )
{
VU = f abs( GESER_KI [ no_bal ok[ i KH] ] / t et a) ;
}
el se
{
VU = f abs( GESER_KA[ no_bal ok[ i KH] ] / t et a) ;
}


66
/ / / / / / / / / / / / / / / / / / / / /
/ / Daer ah Lapangan / /
/ / / / / / / / / / / / / / / / / / / / /
DI A1=DI A1l ap;
NL1=NL1l ap;
DI A2=DI A2l ap;
NL2=NL2l ap;
MU=f abs( MLAP[ no_bal ok[ i KH] ] / t et a) ;

/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
/ / Membangki t kan Bal ok Pada Lapangan / /
/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
bal ok l apangan;
kendal anya+=kendal a;
har ganya+=har ga;

l endut an( no_bal ok[ i KH] ) ;
kendal anya+=kendal a_l endut an;

/ / / / / / / / / / / / / / / / / / / /
/ / Daer ah Tumpuan / /
/ / / / / / / / / / / / / / / / / / / /
DI A1=DI A1t um;
NL1=NL1t um;
DI A2=DI A2t um;
NL2=NL2t um;

i f ( f abs( MTUM_KI [ no_bal ok[ i KH] ] ) >f abs( MTUM_KA[ no_bal ok[ i KH] ] ) )
{
MU=f abs( MTUM_KI [ no_bal ok[ i KH] ] / t et a) ;
}
el se
{
MU=f abs( MTUM_KA[ no_bal ok[ i KH] ] / t et a) ;
}

/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
/ / Membangki t kan Bal ok Pada Tumpuan / /
/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
bal ok t umpuan;
kendal anya+=kendal a;
har ganya+=har ga;
}


/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
/ / Menghi t ung Kendal a Dan Har ga Kol omBi aksi al / /
/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
f or ( i nt i KH=0; i KH<j um_kol om; i KH++)
{
/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
/ / Memer i ksa Kemi r i ngan Bat ang / /
/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
per i ksa_bat ang( no_kol om[ i KH] ) ;

/ / / / / / / / / / / / / / / / / / / / / / / / / / /
/ / Pengi si an Dat a El emen / /
/ / / / / / / / / / / / / / / / / / / / / / / / / / /
si si =i si ( var _k_nya[ 0+( 5*i KH) ] , si si _d_K) ; / / si si kol om( mm)
DI A =i si ( var _k_nya[ 1+( 5*i KH) ] , DI A_d) ; / / Di amet er t ul angan
/ / ut ama ( mm)

N_DI A =i si ( var _k_nya[ 2+( 5*i KH) ] , NL_d) ; / / J uml ah t ul angan
DI AS =i si ( var _k_nya[ 3+( 5*i KH) ] , DI AS_d) ; / / Di amet er sengkang ( mm)
J ar ak_S=i si ( var _k_nya[ 4+( 5*i KH) ] , J S_d) ; / / J ar ak ant ar a
/ / sengkang ( mm)

/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
/ / Gaya Aksi al Yang Har us Di t ahan / /
/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
PU =f abs( ( PK[ no_kol om[ i KH] ] ) / ( t et a) ) ; / / ( N)

67

/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
/ / Momen Yang Har us Di t ahan / /
/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
MUX =( MKX[ no_kol om[ i KH] ] ) / ( t et a) ; / / ( Nm)
MUY =( MKY[ no_kol om[ i KH] ] ) / ( t et a) ; / / ( Nm)

/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
/ / Gaya Geser Yang Har us Di t ahan / /
/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
VU =f abs( ( GK[ no_kol om[ i KH] ] ) / ( t et a) ) ; / / ( N)

L=EL[ no_kol om[ i KH] ] ; / / Panj ang kol om( m)

/ / / / / / / / / / / / / / / / / / / / / / / / /
/ / Membangki t kan Kol om/ /
/ / / / / / / / / / / / / / / / / / / / / / / / /
kol ombangki t ;


f or ( i nt car i _S=( nvk[ 4+( 5*i KH) ] - 1) ;
car i _S>0; car i _S- - )
{
i f ( i si ( car i _S, J S_d) <=Sr ef )
{
var _k_nya[ 4+( 5*i KH) ] =car i _S;
J ar ak_S=i si ( car i _S, J S_d) ;
br eak;
}
}
kol omr ai se;

/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
/ / Bi l a Ada Kendal a Kel angsi ngan Ubah Ni l ai Si si / /
/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
i f ( kendal a_kel angsi ngan>0)
{
L=EL[ no_kol om[ i KH] ] ; / / Panj ang kol om( m)
f l oat si si _bar u=( ( 0. 75*L*1000. ) / ( 22. *sqr t ( ( 1. / 12. ) ) ) ) ;
f or ( i nt car i _si si =var _k_nya[ 0+( 5*i KH) ] ;
car i _si si <nvk[ 0+( 5*i KH) ] ; car i _si si ++)
{
f l oat si si _car i =i si ( car i _si si , si si _d_K) ;
i f ( si si _car i >si si _bar u)
{
var _k_nya[ 0+( 5*i KH) ] =car i _si si ;
si si =i si ( car i _si si , si si _d_K) ;
br eak;
}
}
/ / / / / / / / / / / / / / / / / / / / / / / / /
/ / Hi t ung Kendal a Bar u / /
/ / / / / / / / / / / / / / / / / / / / / / / / /
kol ombangki t ;
}

kendal anya+=kendal a;
har ganya+=har ga;
}
r et ur n( f i nal t i / ( har ganya+( f i nal t i *kendal anya) ) ) ;
}

68
/ **********************************************************************/
/ * FI LE : TELUSUR. HPP */
/ * SUBPROGRAM UNTUK MELAKUKAN PENELUSURAN MENUJ U TI TI K BARU */
/ **********************************************************************/
voi d penel usur an( )
{
/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
/ / Mencar i Let ak Ti t i k Mi dl e / /
/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /

/ / / / / / / / / / / / / / / / / / / / / / /
/ / I ni si al i sasi Awal / /
/ / / / / / / / / / / / / / / / / / / / / / /
f l oat sum_best good_b[ mak] ;
f l oat sum_best good_k[ mak] ;
f or ( i nt i sum=0; i sum<j um_bal ok; i sum++)
{
f or ( i nt j sum=0; j sum<12; j sum++)
{
sum_best good_b[ j sum+( 12*i sum) ] =0. ;
}
}
f or ( i nt i sum=0; i sum<j um_kol om; i sum++)
{
f or ( i nt j sum=0; j sum<5; j sum++)
{
sum_best good_k[ j sum+( 5*i sum) ] =0. ;
}
}

/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
/ / J uml ah Kor di nat = 12*j um_bal ok_p + 5*j um_kol om_p / /
/ / Menj uml ahkan Var i abel Best Dan Good Pada Bal ok / /
/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
f or ( i nt nbgw=1; nbgw<J STD; nbgw++)
{
/ / / / / / / / / / / / / / / / / / / / / / / / / / / /
/ / 12*j um_bal ok_p Ti t i k M / /
/ / / / / / / / / / / / / / / / / / / / / / / / / / / /
f or ( i nt i sum=0; i sum<j um_bal ok; i sum++)
{
f or ( i nt j sum=0; j sum<12; j sum++)
{
sum_best good_b[ j sum+( 12*i sum) ] +=var _b[ nbgw] [ j sum+( 12*i sum) ] ;
}
}

/ / / / / / / / / / / / / / / / / / / / / / / / / / /
/ / 5*j um_kol om_p Ti t i k M / /
/ / / / / / / / / / / / / / / / / / / / / / / / / / /
f or ( i nt i sum=0; i sum<j um_kol om; i sum++)
{
f or ( i nt j sum=0; j sum<5; j sum++)
{
sum_best good_k[ j sum+( 5*i sum) ] +=var _k[ nbgw] [ j sum+( 5*i sum) ] ;
}
}
}

/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
/ / Dar i Si ni Ki t a Mempunyai j um_kol om_p Koor di nat / /
/ / Dan j um_bal ok_p Koor di nat / /
/ / Menent ukan Koor di nat Ti t i k M / /
/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
f or ( i nt i sum=0; i sum<j um_bal ok; i sum++)
{
f or ( i nt j sum=0; j sum<12; j sum++)
{
XM_b[ j sum+( 12*i sum) ] =sum_best good_b[ j sum+( 12*i sum) ] / ( J STD- 1. ) ;
}
}

69
f or ( i nt i sum=0; i sum<j um_kol om; i sum++)
{
f or ( i nt j sum=0; j sum<5; j sum++)
{
XM_k[ j sum+( 5*i sum) ] =sum_best good_k[ j sum+( 5*i sum) ] / ( J STD- 1. ) ;
}
}


/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
/ / Mencar i Ar ah Penel usur an Pada Bal ok / /
/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
f or ( i nt i sum=0; i sum<j um_bal ok; i sum++)
{
f or ( i nt j sum=0; j sum<12; j sum++)
{
XS_b[ j sum+( 12*i sum) ] =( XM_b[ j sum+( 12*i sum) ]
- var _b[ 0] [ j sum+( 12*i sum) ] ) ;
i f ( XS_b[ j sum+( 12*i sum) ] >0. )
{
t anda_ar ah_b[ j sum+( 12*i sum) ] =1. ;
}
el se
{
i f ( XS_b[ j sum+( 12*i sum) ] <0)
{
t anda_ar ah_b[ j sum+( 12*i sum) ] =( - 1. ) ;
}
i f ( XS_b[ j sum+( 12*i sum) ] ==0)
{
t anda_ar ah_b[ j sum+( 12*i sum) ] =( 0. ) ;
}
}
}
}

/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
/ / Mencar i Ar ah Penel usur an Pada Kol om/ /
/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
f or ( i nt i sum=0; i sum<j um_kol om; i sum++)
{
f or ( i nt j sum=0; j sum<5; j sum++)
{
XS_k[ j sum+( 5*i sum) ] =( XM_k[ j sum+( 5*i sum) ]
- var _k[ 0] [ j sum+( 5*i sum) ] ) ;
i f ( XS_k[ j sum+( 5*i sum) ] >0. )
{
t anda_ar ah_k[ j sum+( 5*i sum) ] =1. ;
}
el se
{
i f ( XS_k[ j sum+( 5*i sum) ] <0)
{
t anda_ar ah_k[ j sum+( 5*i sum) ] =( - 1. ) ;
}
i f ( XS_k[ j sum+( 5*i sum) ] ==0)
{
t anda_ar ah_k[ j sum+( 5*i sum) ] =( 0. ) ;
}
}
}
}

/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
/ / Penggandaan Var i abel Ter j el ek / /
/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /

/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
/ / 12*j um_bal ok_p Koor di nat Ti t i k Ter j el ek / /
/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
f or ( i nt i sum=0; i sum<j um_bal ok; i sum++)

70
{
f or ( i nt j sum=0; j sum<12; j sum++)
{
var _b_j el ek[ j sum+( 12*i sum) ] =var _b[ 0] [ j sum+( 12*i sum) ] ;
}
}

/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
/ / 5*j um_kol om_p Koor di nat Ti t i k Ter j el ek / /
/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
f or ( i nt i sum=0; i sum<j um_kol om; i sum++)
{
f or ( i nt j sum=0; j sum<5; j sum++)
{
var _k_j el ek[ j sum+( 5*i sum) ] =var _k[ 0] [ j sum+( 5*i sum) ] ;
}
}

/ / / / / / / / / / / / / / / / / / / / / / / / / / /
/ / I ni si al i sasi Awal = 0 / /
/ / / / / / / / / / / / / / / / / / / / / / / / / / /
f or ( i nt i sum=0; i sum<J VD; i sum++)
{
TM[ i sum] =0. ;
TS[ i sum] =0. ;
var new_asl i [ i sum] =0;
ar ah[ i sum] =0;
}
nor mal i sasi _f l oat ( TM, XM_b, XM_k) ;
nor mal i sasi _f l oat ( TS, XS_b, XS_k) ;
nor mal i sasi _i nt ( ar ah, t anda_ar ah_b, t anda_ar ah_k) ;

/ / / / / / / / / / / / / / / / / / / / / / / / / / / / /
/ / Car i nomor Ar ah Ter j auh / /
/ / / / / / / / / / / / / / / / / / / / / / / / / / / / /
no_TS_t er j auh=0;
f or ( i nt car i _t s=1; car i _t s<J VD; car i _t s++)
{
i f ( f abs( TS[ car i _t s] ) >f abs( TS[ no_TS_t er j auh] ) )
{
no_TS_t er j auh=car i _t s;
}
}
}

71
/ ***********************************************************************/
/ * FI LE : BARU. HPP */
/ * PUSTAKA PENANGANAN TI TI K BARU */
/ ***********************************************************************/

/ ***************************************/
/ * SUBPROGRAM UNTUK MENCARI TI TI K BARU */
/ ***************************************/
voi d car i _bar u( )
{
/ / / / / / / / / / / / / / / / / / / / / / /
/ / I ni si al i sasi Awal / /
/ / / / / / / / / / / / / / / / / / / / / / /
i t er asi _var =0;

nor mal i sasi _i nt ( var new_asl i , var _b_j el ek, var _k_j el ek) ;
f i t cb_best =0. ;
do
{
got oxy( 1, 15) ;
cpr i nt f ( " Pencar i an ar ah bar u ke - %d" , ( i t er asi _var +1) ) ;
cpr i nt f ( " " ) ;

/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
/ / Menent ukan Ti t i k X Per t ama Bar u / /
/ / Di ambi l Yang Ar ahnya Pal i ng J auh / /
/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
var pl us[ no_TS_t er j auh] =( i t er asi _var +1. ) ;

/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
/ / Var i abel Bar u Di t ambahkan Sesuai Ar ahnya / /
/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
var new_f [ no_TS_t er j auh] =var new_asl i [ no_TS_t er j auh]
+var pl us[ no_TS_t er j auh]
*ar ah[ no_TS_t er j auh] ;

/ / / / / / / / / / / / / / / / / / / / / / / / / / / /
/ / Menent ukan X Bar u Lai n / /
/ / / / / / / / / / / / / / / / / / / / / / / / / / / /
f or ( i nt i cb=0; i cb<J VD; i cb++)
{
/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
/ / Ski p Bi l a i cb Adal ah Nomor ar ah Pencar i an Ter j auh / /
/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
i f ( i cb==no_TS_t er j auh)
{
cont i nue;
}

i f ( TS[ no_TS_t er j auh] ! =0)
{
/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
/ / Menghi t ung Penambahannya / /
/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
var pl us[ i cb] =f abs( ( TS[ i cb] / TS[ no_TS_t er j auh] )
*var pl us[ no_TS_t er j auh] ) ;
var new_f [ i cb] =var new_asl i [ i cb]
+var pl us[ i cb] *ar ah[ i cb] ;
}
el se
{
var new_f [ i cb] =var new_asl i [ i cb]
+( ( i t er asi _var +1. ) *ar ah[ i cb] ) ;
}
}

f or ( i nt i cb=0; i cb<J VD; i cb++)
{
var new[ i cb] =konver si ( var new_f [ i cb] ) ;
}


72
/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
/ / Memer i ksa Apakah Ti t i k Bar u Ter sebut I dent i k Dengan Ti t i k M / /
/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
f or ( i nt i l p=0; i l p<J VD; i l p++)
{
i f ( var new[ i l p] ==TM[ i l p] )
{
i f ( i l p==( J VD- 1) )
{
l ompat =1;
}
}
el se
{
l ompat =0;
br eak;
}
}

/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
/ / Lompat Dar i Loop Apabi l a I ndi kat or Pel ompat ber ni l ai 1 / /
/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
i f ( l ompat ==1)
{
l ompat =0;
i t er asi _var ++;
cont i nue;
}

per i ksa_bat as( ) ;

/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
/ / Per ubahan Var i abel UmumKe Var i abel Bal ok Kol om/ /
/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
unnor mal i sasi ( var new, var _b_cb, var _k_cb) ;

/ / / / / / / / / / / / / / / / / / / / / / / /
/ / Menghi t ung Kendal a / /
/ / / / / / / / / / / / / / / / / / / / / / / /
f i t cb=Kendal a_Har ga( var _b_cb, var _k_cb) ;

i f ( f i t cb>f i t cb_best )
{
f i t cb_best =f i t cb;
f or ( i nt i cb=0; i cb<j um_bal ok; i cb++)
{
f or ( i nt j cb=0; j cb<12; j cb++)
{
var _b_cb_best [ j cb+( 12*i cb) ] =var _b_cb[ j cb+( 12*i cb) ] ;

}
}
f or ( i nt i cb=0; i cb<j um_kol om; i cb++)
{
f or ( i nt j cb=0; j cb<5; j cb++)
{
var _k_cb_best [ j cb+( 5*i cb) ] =var _k_cb[ j cb+( 5*i cb) ] ;
}
}
}
i t er asi _var ++;
}whi l e( i t er asi _var <( f abs( TS[ no_TS_t er j auh] ) *3) ) ;
}

/ *****************************************/
/ * SUBPROGRAM UNTUK MEMERI KSA BATAS ATAS */
/ * DAN BAWAH VARI ABEL DESAI N BARU */
/ * DAN BI LA TERJ ADI PELANGGARAN MAKA */
/ * VARI ABEL I TU AKAN DI CERMI NKAN */
/ *****************************************/
voi d per i ksa_bat as( )

73
{
f or ( i nt i pb=0; i pb<J VD; i pb++)
{
i f ( ( var new[ i pb] ) >( nvm[ i pb] - 1) )
{
var new[ i pb] =( nvm[ i pb] - 1) ;
}
i f ( var new[ i pb] <0)
{
var new[ i pb] =0;
}
}
}

/ *********************************************************************/
/ * SUBPROGRAM UNTUK MENGGANTI VARI ABEL TERJ ELEK DENGAN VARI ABEL BARU */
/ *********************************************************************/
voi d gant i _bar u( )
{
f or ( i nt i gbar =0; i gbar <j um_bal ok; i gbar ++)
{
f or ( i nt j gbar =0; j gbar <12; j gbar ++)
{
var _b[ 0] [ j gbar +( 12*i gbar ) ] =var _b_cb_best [ j gbar +( 12*i gbar ) ] ;
}
}
f or ( i nt i gbar =0; i gbar <j um_kol om; i gbar ++)
{
f or ( i nt j gbar =0; j gbar <5; j gbar ++)
{
var _k[ 0] [ j gbar +( 5*i gbar ) ] =var _k_cb_best [ j gbar +( 5*i gbar ) ] ;
}
}
}

/ ************************************************/
/ * SUBPROGRAM UNTUK MENYUSUTKAN VARI ABEL DESAI N */
/ ************************************************/
voi d penyusut an( )
{
f or ( i nt nkon=0; nkon<( J STD- 1) ; nkon++)
{
f or ( i nt i gbar =0; i gbar <j um_bal ok; i gbar ++)
{
f or ( i nt j gbar =0; j gbar <12; j gbar ++)
{
var _b[ nkon] [ j gbar +( 12*i gbar ) ] =
konver si ( 0. 5*( var _b[ nkon] [ j gbar +( 12*i gbar ) ]
+var _b[ J STD- 1] [ j gbar +( 12*i gbar ) ] ) ) ;
}
}
f or ( i nt i gbar =0; i gbar <j um_kol om; i gbar ++)
{
f or ( i nt j gbar =0; j gbar <5; j gbar ++)
{
var _k[ nkon] [ j gbar +( 5*i gbar ) ] =
konver si ( 0. 5*( var _k[ nkon] [ j gbar +( 5*i gbar ) ]
+var _k[ J STD- 1] [ j gbar +( 5*i gbar ) ] ) ) ;
}
}
}
}

74
/ ***********************************************************************/
/ * FI LE : PENGURUTAN. HPP */
/ * SUBPROGRAM UNTUK MENGURUTKAN DATA BERDASARKAN FI TNESS */
/ * DENGAN BANTUAN METODA BUBBLE SORT */
/ ***********************************************************************/
voi d sor t ( f l oat ni l ai 1[ ] , f l oat ni l ai 2[ ] , f l oat ni l ai 3[ ]
, i nt ur ut _var _b[ ] [ mak] , i nt ur ut _var _k[ ] [ mak]
, i nt n_ar r ay)
{
/ / / / / / / / / / / / / / / / / / / / / / / /
/ / Met ode Bubbl e Sor t / /
/ / / / / / / / / / / / / / / / / / / / / / / /

/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
/ / Ni l ai 1 Unt uk Fi t ness / /
/ / Ni l ai 2 Unt uk Kendal a / /
/ / Ni l ai 3 Unt uk Har ga / /
/ / ur ut _var _b Unt uk Var i abel Bal ok / /
/ / ur ut _var _k Unt uk Var i abel Kol om / /
/ / n_ar r ay Adal ah J uml ah Ti t i k Yang Akan Di ur ut kan Fi t nessnya / /
/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
doubl e dummy1=0. ;
f l oat dummy2=0. ;
f l oat dummy3=0. ;
i nt dummyvar b[ mak] ;
i nt dummyvar k[ mak] ;
f or ( i nt dum1=0; dum1<J STD; dum1++)
{
dummyvar b[ dum1] =0;
dummyvar k[ dum1] =0;
}

/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
/ / Pemer i ksaaan Di mul ai Dar i Ni l ai Ter keci l +1 / /
/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
f or ( i nt i sor t =1; i sor t <n_ar r ay; ++i sor t )
{
/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
/ / Pembandi ngan Kepada Ni l ai - Ni l ai Sebel umnya / /
/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
f or ( i nt j sor t =0; j sor t <=i sor t ; ++j sor t )
{
/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
/ / Bi l a Ni l ai Sekar ang Lebi h Keci l Dar i pada Ni l ai Sebel umnya / /
/ / Maka Di l akukan Penukar an Posi si Ke Tempat Ni l ai Sebel umnya / /
/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
i f ( ni l ai 1[ i sor t ] <ni l ai 1[ j sor t ] )
{
/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
/ / Pengi si an Ni l ai Sekar ang Ke Var i abel Dummy / /
/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
dummy1=ni l ai 1[ i sor t ] ;
dummy2=ni l ai 2[ i sor t ] ;
dummy3=ni l ai 3[ i sor t ] ;
f or ( i nt dvb=0; dvb<j um_bal ok; dvb++)
{
f or ( i nt dnv_b=0; dnv_b<12; dnv_b++)
{
dummyvar b[ dnv_b+( 12*dvb) ]
=ur ut _var _b[ i sor t ] [ dnv_b+( 12*dvb) ] ;
}
}
f or ( i nt dvk=0; dvk<j um_kol om; dvk++)
{
f or ( i nt dnv_k=0; dnv_k<5; dnv_k++)
{
dummyvar k[ dnv_k+( 5*dvk) ]
=ur ut _var _k[ i sor t ] [ dnv_k+( 5*dvk) ] ;
}
}


75
/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
/ / Pemi ndahan Ni l ai Yang Akan Di gant i kan Posi si nya / /
/ / Ke Posi si Sekar ang / /
/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
ni l ai 1[ i sor t ] =ni l ai 1[ j sor t ] ;
ni l ai 2[ i sor t ] =ni l ai 2[ j sor t ] ;
ni l ai 3[ i sor t ] =ni l ai 3[ j sor t ] ;
f or ( i nt dvb=0; dvb<j um_bal ok; dvb++)
{
f or ( i nt dnv_b=0; dnv_b<12; dnv_b++)
{
ur ut _var _b[ i sor t ] [ dnv_b+( 12*dvb) ]
=ur ut _var _b[ j sor t ] [ dnv_b+( 12*dvb) ] ;
}
}
f or ( i nt dvk=0; dvk<j um_kol om; dvk++)
{
f or ( i nt dnv_k=0; dnv_k<5; dnv_k++)
{
ur ut _var _k[ i sor t ] [ dnv_k+( 5*dvk) ]
=ur ut _var _k[ j sor t ] [ dnv_k+( 5*dvk) ] ;
}
}

/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
/ / Pemi ndahan Ni l ai Sekar ang Ke Posi si Yang Di gant i kan / /
/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
ni l ai 1[ j sor t ] =dummy1;
ni l ai 2[ j sor t ] =dummy2;
ni l ai 3[ j sor t ] =dummy3;
f or ( i nt dvb=0; dvb<j um_bal ok; dvb++)
{
f or ( i nt dnv_b=0; dnv_b<12; dnv_b++)
{
ur ut _var _b[ j sor t ] [ dnv_b+( 12*dvb) ]
=dummyvar b[ dnv_b+( 12*dvb) ] ;
}
}
f or ( i nt dvk=0; dvk<j um_kol om; dvk++)
{
f or ( i nt dnv_k=0; dnv_k<5; dnv_k++)
{
ur ut _var _k[ j sor t ] [ dnv_k+( 5*dvk) ]
=dummyvar k[ dnv_k+( 5*dvk) ] ;
}
}

/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
/ / Pr oses Penukar an Sel esai / /
/ / Mel anj ut kan Ni l ai Sel anj ut nya / /
/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
}
}
}

/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
/ / Sesudah Di ur ut kan Ni l ai Ter j el ek Ter dapat Pada Ar r ay 0 / /
/ / Ni l ai Ter bai k Ter dapat Pada ( n_ar r ay- 1) / /
/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
}

76
/ ***********************************************************************/
/ * FI LE : TAMPI LAN. HPP
*/
/ * KUMPULAN SUBPROGRAM PENANGANAN TAMPI LAN KE LAYAR */
/ ***********************************************************************/

/ *******************************************/
/ * SUBPROGRAM UNTUK MENAMPI LKAN MENU UTAMA */
/ *******************************************/
voi d menu_ut ama( )
{
i nt pi l i h;
do
{
t ext backgr ound( 1) ;
t ext col or ( LI GHTGREEN) ;
cl r scr ( ) ;
about ( ) ;
cout << " 1. I nput dat a awal ke f i l e\ n" ;
cout << " 2. I nput dat a beban ke f i l e\ n" ;
cout << " 3. Mel i hat i si f i l e i nput \ n" ;
cout << " 4. Mengopt i masi st r ukt ur \ n" ;
cout << " 5. Kel uar \ n" ;
cout << " Pi l i han ( 1- 5) = " ;
st r uct t i me t ;

get t i me( &t ) ;
t ext col or ( YELLOW) ;
got oxy( 61, 6) ;
cpr i nt f ( " Ti me : %2d: %02d: %02d. %02d\ n" ,
t . t i _hour , t . t i _mi n, t . t i _sec, t . t i _hund) ;
got oxy( 19, 12) ;
ci n >> pi l i h;

i f ( pi l i h==1)
{
i nput _dat a( ) ;
}
i f ( pi l i h==2)
{
l oad_dat a( ) ; / / Memasukan dat a beban
cout << " Dat a beban sudah di i si . . . \ n" ;
}
i f ( pi l i h==3)
{
cout << " Nama f i l e i nput yang akan di baca = " ;
ci n >> f i ;
st r cpy( f i nput , f i ) ;
st r cat ( f i nput , " . i np" ) ;
st r cpy( f beban, f i ) ;
st r cat ( f beban, " . bbn" ) ;
baca_dat a( ) ;
baca_beban( ) ;
do
{
cl r scr ( ) ;
about ( ) ;
cout << " 1. Dat a umum\ n" ;
cout << " 2. Koor di nat t i t i k kumpul \ n" ;
cout << " 3. I nf or masi bat ang\ n" ;
cout << " 4. Pengekang t i t i k kumpul \ n" ;
cout << " 5. Gaya uj ung bat ang t er kekang\ n" ;
cout << " 6. Beban pada j oi nt \ n" ;
cout << " 7. Kel uar ke menu ut ama\ n" ;
cout << " Pi l i han ( 1- 7) = " ;
ci n >> pi l i h;
cl r scr ( ) ;
i f ( pi l i h==1)
{
out put _par amet er _st r ukt ur al ( ) ;
}

77
i f ( pi l i h==2)
{
out put _koor di nat _t i t i k_kumpul ( ) ;
}
i f ( pi l i h==3)
{
out put _i nf or masi _bat ang( ) ;
}
i f ( pi l i h==4)
{
out put _pengekang_t i t i k_kumpul ( ) ;
}
i f ( pi l i h==5)
{
out put _beban_bat ang( ) ;
}
i f ( pi l i h==6)
{
out put _beban_t i t i k( ) ;
}
i f ( pi l i h==7)
{
cout << " Anda kel uar ke Menu Ut ama\ n" ;
}
cout << " \ n Tekan Sembar ang Tombol \ n" ;
get ch( ) ;
}whi l e( pi l i h! =7) ;
}
i f ( pi l i h==4)
{
cout << " Nama f i l e st ukt ur ( t anpa ekst ensi ) = " ;
ci n >> f i ;
st r cpy( f i nput , f i ) ;
st r cat ( f i nput , " . i np" ) ; / / Nama f i l e gener i k
st r cpy( f si si , f i ) ;
st r cat ( f si si , " . i sd" ) ; / / i nput si si di skr i t
st r cpy( f di al , f i ) ;
st r cat ( f di al , " . i dl " ) ; / / i nput di amet er t ul angan l ent ur
st r cpy( f j t l , f i ) ;
st r cat ( f j t l , " . i j l " ) ; / / i nput j uml ah t ul angan l ent ur
st r cpy( f di as, f i ) ;
st r cat ( f di as, " . i ds" ) ; / / i nput di amet er t ul angan sengkang
st r cpy( f j t s, f i ) ;
st r cat ( f j t s, " . i j s" ) ; / / i nput j ar ak t ul angan sengkang
st r cpy( f beban, f i ) ;
st r cat ( f beban, " . bbn" ) ; / / i nput beban pada bat ang
st r cpy( f hi st or y, f i ) ;
st r cat ( f hi st or y, " . hi s" ) ; / / Kel uar an dar i r i wayat opt i masi
st r cpy( f opt i masi , f i ) ;
st r cat ( f opt i masi , " . opt " ) ; / / Kel uar an dar i hasi l opt i masi
st r cpy( f st r ukt ur , f i ) ;
st r cat ( f st r ukt ur , " . st r " ) ; / / Kel uar an dar i hasi l anal i sa st r ukt ur
st r cpy( f kendal a, f i ) ;
st r cat ( f kendal a, " . kdl " ) ; / / Kel uar an kendal a pada st r ukt ur
st r cpy( f i nf or masi , f i ) ;
st r cat ( f i nf or masi , " . i nf " ) ; / / Kel uar an i nf or masi masukkan


cout << " f i l e i nput = " << f i nput << endl ;
cout << " f i l e beban = " << f beban << endl ;
cout << " Har ga Bet on ( Rp. / m^3) = " ;
ci n >> har ga_bet on;
cout << " Har ga Besi ( Rp. / kg) = " ;
ci n >> har ga_besi ;
cout << " Tebal sel i mut kol om( mi ni mum40 mm) = " ;
ci n >> sel i mut _kol om;
cout << " Tebal sel i mut bal ok ( mi ni mum40 mm) = " ;
ci n >> sel i mut _bal ok;
cout << " Fakt or f i nal t i = " ;
ci n >> f i nal t i ;
cout << " I t er asi maksi mum= " ;

78
ci n >> j _i t er asi _mak;
cout << " Fakt or penambah j uml ah var i abel desai n = " ;
ci n >> f ak_pl us;
do
{
cout << " Fakt or pengal i j uml ah var i abel desai n = " ;
ci n >> f ak_kal i ;
i f ( f ak_kal i <=0)
{
" Fakt or pengal i mi ni mal di i si 1 ! \ n" ;
}
}whi l e( f ak_kal i <=0) ;
opt i masi ( ) ;
}
i f ( pi l i h==5)
{
cout << " \ n Anda kel uar dar i pr ogr am\ n" ;
}
} whi l e( pi l i h! =5) ;
}

/ **************************************************/
/ * SUBPROGRAM UNTUK MENAMPI LKAN I NFORMASI PROGRAM */
/ **************************************************/
voi d about ( )
{
cout << " ****************************************" ;
cout << " ****************************************" ;
cout << " "
<< " Pr ogr amOpt i masi Bet on Ber t ul ang Pada St r ukt ur Por t al Ruang\ n" ;
cout << " "
<< " Ol eh : Yohan Naf t al i \ n" ;
cout << " "
<< " 7712/ TS\ n" ;
cout << " ****************************************" ;
cout << " ****************************************\ n" ;
}

79
/ ***********************************************************************/
/ * FI LE : CETAK. HPP
*/
/ * SUBPROGRAM UNTUK MENCETAK HASI L AKHI R OPTI MASI */
/ * DI TULI S OLEH YOHAN NAFTALI ( J ULI 1999) */
/ ***********************************************************************/
voi d cet ak_akhi r ( )
{
of st r eamhopt ( f opt i masi ) ;
of st r eamhst r ( f st r ukt ur ) ;
of st r eamhkdl ( f kendal a) ;
of st r eamhi nf ( f i nf or masi ) ;

/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
/ / Pembacaan Dat a UmumSt r ukt ur / /
/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
baca_dat a( ) ;

/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
/ / Membaca Beban Yang Beker j a Pada St r ukt ur / /
/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
baca_beban( ) ;

/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
/ / Mencet ak I nf or masi Masukkan Ke Fi l e / /
/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
hi nf << " St r ukt ur Por t al Ruang " << I SN << " \ n\ n" ;
hi nf << " Par amet er St r ukt ur \ n" ;
hi nf << " J uml ah bat ang : " << M << endl ;
hi nf << " DOF : " << N << endl ;
hi nf << " J uml ah j oi nt : " << NJ << endl ;
hi nf << " J uml ah pengekang t umpuan : " << NR << endl ;
hi nf << " J uml ah t i t i k kumpul yang di kekang : " << NRJ << endl ;
hi nf << " Modul us El ast i si t as aksi al : " << E << " N/ m^2\ n" ;
hi nf << " Modul us Geser : " << G << " N/ m^2\ n\ n" ;
hi nf << " Pr oper t i El emen Mat er i al \ n" ;
hi nf << " Kuat desak bet on kar akt er i st i k : " << FC << " MPa\ n" ;
hi nf << " Kuat t ar i k baj a t ul angan : " << FY << " MPa\ n" ;
hi nf << " Kuat t ar i k t ul angan sengkang : " << FYS << " MPa\ n" ;

hi nf << " \ n Koor di nat Ti t i k Kumpul ( m) \ n" ;
hi nf << " Ti t i k X Y Z \ n" ;
f or ( i nt kout =1; kout <=NJ ; kout ++)
{
hi nf << set i osf l ags( i os: : l ef t ) ;
hi nf << " " << set w( 10) << kout
<< set w( 14) << X[ kout ]
<< set w( 14) << Y[ kout ]
<< set w( 14) << Z[ kout ] << endl ;
}

hi nf << " \ n I nf or masi Bat ang \ n" ;
hi nf << " Bat ang J J J K I A\ n" ;
f or ( i nt i out =1; i out <=M; i out ++)
{
hi nf << set i osf l ags( i os: : l ef t ) ;
hi nf << " " << set w( 8) << i out
<< set w( 8) << J J [ i out ]
<< set w( 8) << J K[ i out ]
<< set w( 3) << I A[ i out ] << endl ;
i f ( I A[ i out ] ! = 0)
{
hi nf << set i osf l ags( i os: : l ef t ) ;
hi nf << " XP = " << set w( 12) << XP[ i out ] ;
hi nf << " YP = " << set w( 12) << YP[ i out ] << ' \ t ' ;
hi nf << " ZP = " << set w( 12) << ZP[ i out ] << endl ;
hi nf << endl ;
}
}

hi nf << " \ n Pengekang Ti t i k Kumpul \ n" ;

80
hi nf << " Ti t i k J R1 J R2 J R3 J R4 J R5 J R6\ n" ;
f or ( i nt i out =1; i out <=NRJ ; i out ++)
{
hi nf << set i osf l ags( i os: : l ef t ) ;
hi nf << " " << set w( 10) <<T_K[ i out ]
<< set w( 6) << J RL[ 6*T_K[ i out ] - 5]
<< set w( 6) << J RL[ 6*T_K[ i out ] - 4]
<< set w( 6) << J RL[ 6*T_K[ i out ] - 3]
<< set w( 6) << J RL[ 6*T_K[ i out ] - 2]
<< set w( 6) << J RL[ 6*T_K[ i out ] - 1]
<< set w( 6) << J RL[ 6*T_K[ i out ] ] << endl ;
}

hi nf << " \ n Gaya di Uj ung Bat ang Ter kekang Aki bat Beban ( Nm) \ n"
<< " Bat ang AML1 AML2 AML3 "
<< " AML4 AML5 AML6\ n"
<< " AML7 AML8 AML9 "
<< " AML10 AML11 AML12\ n" ;
f or ( i nt kout =1; kout <=M; kout ++)
{
hi nf << set i osf l ags( i os: : l ef t ) ;
hi nf << " " << set w( 8) << kout
<< set w( 12) << AML[ 1] [ kout ]
<< set w( 12) << AML[ 2] [ kout ]
<< set w( 12) << AML[ 3] [ kout ]
<< set w( 12) << AML[ 4] [ kout ]
<< set w( 12) << AML[ 5] [ kout ]
<< set w( 12) << AML[ 6] [ kout ] << endl ;
hi nf << " "
<< set w( 12) << AML[ 7] [ kout ]
<< set w( 12) << AML[ 8] [ kout ]
<< set w( 12) << AML[ 9] [ kout ]
<< set w( 12) << AML[ 10] [ kout ]
<< set w( 12) << AML[ 11] [ kout ]
<< set w( 12) << AML[ 12] [ kout ] << endl ;
}

hi nf << " \ n Beban Ti t i k ( N) \ n"
<< " Ti t i k Ar ah 1 Ar ah 2 Ar ah 3 "
<< " Ar ah 4 Ar ah 5 Ar ah 6\ n" ;
f or ( i nt kout =1; kout <=NJ ; kout ++)
{
hi nf << set i osf l ags( i os: : l ef t ) ;
hi nf << " " << set w( 8) << kout
<< set w( 12) << AJ [ ( ( 6*kout ) - 5) ]
<< set w( 12) << AJ [ ( ( 6*kout ) - 4) ]
<< set w( 12) << AJ [ ( ( 6*kout ) - 3) ]
<< set w( 12) << AJ [ ( ( 6*kout ) - 2) ]
<< set w( 12) << AJ [ ( ( 6*kout ) - 1) ]
<< set w( 12) << AJ [ ( 6*kout ) ] << endl ;
}

/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
/ / Menghi t ung Gaya- Gaya St r ukt ur / /
/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
i ner si a( ) ;
st r ukt ur ( ) ;

/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
/ / Cet ak Hasi l Anal i sa St r ukt ur / /
/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
hst r << " Hasi l Anal i sa St r ukt ur Dengan Met oda Kekakuan\ n" ;
hst r << " Di kembangkan dar i Weaver & Ger e\ n" ;
hst r << " Ol eh Yohan Naf t al i 1999\ n\ n" ;
hst r << " Nama Fi l e Gener i k : " << f i << endl ;
hopt << " Nama St r ukt ur : " << I SN << endl ;
hst r << " J uml ah bat ang : " << M << endl ;
hst r << " J uml ah t i t i k kumpul : " << NJ << endl ;
hst r << " Modul us el ast i si t as t ar i k/ t ekan : "
<< ( E*1. E- 6) << " MPa" << endl ;
hst r << " Modul us el ast i si t as geser G : "

81
<< ( G*1. E- 6) << " MPa" << endl ;
hst r << " \ nPer pi ndahan Ti t i k Kumpul \ n" ;
hst r << " Ti t i k DJ 1 DJ 2 DJ 3 " ;
hst r << " DJ 4 DJ 5 DJ 6\ n" ;
f or ( i nt cst =1; cst <=NJ ; cst ++)
{
hst r << set i osf l ags( i os: : l ef t ) ;
hst r << set w( 7) << cst ;
hst r << set i osf l ags( i os: : f i xed | i os: : showpos) ;
hst r << set w( 12) << DJ [ 6*cst - 5] << set w( 12) ;
hst r << DJ [ 6*cst - 4] << set w( 12) << DJ [ 6*cst - 3] << set w( 12) ;
hst r << DJ [ 6*cst - 2] << set w( 12) << DJ [ 6*cst - 1] << set w( 12) ;
hst r << DJ [ 6*cst ] << endl ;
hst r << r eset i osf l ags( i os: : f i xed | i os: : showpos) ;
}

hst r << " \ nGaya Uj ung Bat ang\ n" ;
hst r << " Bat ang AM1 AM2 AM3 " ;
hst r << " AM4 AM5 AM6\ n" ;
hst r << " AM7 AM8 AM9 " ;
hst r << " AM10 AM11 AM12\ n" ;

f or ( i nt i h=1; i h<=M; i h++)
{
per i ksa_bat ang( i h) ;
i si _mat r i k_kekakuan( i h) ;
i ndeks_bat ang( i h) ;
f or ( i nt j h=1; j h<=MD; j h++)
{
AMD[ j h] =0. ;
f or ( i nt kh=1; kh<=MD; kh++)
{
AMD[ j h] =AMD[ j h] +SMRT[ j h] [ kh] *DJ [ I M[ kh] ] ;
}
AM[ i h] [ j h] =AML[ j h] [ i h] +AMD[ j h] ;
}
hst r << set i osf l ags( i os: : l ef t ) ;
hst r << set w( 8) << i h;
hst r << set w( 12) << AM[ i h] [ 1]
<< set w( 12) << AM[ i h] [ 2]
<< set w( 12) << AM[ i h] [ 3]
<< set w( 12) << AM[ i h] [ 4]
<< set w( 12) << AM[ i h] [ 5]
<< set w( 12) << AM[ i h] [ 6] << ' \ n' ;
hst r << " "
<< set w( 12) << AM[ i h] [ 7]
<< set w( 12) << AM[ i h] [ 8]
<< set w( 12) << AM[ i h] [ 9]
<< set w( 12) << AM[ i h] [ 10]
<< set w( 12) << AM[ i h] [ 11]
<< set w( 12) << AM[ i h] [ 12] << ' \ n' ;
}

hst r << " \ nReaksi Tummpuan\ n" ;
hst r << " Ti t i k AR1 AR2 AR3" ;
hst r << " AR4 AR5 AR6 \ n" ;

f or ( i nt i h=1; i h<=NJ ; i h++)
{
i nt J 1=( 6*i h- 5) , J 2=( 6*i h- 4) , J 3=( 6*i h- 3) ,
J 4=( 6*i h- 2) , J 5=( 6*i h- 1) , J 6=( 6*i h) ;
i nt N1=J RL[ J 1] +J RL[ J 2] +J RL[ J 3] +J RL[ J 4] +J RL[ J 5] +J RL[ J 6] ;
i f ( N1! =0)
{
hst r << set i osf l ags( i os: : l ef t ) ;
hst r << set w( 8) << i h;

hst r << set w( 12) << AR[ J 1]
<< set w( 12) << AR[ J 2]
<< set w( 12) << AR[ J 3] ;
hst r << set w( 12) << AR[ J 4]

82
<< set w( 12) << AR[ J 5]
<< set w( 12) << AR[ J 6] << ' \ n' ;
}
}
hst r . cl ose( ) ;

/ / / / / / / / / / / / / / / / / / / / / / / / / /
/ / Cet ak Hasi l Opt i masi / /
/ / / / / / / / / / / / / / / / / / / / / / / / / /
hopt << " Hasi l Opt i masi Bet on Ber t ul ang "
<< " Pada St r ukt ur Por t al Ruang\ n" ;
hopt << " Met oda Opt i masi : Fl exi bl e Pol yhedr on\ n" ;
hopt << " J uml ah Var i abel Desai n : " << J VD << endl ;
hopt << " J uml ah St r ukt ur Desai n : " << J STD << endl ;
hopt << " Ol eh Yohan Naf t al i 1999\ n\ n" ;
hopt << " Nama Fi l e Gener i k : " << f i << endl ;
hopt << " Nama St r ukt ur : " << I SN << endl ;
hopt << " J uml ah bat ang : " << M << endl ;
hopt << " J uml ah t i t i k kumpul : " << NJ << endl ;
hopt << " Modul us el ast i si t as t ar i k/ t ekan : "
<< ( E*1. E- 6) << " MPa" << endl ;
hopt << " Modul us el ast i si t as geser G : "
<< ( G*1. E- 6) << " MPa" << endl ;
hopt << " Kuat desak Kar akt er i st i k Bet on : " << FC << " MPa\ n" ;
hopt << " Kuat t ar i k baj a t ul angan l ent ur : " << FY << " MPa\ n" ;
hopt << " Kuat t ar i k baj a t ul angan sengkang : " << FYS << " MPa\ n" ;

/ / / / / / / / / / / / / / / / / / / / / / / / / /
/ / Cet ak Header Kendal a / /
/ / / / / / / / / / / / / / / / / / / / / / / / / /
hkdl << " Kendal a Pada St r ukt ur \ n" ;
hkdl << " Ol eh Yohan Naf t al i 1999\ n\ n" ;
hkdl << " Nama Fi l e Gener i k : " << f i << endl ;
hkdl << " Nama St r ukt ur : " << I SN << endl ;

no_st r ukt ur =( J STD- 1) ;
f or ( i nt oi o=0; oi o<j um_bal ok; oi o++)
{
/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
/ / Memer i ksa Kemi r i ngan Bat ang / /
/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
per i ksa_bat ang( no_bal ok[ oi o] ) ;

/ / / / / / / / / / / / / / / / / / / / / / / / / / / /
/ / Pengi si an El emen Bal ok / /
/ / / / / / / / / / / / / / / / / / / / / / / / / / / /
i si _el emen_bal ok( oi o) ;

hopt << " - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ n" ;
hopt << " Bal ok " << ( oi o+1) << " " << B << " x " << H << endl ;
hopt << " Nomor Bat ang : " << no_bal ok[ oi o] << endl ;
hopt << " Panj ang Bent ang : " << L << " m" << endl ;
hopt << " Beban Tot al : " << W[ no_bal ok[ oi o] ] << " N/ m\ n" ;
hopt << " Ber at Sendi r i : " << W_Bal ok[ no_bal ok[ oi o] ] << " N/ m\ n" ;
hopt << " Momen ki r i : "
<< ( ( MTUM_KI [ no_bal ok[ oi o] ] ) / ( 0. 8) ) << " Nmm" << endl ;
hopt << " Momen t engah : "
<< ( ( MLAP[ no_bal ok[ oi o] ] ) / ( 0. 8) ) << " Nmm" << endl ;
hopt << " Momen kanan : "
<< ( ( MTUM_KA[ no_bal ok[ oi o] ] ) / ( 0. 8) ) << " Nmm" << endl ;
hopt << " Geser ki r i : "
<< ( GESER_KI [ no_bal ok[ oi o] ] / 0. 8) << " N" << endl ;
hopt << " Geser kanan : "
<< ( GESER_KA[ no_bal ok[ oi o] ] / 0. 8) << " N" << endl ;

/ / / / / / / / / / / / / / / / / / / / /
/ / Daer ah Lapangan / /
/ / / / / / / / / / / / / / / / / / / / /
el emen_l apangan( oi o) ;
bal ok l apangan;


83
l endut an( no_bal ok[ oi o] ) ;

/ / / / / / / / / / / / / / / / / / / / / / / / / /
/ / Cet ak Hasi l Opt i masi / /
/ / / / / / / / / / / / / / / / / / / / / / / / / /
hopt << " Lendut an Tengah Bent ang : " << LENDUTAN
<< " mm" << endl ;
hopt << " Lendut an i j i n " << LENDUTAN_I J I N << " mm" << endl ;
hopt << " Sengkang " << DI AS << " - " << J ar ak_S << endl ;
hopt << " J ar ak sengkang maksi mum: " << Sr ef << " mm\ n" ;

hopt << " \ nDaer ah Lapangan\ n" ;
hopt << " Tul angan t ar i k " << NL1 << " D " << DI A1 << endl ;
hopt << " Tul angan desak " << NL2 << " D " << DI A2 << endl ;
hopt << " Vol ume bet on : " << vol ume_bet on << " m^3" << endl ;
hopt << " Ber at Tul angan ut ama : " << ber at _besi << " kg\ n" ;
hopt << " Ber at Tul angan geser : " << ber at _sengkang << " kg\ n" ;
hopt << " Har ga bal ok daer ah l apangan : " << har ga << endl ;
hopt << " Momen yang membebani : " << MU << " Nmm" << endl ;
hopt << " Momen yang dapat di t ahan : " << FMU << " Nmm" << endl ;
hopt << endl ;

/ / / / / / / / / / / / / / / / / / /
/ / Cet ak Kendal a / /
/ / / / / / / / / / / / / / / / / / /
hkdl << " \ nBal ok " << ( oi o+1) << endl ;
hkdl << " Nomor Bat ang : " << no_bal ok[ oi o] << endl ;
hkdl << " Kendal a aki bat l endut an : "
<< kendal a_l endut an << endl ;
hkdl << " \ nDaer ah Lapangan\ n" ;
hkdl << " Kendal a r asi o penul angan "
<< kendal a_r ho << endl ;
hkdl << " Kendal a sengkang : "
<< kendal a_sb << endl ;
hkdl << " Kendal a momen l ent ur : "
<< kendal a_M << endl ;


/ / / / / / / / / / / / / / / / / / / /
/ / Daer ah Tumpuan / /
/ / / / / / / / / / / / / / / / / / / /
el emen_t umpuan( oi o) ;
bal ok t umpuan;

/ / / / / / / / / / / / / / / / / / / / / / / / / /
/ / Cet ak Hasi l Opt i masi / /
/ / / / / / / / / / / / / / / / / / / / / / / / / /
hopt << " Daer ah Tumpuan\ n" ;
hopt << " Tul angan desak " << NL2 << " D " << DI A2 << endl ;
hopt << " Tul angan t ar i k " << NL1 << " D " << DI A1 << endl ;
hopt << " Vol ume bet on : " << vol ume_bet on << " m^3" << endl ;
hopt << " Ber at Tul angan ut ama : " << ber at _besi << " kg\ n" ;
hopt << " Ber at Tul angan geser : " << ber at _sengkang << " kg\ n" ;
hopt << " Har ga bal ok pada t umpuan ki r i + kanan : " << har ga << endl ;
hopt << " Momen yang membebani : " << MU << " Nmm" << endl ;
hopt << " Momen yang dapat di t ahan : " << FMU << " Nmm" << endl ;
hopt << endl ;

/ / / / / / / / / / / / / / / / / / /
/ / Cet ak Kendal a / /
/ / / / / / / / / / / / / / / / / / /
hkdl << " \ nDaer ah Tumpuan\ n" ;
hkdl << " Kendal a r asi o penul angan "
<< kendal a_r ho << endl ;
hkdl << " Kendal a sengkang : "
<< kendal a_sb << endl ;
hkdl << " Kendal a momen l ent ur : "
<< kendal a_M << endl ;
}



84

/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
/ / Menghi t ung Kendal a Dan Har ga Kol om/ /
/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
f or ( i nt oi o=0; oi o<j um_kol om; oi o++)
{
/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
/ / Memer i ksa Kemi r i ngan Bat ang / /
/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
per i ksa_bat ang( no_kol om[ oi o] ) ;

/ / / / / / / / / / / / / / / / / / / / / / / / / / / /
/ / Pengi si an El emen Bal ok / /
/ / / / / / / / / / / / / / / / / / / / / / / / / / / /
i si _el emen_kol om( oi o) ;

/ / / / / / / / / / / / / / / / / / / / / / / / /
/ / Membangki t kan Kol om/ /
/ / / / / / / / / / / / / / / / / / / / / / / / /
kol ombangki t ;

/ / / / / / / / / / / / / / / / / / / / / / / / / /
/ / Cet ak Hasi l Opt i masi / /
/ / / / / / / / / / / / / / / / / / / / / / / / / /
hopt << " - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ n" ;
hopt << " Kol om" << ( oi o+1) << " "
<< si si << " x " << si si << endl ;
hopt << " Nomor Bat ang : " << no_kol om[ oi o] << endl ;
hopt << " Tul angan ut ama "
<< ( 4*N_DI A- 4) << " D " << DI A << endl ;
hopt << " J ar ak ant ar t ul angan : " << j ar ak_ant ar _t ul angan << " mm\ n" ;
hopt << " Sengkang " << DI AS << " - " << J ar ak_S << endl ;
hopt << " J ar ak sengkang maksi mum: " << Sr ef << " mm\ n" ;

hopt << " Vol ume bet on : " << vol ume_bet on << " m^3" << endl ;
hopt << " Ber at Tul angan ut ama : " << ber at _besi << " kg\ n" ;
hopt << " Ber at Tul angan geser : " << ber at _sengkang << " kg\ n" ;
hopt << " Har ga kol om: " << har ga << endl ;

hopt << " Ber at Kol om: " << ( - P_Kol om[ no_kol om[ oi o] ] ) << " N\ n" ;
hopt << " Gaya aksi al : "
<< ( PK[ no_kol om[ oi o] ] / 0. 8) << " N" << endl ;
hopt << " Gaya aksi al yang dapat di t ahan = "
<< FPU << " N\ n" ;
hopt << " Momen ar ah X : "
<< ( MKX[ no_kol om[ oi o] ] / 0. 8) << " Nmm" << endl ;
hopt << " Momen ar ah Y : "
<< ( MKY[ no_kol om[ oi o] ] / 0. 8) << " Nmm" << endl ;
hopt << " Momen yang dapat di t ahan : "
<< FMU << " Nmm\ n" ;
hopt << " Geser pada kol om: "
<< ( GK[ no_kol om[ oi o] ] / 0. 8) << " N" << endl ;
hopt << endl ;

/ / / / / / / / / / / / / / / / / / /
/ / Cet ak Kendal a / /
/ / / / / / / / / / / / / / / / / / /
hkdl << " \ nKol om" << ( oi o+1) << endl ;
hkdl << " Nomor Bat ang : " << no_kol om[ oi o] << endl ;
hkdl << " \ nKendal a gaya : "
<< kendal a_gaya << endl ;
hkdl << " Kendal a r asi o penul angan : "
<< kendal a_r << endl ;
hkdl << " Kendal a j ar ak t ul angan : "
<< kendal a_t ul << endl ;
hkdl << " Kendal a sengkang : "
<< kendal a_sengkang << endl ;
hkdl << " Kendal a kel angsi ngan kol om: "
<< kendal a_kel angsi ngan << endl ;
}
hopt << " \ nHar ga Bet on Rp. " << har ga_bet on << " / m^3\ n" ;

85
hopt << " Har ga Besi Rp. " << har ga_besi << " / kg\ n" ;
hopt << " Tebal sel i mut kol om" << sel i mut _kol om<< " mm\ n" ;
hopt << " Tebal sel i mut bal ok " << sel i mut _bal ok << " mm\ n" ;
hopt << " Fakt or f i nal t i : " << f i nal t i << endl ;
hopt << " J STD = ( J VD*" << f ak_kal i << " ) +" << f ak_pl us << endl ;
}

86
# Fi l e ORCI SF. MAK
# Konf i gur asi pada saat pembuat an execut abl e f i l e
#
. AUTODEPEND


#
# Bor l and C++ t ool s
#
I MPLI B = I mpl i b
BCC32 = Bcc32 +BccW32. cf g
BCC32I = Bcc32i +BccW32. cf g
TLI NK32 = TLi nk32
I LI NK32 = I l i nk32
TLI B = TLi b
BRC32 = Br c32
TASM32 = Tasm32
#
# I DE macr os
#


#
# Opt i ons
#
I DE_Li nkFLAGS32 = - LC: \ BC5\ LI B
Li nker Local Opt sAt C32_or ci sf dexe = - Tpe - ap - c
ResLocal Opt sAt C32_or ci sf dexe =
BLocal Opt sAt C32_or ci sf dexe =
CompI nher i t Opt sAt _or ci sf dexe = - I C: \ BC5\ I NCLUDE - D_RTLDLL;
Li nker I nher i t Opt sAt _or ci sf dexe = - x
Li nker Opt sAt _or ci sf dexe = $( Li nker Local Opt sAt C32_or ci sf dexe)
ResOpt sAt _or ci sf dexe = $( ResLocal Opt sAt C32_or ci sf dexe)
BOpt sAt _or ci sf dexe = $( BLocal Opt sAt C32_or ci sf dexe)

#
# Dependency Li st
#
Dep_ORCI SF = \
or ci sf . exe

ORCI SF : BccW32. cf g $( Dep_ORCI SF)
echo MakeNode

Dep_or ci sf dexe = \
or ci sf . obj

or ci sf . exe : $( Dep_or ci sf dexe)
$( I LI NK32) @&&|
/ v $( I DE_Li nkFLAGS32) $( Li nker Opt sAt _or ci sf dexe)
$( Li nker I nher i t Opt sAt _or ci sf dexe) +
C: \ BC5\ LI B\ c0x32. obj +
or ci sf . obj
$<, $*
C: \ BC5\ LI B\ i mpor t 32. l i b+
C: \ BC5\ LI B\ cw32i . l i b



|
or ci sf . obj : or ci sf . cpp
$( BCC32) - c @&&|
$( CompOpt sAt _or ci sf dexe) $( CompI nher i t Opt sAt _or ci sf dexe) - o$@or ci sf . cpp
|

# Compi l er conf i gur at i on f i l e
BccW32. cf g :
Copy &&|
- w
- R
- v

87
- WM-
- vi
- H
- H=ORCI SF. csm
- WC
- O2
- OS
- 5
- a8
| $@
LAMPIRAN 2
/ *************************************************************************/
/ * FI LE : BORLANDC. HPP */
/ * HEADER PUSTAKA BORLAND C++ VERSI 5. 02 YANG DI PAKAI */
/ * PUSTAKA YANG DI PANGGI L DI BUAT OLEH BORLAND I NTERNATI ONAL */
/ *************************************************************************/
#i ncl ude <mat h. h> / / Pust aka Pengol ahan Mat emat i ka
#i ncl ude <_def s. h> / / Def i ni si UmumUnt uk Poi nt er Dan Convent i ons
#i ncl ude <st ddef . h> / / Def i ni si Unt uk Ti pe UmumDan Nul l
#i ncl ude <_nul l . h> / / Def i ni si Nul l Unt uk Poi nt er
#i ncl ude <t i me. h> / / Pust aka Oper asi Wakt u
#i ncl ude <dos. h> / / Fungsi Fasi l i t as Di sk Oper at i ng Syst em
#i ncl ude <i ost r eam. h> / / St r eamI nput Out put Ke Layar
#i ncl ude <st r i ng. h> / / Pust aka Pembant u Oper asi St r i ng
#i ncl ude <f st r eam. h> / / St r eamUnt uk Menangani Masal ah Fi l e
#i ncl ude <st dl i b. h> / / St andar Pust aka C
#i ncl ude <coni o. h> / / Oper asi Rut i n I nput Out put Pada Konsol
#i ncl ude <i omani p. h> / / Oper asi Mani pul asi I nput Out put

LAMPIRAN 3
/ ************************************************************************/
/ * FI LE : HEADER. HPP */
/ * KUMPULAN HEADER PROGRAM OPTI MASI BETON BERTULANG PADA STRUKTUR RUANG */
/ * DENGAN METODA FLEXI BLE POLYHEDRON */
/ ************************************************************************/

/ *****************/
/ * HEADER KERNEL */
/ *****************/
#i ncl ude " Pr ot o. hpp"
#i ncl ude " Var i abel . hpp"
#i ncl ude " I nOut . hpp"

/ ****************************************************************/
/ * HEADER MEKANI KA REKAYASA PORTAL RUANG DENGAN METODA KEKAKUAN */
/ ****************************************************************/
#i ncl ude " St r ukt ur . hpp"
#i ncl ude " Pembebanan. hpp"
#i ncl ude " Sol ver . hpp"

/ **********************************/
/ * HEADER ANALI SA BETON BERTULANG */
/ **********************************/
#i ncl ude " Kol om. hpp"
#i ncl ude " Bal ok. hpp"
#i ncl ude " El emen. hpp"

/ *****************************************************/
/ * HEADER OPTI MASI DENGAN METODA FLEXI BLE POLYHEDRON */
/ *****************************************************/
#i ncl ude " Pol yhedr on. hpp"
#i ncl ude " Penor mal an. hpp"
#i ncl ude " Pengacakan. hpp"
#i ncl ude " Di skr i t i sasi . hpp"
#i ncl ude " Kendal a. hpp"
#i ncl ude " Tel usur . hpp"
#i ncl ude " Bar u. hpp"
#i ncl ude " Pengur ut an. hpp"

/ ****************/
/ * HEADER SHELL */
/ ****************/
#i ncl ude " Tampi l an. hpp"
#i ncl ude " Cet ak. hpp"
LAMPIRAN 4
/ ***********************************************************************/
/ * FI LE : PROTO. HPP */
/ * PROTOTYPE OPTI MASI STRUKTUR BETON BERTULANG PADA PORTAL RUANG */
/ ***********************************************************************/

/ **************************/
/ * PROTOTYPE PROGRAM UMUM */
/ **************************/
voi d menu_ut ama( ) ;
voi d about ( ) ;
voi d i nput _dat a( ) ;
voi d i nput _dat a_umum( ) ;
voi d i nput _dat a_di skr i t ( ) ;

/ ***********************************************************************/
/ * PROTOTYPE PROGRAM MEKANI KA REKAYASA STRUKTUR DENGAN METODA KEKAKUAN */
/ ***********************************************************************/
voi d baca_dat a( ) ;
voi d l oad_dat a( ) ;
voi d kosong_beban( ) ;
voi d baca_beban( ) ;
voi d st r ukt ur ( ) ;
voi d i ner si a( ) ;
voi d kekakuan_bat ang( ) ;
voi d beban( ) ;
voi d ber at _sendi r i ( ) ;
voi d i si _mat r i k_kekakuan( i nt i mk) ;
voi d i ndeks_bat ang( i nt i b) ;
voi d per i ksa_bat ang( i nt b) ;
voi d banf ac( i nt N, i nt NB, f l oat A_SFF[ ] [ mak] ) ;
voi d bansol ( i nt N, i nt NB, f l oat U_SFF[ ] [ mak] , f l oat B_AC[ ] , f l oat X_DF[ ] ) ;
voi d hasi l ( ) ;
voi d out put _par amet er _st r ukt ur al ( ) ;
voi d out put _koor di nat _t i t i k_kumpul ( ) ;
voi d out put _i nf or masi _bat ang( ) ;
voi d out put _pengekang_t i t i k_kumpul ( ) ;
voi d out put _beban_bat ang( ) ;
voi d out put _beban_t i t i k( ) ;

/ *************************************/
/ * PROTOTYPE PROGRAM BETON BERTULANG */
/ *************************************/
voi d i si _el emen_bal ok( i nt no_el _bal ok) ;
voi d el emen_l apangan( i nt no_el _bal ok) ;
voi d el emen_t umpuan( i nt no_el _bal ok) ;
voi d i si _el emen_kol om( i nt no_el _kol om) ;
voi d l endut an( i nt no_bat ang_l ) ;

/ ****************************************************************/
/ * PROTOTYPE PROGRAM OPTI MASI DENGAN METODA FLEXI BLE POLYHEDRON */
/ ****************************************************************/
f l oat Kendal a_Har ga( i nt var _b_nya[ ] , i nt var _k_nya[ ] ) ;
f l oat i si ( i nt no_dat a, f l oat kel ompok_dat a[ ] ) ;
voi d opt i masi ( ) ;
voi d l oad_bat as_at as( ) ;
voi d acak_var i abel ( ) ;
voi d r andomi sasi ( ) ;
voi d car i _st r ukt ur _awal ( ) ;
voi d car i _bar u( ) ;
voi d per i ksa_bat as( ) ;
voi d penel usur an( ) ;
voi d gant i _bar u( ) ;
voi d penyusut an( ) ;
voi d nor mal i sasi _f l oat ( f l oat var _nor [ ] , f l oat var _bv[ ] , f l oat var _kv[ ] ) ;
voi d nor mal i sasi _i nt ( i nt var _nor [ ] , i nt var _bv[ ] , i nt var _kv[ ] ) ;
voi d unnor mal i sasi ( f l oat var _nor [ ] , f l oat var _bv[ ] , f l oat var _kv[ ] ) ;
voi d cet ak_akhi r ( ) ;
voi d sor t ( f l oat ni l ai 1[ ] , f l oat ni l ai 2[ ] , f l oat ni l ai 3[ ]
, i nt ur ut _var _b[ ] [ mak] , i nt ur ut _var _k[ ] [ mak] , i nt n_ar r ay) ;
i nt konver si ( f l oat bi l _asl i ) ;

LAMPIRAN 5
/ ***********************************************************************/
/ * FI LE : VARI ABEL. HPP */
/ * PENDEKLARASI AN VARI ABEL GLOBAL */
/ ***********************************************************************/

/ ******************/
/ * MAKRO VARI ABEL */
/ ******************/
#def i ne pi 3. 14 / / Phi l i ngkar an
#def i ne t et a 0. 8 / / Fakt or r eduksi kekuat an
#def i ne l i mi t _nol 1. E- 3 / / Penet apan angka keci l mendekat i nol
#def i ne bj _besi 7850. / / ber at j eni s besi ( kg/ m^3)
#def i ne MD 12 / / J uml ah per pi ndahan unt uk sat u bat ang

/ *****************/
/ * VARI ABEL UMUM */
/ *****************/
char f i [ 20] ; / / I nput nama f i l e gener i k t anpa ekst ensi
char f i nput [ 20] ; / / Fi l e *. i np unt uk dat a umumst r ukt ur
char f si si [ 20] ; / / Fi l e *. i sd unt uk dat a si si penampang
char f di al [ 20] ; / / Fi l e *. i dl unt uk di amet er t ul angan ut ama
char f j t l [ 20] ; / / Fi l e *. i j l unt uk j uml ah t ul angan ut ama
char f di as[ 20] ; / / Fi l e *. i ds unt uk di amet er t ul angan sengkang
char f j t s[ 20] ; / / Fi l e *. i j s unt uk j ar ak t ul angan sengkang
char f beban[ 20] ; / / Fi l e *. bbn unt uk dat a beban
char f hi st or y[ 20] ; / / Fi l e *. hi s unt uk mencat at r i wayat opt i masi
char f opt i masi [ 20] ; / / Fi l e *. opt unt uk kel uar an hasi l opt i masi
char f st r ukt ur [ 20] ; / / Fi l e *. st r unt uk hasi l anal i sa st r ukt ur
char f kendal a[ 20] ; / / Fi l e *. kdl unt uk kel uar an kendal a st r ukt ur
char f i nf or masi [ 20] ; / / Fi l e *. i nf unt uk kel uar an i nf or masi masukkan
char SubName[ 80] ; / / I nf or masi nama sub masukkan
char I SN[ 80] ; / / I nf or masi nama st r ukt ur

/ **********************************************************/
/ * VARI ABEL MEKANI KA REKAYASA UNTUK STRUKTUR PORTAL RUANG */
/ **********************************************************/
i nt NB; / / Set engah l ebar j al ur mat r i k kekakuan
i nt M; / / J uml ah bat ang
i nt NJ ; / / J uml ah t i t i k kumpul
i nt NR; / / J uml ah Pengekang t umpuan
i nt NRJ ; / / J uml ah t i t i k kumpul yang di kekang
i nt J RL[ mak] ; / / Daf t ar pengekang t i t i k kumpul
i nt T_K[ mak] ; / / Daf t ar t i t i k kumpul yang di kekang
i nt ND; / / J uml ah koor di nat per pi ndahan unt uk semua t i t i k kumpul
i nt N; / / J uml ah der aj at kebebasan
i nt I A[ mak] ; / / Not asi penunj uk nol at au t i daknya sudut al f a
i nt J J [ mak] ; / / Penunj uk unt uk uj ung j
i nt J K[ mak] ; / / penunj uk unt uk uj ung k
i nt I D[ mak] ; / / I ndeks per pi ndahan unt uk t i t i k kumpul
i nt I R, I C; / / I ndeks bar i s dan kol om
i nt I M[ mak] ; / / I ndeks per pi ndahan bat ang
i nt LML[ mak] ; / / Tabel bat ang yang di bebani

f l oat E; / / Modul us el ast i si t as
f l oat G; / / Modul us Punt i r
f l oat X[ mak] ; / / Koor di nat st r ukt ur pada ar ah x ( _ ) | y
f l oat Y[ mak] ; / / Koor di nat st r ukt ur pada ar ah y ( | ) | ___
f l oat Z[ mak] ; / / Koor di nat st r ukt ur pada ar ah z ( / ) z/ x
f l oat b[ mak] ; / / Lebar penampang
f l oat h[ mak] ; / / Ti nggi penampang
f l oat AX[ mak] ; / / Luas Penampang
f l oat XI [ mak] ; / / Konst ant a punt i r bat ang
f l oat YI [ mak] ; / / Momen i ner si a t er hadap sumbu y bat ang
f l oat ZI [ mak] ; / / Momen i ner si a t er hadap sumbu z bat ang
f l oat EL[ mak] ; / / Panj ang penampang

f l oat CX; / / Kosi nus ar ah x
f l oat Cy; / / Kosi nus ar ah y
f l oat CZ; / / Kosi nus ar ah z
f l oat CXZ; / / Penunj uk bal ok at au kol om
f l oat XP[ mak] ; / / Koor di nat x dar i t i t i k P ( m)
LAMPIRAN 5
f l oat YP[ mak] ; / / Koor di nat y dar i t i t i k P ( m)
f l oat ZP[ mak] ; / / Koor di nat z dar i t i t i k P ( m)
f l oat XPS; / / Koor di nat xs dar i t i t i k P ( m)
f l oat YPS; / / Koor di nat ys dar i t i t i k P ( m)
f l oat ZPS; / / Koor di nat zs dar i t i t i k P ( m)
f l oat YPG; / / Koor di nat yg dar i t i t i k P ( m)
f l oat ZPG; / / Koor di nat zg dar i t i t i k P ( m)
f l oat COSA; / / Cosi nus sudut al f a
f l oat SI NA; / / Si nus sudut al f a

f l oat R11[ mak] ; / / ~
f l oat R12[ mak] ; / / |
f l oat R13[ mak] ; / / |
f l oat R21[ mak] ; / / |
f l oat R22[ mak] ; / / - - Mat r i k Rot asi
f l oat R23[ mak] ; / / |
f l oat R31[ mak] ; / / |
f l oat R32[ mak] ; / / |
f l oat R33[ mak] ; / / ~

f l oat SM[ 13] [ 13] ; / / Mat r i k kekakuan bat ang l okal
f l oat SMRT[ 13] [ 13] ; / / Hasi l per kal i an mat r i k SM dan mat r i k Rot asi
f l oat SMS[ mak] [ mak] ; / / Mat r i k kekakuan bat ang gl obal
f l oat SFF[ mak] [ mak] ; / / Mat r i k kekakuan unt uk per pi ndahan bebas
f l oat DF[ mak] ; / / Per pi ndahan t i t i k dal amsumbu gl obal ( m)
f l oat AJ [ mak] ; / / Aksi beban pada t i t i k kumpul dal amar ah gl obal
f l oat AML[ 13] [ mak] ; / / Gaya uj ung bat ang t er kekang dal amar ah l okal
f l oat AE[ mak] ; / / Beban t i t i k kumpul eki val en dal amar ah gl obal
f l oat AC[ mak] ; / / Beban t i t i k kumpul gabungan dal amar ah gl obal
f l oat DJ [ mak] ; / / Per pi ndahan t i t i k kumpul dal amar ah gl obal
f l oat AMD[ mak] ; / / Gaya uj ung bat ang aki bat per pi ndahan t i t i k
f l oat AM[ mak] [ mak] ; / / Gaya uj ung bat ang akhi r
f l oat AR[ mak] ; / / Reaksi t umpuan dal amar ah sumbu gl obal
f l oat W[ mak] ; / / Beban Mer at a
f l oat W_Bal ok[ mak] ; / / Beban Ber at Sendi r i Bal ok
f l oat P_Kol om[ mak] ; / / Gaya Ter pusat Kol om

f l oat MTUM_KI [ mak] ; / / Momen pada t umpuan ki r i
f l oat MTUM_KA[ mak] ; / / Momen pada t umpuan kanan
f l oat MLAP[ mak] ; / / Momen l apangan
f l oat GESER_KI [ mak] ; / / Gaya geser sebel ah ki r i
f l oat GESER_KA[ mak] ; / / Gaya geser sebel ah kanan

f l oat MKX[ mak] ; / / Momen kol omar ah x
f l oat MKY[ mak] ; / / Momen kol omar ah y
f l oat PK[ mak] ; / / Gaya aksi al kol om
f l oat GK[ mak] ; / / Gaya geser kol om

/ ****************************/
/ * VARI ABEL BETON BERTULANG */
/ ****************************/

/ / / / / / / / / / / / / / / / / / / / / / / /
/ / Dat a Masukkan Umum/ /
/ / / / / / / / / / / / / / / / / / / / / / / /
f l oat FC; / / Kuat desak kar akt er i st i k Bet on ( MPa)
f l oat FY; / / Kuat t ar i k baj a t ul angan ut ama ( MPa)
f l oat FYS; / / Kuat t ar i k baj a t ul angan sengkang ( MPa)
f l oat BT1; / / Fakt or r eduksi t i nggi bl ok t egangan eki val en bet on

/ / / / / / / / / / / / / / / / / / / / / / / / / / / / /
/ / Var i abel Desai n Shar i ng / /
/ / / / / / / / / / / / / / / / / / / / / / / / / / / / /
i nt nsi si _B; / / J uml ah dat a di skr i t l ebar bal ok
i nt nsi si _H; / / J uml ah dat a di skr i t t i nggi bal ok
i nt nsi si _K; / / J uml ah dat a di skr i t si si kol om

i nt nDI A; / / J uml ah dat a di skr i t di amet er
i nt nNL; / / J uml ah dat a di skr i t j uml ah di amet er
i nt nDI AS; / / J uml ah dat a di skr i t di amet er sengkang
i nt nJ S; / / J uml ah dat a di skr i t j ar ak ant ar sengkang
LAMPIRAN 5

f l oat DI AS; / / Di amet er sengkang ( mm)
f l oat J ar ak_S; / / J ar ak ant ar sengkang ( mm)
f l oat Sr ef ; / / J ar ak ant ar sengkang yang di but uhkan ( mm)
f l oat j ar ak_ant ar _t ul angan; / / J ar ak ant ar t ul angan ( mm)

f l oat si si _d_B[ mak] ; / / Ar r ay ber i si dat a di skr i t l ebar bal ok ( mm)
f l oat si si _d_H[ mak] ; / / Ar r ay ber i si dat a di skr i t t i nggi bal ok ( mm)
f l oat si si _d_K[ mak] ; / / Ar r ay ber i si dat a di skr i t si si kol om( mm)

f l oat DI A_d[ mak] ; / / Ar r ay ber i si dat a di skr i t di amet er ( mm)
f l oat NL_d[ mak] ; / / Ar r ay ber i si dat a di skr i t j uml ah t ul angan
f l oat DI AS_d[ mak] ; / / Ar r ay ber i si dat a di skr i t di amet er sengkang ( mm)
f l oat J S_d[ mak] ; / / Ar r ay ber i si dat a di skr i t j ar ak ant ar sengkang ( mm)

/ / / / / / / / / / / / / / / / / / / / / / / / / / /
/ / Var i abel Desai n Bal ok / /
/ / / / / / / / / / / / / / / / / / / / / / / / / / /
f l oat B; / / Lebar bal ok ( mm)
f l oat H; / / Ti nggi bal ok ( mm)
f l oat DI A1; / / Di amet er t ul angan t ar i k ( mm)
f l oat DI A2; / / Di amet er t ul angan desak ( mm)
f l oat NL1; / / J uml ah t ul angan t ar i k ( mm)
f l oat NL2; / / J uml ah t ul angan desak ( mm)

/ / / / / / / / / / / / / / / / / / / / / / / / / / /
/ / Var i abel Desai n Kol om/ /
/ / / / / / / / / / / / / / / / / / / / / / / / / / /
f l oat si si ; / / Si si penampang kol ombi aksi al ( mm)
f l oat DI A; / / Di amet er t ul angan ( mm)
f l oat N_DI A; / / J uml ah t ul angan

/ / / / / / / / / / / / / / / / / / / / / / / / / / /
/ / Shar i ng Var i abel Gaya / /
/ / / / / / / / / / / / / / / / / / / / / / / / / / /
f l oat PU; / / Gaya aksi al ul t i mi t ( N)
f l oat MU; / / Momen ul t i mi t ( Nm)
f l oat VU; / / Gaya geser ul t i mi t ( N)
f l oat VC; / / Gaya geser yang di sumbangkan ol eh bet on ( N)
f l oat VS; / / Gaya geser yang di sumbangkan ol eh t ul angan geser ( N)
f l oat FMU; / / Momen Ul t i mi t yang dapat di t ahan( Nm)
f l oat FPU; / / Gaya Aksi al Ul t i mi t yang dapat di t ahan ( N)

/ / / / / / / / / / / / / / / / / / / / / / / / / / / /
/ / Shar i ng Var i abel Bi aya / /
/ / / / / / / / / / / / / / / / / / / / / / / / / / / /
f l oat har ga_bet on; / / Har ga bet on ( Rp. / m^3)
f l oat har ga_besi ; / / Har ga besi ( Rp. / kg)
f l oat vol ume_bet on; / / Vol ume bet on yang di gunakan ( m^3)
f l oat ber at _besi ; / / Ber at besi yang di gunakan ( kg)
f l oat ber at _sengkang; / / Ber at sengkang yang di gunakan ( kg)
f l oat L; / / Panj ang bat ang ( m)

/ / / / / / / / / / / / / / / / / / / / / / / / / / / / /
/ / Shar i ng Var i abel El emen / /
/ / / / / / / / / / / / / / / / / / / / / / / / / / / / /
f l oat DS; / / J ar ak ser at t ar i k t er l uar ke t ul angan t ar i k ( mm)
f l oat D; / / J ar ak ser at t ekan t er l uar ke t ul angan t ar i k ( mm)
f l oat AV; / / Luas t ul angan geser ( mm^2)
f l oat AVmi n; / / Luas t ul angan geser mi ni mum( mm^2)

/ / / / / / / / / / / / / / / / / / / / / / / / / / /
/ / Var i abel Khusus Bal ok / /
/ / / / / / / / / / / / / / / / / / / / / / / / / / /
f l oat sel i mut _bal ok; / / Tebal sel i mut pada bal ok

f l oat DI A1l ap; / / Di amet er t ul angan t ar i k pada daer ah l apangan
f l oat NL1l ap; / / J uml ah t ul angan t ar i k pada daer ah l apangan
f l oat DI A2l ap; / / Di amet er t ul angan desak pada daer ah l apangan
f l oat NL2l ap; / / J uml ah t ul angan desak pada daer ah l apangan

LAMPIRAN 5
f l oat DI A1t um; / / Di amet er t ul angan t ar i k pada daer ah t umpuan
f l oat NL1t um; / / J uml ah t ul angan t ar i k pada daer ah t umpuan
f l oat DI A2t um; / / Di amet er t ul angan desak pada daer ah t umpuan
f l oat NL2t um; / / J uml ah t ul angan desak pada daer ah t umpuan

f l oat AS; / / Luas t ul angan t ar i k
f l oat AS1; / / Luas t ul angan desak
f l oat HMI N; / / Ti nggi Mi ni mum
f l oat n; / / Rasi o Es/ Ec
f l oat f r ; / / Modul us Ker unt uhan l ent ur dar i bet on ( MPa)
f l oat LGN; / / Let ak Gar i s Net r al ( mm)
f l oat I cr ; / / Momen I ner si a Penampang Ret ak ( mm^4)
f l oat I g; / / Momen I ner si a Penampang Kot or ( mm^4)
f l oat I e; / / Momen I ner si a Ef ekt i f ( mm^4)
f l oat Mcr ; / / Momen Ret ak ( Nmm) ;

f l oat LENDUTAN; / / Lendut an pada t engah bent ang ( mm)
f l oat LENDUTAN_I J I N; / / Lendut an i j i n ( mm) ;
f l oat Lambda; / / Fakt or pengal i l endut an j angka panj ang


/ / / / / / / / / / / / / / / / / / / / / / / / / / /
/ / Var i abel Khusus Kol om/ /
/ / / / / / / / / / / / / / / / / / / / / / / / / / /
f l oat MUX; / / Momen ar ah x ul t i mi t ( Nm)
f l oat MUY; / / Momen ar ah y ul t i mi t ( Nm)
f l oat sel i mut _kol om; / / Tebal sel i mut pada kol om
f l oat _K; / / Fakt or kel angsi ngan

/ *******************************************************/
/ * VARI ABEL OPTI MASI DENGAN METODA FLEXI BLE POLYHEDRON */
/ *******************************************************/
i nt j um_susut ; / / J uml ah penyusut an ber t ur ut
i nt f ak_pl us; / / Fakt or penambah ( J STD=J VD+f ak_pl us)
i nt f ak_kal i ; / / Fakt or Pengal i ( J STD=J VD*f ak_kal i )
i nt no_st r ukt ur ; / / Nomor St r ukt ur
i nt J VD; / / J uml ah var i abel desai n
i nt J STD; / / J uml ah st r ukt ur desai n
i nt j _i t er asi _mak; / / J uml ah i t er asi maksi mum
i nt nvm[ mak] ; / / Bat as at as var i abel di skr i t nor mal
i nt nvk[ mak] ; / / Bat as at as var i abel di skr i t kol om
i nt nvb[ mak] ; / / Bat as at as var i abel di skr i t bal ok
i nt i t er asi _var ; / / J uml ah i t er asi unt uk mel angkah
i nt var _b[ mak] [ mak] ; / / Nomor var i abel bal ok di skr i t yang di gunakan
i nt var _k[ mak] [ mak] ; / / Nomor var i abel kol omdi skr i t yang di gunakan
i nt t anda_ar ah_b[ mak] ; / / Tanda ar ah- ar ah penel usur an bagi an bal ok
i nt t anda_ar ah_k[ mak] ; / / Tanda ar ah- ar ah penel usur an bagi an kol om
i nt var _b_j el ek[ mak] ; / / Koor di nat var i abel j el ek bagi an bal ok
i nt var _k_j el ek[ mak] ; / / Koor di nat var i abel j el ek bagi an kol om
i nt ar ah[ mak] ; / / Koor di nat ar ah penel usur an
i nt no_TS_t er j auh; / / Nomor ar ah yang pal i ng j auh
i nt var new_asl i [ mak] ; / / Var i abel t er j el ek hasi l penggandaan
i nt var new[ mak] ; / / Var i abel bar u ber t i pe i nt eger
i nt var _b_cb[ mak] ; / / Var i abel desai n bal ok bar u
i nt var _k_cb[ mak] ; / / Var i abel desai n kol ombar u
i nt var _b_cb_best [ mak] ; / / Var i abel desai n bal ok bar u t er bai k
i nt var _k_cb_best [ mak] ; / / Var i abel desai n kol ombar u t er bai k
i nt no_bal ok[ mak] ; / / I dent i f i kasi nomor bal ok dengan nomor bat ang
i nt no_kol om[ mak] ; / / I dent i f i kasi nomor kol omdengan nomor bat ang
i nt j um_bal ok; / / J uml ah bal ok pada st r ukt ur
i nt j um_kol om; / / J uml ah kol ompada st r ukt ur
i nt j s_bal ok; / / Nomor bal ok ( Pembant u)
i nt j s_kol om; / / Nomor kol om( Pembant u)
i nt l ompat ; / / I dent i f i kasi unt uk mel ompat dar i l oop

f l oat pat ok_f i t ; / / Var i abel Pat okan Fi t ness
f l oat f i nal t i ; / / Fakt or f i nal t i unt uk pel anggar an
f l oat f i t st r [ mak] ; / / Fi t nes st r ukt ur
f l oat f i t cb; / / Fi t ness bar u
f l oat f i t cb_best ; / / Fi t nes bar u yang t er bai k

LAMPIRAN 5
f l oat kendal ast r [ mak] ; / / Kendal a st r ukt ur
f l oat har gast r [ mak] ; / / Har ga st r ukt ur ( Rp. )
f l oat kendal a; / / Kendal a
f l oat kendal asa; / / Kendal a pada saat st r ukt ur awal
f l oat har ga; / / Har ga ( Rp. )
f l oat XM_b[ mak] ; / / Koor di nat t i t i k Mi dl e bagi an bal ok
f l oat XM_k[ mak] ; / / Koor di nat t i t i k Mi dl e bagi an kol om
f l oat XS_b[ mak] ; / / Ar ah- ar ah penel usur an bagi an bal ok
f l oat XS_k[ mak] ; / / Ar ah- ar ah penel usur an bagi an kol om
f l oat TM[ mak] ; / / Koor di nat t i t i k Mi dl e
f l oat TS[ mak] ; / / Koor di nat t i t i k Sear ch
f l oat var pl us[ mak] ; / / Var i abel penambahan
f l oat var new_f [ mak] ; / / Var i abel bar u ber t i pe f l oat

/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
/ / Var i abel Kendal a Kol omBi aksi al / /
/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
f l oat kendal a_gaya; / / Kendal a gaya pada mat er i al
f l oat kendal a_po; / / Gaya t ekan maksi mumaki bat eksent r i si t as
f l oat kendal a_pn; / / Kendal a gaya t ekan
f l oat kendal a_mn; / / Kendal a momen

f l oat kendal a_r ; / / Kendal a r asi o penul angan
f l oat kendal a_r _mi n; / / Rasi o t ul angan mi ni mum
f l oat kendal a_r _mak; / / Rasi o t ul angan maksi mum

f l oat kendal a_sengkang; / / Kendal a sengkang
f l oat kendal a_t ul ; / / Kendal a j uml ah dan j ar ak t ul angan
f l oat kendal a_kel angsi ngan; / / Kendal a kel angsi ngan

/ / / / / / / / / / / / / / / / / / / / / / / / / / / /
/ / Var i abel Kendal a Bal ok / /
/ / / / / / / / / / / / / / / / / / / / / / / / / / / /
f l oat kendal a_r ho; / / Besar nya kendal a aki bat r asi o t ul angan
f l oat kendal a_r ho_b; / / Besar nya kendal a aki bat r asi o t ul angan bal ance
f l oat kendal a_r ho_m; / / Besar nya kendal a aki bat r asi o t ul angan mi ni mum
f l oat kendal a_sb; / / Besar nya kendal a aki bat kebut uhan sengkang
f l oat kendal a_M; / / Besar nya kendal a aki bat momen
f l oat kendal a_l endut an; / / Besar nya kendal a aki bat t i nggi mi ni mum

LAMPIRAN 6
/ ***********************************************************************/
/ * FI LE : I NOUT. HPP */
/ * KUMPULAN SUBPROGRAM MASUKAN DAN KELUARAN */
/ ***********************************************************************/

/ ****************************************/
/ * SUBPROGRAM UNTUK MEMASUKAN DATA AWAL */
/ ****************************************/
voi d i nput _dat a( )
{
cout << " Nama f i l e i nput ( t anpa ekst ensi ) = " ;
ci n >> f i ;
st r cpy( f i nput , f i ) ;
st r cat ( f i nput , " . i np" ) ; / / i nput umum
st r cpy( f si si , f i ) ;
st r cat ( f si si , " . i sd" ) ; / / i nput si si di skr i t
st r cpy( f di al , f i ) ;
st r cat ( f di al , " . i dl " ) ; / / i nput di amet er t ul angan l ent ur
st r cpy( f j t l , f i ) ;
st r cat ( f j t l , " . i j l " ) ; / / i nput j uml ah t ul angan l ent ur
st r cpy( f di as, f i ) ;
st r cat ( f di as, " . i ds" ) ; / / i nput di amet er t ul angan sengkang
st r cpy( f j t s, f i ) ;
st r cat ( f j t s, " . i j s" ) ; / / i nput j ar ak t ul angan sengkang
i nt pi l i h_i nput ;
do
{
cl r scr ( ) ;
cout << " 1. I nput dat a umum\ n" ;
cout << " 2. I nput dat a di skr i t el emen\ n" ;
cout << " 3. Kel uar \ n" ;
cout << " Pi l i han ( 1- 3) = " ;
ci n >> pi l i h_i nput ;
i f ( pi l i h_i nput ==1)
{
i nput _dat a_umum( ) ;
}
i f ( pi l i h_i nput ==2)
{
i nput _dat a_di skr i t ( ) ;
}
}whi l e( pi l i h_i nput ! =3) ;
}

/ ****************************************/
/ * SUBPROGRAM UNTUK MEMASUKAN DATA UMUM */
/ ****************************************/
voi d i nput _dat a_umum( )
{
i nt i i np, j i np;
char uj i ;

/ / / / / / / / / / / / / / / / / / / / / / / / / /
/ / Memasukkan Dat a Umum/ /
/ / / / / / / / / / / / / / / / / / / / / / / / / /
cout << " I nput dat a awal \ n" ;
cout << " Nama f i l e i nput ( Tanpa Ekst ensi ) = " << f i nput << endl ;
do
{
cout << " Nama St r ukt ur ( Tanpa Spasi ) = " ;
ci n >> I SN;
cout << " J uml ah bat ang = " ;
ci n >> M;
cout << " J uml ah t i t i k kumpul = " ;
ci n >> NJ ;
cout << " J uml ah t i t i k kumpul yang di kekang = " ;
ci n >> NRJ ;
cout << " J uml ah pengekang t umpuan = " ;
ci n >> NR;
cout << " Kuat desak Kar akt er i st i k Bet on ( MPa) = " ;
ci n >> FC;
LAMPIRAN 6
cout << " Kuat t ar i k baj a t ul angan l ent ur ( MPa) = " ;
ci n >> FY;
cout << " Kuat t ar i k baj a t ul angan sengkang ( MPa) = " ;
ci n >> FYS;

/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
/ / Hi t ung Par amet er Lai nnya Secar a Ot omat i s / /
/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
E=( 4700. *( sqr t ( FC) ) ) *1E6; / / ( N/ mm^2) - > ( N/ m^2)
G=( E/ 2. ) *( 1. +0. 15) ; / / ( N/ m^2)
ND=6. *NJ ;
N=ND- NR;

out put _par amet er _st r ukt ur al ( ) ;
cout << " \ n I ngi n mengul ang ( y/ t ) " ;
ci n >> uj i ;
i f ( uj i ! = ' y' )
{br eak; }
} whi l e( uj i == ' y' ) ;

/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
/ / Memasukkan Dat a Koor di nat Ti t i k Kumpul / /
/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
cout << " I nput kan koor di nat t i t i k kumpul ( m) , "
<< " pi l i h J = 0 unt uk kel uar \ n" ;
do
{
cout << " Ti t i k kumpul J = " ;
ci n >> j i np;
i f ( j i np == 0 )
{ br eak ; }
cout << " Koor di nat \ n" ;
cout << " X Y Z\ n" ;
ci n >> X[ j i np] >> Y[ j i np] >> Z[ j i np] ;
out put _koor di nat _t i t i k_kumpul ( ) ;
} whi l e( j i np ! = 0) ;

/ / / / / / / / / / / / / / / / / / / / / / / / / / / /
/ / Mengosongkan Pengekang / /
/ / / / / / / / / / / / / / / / / / / / / / / / / / / /
f or ( i nt j i np=1; j i np<=ND; j i np++)
{
J RL[ j i np] =0;
}

/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
/ / Memasukkan Dat a Pengekang J oi nt / /
/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
cout << endl << " I nput kan Pengekang t i t i k kumpul , "
<< " masukan 0 unt uk kel uar \ n" ;
do
{
cout << " Kekangan ke = " ;
ci n >> i i np;
i f ( i i np==0)
{
br eak ;
}
cout << " Ti t i k kumpul yang di kekang = " ;
ci n >> T_K[ i i np] ;
cout << " R ( 1 = di kekang, 0 = t ak di kekang) = " ;
ci n >> J RL[ 6*T_K[ i i np] - 5]
>> J RL[ 6*T_K[ i i np] - 4]
>> J RL[ 6*T_K[ i i np] - 3]
>> J RL[ 6*T_K[ i i np] - 2]
>> J RL[ 6*T_K[ i i np] - 1]
>> J RL[ 6*T_K[ i i np] ] ;
out put _pengekang_t i t i k_kumpul ( ) ;
}whi l e ( i i np ! = 0) ;


LAMPIRAN 6
/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
/ / Memasukkan I nf or masi Bat ang / /
/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
cout << endl << " I nput kan i nf or masi bat ang, "
<< " pi l i h I = 0 unt uk kel uar \ n" ;
do
{
cout << " I ndeks bat ang = " ;
ci n >> i i np;
i f ( i i np == 0)
{ br eak ; }
cout << " t i t i k j = " ;
ci n >> J J [ i i np] ;
cout << " t i t i k k = " ;
ci n >> J K[ i i np] ;
cout << " Not asi unt uk menunj ukan nol at au t i daknya sudut a = " ;
ci n >> I A[ i i np] ;
i f ( I A[ i i np] ! = 0)
{
cout << " Sudut al f a t i dak 0, masukkan koor di nat t i t i k p \ n" ;
cout << " Unt uk bat ang " << i i np << endl ;
cout << " XP YP ZP\ n" ;
ci n >> XP[ i i np] >> YP[ i i np] >> ZP[ i i np] ;
cout << endl ;
}
out put _i nf or masi _bat ang( ) ;
} whi l e ( i i np ! = 0 ) ;

/ / / / / / / / / / / / / / / / / / / / / / /
/ / Penul i san Ke Fi l e / /
/ / / / / / / / / / / / / / / / / / / / / / /
of st r eamt ul i s( f i nput ) ;
t ul i s << I SN << endl ;
t ul i s << M << endl ;
t ul i s << NJ << endl ;
t ul i s << NRJ << endl ;
t ul i s << NR << endl ;
t ul i s << E << endl ;
t ul i s << G << endl ;
t ul i s << FC << endl ;
t ul i s << FY << endl ;
t ul i s << FYS << endl ;
t ul i s << ND << endl ;
t ul i s << N << endl ;
t ul i s << " [ Koor di nat ] " << endl ;
f or ( i nt kt l =1; kt l <=NJ ; kt l ++)
{
t ul i s << kt l << endl ;
t ul i s << X[ kt l ] << endl ;
t ul i s << Y[ kt l ] << endl ;
t ul i s << Z[ kt l ] << endl ;
}
t ul i s << " [ Pengekang] " << endl ;
f or ( i nt i i np=1; i i np<=NRJ ; i i np++)
{
t ul i s << T_K[ i i np] << endl ;
t ul i s << J RL[ 6*T_K[ i i np] - 5] << endl ;
t ul i s << J RL[ 6*T_K[ i i np] - 4] << endl ;
t ul i s << J RL[ 6*T_K[ i i np] - 3] << endl ;
t ul i s << J RL[ 6*T_K[ i i np] - 2] << endl ;
t ul i s << J RL[ 6*T_K[ i i np] - 1] << endl ;
t ul i s << J RL[ 6*T_K[ i i np] ] << endl ;
}
t ul i s << " [ I nf or masi Bat ang] " << endl ;
f or ( i nt i i np=1; i i np<=M; i i np++)
{
t ul i s << i i np << endl ;
t ul i s << J J [ i i np] << endl ;
t ul i s << J K[ i i np] << endl ;
t ul i s << I A[ i i np] << endl ;
i f ( I A[ i i np] ! = 0)
LAMPIRAN 6
{
t ul i s << XP[ i i np] << endl ;
t ul i s << YP[ i i np] << endl ;
t ul i s << ZP[ i i np] << endl ;
}
}
t ul i s. cl ose( ) ;
}

/ ***********************************************************/
/ * SUBPROGRAM UNTUK MEMASUKAN DATA DI SKRI T VARI ABEL DESAI N */
/ ***********************************************************/
voi d i nput _dat a_di skr i t ( )
{
char ul ang;
i nt bsi si , ksi si ;
i nt bDI A, kDI A;
i nt bNL, kNL;
i nt bDI AS, kDI AS;
i nt bJ S, kJ S;
cl r scr ( ) ;

/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
/ / Menggener asi Dat a Di skr i t Dan Di t ul i s Ke Fi l e / /
/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
do
{
/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
/ / Menul i s Ke Fi l e *. i sd ( I nput Si si Di skr i t ) / /
/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
of st r eamt ul i s1( f si si ) ;

/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
/ / Dat a Di skr i t Lebar Bal ok ( B) / /
/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
cout << " J uml ah dat a si si unt uk l ebar bal ok ( B) = " ;
ci n >> nsi si _B;
cout << " Bat as si si t er bawah ( mm) = " ;
ci n >> bsi si ;
cout << " Kenai kan si si ( mm) = " ;
ci n >> ksi si ;
si si _d_B[ 0] =bsi si ;
t ul i s1 << " [ Lebar Bal ok] " << endl ;
t ul i s1 << nsi si _B << endl ;
t ul i s1 << si si _d_B[ 0] << endl ;
f or ( i nt i t l 1=1; i t l 1<nsi si _B; i t l 1++)
{
si si _d_B[ i t l 1] =si si _d_B[ i t l 1- 1] +ksi si ;
t ul i s1 << si si _d_B[ i t l 1] << endl ;
}
cout << endl ;

/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
/ / Dat a Di skr i t Ti nggi Bal ok ( H) / /
/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
cout << " J uml ah dat a si si unt uk t i nggi bal ok ( H) = " ;
ci n >> nsi si _H;
cout << " Bat as si si t er bawah ( mm) = " ;
ci n >> bsi si ;
cout << " Kenai kan si si ( mm) = " ;
ci n >> ksi si ;
si si _d_H[ 0] =bsi si ;
t ul i s1 << " [ Ti nggi Bal ok] " << endl ;
t ul i s1 << nsi si _H << endl ;
t ul i s1 << si si _d_H[ 0] << endl ;
f or ( i nt i t l 1=1; i t l 1<nsi si _H; i t l 1++)
{
si si _d_H[ i t l 1] =si si _d_H[ i t l 1- 1] +ksi si ;
t ul i s1 << si si _d_H[ i t l 1] << endl ;
}
cout << endl ;
LAMPIRAN 6

/ / / / / / / / / / / / / / / / / / / / / / / / / / / / /
/ / Dat a Di skr i t Si si Kol om/ /
/ / / / / / / / / / / / / / / / / / / / / / / / / / / / /
cout << " J uml ah dat a si si unt uk kol om= " ;
ci n >> nsi si _K;
cout << " Bat as si si t er bawah ( mm) = " ;
ci n >> bsi si ;
cout << " Kenai kan si si ( mm) = " ;
ci n >> ksi si ;
si si _d_K[ 0] =bsi si ;
t ul i s1 << " [ Si si Kol om] " << endl ;
t ul i s1 << nsi si _K << endl ;
t ul i s1 << si si _d_K[ 0] << endl ;
f or ( i nt i t l 1=1; i t l 1<nsi si _K; i t l 1++)
{
si si _d_K[ i t l 1] =si si _d_K[ i t l 1- 1] +ksi si ;
t ul i s1 << si si _d_K[ i t l 1] << endl ;
}
cout << endl ;

t ul i s1. cl ose( ) ;

/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
/ / Menul i s Ke Fi l e *. i dl ( I nput Di amet er Lent ur ) / /
/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
of st r eamt ul i s2( f di al ) ;
cout << " J uml ah dat a di amet er t ul angan ut ama = " ;
ci n >> nDI A;
cout << " Bat as di amet er t er bawah ( mm) = " ;
ci n >> bDI A;
cout << " Kenai kan di amet er ( mm) = " ;
ci n >> kDI A;
DI A_d[ 0] =bDI A;
t ul i s2 << " [ Di amet er Tul anganUt ama] " << endl ;
t ul i s2 << nDI A << endl ;
t ul i s2 << DI A_d[ 0] << endl ;
f or ( i nt i t l 2=1; i t l 2<nDI A; i t l 2++)
{
DI A_d[ i t l 2] =DI A_d[ i t l 2- 1] +kDI A;
t ul i s2 << DI A_d[ i t l 2] << endl ;
}
cout << endl ;
t ul i s2. cl ose( ) ;


/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
/ / Menul i s Ke Fi l e *. i j l ( I nput J uml ah t ul angan Lent ur ) / /
/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
of st r eamt ul i s3( f j t l ) ;
cout << " J uml ah dat a j uml ah t ul angan = " ;
ci n >> nNL;
cout << " Bat as j uml ah t ul angan t er bawah = " ;
ci n >> bNL;
cout << " Kenai kan j uml ah t ul angan = " ;
ci n >> kNL;
NL_d[ 0] =bNL;
t ul i s3 << " [ J uml ahTul anganUt ama] " << endl ;
t ul i s3 << nNL << endl ;
t ul i s3 << NL_d[ 0] << endl ;
f or ( i nt i t l 3=1; i t l 3<nNL; i t l 3++)
{
NL_d[ i t l 3] =NL_d[ i t l 3- 1] +kNL;
t ul i s3 << NL_d[ i t l 3] << endl ;
}
cout << endl ;
t ul i s3. cl ose( ) ;




LAMPIRAN 6
/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
/ / Menul i s Ke Fi l e *. i ds ( I nput J ar ak Sengkang) / /
/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
of st r eamt ul i s4( f di as) ;
cout << " J uml ah dat a di amet er t ul angan sengkang = " ;
ci n >> nDI AS;
cout << " Bat as di amet er sengkang t er bawah ( mm) = " ;
ci n >> bDI AS;
cout << " Kenai kan di amet er sengkang ( mm) = " ;
ci n >> kDI AS;
DI AS_d[ 0] =bDI AS;
t ul i s4 << " [ Di amet er Tul anganSengkang] " << endl ;
t ul i s4 << nDI AS << endl ;
t ul i s4 << DI AS_d[ 0] << endl ;
f or ( i nt i t l 4=1; i t l 4<nDI AS; i t l 4++)
{
DI AS_d[ i t l 4] =DI AS_d[ i t l 4- 1] +kDI AS;
t ul i s4 << DI AS_d[ i t l 4] << endl ;
}
cout << endl ;
t ul i s4. cl ose( ) ;

/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
/ / Menul i s Ke Fi l e *. i j s ( I nput J ar ak Sengkang) / /
/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
of st r eamt ul i s5( f j t s) ;
cout << " J uml ah dat a j ar ak sengkang = " ;
ci n >> nJ S;
cout << " Bat as j ar ak sengkang t er bawah ( mm) = " ;
ci n >> bJ S;
cout << " Kenai kan j ar ak sengkang ( mm) = " ;
ci n >> kJ S;
J S_d[ 0] =bJ S;
t ul i s5 << " [ J ar akAnt ar Sengkang] " << endl ;
t ul i s5 << nJ S << endl ;
t ul i s5 << J S_d[ 0] << endl ;
f or ( i nt i t l 5=1; i t l 5<nJ S; i t l 5++)
{
J S_d[ i t l 5] =J S_d[ i t l 5- 1] +kJ S;
t ul i s5 << J S_d[ i t l 5] << endl ;
}
cout << endl ;
t ul i s5. cl ose( ) ;

cout << " Ul ang ( y/ t ) " ;
ci n >> ul ang;
}whi l e( ul ang ==' y' ) ;
}

/ ****************************************************/
/ * SUBPROGRAM UNTUK MEMBACA DATA DARI FI LE MASUKKAN */
/ ****************************************************/
voi d baca_dat a( )
{
i f st r eambaca( f i nput ) ;
baca >> I SN;
baca >> M;
baca >> NJ ;
baca >> NRJ ;
baca >> NR;
baca >> E;
baca >> G;
baca >> FC;
baca >> FY;
baca >> FYS;
baca >> ND;
baca >> N;
baca >> SubName;
f or ( i nt ki np=1; ki np<=NJ ; ki np++)
{
baca >> ki np;
LAMPIRAN 6
baca >> X[ ki np] ;
baca >> Y[ ki np] ;
baca >> Z[ ki np] ;
}
baca >> SubName;
f or ( i nt i i np=1; i i np<=NRJ ; i i np++)
{
baca >> T_K[ i i np] ;
baca >> J RL[ 6*T_K[ i i np] - 5] ;
baca >> J RL[ 6*T_K[ i i np] - 4] ;
baca >> J RL[ 6*T_K[ i i np] - 3] ;
baca >> J RL[ 6*T_K[ i i np] - 2] ;
baca >> J RL[ 6*T_K[ i i np] - 1] ;
baca >> J RL[ 6*T_K[ i i np] ] ;
}
baca >> SubName;
f or ( i nt i i np=1; i i np<=M; i i np++)
{
baca >> i i np;
baca >> J J [ i i np] ;
baca >> J K[ i i np] ;
baca >> I A[ i i np] ;
i f ( I A[ i i np] ! = 0)
{
baca >> XP[ i i np] ;
baca >> YP[ i i np] ;
baca >> ZP[ i i np] ;
}
}
baca. cl ose( ) ;

/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
/ / Membaca Dat a Di skr i t Si si Dar i Fi l e *. i sd / /
/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
i f st r eambaca1( f si si ) ;

/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
/ / Membaca Dat a Di skr i t Lebar Bal ok ( B) / /
/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
baca1 >> SubName;
baca1 >> nsi si _B;
f or ( i nt i i np=0; i i np<nsi si _B; i i np++)
{
baca1 >> si si _d_B[ i i np] ;
}

/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
/ / Membaca Dat a Di skr i t Ti nggi Bal ok ( H) / /
/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
baca1 >> SubName;
baca1 >> nsi si _H;
f or ( i nt i i np=0; i i np<nsi si _H; i i np++)
{
baca1 >> si si _d_H[ i i np] ;
}

/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
/ / Membaca Dat a Di skr i t Si si Kol om/ /
/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
baca1 >> SubName;
baca1 >> nsi si _K;
f or ( i nt i i np=0; i i np<nsi si _K; i i np++)
{
baca1 >> si si _d_K[ i i np] ;
}

baca1. cl ose( ) ;

i f st r eambaca2( f di al ) ;
baca2 >> SubName;
baca2 >> nDI A;
LAMPIRAN 6
f or ( i nt i i np=0; i i np<nDI A; i i np++)
{
baca2 >> DI A_d[ i i np] ;
}
baca2. cl ose( ) ;

i f st r eambaca3( f j t l ) ;
baca3 >> SubName;
baca3 >> nNL;
f or ( i nt i i np=0; i i np<nNL; i i np++)
{
baca3 >> NL_d[ i i np] ;
}
baca3. cl ose( ) ;

i f st r eambaca4( f di as) ;
baca4 >> SubName;
baca4 >> nDI AS;
f or ( i nt i i np=0; i i np<nDI AS; i i np++)
{
baca4 >> DI AS_d[ i i np] ;
}
baca4. cl ose( ) ;

i f st r eambaca5( f j t s) ;
baca5 >> SubName;
baca5 >> nJ S;
f or ( i nt i i np=0; i i np<nJ S; i i np++)
{
baca5 >> J S_d[ i i np] ;
}
baca5. cl ose( ) ;
}

/ **************************************************************/
/ * SUBPROGRAM UNTUK MENAMPI LKAN PARAMETER STRUKTURAL KE LAYAR */
/ **************************************************************/
voi d out put _par amet er _st r ukt ur al ( )
{
cout << " St r ukt ur Por t al Ruang " << I SN << " \ n\ n" ;
cout << " Par amet er St r ukt ur \ n" ;
cout << " J uml ah bat ang : " << M << endl ;
cout << " DOF : " << N << endl ;
cout << " J uml ah j oi nt : " << NJ << endl ;
cout << " J uml ah pengekang t umpuan : " << NR << endl ;
cout << " J uml ah t i t i k kumpul yang di kekang : " << NRJ << endl ;
cout << " Modul us El ast i si t as aksi al : " << E << " N/ m^2\ n" ;
cout << " Modul us Geser : " << G << " N/ m^2\ n\ n" ;
cout << " Pr oper t i El emen Mat er i al \ n" ;
cout << " Kuat desak bet on kar akt er i st i k : " << FC << " MPa\ n" ;
cout << " Kuat t ar i k baj a t ul angan : " << FY << " MPa\ n" ;
cout << " Kuat t ar i k t ul angan sengkang : " << FYS << " MPa\ n" ;
}

/ ************************************************************/
/ * SUBPROGRAM UNTUK MENAMPI LKAN KOORDI NAT STRUKTUR KE LAYAR */
/ ************************************************************/
voi d out put _koor di nat _t i t i k_kumpul ( )
{
cout << " \ n Koor di nat Ti t i k Kumpul ( m) \ n" ;
cout << " Ti t i k X Y Z \ n" ;
f or ( i nt kout =1; kout <=NJ ; kout ++)
{
cout << set i osf l ags( i os: : l ef t ) ;
cout << " " << set w( 10) << kout
<< set w( 14) << X[ kout ]
<< set w( 14) << Y[ kout ]
<< set w( 14) << Z[ kout ] << endl ;
}
}

LAMPIRAN 6
/ **********************************************************/
/ * SUBPROGRAM UNTUK MENAMPI LKAN I NFORMASI BATANG KE LAYAR */
/ **********************************************************/
voi d out put _i nf or masi _bat ang( )
{
cout << " \ n I nf or masi Bat ang \ n" ;
cout << " Bat ang J J J K I A\ n" ;
f or ( i nt i out =1; i out <=M; i out ++)
{
cout << set i osf l ags( i os: : l ef t ) ;
cout << " " << set w( 8) << i out
<< set w( 8) << J J [ i out ]
<< set w( 8) << J K[ i out ]
<< set w( 3) << I A[ i out ] << endl ;
i f ( I A[ i out ] ! = 0)
{
cout << set i osf l ags( i os: : l ef t ) ;
cout << " XP = " << set w( 12) << XP[ i out ] ;
cout << " YP = " << set w( 12) << YP[ i out ] << ' \ t ' ;
cout << " ZP = " << set w( 12) << ZP[ i out ] << endl ;
cout << endl ;
}
}
}

/ ****************************************************************/
/ * SUBPROGRAM UNTUK MENAMPI LKAN PENGEKANG TI TI K KUMPUL KE LAYAR */
/ ****************************************************************/
voi d out put _pengekang_t i t i k_kumpul ( )
{
cout << " \ n Pengekang Ti t i k Kumpul \ n" ;
cout << " Ti t i k J R1 J R2 J R3 J R4 J R5 J R6\ n" ;
f or ( i nt i out =1; i out <=NRJ ; i out ++)
{
cout << set i osf l ags( i os: : l ef t ) ;
cout << " " << set w( 10) <<T_K[ i out ]
<< set w( 6) << J RL[ 6*T_K[ i out ] - 5]
<< set w( 6) << J RL[ 6*T_K[ i out ] - 4]
<< set w( 6) << J RL[ 6*T_K[ i out ] - 3]
<< set w( 6) << J RL[ 6*T_K[ i out ] - 2]
<< set w( 6) << J RL[ 6*T_K[ i out ] - 1]
<< set w( 6) << J RL[ 6*T_K[ i out ] ] << endl ;
}
}

/ ***********************************************************/
/ * SUBPROGRAM UNTUK MENAMPI LKAN GAYA UJ UNG BATANG KE LAYAR */
/ ***********************************************************/
voi d out put _beban_bat ang( )
{
cout << " \ n Gaya di Uj ung Bat ang Ter kekang Aki bat Beban ( Nm) \ n"
<< " Bat ang AML1 AML2 AML3 "
<< " AML4 AML5 AML6\ n"
<< " AML7 AML8 AML9 "
<< " AML10 AML11 AML12\ n" ;
f or ( i nt kout =1; kout <=M; kout ++)
{
cout << set i osf l ags( i os: : l ef t ) ;
cout << " " << set w( 8) << kout
<< set w( 12) << AML[ 1] [ kout ]
<< set w( 12) << AML[ 2] [ kout ]
<< set w( 12) << AML[ 3] [ kout ]
<< set w( 12) << AML[ 4] [ kout ]
<< set w( 12) << AML[ 5] [ kout ]
<< set w( 12) << AML[ 6] [ kout ] << endl ;
cout << " "
<< set w( 12) << AML[ 7] [ kout ]
<< set w( 12) << AML[ 8] [ kout ]
<< set w( 12) << AML[ 9] [ kout ]
<< set w( 12) << AML[ 10] [ kout ]
<< set w( 12) << AML[ 11] [ kout ]
LAMPIRAN 6
<< set w( 12) << AML[ 12] [ kout ] << endl ;
}
}

/ *****************************************************/
/ * SUBPROGRAM UNTUK MENAMPI LKAN BEBAN TI TI K KE LAYAR */
/ *****************************************************/
voi d out put _beban_t i t i k( )
{
cout << " \ n Beban Ti t i k ( N) \ n"
<< " Ti t i k Ar ah 1 Ar ah 2 Ar ah 3 "
<< " Ar ah 4 Ar ah 5 Ar ah 6\ n" ;
f or ( i nt kout =1; kout <=NJ ; kout ++)
{
cout << set i osf l ags( i os: : l ef t ) ;
cout << " " << set w( 8) << kout
<< set w( 12) << AJ [ ( ( 6*kout ) - 5) ]
<< set w( 12) << AJ [ ( ( 6*kout ) - 4) ]
<< set w( 12) << AJ [ ( ( 6*kout ) - 3) ]
<< set w( 12) << AJ [ ( ( 6*kout ) - 2) ]
<< set w( 12) << AJ [ ( ( 6*kout ) - 1) ]
<< set w( 12) << AJ [ ( 6*kout ) ] << endl ;
}
}
LAMPIRAN 7
/ ***********************************************************************/
/ * FI LE : STRUKTUR. HPP */
/ * KUMPULAN SUBPROGRAM UNTUK MENGHI TUNG STRUKTUR */
/ * DI KEMBANGKAN DARI WEAVER & GERE */
/ ***********************************************************************/

/ ************************************************************/
/ * SUBPROGRAM MENGHI TUNG GAYA DAN PERPI NDAHAN PADA STRUKTUR */
/ ************************************************************/
voi d st r ukt ur ( )
{
kekakuan_bat ang( ) ;
banf ac( N, NB, SFF) ;
beban( ) ;
bansol ( N, NB, SFF, AC, DF) ;
hasi l ( ) ;
}

/ *********************************/
/ * SUBPROGRAM MENGHI TUNG I NERSI A */
/ *********************************/
voi d i ner si a( )
{
j s_bal ok=0;
j s_kol om=0;
f or ( i nt i i n=1; i i n<=M; i i n++)
{
/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
/ / Memer i ksa Kemi r i ngan Bat ang / /
/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
per i ksa_bat ang( i i n) ;

/ / / / / / / / / / / / / / / / / / / / / / / / /
/ / Bat ang Non Ver t i kal / /
/ / / / / / / / / / / / / / / / / / / / / / / / /
i f ( CXZ>0. 001)
{
/ / ( mm) - > ( m)
b[ i i n] =i si ( var _b[ no_st r ukt ur ] [ 0+( 12*j s_bal ok) ] , si si _d_B) / 1000. ;
h[ i i n] =i si ( var _b[ no_st r ukt ur ] [ 1+( 12*j s_bal ok) ] , si si _d_H) / 1000. ;
j s_bal ok++;
}

/ / / / / / / / / / / / / / / / / / / / /
/ / Bat ang Ver t i kal / /
/ / / / / / / / / / / / / / / / / / / / /
el se
{
/ / ( mm) - > ( m)
b[ i i n] =i si ( var _k[ no_st r ukt ur ] [ 0+( 5*j s_kol om) ] , si si _d_K) / 1000. ;
h[ i i n] =b[ i i n] ;
j s_kol om++;
}

/ / / / / / / / / / / / / / / / / / / / / / / / / / /
/ / Menghi t ung Luas ( m^2) / /
/ / / / / / / / / / / / / / / / / / / / / / / / / / /
AX[ i i n] =b[ i i n] *h[ i i n] ;


/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
/ / Menghi t ung Konst ant a Punt i r / /
/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
i f ( b[ i i n] <=h[ i i n] )
{
XI [ i i n] =( ( ( ( 1. / 3. ) - ( 0. 21*b[ i i n] / h[ i i n] *
( ( 1. - ( pow( b[ i i n] , 4) / ( 12. *( pow( h[ i i n] , 4) ) ) ) )
) ) ) ) *( h[ i i n] ) *( pow( b[ i i n] , 3) ) ) ;
}
el se
{
LAMPIRAN 7
/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
/ / For mul a Di ambi l Dar i Buku Roar k' s For mul as f or St r ess & St r ai n / /
/ / War r en C. Young 1989 hal aman 348 / /
/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
f l oat _a=0. 5*b[ i i n] ;
f l oat _b=0. 5*h[ i i n] ;
XI [ i i n] =_a*( pow( _b, 3) ) *
(
( 16. / 3. ) - ( 3. 36*_b/ _a) *( 1. - ( pow( _b, 4) ) / ( 12. *pow( _a, 4) ) )
) ;
}

/ / / / / / / / / / / / / / / / / / /
/ / Momen I ner si a / /
/ / / / / / / / / / / / / / / / / / /
YI [ i i n] =h[ i i n] *( pow( b[ i i n] , 3) ) / 12. ;
ZI [ i i n] =b[ i i n] *( pow( h[ i i n] , 3) ) / 12. ;
}
}

/ ***********************************************/
/ * SUBPROGRAM MERAKI T MATRI K KEKAKUAN STRUKTUR */
/ ***********************************************/
voi d kekakuan_bat ang( )
{
/ / / / / / / / / / / / / / / / / / / / / / /
/ / I ni si al i sasi Awal / /
/ / / / / / / / / / / / / / / / / / / / / / /
NB=0. ;
I R=0;
I C=0;
f or ( i nt i r =1; i r <=M; i r ++)
{
R11[ i r ] =0. ; R12[ i r ] =0. ; R13[ i r ] =0. ;
R21[ i r ] =0. ; R22[ i r ] =0. ; R23[ i r ] =0. ;
R31[ i r ] =0. ; R32[ i r ] =0. ; R33[ i r ] =0. ;
}

/ / / / / / / / / / / / / / / / / / / / / / / / / / / / /
/ / Membent uk Mat r i k Rot asi / /
/ / / / / / / / / / / / / / / / / / / / / / / / / / / / /
f or ( i nt i r =1; i r <=M; i r ++)
{
i f ( ( 6*( abs( J K[ i r ] - J J [ i r ] ) +1) ) >NB)
{
NB=( 6*( abs( J K[ i r ] - J J [ i r ] ) +1) ) ;
}
per i ksa_bat ang( i r ) ;
i f ( I A[ i r ] ! =0)
{
XPS=XP[ i r ] - ( X[ J J [ i r ] ] ) ;
YPS=YP[ i r ] - ( Y[ J J [ i r ] ] ) ;
ZPS=ZP[ i r ] - ( Z[ J J [ i r ] ] ) ;
}

/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
/ / Membent uk Mat r i k Rot asi Unt uk Bat ang Ver t i kal / /
/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
i f ( CXZ<=0. 001)
{
R11[ i r ] =0. ; R12[ i r ] =Cy; R13[ i r ] =0. ;
R21[ i r ] =( - Cy) ; R22[ i r ] =0. ; R23[ i r ] =0. ;
R31[ i r ] =0. ; R32[ i r ] =0. ; R33[ i r ] =1. ;
i f ( I A[ i r ] ==0)
{
cont i nue;
}
COSA=( - XPS*Cy) / ( sqr t ( XPS*XPS+ZPS*ZPS) ) ;
SI NA=( - ZPS) / ( sqr t ( XPS*XPS+ZPS*ZPS) ) ;
R21[ i r ] =( - Cy*COSA) ;
R23[ i r ] =SI NA;
LAMPIRAN 7
R31[ i r ] =Cy*SI NA;
R33[ i r ] =COSA;
cont i nue;
}

/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
/ / Membent uk Mat r i k Rot asi Unt uk Bat ang Non Ver t i kal / /
/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
R11[ i r ] =CX; R12[ i r ] =Cy; R13[ i r ] =CZ;
R21[ i r ] =( - CX*Cy) / CXZ; R22[ i r ] =CXZ; R23[ i r ] =( - Cy*CZ) / CXZ;
R31[ i r ] =( - CZ) / CXZ; R32[ i r ] =0. ; R33[ i r ] =CX/ CXZ;
i f ( I A[ i r ] ==0)
{
cont i nue;
}
YPG=R21[ i r ] *XPS+R22[ i r ] *YPS+R23[ i r ] *ZPS;
ZPG=R31[ i r ] *XPS+R32[ i r ] *YPS+R33[ i r ] *ZPS;
COSA=YPG/ ( sqr t ( YPG*YPG+ZPG*ZPG) ) ;
SI NA=ZPG/ ( sqr t ( YPG*YPG+ZPG*ZPG) ) ;
R21[ i r ] =( ( - CX*Cy*COSA) - CZ*SI NA) / CXZ; R22[ i r ] =CXZ*COSA;
R23[ i r ] =( ( - Cy*CZ*COSA) +CX*SI NA) / CXZ;
R31[ i r ] =( CX*Cy*SI NA- CZ*COSA) / CXZ; R32[ i r ] =( - CXZ*SI NA) ;
R33[ i r ] =( Cy*CZ*SI NA+CX*COSA) / CXZ;
}

/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
/ / I ni si al i sasi Akumul at or N1 = 0 / /
/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
i nt N1=0;

/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
/ / Mengi si I ndeks Per pi ndahan / /
/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
f or ( i nt i r =1; i r <=ND; i r ++)
{
N1+=J RL[ i r ] ;
i f ( ( J RL[ i r ] ) <=0)
{
I D[ i r ] =i r - N1;
cont i nue ;
}
I D[ i r ] =N+N1;
}

/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
/ / Mengosongkan Mat r i k Kekakuan SFF / /
/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
f or ( i nt i r =1; i r <=N; i r ++)
{
f or ( i nt j r =1; j r <=NB; j r ++)
{
SFF[ i r ] [ j r ] =0. ;
}
}

/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
/ / Pembent ukan Mat r i k Kekakuan Bat ang / /
/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
f or ( i nt i r =1; i r <=M; i r ++)
{
per i ksa_bat ang( i r ) ;

/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
/ / Mengi si Mat r i k Kekakuan Bat ang Pada Ar ah Lokal / /
/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
i si _mat r i k_kekakuan( i r ) ;

/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
/ / Membent uk Mat r i k Kekakuan Bat ang Unt uk Sumbu Ar ah St r ukt ur / /
/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
f or ( i nt j r =1; j r <=4; j r ++)
LAMPIRAN 7
{
f or ( i nt kr =( ( 3*j r ) - 2) ; kr <=12; kr ++)
{
SMS[ ( ( 3*j r ) - 2) ] [ kr ] =R11[ i r ] *SMRT[ ( ( 3*j r ) - 2) ] [ kr ]
+R21[ i r ] *SMRT[ ( ( 3*j r ) - 1) ] [ kr ]
+R31[ i r ] *SMRT[ ( 3*j r ) ] [ kr ] ;
SMS[ ( ( 3*j r ) - 1) ] [ kr ] =R12[ i r ] *SMRT[ ( ( 3*j r ) - 2) ] [ kr ]
+R22[ i r ] *SMRT[ ( ( 3*j r ) - 1) ] [ kr ]
+R32[ i r ] *SMRT[ ( 3*j r ) ] [ kr ] ;
SMS[ ( 3*j r ) ] [ kr ] =R13[ i r ] *SMRT[ ( ( 3*j r ) - 2) ] [ kr ]
+R23[ i r ] *SMRT[ ( ( 3*j r ) - 1) ] [ kr ]
+R33[ i r ] *SMRT[ ( 3*j r ) ] [ kr ] ;
}
}

/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
/ / Mengi si Vekt or I ndeks Per pi ndahan Bat ang / /
/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
i ndeks_bat ang( i r ) ;

/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
/ / Mengambi l Mat r i k Kekakuan / /
/ / Unt uk Per pi ndahan Ti t i k Kumpul Yang Bebas ( SFF) / /
/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
f or ( i nt j r =1; j r <=MD; j r ++)
{
i f ( J RL[ I M[ j r ] ] ==0)
{
f or ( i nt kr =j r ; kr <=MD; kr ++)
{
i f ( J RL[ I M[ kr ] ] ==0)
{
I R=I D[ I M[ j r ] ] ;
I C=I D[ I M[ kr ] ] ;
i f ( I R>=I C)
{
i nt I TEM=I R;
I R=I C;
I C=I TEM;
}
I C=( I C- I R+1) ;
SFF[ I R] [ I C] =( ( SFF[ I R] [ I C] ) +( SMS[ j r ] [ kr ] ) ) ;
}
}
}
}
}
}

/ *****************************************************/
/ * SUBPROGRAM UNTUK MENGOLAH HASI L HI TUNGAN STRUKTUR */
/ *****************************************************/
voi d hasi l ( )
{
/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
/ / I ni si al i sasi Vekt or Per pi ndahan = 0 / /
/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
i nt i hs=N+1;
f or ( i nt j hs=1; j hs<=ND; j hs++)
{
i f ( J RL[ ( ND- j hs+1) ] ==0)
{
i hs=( i hs- 1) ;
DJ [ ( ND- j hs+1) ] =0. ;
}
el se
{
DJ [ ( ND- j hs+1) ] =0. ;
}
}

LAMPIRAN 7
/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
/ / Mengi si Vekt or Per pi ndahan Semua Ti t i k Kumpul / /
/ / Dal amAr ah Sumbu Gl obal / /
/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
i hs=N+1;
f or ( i nt j hs=1; j hs<=ND; j hs++)
{
i f ( J RL[ ( ND- j hs+1) ] ==0)
{
i hs=( i hs- 1) ;
DJ [ ( ND- j hs+1) ] =DF[ i hs] ;
}
el se
{
DJ [ ( ND- j hs+1) ] =0. ;
}
}

/ / / / / / / / / / / / / / / / / / / / / / / /
/ / Gaya Pada St r ukt ur / /
/ / / / / / / / / / / / / / / / / / / / / / / /
f or ( i nt i h=1; i h<=M; i h++)
{
per i ksa_bat ang( i h) ;

/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
/ / Mengi si Mat r i k Kekakuan Bat ang Pada Ar ah Sumbu Lokal / /
/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
i si _mat r i k_kekakuan( i h) ;

/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
/ / Mengi si Vekt or I ndeks Per pi ndahan Bat ang / /
/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
i ndeks_bat ang( i h) ;

/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
/ / Mengi si Vekt or Gaya Uj ung Bat ang Akhi r / /
/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
f or ( i nt j h=1; j h<=MD; j h++)
{
/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
/ / I ni si al i sasi Gaya Uj ung Bat ang Aki bat Per pi ndahan = 0 / /
/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
AMD[ j h] =0. ;

/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
/ / Mengi si Vekt or Gaya Di Uj ung Bat ang / /
/ / Aki bat Per pi ndahan Ti t i k Kumpul / /
/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
f or ( i nt kh=1; kh<=MD; kh++)
{
AMD[ j h] =AMD[ j h] +SMRT[ j h] [ kh] *DJ [ I M[ kh] ] ;
}
AM[ i h] [ j h] =AML[ j h] [ i h] +AMD[ j h] ;
}

per i ksa_bat ang( i h) ;

/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
/ / Menyi mpan Gaya Unt uk Per hi t ungan Bal ok / /
/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
i f ( CXZ>0. 001)
{
/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
/ / Momen di t engah bent ang ( Nm) / /
/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
MLAP[ i h] =( - AM[ i h] [ 6] )
+( 0. 125*W[ i h] *pow( EL[ i h] , 2) ) ;

/ / / / / / / / / / / / / / / / / / / / / / / / / / / / /
/ / Momen Pada Tumpuan ( Nm) / /
LAMPIRAN 7
/ / / / / / / / / / / / / / / / / / / / / / / / / / / / /
MTUM_KI [ i h] =( - AM[ i h] [ 6] ) ;
MTUM_KA[ i h] =AM[ i h] [ 12] ;

/ / / / / / / / / / / / / / / / / / / /
/ / Gaya Geser ( N) / /
/ / / / / / / / / / / / / / / / / / / /
GESER_KI [ i h] =AM[ i h] [ 2] ;
GESER_KA[ i h] =( - AM[ i h] [ 8] ) ;
}

/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
/ / Menyi mpan Gaya Unt uk Per hi t ungan Kol omBi aksi al / /
/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
el se
{
/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
/ / Gaya Aksi al Dan Momen ( N) / /
/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
PK[ i h] =f abs( AM[ i h] [ 7] ) ;
MKX[ i h] =f abs( AM[ i h] [ 10] ) ;
MKY[ i h] =f abs( AM[ i h] [ 12] ) ;

/ / / / / / / / / / / / / / / / / / / /
/ / Gaya Geser ( N) / /
/ / / / / / / / / / / / / / / / / / / /
i f ( f abs( AM[ i h] [ 8] ) >f abs( AM[ i h] [ 9] ) )
{
GK[ i h] =f abs( AM[ i h] [ 8] ) ;
}
el se
{
GK[ i h] =f abs( AM[ i h] [ 9] ) ;
}
}

/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
/ / I ni si al i sasi Vekt or Reaksi Tumpuan / /
/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
f or ( i nt j h=1; j h<=4; j h++)
{
i f ( J RL[ I M[ ( ( 3*j h) - 2) ] ] ==1)
{
AR[ I M[ ( ( 3*j h) - 2) ] ] =0. ;
}
i f ( J RL[ I M[ ( ( 3*j h) - 1) ] ] ==1)
{
AR[ I M[ ( ( 3*j h) - 1) ] ] =0. ;
}
i f ( J RL[ I M[ ( 3*j h) ] ] ==1)
{
AR[ I M[ ( 3*j h) ] ] =0. ;
}
}

/ / / / / / / / / / / / / / / / / / / /
/ / Reaksi Tumpuan / /
/ / / / / / / / / / / / / / / / / / / /
f or ( i nt j h=1; j h<=4; j h++)
{
i nt J 1=( ( 3*j h) - 2) , J 2=( ( 3*j h) - 1) , J 3=( 3*j h) ;
i nt I 1=I M[ J 1] , I 2=I M[ J 2] , I 3=I M[ J 3] ;
i f ( J RL[ I 1] ==1)
{
AR[ I 1] =AR[ I 1]
+R11[ i h] *AMD[ J 1]
+R21[ i h] *AMD[ J 2]
+R31[ i h] *AMD[ J 3] ;
}
i f ( J RL[ I 2] ==1)
{
LAMPIRAN 7
AR[ I 2] =AR[ I 2]
+R12[ i h] *AMD[ J 1]
+R22[ i h] *AMD[ J 2]
+R32[ i h] *AMD[ J 3] ;
}
i f ( J RL[ I 3] ==1)
{
AR[ I 3] =AR[ I 3]
+R13[ i h] *AMD[ J 1]
+R23[ i h] *AMD[ J 2]
+R33[ i h] *AMD[ J 3] ;
}
}
}

/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
/ / Menghi t ung Reaksi Tumpuan Unt uk Ti t i k Ter kekang / /
/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
f or ( i nt i h=1; i h<=ND; i h++)
{
i f ( J RL[ i h] ==0)
{
cont i nue;
}
AR[ i h] =AR[ i h] - AJ [ i h] - AE[ i h] ;
}
}

/ ************************************************/
/ * SUBPROGRAM UNTUK MEMERI KSA KEMI RI NGAN BATANG */
/ ************************************************/
voi d per i ksa_bat ang( i nt per b)
{
EL[ per b] = sqr t (
( pow( ( ( X[ J K[ per b] ] ) - ( X[ J J [ per b] ] ) ) , 2) )
+( pow( ( ( Y[ J K[ per b] ] ) - ( Y[ J J [ per b] ] ) ) , 2) )
+( pow( ( ( Z[ J K[ per b] ] ) - ( Z[ J J [ per b] ] ) ) , 2) ) ) ;
CX=( ( X[ J K[ per b] ] ) - ( X[ J J [ per b] ] ) ) / EL[ per b] ;
Cy=( ( Y[ J K[ per b] ] ) - ( Y[ J J [ per b] ] ) ) / EL[ per b] ;
CZ=( ( Z[ J K[ per b] ] ) - ( Z[ J J [ per b] ] ) ) / EL[ per b] ;
CXZ = f abs( sqr t ( CX*CX + CZ*CZ) ) ;
}

/ ****************************************************************/
/ * SUBPROGRAM UNTUK MENGHI TUNG VEKTOR I NDEKS PERPI NDAHAN BATANG */
/ ****************************************************************/
voi d i ndeks_bat ang( i nt i b)
{
I M[ 1] =( ( 6. *J J [ i b] ) - 5. ) ; I M[ 2] =( ( 6. *J J [ i b] ) - 4. ) ;
I M[ 3] =( ( 6. *J J [ i b] ) - 3. ) ; I M[ 4] =( ( 6. *J J [ i b] ) - 2. ) ;
I M[ 5] =( ( 6. *J J [ i b] ) - 1. ) ; I M[ 6] =( 6. *J J [ i b] ) ;
I M[ 7] =( ( 6. *J K[ i b] ) - 5. ) ; I M[ 8] =( ( 6. *J K[ i b] ) - 4. ) ;
I M[ 9] =( ( 6. *J K[ i b] ) - 3. ) ; I M[ 10] =( ( 6. *J K[ i b] ) - 2. ) ;
I M[ 11] =( ( 6. *J K[ i b] ) - 1. ) ; I M[ 12] =( 6. *J K[ i b] ) ;
}

/ ********************************************************************/
/ * SUBPROGRAM UNTUK MENGI SI MATRI K KEKAKUAN BATANG PADA SUMBU LOKAL */
/ ********************************************************************/
voi d i si _mat r i k_kekakuan( i nt i mk)
{
/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
/ / Mengosongkan Mat r i k Kekakuan Bat ang Lokal / /
/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
f or ( i nt i s=1; i s<=12; i s++)
{
f or ( i nt j s=1; j s<=12; j s++)
{
SM[ i s] [ j s] =0. ;
}
}
LAMPIRAN 7

/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
/ / Menghi t ung Del apan Konst ant a / /
/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
f l oat SCM1A=E*AX[ i mk] / EL[ i mk] ;
f l oat SCM1B=G*XI [ i mk] / EL[ i mk] ;
f l oat SCM2Y=4. 0*E*YI [ i mk] / EL[ i mk] ;
f l oat SCM3Y=1. 5*SCM2Y/ EL[ i mk] ;
f l oat SCM4Y=2. 0*SCM3Y/ EL[ i mk] ;
f l oat SCM2Z=4. 0*E*ZI [ i mk] / EL[ i mk] ;
f l oat SCM3Z=1. 5*SCM2Z/ EL[ i mk] ;
f l oat SCM4Z=2. 0*SCM3Z/ EL[ i mk] ;

/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
/ / Mengi si Segi t i ga At as Mat r i k Kekakuan Bat ang / /
/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
SM[ 1] [ 1] =SCM1A; SM[ 1] [ 7] =( - SCM1A) ;
SM[ 2] [ 2] =SCM4Z; SM[ 2] [ 6] =SCM3Z;
SM[ 2] [ 8] =( - SCM4Z) ; SM[ 2] [ 12] =SCM3Z;
SM[ 3] [ 3] =SCM4Y; SM[ 3] [ 5] =( - SCM3Y) ;
SM[ 3] [ 9] =( - SCM4Y) ; SM[ 3] [ 11] =( - SCM3Y) ;
SM[ 4] [ 4] =SCM1B; SM[ 4] [ 10] =( - SCM1B) ;
SM[ 5] [ 5] =SCM2Y; SM[ 5] [ 9] =SCM3Y;
SM[ 5] [ 11] =SCM2Y/ 2. 0; SM[ 6] [ 6] =SCM2Z;
SM[ 6] [ 8] =( - SCM3Z) ; SM[ 6] [ 12] =SCM2Z/ 2. 0;
SM[ 7] [ 7] =SCM1A; SM[ 8] [ 8] =SCM4Z;
SM[ 8] [ 12] =( - SCM3Z) ; SM[ 9] [ 9] =SCM4Y;
SM[ 9] [ 11] =SCM3Y; SM[ 10] [ 10] =SCM1B;
SM[ 11] [ 11] =SCM2Y; SM[ 12] [ 12] =SCM2Z;

/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
/ / Mengi si Segi t i ga Bawah Mat r i k Yang Si met r i / /
/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
f or ( i nt i s=1; i s<=11; i s++)
{
f or ( i nt j s=i s+1; j s<=12; j s++)
{
SM[ j s] [ i s] =SM[ i s] [ j s] ;
}
}

/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
/ / Mengal i kan Mat r i k SM Dengan Mat r i k Rot asi / /
/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
f or ( i nt i s=1; i s<=4; i s++)
{
f or ( i nt j s=1; j s<=12; j s++)
{
SMRT[ j s] [ ( ( 3*i s) - 2) ] =SM[ j s] [ ( ( 3*i s) - 2) ] *R11[ i mk]
+SM[ j s] [ ( ( 3*i s) - 1) ] *R21[ i mk]
+SM[ j s] [ ( 3*i s) ] *R31[ i mk] ;
SMRT[ j s] [ ( ( 3*i s) - 1) ] =SM[ j s] [ ( ( 3*i s) - 2) ] *R12[ i mk]
+SM[ j s] [ ( ( 3*i s) - 1) ] *R22[ i mk]
+SM[ j s] [ ( 3*i s) ] *R32[ i mk] ;
SMRT[ j s] [ ( 3*i s) ] =SM[ j s] [ ( ( 3*i s) - 2) ] *R13[ i mk]
+SM[ j s] [ ( ( 3*i s) - 1) ] *R23[ i mk]
+SM[ j s] [ ( 3*i s) ] *R33[ i mk] ;
}
}
}
LAMPIRAN 8
/ ***********************************************************************/
/ * FI LE : PEMBEBANAN. HPP */
/ * PUSTAKA FUNGSI MENGOLAH DATA PEMBEBANAN KE FI LE */
/ ***********************************************************************/

/ *********************************/
/ * SUBPROGRAM MEMBACA DATA BEBAN */
/ *********************************/
voi d l oad_dat a( )
{
i nt i bn=0;
char uj i ;
cout << " Nama f i l e st r ukt ur yang akan di kenai beban"
<< " ( t anpa ekst ensi ) = " ;
ci n >> f i ;
st r cpy( f i nput , f i ) ;
st r cat ( f i nput , " . i np" ) ;
st r cpy( f beban, f i ) ;
st r cat ( f beban, " . bbn" ) ;
baca_dat a( ) ;
baca_beban( ) ;
cout << " I ngi n mengosongkan dat a beban yang ada ( y/ t ) ? " ;
ci n >> uj i ;
i f ( uj i ! = ' y' )
{
kosong_beban( ) ;
}

/ / / / / / / / / / / / / / / / / / / / / / /
/ / Beban Pada Bat ang / /
/ / / / / / / / / / / / / / / / / / / / / / /
cout << " I nput kan beban mer at a pada bat ang, "
<< " pi l i h bat ang = 0 unt uk kel uar \ n" ;
do
{
cout << " Bat ang = " ;
ci n >> i bn;
i f ( i bn==0)
{ br eak; }
per i ksa_bat ang( i bn) ;
cout << " Panj ang = " << EL[ i bn] <<endl ;
cout << " Beban mer at a ( N/ m) = " ; ci n >> W[ i bn] ;
AML[ 1] [ i bn] =0. ;
AML[ 2] [ i bn] =W[ i bn] *EL[ i bn] / 2. ;
AML[ 3] [ i bn] =0. ;
AML[ 4] [ i bn] =0. ;
AML[ 5] [ i bn] =0. ;
AML[ 6] [ i bn] =W[ i bn] *pow( EL[ i bn] , 2) / 12. ;
AML[ 7] [ i bn] =0. ;
AML[ 8] [ i bn] =W[ i bn] *EL[ i bn] / 2. ;
AML[ 9] [ i bn] =0. ;
AML[ 10] [ i bn] =0. ;
AML[ 11] [ i bn] =0. ;
AML[ 12] [ i bn] =( - W[ i bn] ) *pow( EL[ i bn] , 2) / 12. ;
out put _beban_bat ang( ) ;
} whi l e ( i bn! =0) ;
of st r eamt ul i s( f beban) ;
t ul i s << " [ BebanBat ang] " << endl ;
t ul i s << M << endl ;
f or ( i nt kbn=1; kbn<=M; kbn++)
{
t ul i s << kbn << endl ;
t ul i s << W[ kbn] << endl ;
t ul i s << AML[ 1] [ kbn] << endl ;
t ul i s << AML[ 2] [ kbn] << endl ;
t ul i s << AML[ 3] [ kbn] << endl ;
t ul i s << AML[ 4] [ kbn] << endl ;
t ul i s << AML[ 5] [ kbn] << endl ;
t ul i s << AML[ 6] [ kbn] << endl ;
t ul i s << AML[ 7] [ kbn] << endl ;
t ul i s << AML[ 8] [ kbn] << endl ;
LAMPIRAN 8
t ul i s << AML[ 9] [ kbn] << endl ;
t ul i s << AML[ 10] [ kbn] << endl ;
t ul i s << AML[ 11] [ kbn] << endl ;
t ul i s << AML[ 12] [ kbn] <<endl ;
}

/ / / / / / / / / / / / / / / / / / / / / /
/ / Beban Pada Ti t i k / /
/ / / / / / / / / / / / / / / / / / / / / /
i bn=0;
cout << " I nput kan beban pada t i t i k kumpul , "
<< " pi l i h t i t i k = 0 unt uk kel uar \ n" ;
do
{
cout << " Ti t i k = " ;
ci n >> i bn;
i f ( i bn==0)
{
br eak;
}
cout << " Aksi pada ar ah 1 gl obal = " ; ci n >> AJ [ ( ( 6*i bn) - 5) ] ;
cout << " Aksi pada ar ah 2 gl obal = " ; ci n >> AJ [ ( ( 6*i bn) - 4) ] ;
cout << " Aksi pada ar ah 3 gl obal = " ; ci n >> AJ [ ( ( 6*i bn) - 3) ] ;
cout << " Aksi pada ar ah 4 gl obal = " ; ci n >> AJ [ ( ( 6*i bn) - 2) ] ;
cout << " Aksi pada ar ah 5 gl obal = " ; ci n >> AJ [ ( ( 6*i bn) - 1) ] ;
cout << " Aksi pada ar ah 6 gl obal = " ; ci n >> AJ [ ( 6*i bn) ] ;
out put _beban_t i t i k( ) ;
} whi l e ( i bn! =0) ;
t ul i s << " [ BebanTi t i k] " << endl ;
t ul i s << NJ << endl ;
f or ( i nt kbn=1; kbn<=NJ ; kbn++)
{
t ul i s << kbn << endl ;
t ul i s << AJ [ ( ( 6*kbn) - 5) ] << endl ;
t ul i s << AJ [ ( ( 6*kbn) - 4) ] << endl ;
t ul i s << AJ [ ( ( 6*kbn) - 3) ] << endl ;
t ul i s << AJ [ ( ( 6*kbn) - 2) ] << endl ;
t ul i s << AJ [ ( ( 6*kbn) - 1) ] << endl ;
t ul i s << AJ [ ( 6*kbn) ] << endl ;
}
t ul i s. cl ose( ) ;
}

voi d kosong_beban( )
{
/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
/ / Mengosongkan Beban Pada Bat ang / /
/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
i nt i bn=0;
do
{
W[ i bn] =0;
AML[ 1] [ i bn] =0. ;
AML[ 2] [ i bn] =0. ;
AML[ 3] [ i bn] =0. ;
AML[ 4] [ i bn] =0. ;
AML[ 5] [ i bn] =0. ;
AML[ 6] [ i bn] =0. ;
AML[ 7] [ i bn] =0. ;
AML[ 8] [ i bn] =0. ;
AML[ 9] [ i bn] =0. ;
AML[ 10] [ i bn] =0. ;
AML[ 11] [ i bn] =0. ;
AML[ 12] [ i bn] =0. ;
i bn++;
} whi l e ( i bn<=M) ;

/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
/ / Mengosongkan Beban Pada Ti t i k Kumpul / /
/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
i bn=0;
LAMPIRAN 8
do
{
AJ [ ( ( 6*i bn) - 5) ] =0. ;
AJ [ ( ( 6*i bn) - 4) ] =0. ;
AJ [ ( ( 6*i bn) - 3) ] =0. ;
AJ [ ( ( 6*i bn) - 2) ] =0. ;
AJ [ ( ( 6*i bn) - 1) ] =0. ;
AJ [ ( 6*i bn) ] =0. ;
i bn++;
} whi l e( i bn<=NJ ) ;
}

/ ******************************************************/
/ * SUBPROGRAM UNTUK MEMBACA DATA PEMBEBANAN DARI FI LE */
/ ******************************************************/
voi d baca_beban( )
{
i f st r eambaca( f beban) ;

/ / / / / / / / / / / / / / / / / / / / / / / / / /
/ / Membaca Beban Bat ang / /
/ / / / / / / / / / / / / / / / / / / / / / / / / /
baca >> SubName;
baca >> M;
f or ( i nt ki np=1; ki np<=M; ki np++)
{
baca >> ki np;
baca >> W[ ki np] ;
baca >> AML[ 1] [ ki np] ;
baca >> AML[ 2] [ ki np] ;
baca >> AML[ 3] [ ki np] ;
baca >> AML[ 4] [ ki np] ;
baca >> AML[ 5] [ ki np] ;
baca >> AML[ 6] [ ki np] ;
baca >> AML[ 7] [ ki np] ;
baca >> AML[ 8] [ ki np] ;
baca >> AML[ 9] [ ki np] ;
baca >> AML[ 10] [ ki np] ;
baca >> AML[ 11] [ ki np] ;
baca >> AML[ 12] [ ki np] ;
}

/ / / / / / / / / / / / / / / / / / / / / / / / /
/ / Membaca Beban Ti t i k / /
/ / / / / / / / / / / / / / / / / / / / / / / / /
baca >> SubName;
baca >> NJ ;
f or ( i nt ki np=1; ki np<=NJ ; ki np++)
{
baca >> ki np;
baca >> AJ [ ( ( 6*ki np) - 5) ] ;
baca >> AJ [ ( ( 6*ki np) - 4) ] ;
baca >> AJ [ ( ( 6*ki np) - 3) ] ;
baca >> AJ [ ( ( 6*ki np) - 2) ] ;
baca >> AJ [ ( ( 6*ki np) - 1) ] ;
baca >> AJ [ ( 6*ki np) ] ;
}
baca. cl ose( ) ;
ber at _sendi r i ( ) ;
}

/ *****************************************/
/ * SUBPROGRAM UNTUK MERAKI T VEKTOR BEBAN */
/ *****************************************/
voi d beban( )
{
/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
/ / Mengosongkan Vekt or Beban Ti t i k Kumpul Gabungan / /
/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
f or ( i nt i b=1; i b<=ND; i b++)
{
LAMPIRAN 8
AC[ I D[ i b] ] =0. ;
}

/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
/ / Mengosongkan Vekt or Beban Ti t i k Kumpul Eki val en / /
/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
f or ( i nt i b=1; i b<=M; i b++)
{
per i ksa_bat ang( i b) ;
i f ( CXZ<=0. 001)
{
cont i nue;
}
i ndeks_bat ang( i b) ;
f or ( i nt j b=1; j b<=4; j b++)
{
AE[ I M[ ( 3*j b- 2) ] ] =0. ;
AE[ I M[ ( 3*j b- 1) ] ] =0. ;
AE[ I M[ ( 3*j b) ] ] =0. ;
}
}

/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
/ / Beban Ti t i k Kumpul Eki val en / /
/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
f or ( i nt i b=1; i b<=M; i b++)
{
per i ksa_bat ang( i b) ;
i f ( CXZ<=0. 001)
{
cont i nue;
}
i ndeks_bat ang( i b) ;
f or ( i nt j b=1; j b<=4; j b++)
{
AE[ I M[ ( 3*j b- 2) ] ] =AE[ I M[ ( 3*j b- 2) ] ]
- R11[ i b] *AML[ ( 3*j b- 2) ] [ i b]
- R21[ i b] *AML[ ( 3*j b- 1) ] [ i b]
- R31[ i b] *AML[ ( 3*j b) ] [ i b] ;
AE[ I M[ ( 3*j b- 1) ] ] =AE[ I M[ ( 3*j b- 1) ] ]
- R12[ i b] *AML[ ( 3*j b- 2) ] [ i b]
- R22[ i b] *AML[ ( 3*j b- 1) ] [ i b]
- R32[ i b] *AML[ ( 3*j b) ] [ i b] ;
AE[ I M[ ( 3*j b) ] ] =AE[ I M[ ( 3*j b) ] ]
- R13[ i b] *AML[ ( 3*j b- 2) ] [ i b]
- R23[ i b] *AML[ ( 3*j b- 1) ] [ i b]
- R33[ i b] *AML[ ( 3*j b) ] [ i b] ;
}
}

/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
/ / Beban Ti t i k Kumpul Gabungan / /
/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
f or ( i nt i b=1; i b<=ND; i b++)
{
AC[ I D[ i b] ] =AJ [ i b] +AE[ i b] ;
}
}

/ **********************************************/
/ * SUBPRROGRAM MENGHI TUNG BERAT SENDI RI BALOK */
/ **********************************************/
voi d ber at _sendi r i ( )
{
j s_bal ok=0;
j s_kol om=0;
f or ( i nt i bs=1; i bs<=M; i bs++)
{
/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
/ / Memer i ksa Kemi r i ngan Bat ang / /
/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
LAMPIRAN 8
per i ksa_bat ang( i bs) ;

/ / / / / / / / / / / / / / / / / / / / / / / / /
/ / Bat ang Non Ver t i kal / /
/ / / / / / / / / / / / / / / / / / / / / / / / /
i f ( CXZ>0. 001)
{
per i ksa_bat ang( i bs) ;
/ / ( mm) - > ( m)
b[ i bs] =i si ( var _b[ no_st r ukt ur ] [ 0+( 12*j s_bal ok) ] , si si _d_B) ;
h[ i bs] =i si ( var _b[ no_st r ukt ur ] [ 1+( 12*j s_bal ok) ] , si si _d_H) ;
W_Bal ok[ i bs] =24000. *b[ i bs] *h[ i bs] *1. E- 6; / / ( N/ m)
W[ i bs] +=W_Bal ok[ i bs] ; / / ( N/ m)
AML[ 2] [ i bs] +=W_Bal ok[ i bs] *EL[ i bs] / 2. ;
AML[ 6] [ i bs] +=W_Bal ok[ i bs] *pow( EL[ i bs] , 2) / 12. ;
AML[ 8] [ i bs] +=W_Bal ok[ i bs] *EL[ i bs] / 2. ;
AML[ 12] [ i bs] +=( - W_Bal ok[ i bs] ) *pow( EL[ i bs] , 2) / 12. ;
j s_bal ok++;
}

/ / / / / / / / / / / / / / / / / / / / /
/ / Bat ang Ver t i kal / /
/ / / / / / / / / / / / / / / / / / / / /
el se
{
per i ksa_bat ang( i bs) ;
b[ i bs] =i si ( var _k[ no_st r ukt ur ] [ 0+( 5*j s_kol om) ] , si si _d_K) ;
h[ i bs] =b[ i bs] ;
P_Kol om[ i bs] =( - 24000. ) *b[ i bs] *h[ i bs] *EL[ i bs] *1. E- 6; / / ( N)

AJ [ ( ( 6*J J [ i bs] ) - 4) ] +=P_Kol om[ i bs] ;

j s_kol om++;
}
}
}
LAMPIRAN 9
/ ***********************************************************************/
/ * FI LE : SOLVER. HPP */
/ * SUBPROGRAM UNTUK MENYELESAI KAN PERSAMAAN */
/ * DENGAN METODA CHOLESKI YANG DI MODI FI KASI */
/ ***********************************************************************/

/ *********************************************************/
/ * SUBPROGRAM UNTUK FAKTORI SASI MATRI K SI METRI S BERJ ALUR */
/ * DENGAN PENDEKATAN CHOLESKI YANG DI MODI FI KASI */
/ *********************************************************/
voi d banf ac( i nt N, i nt NB, f l oat A_SFF[ ] [ mak] )
{
i nt J 2;
f l oat SUM;
f l oat TEMP;
i f ( ( A_SFF[ 1] [ 1] ) >0)
{
f or ( i nt j bf =2; j bf <=N; j bf ++)
{
J 2=( j bf - NB+1) ;
i f ( J 2<1)
{
J 2=1;
}
i f ( ( j bf - 1) ! =1)
{
f or ( i nt i bf =2; i bf <=( j bf - 1) ; i bf ++)
{
i f ( ( i bf - 1) >=J 2)
{
SUM=A_SFF[ i bf ] [ j bf - i bf +1] ;
f or ( i nt kbf =J 2; kbf <=( i bf - 1) ; kbf ++)
{
SUM=SUM- A_SFF[ kbf ] [ i bf - kbf +1]
*A_SFF[ kbf ] [ j bf - kbf +1] ;
}
A_SFF[ i bf ] [ j bf - i bf +1] =SUM;
}
el se
{
cont i nue;
}
}
}
SUM=A_SFF[ j bf ] [ 1] ;
f or ( i nt kbf =J 2; kbf <=( j bf - 1) ; kbf ++)
{
TEMP=A_SFF[ kbf ] [ j bf - kbf +1] / A_SFF[ kbf ] [ 1] ;
SUM=SUM- TEMP*A_SFF[ kbf ] [ j bf - kbf +1] ;
A_SFF[ kbf ] [ j bf - kbf +1] =TEMP;
}
i f ( SUM<=0)
{
br eak;
}
A_SFF[ j bf ] [ 1] =SUM;
}
}
el se
{
cl r scr ( ) ;
cout << " Ti dak posi t i f t ent u ! ! ! \ n" ;
cout << " St r ukt ur t ak st abi l - GAGAL di bangki t kan ! ! \ n\ a" ;
cout << " Per i ksa dat a st r ukt ur anda \ n" ;
cout << " Tekan sembar ang t ombol , pr ogr amakan di hent i kan \ n" ;
get ch( ) ;
exi t ( 1) ;
}
}


LAMPIRAN 9
/ ****************************************************************/
/ * SUBPROGRAM MENGOLAH MATRI K BERJ ALUR DARI SUBPROGRAM BANFAC( ) */
/ ****************************************************************/
voi d bansol ( i nt N, i nt NB, f l oat U_SFF[ ] [ mak]
, f l oat B_AC[ mak] , f l oat X_DF[ mak] )
{
f l oat SUM;

/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
/ / I ni si al i sasi Per pi ndahan Ti t i k Kumpul Bebas = 0 / /
/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
f or ( i nt i ns=1; i ns<=N; i ns++)
{
X_DF[ i ns] =0. ;
}

f or ( i nt i bsl =1; i bsl <=N; i bsl ++)
{
i nt j bns=( i bsl - NB+1) ;
i f ( i bsl <=NB)
{
j bns=1;
}
SUM=B_AC[ i bsl ] ;
i f ( j bns<=( i bsl - 1) )
{
f or ( i nt kbns=j bns; kbns<=( i bsl - 1) ; kbns++)
{
SUM=( SUM- ( ( U_SFF[ kbns] [ i bsl - kbns+1] ) *( X_DF[ kbns] ) ) ) ;
}
}
X_DF[ i bsl ] = SUM;
}

f or ( i nt i bsl =1; i bsl <=N; i bsl ++)
{
X_DF[ i bsl ] =( ( X_DF[ i bsl ] ) / ( U_SFF[ i bsl ] [ 1] ) ) ;
}

f or ( i nt I 1=1; I 1<=N; I 1++)
{
i nt i bsl =( N- I 1+1) ;
i nt j bns=( i bsl +NB- 1) ;
i f ( j bns>N)
{
j bns=N;
}
SUM=X_DF[ i bsl ] ;

i f ( ( i bsl +1) <=j bns)
{
f or ( i nt kbns=( i bsl +1) ; kbns<=j bns; kbns++)
{
SUM=( SUM- ( U_SFF[ i bsl ] [ kbns- i bsl +1] *X_DF[ kbns] ) ) ;
}
}
X_DF[ i bsl ] = SUM;
}
}

LAMPIRAN 10
/ ***********************************************************************/
/ * FI LE : KOLOM. HPP */
/ * KELAS UNTUK MENGHI TUNG HARGA DAN KENDALA PADA KOLOM */
/ ***********************************************************************/
cl ass kol om
{
pr i vat e:

/ ****************************************************/
/ * PENDEKLARASI AN VARI ABEL PRI VATE PADA KELAS KOLOM */
/ ****************************************************/

/ / / / / / / / / / / / / / / / / / / / / / /
/ / Per hi t ungan Kol om/ /
/ / / / / / / / / / / / / / / / / / / / / / /
f l oat RHO; / / Rasi o penul angan
f l oat PN; / / Gaya aksi al nomi nal
f l oat MNX; / / Momen nomi nal ar ah x
f l oat MNY; / / Momen nomi nal ar ah y
f l oat MOX; / / Momen eki val en ar ah x
f l oat MOY; / / Momen eki val en ar ah y
f l oat PO; / / Bat as gaya aksi al kar ena eksent r i si t as mi ni mum( N)
f l oat PNcoba; / / Gaya aksi al nomi nal coba
f l oat PNB; / / Gaya aksi al nomi nal pada kondi si bal ance
f l oat MNcoba; / / Momen nomi nal coba
f l oat bet a; / / Fakt or bent uk bi aksi al
f l oat ASTOT; / / Luas besi t ot al pada penampang ( mm^2)
f l oat CB; / / J ar ak ser at t ekan t er l uar ke gar i s net r al
/ / pada keadaan bal ance ( mm)
f l oat FS; / / Tegangan dal amt ul angan pada beban ker j a
f l oat eks; / / Eksent r i si t as ( mm)
f l oat ekscoba; / / Eksent i r si t as maksi mum( mm)
f l oat eksb; / / Eksent r i si t as pada keadaan bal ance ( mm)
f l oat epsb; / / Regangan baj a pada keadaan bal ance ( mm)
f l oat epsy; / / Regangan baj a pada keadaan l ul uh ( mm)

f l oat r asi o_kel angsi ngan; / / Rasi o kel angsi ngan

f l oat f s1b; / / Tegangan baj a t ul angan pada keadaan bal ance ( MPa)
f l oat f si ; / / Tegangan baj a ( MPa)
f l oat di ; / / J ar ak t ul angan ke gar i s net r al ( mm)
f l oat Fsi ; / / Gaya Yang Di sumbangkan Ol eh Tul angan ( N)
f l oat ASdi ; / / Luas t ul angan pada j ar ak di
f l oat f sf 1;
f l oat d11;

/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
/ / Var i abel Pembant u Unt uk Menyel esai kan Per samaan Kuar dat / /
/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
f l oat asol ;
f l oat bsol ;
f l oat csol ;
f l oat dsol ;

/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
/ / Var i abel Pada Met oda Fal se Posi si / /
/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
i nt i t er asi _f p; / / J uml ah i t er asi dengan met ode f al se posi si

f l oat t r i al ki r i ; / / Ti t i k coba per t ama
f l oat t r i al kanan; / / Ti t i k coba kedua
f l oat t r i al bar u; / / Ti t i k coba bar u
f l oat deki ; / / Ni l ai t i t i k coba per t ama
f l oat deka; / / Ni l ai t i t i k coba kedua
f l oat deba; / / Ni l ai t i t i k coba bar u

/ *************************************/
/ * PROTOTYPE FUNGSI PADA KELAS KOLOM */
/ *************************************/
voi d r ho( ) ;
voi d j ar ak_t ul angan( ) ;
LAMPIRAN 10
voi d kel angsi ngan( ) ;
voi d anal i sa( ) ;
voi d sengkang_kol om( ) ;
f l oat hi t ung_kol om( f l oat Ccoba) ;

publ i c:

/ ***************************/
/ * CONSTRUCTOR CLASS KOLOM */
/ ***************************/
kol om( )
{
/ / / / / / / / / / / / / / / / / / / / / / / / / / / / /
/ / I ni si al i sasi Ni l ai Awal / /
/ / / / / / / / / / / / / / / / / / / / / / / / / / / / /
kendal a=0. ;
har ga=0. ;

/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
/ / Memangsi l Fungsi - Fungsi Kendal a / /
/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
r ho( ) ;
j ar ak_t ul angan( ) ;
kel angsi ngan( ) ;
anal i sa( ) ;
sengkang_kol om( ) ;

/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
/ / Menghi t ung Kendal a Tot al / /
/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
kendal a=kendal a_sengkang
+kendal a_r
+kendal a_t ul
+kendal a_gaya
+kendal a_kel angsi ngan;

/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
/ / Per hi t ungan Ber at Dan Vol ume / /
/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
vol ume_bet on=si si *si si *L/ 1. E6;
ber at _besi =ASTOT*L*bj _besi / 1. E6;
ber at _sengkang=( f abs( L/ ( J ar ak_S/ 1000. ) ) - 1. )
*4. *( ( si si - ( 2. *sel i mut _kol om) ) / 1000. )
*( pi / 4. ) *pow( ( DI AS/ 1000. ) , 2. )
*bj _besi ;

/ / / / / / / / / / / / / / / / / / / / / /
/ / Menghi t ung Har ga / /
/ / / / / / / / / / / / / / / / / / / / / /
har ga=( vol ume_bet on*har ga_bet on)
+( ber at _besi *har ga_besi )
+( ber at _sengkang*har ga_besi ) ;
}
};

/ ****************************************************/
/ * FUNGSI UNTUK MENGHI TUNG KENDALA RASI O PENULANGAN */
/ ****************************************************/
voi d kol om: : r ho( )
{
ASTOT=( ( 4. *N_DI A- 4. ) *( pi / 4. ) *( pow( DI A, 2) ) ) ;
RHO=( ASTOT/ ( pow( si si , 2) ) ) ;

/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
/ / Menghi t ung Kendal a Rho Mi ni mum/ /
/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
kendal a_r _mi n=( ( 0. 01/ RHO) - 1. ) ;
i f ( kendal a_r _mi n<0. )
{
kendal a_r _mi n=0. ;
}
LAMPIRAN 10

/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
/ / Menghi t ung Kendal a Rho Maksi mum/ /
/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
kendal a_r _mak=( ( RHO/ 0. 08) - 1. ) ;
i f ( kendal a_r _mak<0. )
{
kendal a_r _mak=0. ;
}

/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
/ / Menj uml ahkan Kendal a Rho / /
/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
kendal a_r =kendal a_r _mi n+kendal a_r _mak;
}

/ *********************************************************/
/ * FUNGSI UNTUK MENGHI TUNG KENDALA J ARAK ANTARA TULANGAN */
/ *********************************************************/
voi d kol om: : j ar ak_t ul angan( )
{
/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
/ / Mengecek J ar ak Mi ni mumAnt ar a Tul angan / /
/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
f l oat mi n1=( 1. 5*DI A) ;
f l oat mi n2=40. ;
f l oat si sa=si si - ( 2. *sel i mut _kol om) - N_DI A*DI A;

j ar ak_ant ar _t ul angan=si sa/ ( N_DI A- 1. ) ;
i f ( j ar ak_ant ar _t ul angan==0)
{
j ar ak_ant ar _t ul angan=l i mi t _nol ;
}

f l oat j ar ak_mi n=mi n1;
i f ( mi n2<mi n1)
{
j ar ak_mi n=mi n2;
}

/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
/ / Menghi t ung Kendal a Tot al Aki bat Kendal a J ar ak Ant ar Tul angan / /
/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
kendal a_t ul =( ( j ar ak_mi n/ j ar ak_ant ar _t ul angan) - 1. ) ;
i f ( kendal a_t ul <0. )
{
kendal a_t ul =0. ;
}
}

/ ******************************************************/
/ * FUNGSI UNTUK MENGHI TUNG KENDALA KELANGSI NGAN KOLOM */
/ ******************************************************/
voi d kol om: : kel angsi ngan( )
{
/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
/ / Syar at Kel angsi ngan Kol omMenur ut SK SNI T- 15- 1991- 03 / /
/ / KL/ r <= 22 / /
/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
_K=0. 5;
r asi o_kel angsi ngan=( _K*L*1000. / ( si si *( sqr t ( ( 1. / 12. ) ) ) ) ) ;

/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
/ / Menghi t ung Kendal a Kel angsi ngan / /
/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
kendal a_kel angsi ngan=( r asi o_kel angsi ngan/ 22. ) - 1. ;
i f ( kendal a_kel angsi ngan<0)
{
kendal a_kel angsi ngan = 0. ;
}
}
LAMPIRAN 10

/ *************************************************/
/ * FUNGSI UNTUK MENGHI TUNG KENDALA GAYA STRUKTUR */
/ *************************************************/
voi d kol om: : anal i sa( )
{
/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
/ / Per si apan Gaya Yang Membebani / /
/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
PN=f abs( PU/ t et a) ; / / ( N)
MNX=f abs( MUX/ t et a) *1000. ; / / ( Nm) - > ( Nmm)
MNY=f abs( MUY/ t et a) *1000. ; / / ( Nm) - > ( Nmm)

/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
/ / Mengi ni si al i sasi Gaya Aksi al Bi l a Ber ni l ai 0 / /
/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
i f ( PN==0. )
{
PN=l i mi t _nol ; / / ( N)
}

/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
/ / Per i ksa Bat as Gaya Aksi al / /
/ / Sebagai Syar at Eksent r i si t as Mi ni mum/ /
/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
PO=t et a*( 0. 85*FC*( pow( si si , 2) ) +( ASTOT*FY) ) ; / / ( N)

/ / / / / / / / / / / / / / / / / / / / / / / / / / /
/ / Menghi t ung Kendal a PO / /
/ / / / / / / / / / / / / / / / / / / / / / / / / / /
kendal a_po=( ( PN/ PO) - 1. ) ;
i f ( kendal a_po<=0. )
{
kendal a_po=0. ;

/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
/ / Per hi t ungan J ar ak Pusat Tul angan Ke Tepi / /
/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
DS=sel i mut _kol om+( 0. 5*DI A) ; / / ( mm)
D=si si - DS; / / ( mm)

/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
/ / Menghi t ung Fakt or Pengal i Ti nggi Bl ok Tegangan Segi empat / /
/ / Eki val en ( B1) / /
/ / Sumber : SK SNI T- 15- 1991- 03 Pasal 3. 3. 2 but i r 7. ( 3) / /
/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
i f ( FC<=30. )
{
BT1=0. 85;
}
el se
{
BT1=0. 85- 0. 008*( FC- 30. ) ;
}
i f ( BT1<0. 65)
{
BT1=0. 65;
}

/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
/ / Per hi t ungan Fakt or Bent uk Kol omBi aksi al / /
/ / Unt uk Symet r i cal Ar r angement Of Rei nf or cement / /
/ / Rumus Empi r i s Dar i Hul se dan Mosl ey ( 1986) / /
/ / Buku : Rei nf or ced Concr et e Desi gn by Comput er hal . 163 / /
/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
bet a=0. 3+( 0. 7/ 0. 6) *( 0. 6- ( PU/ ( si si *si si *FC) ) ) ;

/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
/ / Dengan Ni l ai bet a Mi ni mum= 0. 3 / /
/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
i f ( bet a<0. 3)
LAMPIRAN 10
{
bet a=0. 3;
}

/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
/ / Mencar i Momen Eki val en Bi aksi al / /
/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
i f ( MNX > MNY)
{
MOX=MNX+( MNY*( ( 1. - bet a) / bet a) ) ; / / Momen eki val en ( Nmm)
eks=( f abs( MOX/ PN) ) ; / / ( mm)

}
el se
{
MOY=MNY+( MNX*( ( 1. - bet a) / bet a) ) ; / / Momen eki val en ( Nmm)
eks=( f abs( MOY/ PN) ) ; / / ( mm)
}

/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
/ / Menghi t ung Let ak Gar i s Net r al Pada Keadaan Bal ance / /
/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
CB=600. *D/ ( FY+600. ) ; / / ( mm)

/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
/ / Menghi t ung Tegangan Pada Keadaan Bal ance / /
/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
deki =hi t ung_kol om( CB) ;
eksb=ekscoba; / / ( mm)
epsb=0. 003*( CB- DS) / CB;
epsy=FY/ 2. E5;

i f ( epsb>epsy)
{
f s1b=FY; / / ( Mpa)
}
i f ( epsb<epsy)
{
f s1b=epsb*2. E5; / / ( MPa)
}

/ / - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - / /
/ / Pr oses Mencar i Let ak Gar i s Net r al Dengan Met ode Fal se Posi si / /
/ / - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - / /

/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
/ / Pembagi an Daer ah Pencar i an / /
/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
t r i al ki r i =40. ;
t r i al kanan=( si si - 40. ) ;
t r i al bar u=( CB) ;

/ / / / / / / / / / / / / / / / / / / / / / / / / / /
/ / Menghi t ung Ni l ai Awal / /
/ / / / / / / / / / / / / / / / / / / / / / / / / / /
deki =hi t ung_kol om( t r i al ki r i ) ;
deka=hi t ung_kol om( t r i al kanan) ;
deba=hi t ung_kol om( t r i al bar u) ;

/ / / / / / / / / / / / / / / / / / / / / / / / /
/ / Per i ksa Bat as Range / /
/ / / / / / / / / / / / / / / / / / / / / / / / /
i f ( ( deki *deka>0) &&( deki ! =0) &&( deka! =0) )
{
do
{
/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
/ / Bi l a Ni l ai Yang Ki t a Car i Ti dak Ada Dal amRange / /
/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
i f ( t r i al ki r i >( l i mi t _nol ) )
{
LAMPIRAN 10
t r i al ki r i =( ( t r i al ki r i ) / 2. ) ;
deki =hi t ung_kol om( t r i al ki r i ) ;
}
el se
{
t r i al kanan+=10. ;
deka=hi t ung_kol om( t r i al kanan) ;
i f ( t r i al kanan>( si si / 0. 85) )
{
br eak;
}
}
}whi l e( deki *deka>0&&( deki ! =0) &&( deka! =0) ) ;
}

/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
/ / Aksel er at or Fal se Posi si / /
/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
i t er asi _f p=1;
do
{
/ / / / / / / / / / / / / / / / / / / / / / / / /
/ / Per i ksa Konver gensi / /
/ / Di ambi l E = 1 mm / /
/ / / / / / / / / / / / / / / / / / / / / / / / /
i f ( deba<1. &&deba>( - 1. ) )
{
i f ( PNcoba<=0)
{
PNcoba=l i mi t _nol ;
}
MNcoba=f abs( MNcoba) ;
br eak;
}

/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
/ / Per i ksa Apakah deki Dan deba Sama Tanda / /
/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
i f ( ( deki *deba) <0. )
{
/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
/ / Geser t r i al kanan menuj u t r i al bar u / /
/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
t r i al kanan=t r i al bar u;
deka=hi t ung_kol om( t r i al kanan) ;
}
el se
{
/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
/ / Geser t r i al ki r i menuj u t r i al bar u / /
/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
t r i al ki r i =t r i al bar u;
deki =hi t ung_kol om( t r i al ki r i ) ;
}

/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
/ / Per sempi t Lagi Daer ah Pencar i an / /
/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
t r i al bar u=( ( t r i al ki r i +t r i al kanan) / 2. ) ;

deba=hi t ung_kol om( t r i al bar u) ;

i t er asi _f p++;

i f ( t r i al ki r i ==t r i al kanan)
{
br eak;
}

}whi l e( i t er asi _f p<=100) ;

LAMPIRAN 10
/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
/ / I nsi al i sasi J uml ah I t er asi / /
/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
i t er asi _f p=1;

/ *- *- *- *- *- *- *- *- *- *- *- *- *- *- *- *- *- *- *- *- *- *- *- *- *- *- *- */
/ * Pr oses Pencar i an Dengan Met oda Fal se Posi si Di mul ai */
/ *- *- *- *- *- *- *- *- *- *- *- *- *- *- *- *- *- *- *- *- *- *- *- *- *- *- *- */
do
{
i f ( t r i al ki r i ==t r i al kanan)
{
br eak;
}
/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
/ / Menent ukan Ti t i k Coba Bar u / /
/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
t r i al bar u=t r i al kanan- ( ( deka) *( t r i al kanan- t r i al ki r i )
/ ( ( deka) - ( deki ) ) ) ;

deba=hi t ung_kol om( t r i al bar u) ;

/ / / / / / / / / / / / / / / / / / / / / / / / /
/ / Per i ksa Konver gensi / /
/ / Di ambi l E = 10 mm / /
/ / / / / / / / / / / / / / / / / / / / / / / / /
i f ( deba<10. &&deba>( - 10. ) )
{
i f ( PNcoba<=0)
{
PNcoba=l i mi t _nol ;
}
MNcoba=f abs( MNcoba) ;
br eak;
}

/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
/ / Per i ksa Apakah deki Dan deba Sama Tanda / /
/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
i f ( ( deki *deba) <0. )
{
/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
/ / Geser t r i al kanan menuj u t r i al bar u / /
/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
t r i al kanan=t r i al bar u;
deka=hi t ung_kol om( t r i al kanan) ;

}
el se
{
/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
/ / Geser t r i al ki r i menuj u t r i al bar u / /
/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
t r i al ki r i =t r i al bar u;
deki =hi t ung_kol om( t r i al ki r i ) ;

}

i t er asi _f p++;
i f ( i t er asi _f p>=100)
{
/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
/ / Di hi t ung Dengan Met oda Pendekat an / /
/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
deka=hi t ung_kol om( ( t r i al ki r i +t r i al kanan) / 2. ) ;
br eak;
}
}whi l e( deki *deka! =0. ) ;
FPU=f abs( PNcoba) ; / / Dal amN
FMU=f abs( MNcoba) / 1000. ; / / Hasi l per hi t ungan dal amNmm- > Nm

LAMPIRAN 10
/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
/ / Menghi t ung Kendal a Aki bat Gaya Aksi al / /
/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
kendal a_pn=( ( PN/ PNcoba) - 1. ) ;
i f ( kendal a_pn<0)
{
kendal a_pn=0. ;
}

/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
/ / Menghi t ung Kendal a Aki bat Gaya Lent ur / /
/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
i f ( MNX > MNY)
{
kendal a_mn=( ( MOX/ MNcoba) - 1. ) ;
i f ( kendal a_mn<0)
{
kendal a_mn=0. ;
}
}
el se
{
kendal a_mn=( ( MOY/ MNcoba) - 1. ) ;
i f ( kendal a_mn<0)
{
kendal a_mn=0. ;
}
}
}

/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
/ / Bi l a Gaya Aksi al Mel anggar Gaya Aksi al Bat as Mi ni mum/ /
/ / Eksent r i si t as Pada Kol omBer pengi kat Sengkang / /
/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
el se
{
FPU=PO;
FMU=0. ;
kendal a_pn=0. ;
kendal a_mn=0. ;
}

/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
/ / Menghi t ung Kendal a Tot al Aki bat Gaya Yang Ter j adi / /
/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
kendal a_gaya=kendal a_po+kendal a_pn+kendal a_mn;
}

/ ***********************************************/
/ * FUNGSI UNTUK MENGHI TUNG TEGANGAN PADA KOLOM */
/ ***********************************************/
f l oat kol om: : hi t ung_kol om( f l oat Ccoba)
{
/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
/ / Menghi t ung Gaya Yang Di t ahan Bet on / /
/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
PNcoba=( 0. 85*BT1*FC*Ccoba*si si ) ;
MNcoba=( 0. 85*BT1*FC*Ccoba*si si ) *( ( si si / 2. ) - ( BT1*Ccoba/ 2. ) ) ;

/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
/ / I t er asi Unt uk Kekuat an Yang Di dukung Tul angan / /
/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
f or ( i nt i kl =1; i kl <=N_DI A; i kl ++)
{
di =( DS+( ( N_DI A- i kl ) *( si si - ( 2. *DS) ) / ( N_DI A- 1. ) ) ) ;

i f ( di ==( 0. 5*si si ) )
{
cont i nue;
}

LAMPIRAN 10
/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
/ / Luas Tul angan Pada Bar i s Luar / /
/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
i f ( ( i kl ==1) | | ( i kl ==N_DI A) )
{
ASdi =( N_DI A*( pi / 4. ) *pow( DI A, 2) ) ;
}

/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
/ / Luas Tul angan Pada Bar i s Dal am/ /
/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
el se
{
ASdi =( 2. *( pi / 4. ) *pow( DI A, 2) ) ;
}

/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
/ / Ant i si pasi Ni l ai Ccoba Dengan Li mi t Nol / /
/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
i f ( Ccoba==0)
{
Ccoba=l i mi t _nol ;
}

/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
/ / Hi t ung Tegangan Tahanan Tul angan / /
/ / f si = Regangan * Modul us El ast i si t as / /
/ / Dengan Regangan = 0. 003[ ( c- di ) / c] / /
/ / Modul us El ast i si t as = 2E5 MPa ( Baj a) / /
/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
f si =( ( 600. *( Ccoba- di ) ) / Ccoba) ;

/ / / / / / / / / / / / / / / / / / / / / / / / / / / /
/ / Per i ksa Range Tegangan / /
/ / / / / / / / / / / / / / / / / / / / / / / / / / / /
i f ( f si >FY)
{
f si =FY;
}
el se i f ( f si <( - FY) )
{
f si =( 0. - FY) ;
}

/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
/ / Reduksi Tegangan Baj a Pada Daer ah Desak / /
/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
i f ( di <( BT1*Ccoba) )
{
f si =( f si - ( 0. 85*FC) ) ;
}

/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
/ / Hi t ung Gaya Yang Di sumbangkan Ol eh Tul angan / /
/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
Fsi =f si *ASdi ;

/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
/ / Hi t ung Gaya Aksi al Dan Momen Tahanan Maksi mal / /
/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
PNcoba=( PNcoba+Fsi ) ;
MNcoba=( MNcoba+( Fsi *( ( si si / 2. ) - di ) ) ) ;
}

/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
/ / Ant i si pasi Di vi de By Zer o Er r or / /
/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
i f ( PNcoba<=0)
{
PNcoba=l i mi t _nol ;
}
LAMPIRAN 10

/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
/ / Hi t ung Momen Dan Gaya Aksi al Tot al / /
/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
ekscoba=( MNcoba/ PNcoba) ;

/ / / / / / / / / / / / / / / / / / / / / / / / / / / / /
/ / Kembal i kan Ni l ai Fungsi / /
/ / / / / / / / / / / / / / / / / / / / / / / / / / / / /
r et ur n ( eks- ekscoba) ;
}

/ *********************************************************/
/ * FUNGSI UNTUK MENGHI TUNG KENDALA GAYA GESER PADA KOLOM */
/ *********************************************************/
voi d kol om: : sengkang_kol om( )
{
/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
/ / Menghi t ung Ant ar J ar ak Sengkang Maksi mal / /
/ / Ber dasar kan SK SNI T- 15- 1991- 03 pasal 3. 16. 10 ayat 5 / /
/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
f l oat Smak[ 3] ;
Smak[ 0] =si si ;
Smak[ 1] =16. *DI A;
Smak[ 2] =48. *DI AS;
f l oat SmakS=Smak[ 0] ;

/ / / / / / / / / / / / / / / / / / / / / / / /
/ / Car i Yang Ter keci l / /
/ / / / / / / / / / / / / / / / / / / / / / / /
f or ( i nt sk=1; sk<3; sk++)
{
i f ( SmakS>Smak[ sk] )
{
SmakS=Smak[ sk] ;
}
}

Sr ef =SmakS;
/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
/ / Menghi t ung Kendal a J ar ak Ant ar Sengkang / /
/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
kendal a_sengkang=( ( J ar ak_S/ SmakS) - 1. ) ;
i f ( kendal a_sengkang<0. )
{
kendal a_sengkang=0. ;
}
}
LAMPIRAN 11
/ ***********************************************************************/
/ * FI LE : BALOK. HPP */
/ * KELAS UNTUK MENGHI TUNG HARGA DAN KENDALA PADA BALOK */
/ ***********************************************************************/
cl ass bal ok
{
pr i vat e:

/ ****************************************************/
/ * PENDEKLARASI AN VARI ABEL PRI VATE PADA KELAS BALOK */
/ ****************************************************/

/ / / / / / / / / / / / / / / / / / / / / / /
/ / Per hi t ungan Bal ok / /
/ / / / / / / / / / / / / / / / / / / / / / /
f l oat FS; / / Tegangan pada t ul angan t ar i k ( N/ mm^2)
f l oat FS1; / / Tegangan pada t ul angan desak ( N/ mm^2)
f l oat ARM; / / Lengan pusat t ekan ke gar i s Net r al ( mm)
f l oat ARMS; / / Lengan pusat t ul angan ke gar i s Net r al ( mm)
f l oat EPS; / / Regangan pada t ul angan t ar i k ( mm)
f l oat EPS1; / / Regangan pada t ul angan t ekan ( mm)
f l oat EPSY; / / Regangan i j i n baj a pada keadaan l ul uh ( mm)
f l oat RHB; / / Rasi o t ul angan bal ance
f l oat RHO; / / Rasi o t ul angan t ar i k
f l oat RH1; / / Rasi o t ul angan desak
f l oat RMI N; / / Rasi o t ul angan mi ni mum
f l oat SmakS; / / J ar ak ant ar sengkang maksi mumyang di i j i nkan ( mm)

/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
/ / Var i abel Pembant u Per samaan Kuar dat / /
/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
f l oat ASOL;
f l oat BSOL;
f l oat CSOL;
f l oat DSOL;

/ *************************************/
/ * PROTOTYPE FUNGSI PADA KELAS BALOK */
/ *************************************/
voi d anal i sa( ) ;
voi d sengkang_bal ok( ) ;
publ i c:

/ ***************************/
/ * CONSTRUCTOR CLASS BALOK */
/ ***************************/
bal ok( )
{
/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
/ / I ni si al i sai Kendal a Dan Har ga = 0 / /
/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
kendal a=0. ;
har ga=0. ;

/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
/ / Menghi t ung Luas Tul angan Tar i k Dan Tekan / /
/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
AS=( 0. 25*pi *( pow( DI A1, 2) ) *NL1) ;
AS1=( 0. 25*pi *( pow( DI A2, 2) ) *NL2) ;

/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
/ / Memanggi l Fungsi Fungsi Kendal a / /
/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
anal i sa( ) ;
sengkang_bal ok( ) ;
kendal a=kendal a_sb+kendal a_r ho+kendal a_M;

/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
/ / Per hi t ungan Ber at Dan Vol ume / /
/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
vol ume_bet on=B*H*0. 5*L/ 1. E6;
LAMPIRAN 11
ber at _besi =( AS+AS1) *0. 5*L*bj _besi / 1. E6;
ber at _sengkang=0. 5*( f abs( L/ ( J ar ak_S/ 1000. ) ) - 1. ) *
(
2. *
(
( ( B- ( 2. *sel i mut _bal ok) ) / 1000. ) +
2. *( ( H- ( 2. *sel i mut _bal ok) ) / 1000. )
)
) *
( pi / 4. ) *pow( ( DI AS/ 1000. ) , 2) *bj _besi ;

/ / / / / / / / / / / / / / / / / / / / / /
/ / Menghi t ung Har ga / /
/ / / / / / / / / / / / / / / / / / / / / /
har ga=vol ume_bet on*har ga_bet on
+ber at _besi *har ga_besi
+ber at _sengkang*har ga_besi ;
}
};

/ *****************************************************/
/ * FUNGSI UNTUK MENGHI TUNG KENDALA TEGANGAN MATERI AL */
/ *****************************************************/
voi d bal ok: : anal i sa( )
{
/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
/ / Menghi t ung Fakt or Pengal i Ti nggi Bl ok Tegangan Segi empat / /
/ / Eki val en ( B1) / /
/ / Sumber : SK SNI T- 15- 1991- 03 Pasal 3. 3. 2 but i r 7. ( 3) / /
/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
i f ( FC<=30. )
{
BT1=0. 85;
}
el se
{
BT1=0. 85- 0. 008*( FC- 30. ) ;
}
i f ( BT1<0. 65)
{
BT1=0. 65;
}

DS=sel i mut _bal ok+( 0. 5*DI A1) ;

D=H- DS;
FS=FY;

EPSY=FY/ 200000. ;

/ / / / / / / / / / / / / / / / / / /
/ / Asumsi Per t ama / /
/ / / / / / / / / / / / / / / / / / /
FS1=FS;

/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
/ / Hi t ung Besar nya Lengan Ke Gar i s Net r al ( mm) / /
/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
ARM=( ( AS- AS1) *FY) / ( 0. 85*FC*B) ;
i f ( ARM==0)
{
ARM=l i mi t _nol ;
}

/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
/ / Per i ksa Regangan Pada Tul angan / /
/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
EPS1=0. 003*( ARM- BT1*DS) / ARM;
EPS=0. 003*( BT1*D- ARM) / ARM;


LAMPIRAN 11
/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
/ / Hi t ung Ul ang Regangan Pada Baj a Apabi l a Tul angan Ti dak Lul uh / /
/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
i f ( ( EPS<EPSY) | | ( EPS1<EPSY) )
{
/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
/ / Hi t ung Koef i si en Per samaan Kuar dat Dan Menyel esai kannya / /
/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
ASOL=0. 85*FC*B;
BSOL=600. *AS1- AS*FY;
CSOL=( - 600. ) *BT1*AS1*DS;
DSOL=pow( BSOL, 2) - ( 4. *( ASOL*CSOL) ) ;
i f ( DSOL<=0)
{
DSOL=0. ;
}
ARMS=( - BSOL) +sqr t ( DSOL) ;
i f ( ARMS<=0&&DSOL>=0)
{
ARMS=( - BSOL) - sqr t ( DSOL) ;
}
ARM=0. 5*( ARMS/ ASOL) ;
i f ( ARM<=0)
{
ARM=l i mi t _nol ;
}

/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
/ / Hi t ung Regangan Pada Tul angan / /
/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
EPS1=0. 003*( ARM- BT1*DS) / ARM;
EPS=0. 003*( BT1*D- ARM) / ARM;
}

i f ( EPS>EPSY)
{
FS=FY;
}

FS1=EPS1*200000. ;
i f ( FS1>FY)
{
FS1=FY;
}
i f ( FS1<0)
{
FS1=0;
}

/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
/ / Per hi t ungan Rasi o Penul angan / /
/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
RH1=AS1/ ( B*D) ;
RHB=( 0. 75*( 0. 85*FC*BT1/ FY) *( 600. / ( 600. +FS) ) ) +RH1*FS1*FS1/ FY;
RHO = AS/ ( B*D) ;
RMI N=1. 4/ FY;

/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
/ / Menghi t ung Kendal a Rasi o Tul angan Bal ance / /
/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
kendal a_r ho_b=( RHO/ RHB) - 1. ;
i f ( kendal a_r ho_b<0)
{
kendal a_r ho_b=0. ;
}

/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
/ / Menghi t ung Kendal a Rasi o Tul angan Mi ni mum/ /
/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
kendal a_r ho_m=( RMI N/ RHO) - 1. ;
i f ( kendal a_r ho_m<0)
LAMPIRAN 11
{
kendal a_r ho_m=0;
}

/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
/ / Menghi t ung Kendal a Rho Tot al / /
/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
kendal a_r ho=kendal a_r ho_b+kendal a_r ho_m;

/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
/ / Momen Pada Bal ok Nmm- > Nm/ /
/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
FMU=( t et a*( ( 0. 85*FC*ARM*B) *( D- ARM/ 2. ) +( AS1*FS1) *( D- DS) ) ) / 1000. ;

/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
/ / Menghi t ung Kendal a Momen Lent ur / /
/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
i f ( FMU>0)
{
kendal a_M=( ( MU) / FMU) - 1. ;
}
el se
{
kendal a_M=0. ;
}
i f ( kendal a_M<0)
{
kendal a_M=0. ;
}
}

/ ****************************************************/
/ * FUNGSI UNTUK MENGHI TUNG KENDALA PENULANGAN GESER */
/ ****************************************************/
voi d bal ok: : sengkang_bal ok( )
{
DS=sel i mut _bal ok+( 0. 5*DI A1) ;
D=H- DS;

AV=0. 25*pi *( pow( DI AS, 2) ) ;

/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
/ / Kuat Geser Nomi nal Yang Di sumbangkan Tul angan Geser / /
/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
VC=( 1. / 6. ) *sqr t ( FC) *B*D;
VS=( ( VU/ t et a) - VC) ;

/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
/ / Menghi t ung J ar ak Sengkang Maksi mal / /
/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
f l oat Smak[ 4] ;
i f ( VS<=0)
{
VS=l i mi t _nol ;
}
Smak[ 0] =3. *AV*FYS/ B;
Smak[ 1] =( AV*FYS*D) / ( VS) ;
Smak[ 2] =0. 5*D;
Smak[ 3] =600. ;
i f ( VS>( ( 1. / 3. ) *sqr t ( FC) *B*D) )
{
Smak[ 2] =0. 25*D;
Smak[ 3] =300. ;
}
SmakS=Smak[ 0] ;

/ / / / / / / / / / / / / / / / / / / / / / / /
/ / Car i Yang Ter keci l / /
/ / / / / / / / / / / / / / / / / / / / / / / /
f or ( i nt sk=1; sk<4; sk++)
{
LAMPIRAN 11
i f ( SmakS>Smak[ sk] )
{
SmakS=Smak[ sk] ;
}
}

Sr ef =SmakS;
/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
/ / Menghi t ung Kendal a J ar ak Ant ar Sengkang Maksi mum/ /
/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
kendal a_sb=( ( J ar ak_S/ SmakS) - 1. ) ;
i f ( kendal a_sb<0. )
{
kendal a_sb=0. ;
}
}

/ **********************************************/
/ * FUNGSI UNTUK MENGHI TUNG LENDUTAN MAKSI MUM */
/ * BERDASARKAN SK SNI - T- 15- 1991- 03 AYAT 3. 2. 5 */
/ **********************************************/
voi d l endut an( i nt no_bat ang_l )
{
/ / / / / / / / / / / / / / / / / / / / / / / / / /
/ / Hi t ung Besar an Dasar / /
/ / / / / / / / / / / / / / / / / / / / / / / / / /
n=2. E5/ ( E*1. E- 6) ;

f r =0. 7*sqr t ( FC) ; / / ( MPa at au N/ mm^2)

/ / / / / / / / / / / / / / / / / / / / / / / /
/ / Let ak Gar i s Net r al / /
/ / / / / / / / / / / / / / / / / / / / / / / /
AS=( 0. 25*pi *( pow( DI A1, 2) ) *NL1) ;
AS1=( 0. 25*pi *( pow( DI A2, 2) ) *NL2) ;

LGN=( n*AS/ B) *( sqr t ( 1. +( ( 2. *B*( H- sel i mut _bal ok) ) / ( n*AS) ) ) - 1. ) ;

/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
/ / Menent ukan Momen I ner si a Penampang Ret ak Tr ansf or masi ( mm^4) / /
/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
I cr =( 1. / 3. ) *B*pow( LGN, 3) +n*AS*pow( ( ( H- sel i mut _bal ok) - LGN) , 2) ;

/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
/ / Momen I ner si a Penampang Kot or ( mm^4) / /
/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
I g=( 1. / 12. ) *B*pow( H, 3) ;

/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
/ / Momen Pada Saat Ti mbul Ret ak Per t ama Kal i ( Nmm) / /
/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
Mcr =f r *I g/ ( 0. 5*H) ;


/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
/ / Momen I ner si a Ef ekt i f Unt uk Per hi t ungan Lendut an ( mm^4) / /
/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
I e=pow( ( Mcr / ( MLAP[ no_bat ang_l ] *1. e3) ) , 3) *I g
+( 1. - pow( ( Mcr / ( MLAP[ no_bat ang_l ] *1. e3) ) , 3) ) *I cr ;

/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
/ / Menghi t ung Lendut an Seket i ka / /
/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
/ / Lendut an Pada Bal ok ( mm) / /
/ / Dar i Buku : Rei nf or ced Concr et e Mechani cs And Desi gn / /
/ / Hal aman : 355 / /
/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
LENDUTAN=(
(
( 5. *( pow( L*1000. , 2) ) )
LAMPIRAN 11
/ ( 48. *( E*1. E- 6) *I e)
) *
(
f abs( MLAP[ no_bat ang_l ] ) *1000.
)
) ;


/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
/ / Menghi t ung Lendut an J angka Panj ang / /
/ / Menur ut SK SNI - T- 15- 1991- 03 pasal 3. 2. 5( 2. 5) / /
/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
Lambda=2. / ( 1. +( 50. *AS1/ ( B*H) ) ) ;
LENDUTAN=( 1. +Lambda) *LENDUTAN;

LENDUTAN_I J I N=( L*1000. ) / 180. ;

kendal a_l endut an=( ( LENDUTAN/ LENDUTAN_I J I N) - 1. ) ;
i f ( kendal a_l endut an<0)
{
kendal a_l endut an=0. ;
}
}
LAMPIRAN 12
/ ***********************************************************************/
/ * FI LE : ELEMEN. HPP */
/ * PENGI SI AN ELEMEN BALOK DAN KOLOM */
/ ***********************************************************************/

/ *******************************/
/ * PENGI SI AN DATA ELEMEN BALOK */
/ *******************************/
voi d i si _el emen_bal ok( i nt no_el _bal ok)
{
B=i si ( var _b[ no_st r ukt ur ] [ 0+( 12*no_el _bal ok) ] , si si _d_B) ; / / ( mm)
H=i si ( var _b[ no_st r ukt ur ] [ 1+( 12*no_el _bal ok) ] , si si _d_H) ; / / ( mm)

DI A1l ap=i si ( var _b[ no_st r ukt ur ] [ 2+( 12*no_el _bal ok) ] , DI A_d) ; / / ( mm)
NL1l ap=i si ( var _b[ no_st r ukt ur ] [ 3+( 12*no_el _bal ok) ] , NL_d) ;
DI A2l ap=i si ( var _b[ no_st r ukt ur ] [ 4+( 12*no_el _bal ok) ] , DI A_d) ; / / ( mm)
NL2l ap=i si ( var _b[ no_st r ukt ur ] [ 5+( 12*no_el _bal ok) ] , NL_d) ;

DI A1t um=i si ( var _b[ no_st r ukt ur ] [ 6+( 12*no_el _bal ok) ] , DI A_d) ; / / ( mm)
NL1t um=i si ( var _b[ no_st r ukt ur ] [ 7+( 12*no_el _bal ok) ] , NL_d) ;
DI A2t um=i si ( var _b[ no_st r ukt ur ] [ 8+( 12*no_el _bal ok) ] , DI A_d) ; / / ( mm)
NL2t um=i si ( var _b[ no_st r ukt ur ] [ 9+( 12*no_el _bal ok) ] , NL_d) ;

DI AS=i si ( var _b[ no_st r ukt ur ] [ 10+( 12*no_el _bal ok) ] , DI AS_d) ; / / ( mm)
J ar ak_S=i si ( var _b[ no_st r ukt ur ] [ 11+( 12*no_el _bal ok) ] , J S_d) ; / / ( mm)
L=EL[ no_bal ok[ no_el _bal ok] ] ; / / ( m)

i f ( f abs( GESER_KI [ no_bal ok[ no_el _bal ok] ] )
>f abs( GESER_KA[ no_bal ok[ no_el _bal ok] ] ) )
{
VU = f abs( GESER_KI [ no_bal ok[ no_el _bal ok] ] / t et a) ; / / ( N)
}
el se
{
VU = f abs( GESER_KA[ no_bal ok[ no_el _bal ok] ] / t et a) ; / / ( N)
}
}

/ **************************/
/ * ELEMEN DAERAH LAPANGAN */
/ **************************/
voi d el emen_l apangan( i nt no_el _bal ok)
{
DI A1=DI A1l ap; / / Tul angan t ar i k ( mm)
NL1=NL1l ap;
DI A2=DI A2l ap; / / Tul angan desak ( mm)
NL2=NL2l ap;
MU=f abs( MLAP[ no_bal ok[ no_el _bal ok] ] / ( t et a) ) ; / / momen di t ahan ( Nm)
}

/ *************************/
/ * ELEMEN DAERAH TUMPUAN */
/ *************************/
voi d el emen_t umpuan( i nt no_el _bal ok)
{
DI A1=DI A1t um; / / Tul angan t ar i k ( mm)
NL1=NL1t um;
DI A2=DI A2t um; / / Tul angan desak ( mm)
NL2=NL2t um;

i f ( f abs( MTUM_KI [ no_bal ok[ no_el _bal ok] ] )
>f abs( MTUM_KA[ no_bal ok[ no_el _bal ok] ] ) )
{
MU=f abs( MTUM_KI [ no_bal ok[ no_el _bal ok] ] / t et a) ; / / ( Nm)
}
el se
{
MU=f abs( MTUM_KA[ no_bal ok[ no_el _bal ok] ] / t et a) ; / / ( Nm)
}
}

LAMPIRAN 12
/ *******************************/
/ * PENGI SI AN DATA ELEMEN KOLOM */
/ *******************************/
voi d i si _el emen_kol om( i nt no_el _kol om)
{
si si =i si ( var _k[ no_st r ukt ur ] [ 0+( 5*no_el _kol om) ] , si si _d_K) ; / / ( mm)
DI A =i si ( var _k[ no_st r ukt ur ] [ 1+( 5*no_el _kol om) ] , DI A_d) ; / / ( mm)
N_DI A =i si ( var _k[ no_st r ukt ur ] [ 2+( 5*no_el _kol om) ] , NL_d) ;
DI AS =i si ( var _k[ no_st r ukt ur ] [ 3+( 5*no_el _kol om) ] , DI AS_d) ; / / ( mm)
J ar ak_S=i si ( var _k[ no_st r ukt ur ] [ 4+( 5*no_el _kol om) ] , J S_d) ; / / ( mm)

PU =( - ( PK[ no_kol om[ no_el _kol om] ] ) / ( t et a) ) ; / / ( N)
MUX =( MKX[ no_kol om[ no_el _kol om] ] ) / ( t et a) ; / / ( Nm)
MUY =( MKY[ no_kol om[ no_el _kol om] ] ) / ( t et a) ; / / ( Nm)
VU =( f abs( ( GK[ no_kol om[ no_el _kol om] ] ) / ( t et a) ) ) ; / / ( N)
L=EL[ no_kol om[ no_el _kol om] ] ; / / ( m)
}

/ **********************************************/
/ * SUBPROGRAM UNTUK MEMANGGI L I SI DATA ELEMEN */
/ **********************************************/
f l oat i si ( i nt no_dat a, f l oat kel ompok_dat a[ ] )
{
r et ur n kel ompok_dat a[ no_dat a] ;
}

LAMPIRAN 13
/ ***********************************************************************/
/ * FI LE : POLYHEDRON. HPP */
/ * OPTI MASI STRUKTUR DENGAN METODA FLEXI BLE POLYHEDRON */
/ * DI TULI S OLEH YOHAN NAFTALI ( J UNI 1999) */
/ ***********************************************************************/

/ ***************************************/
/ * SUBPROGRAM UNTUK MELAKUKAN OPTI MASI */
/ ***************************************/
voi d opt i masi ( )
{
/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
/ / Pembangki t an Kel as Of st r eamUnt uk Penanganan Masal ah Fi l e / /
/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
of st r eamopt i ( f hi st or y) ;

/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
/ / Membaca Dat a I nput Dar i Fi l e / /
/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
baca_dat a( ) ;

/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
/ / Menghi t ung J uml ah Bal ok Kol omDan I dent i f i kasi Bal ok Kol om/ /
/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
j um_bal ok=0;
j um_kol om=0;
f or ( i nt i op=1; i op<=M; i op++)
{
/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
/ / Memer i ksa Kemi r i ngan Bat ang / /
/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
per i ksa_bat ang( i op) ;

/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
/ / Bat ang Non Ver t i kal - > Bal ok / /
/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
i f ( CXZ>0. 001)
{
no_bal ok[ j um_bal ok] =i op;
j um_bal ok ++;
}

/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
/ / Bat ang Ver t i kal - > Kol om/ /
/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
el se
{
no_kol om[ j um_kol om] =i op;
j um_kol om++;
}
}

/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
/ / Menghi t ung J uml ah Var i abel Desai n / /
/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
J VD=( 12*j um_bal ok) +( 5*j um_kol om) ;

/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
/ / J uml ah St r ukt ur Yang Di bangki t kan / /
/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
J STD=( J VD*f ak_kal i ) +f ak_pl us;

/ / / / / / / / / / / / / / / / / / / / / / /
/ / Mengacak Var i abel / /
/ / / / / / / / / / / / / / / / / / / / / / /
acak_var i abel ( ) ;

/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
/ / Mengi si Bat as At as Var i abel / /
/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
l oad_bat as_at as( ) ;
LAMPIRAN 13

/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
/ / Penor mal an Bat as Var i abel Bal ok Kol om/ /
/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
nor mal i sasi _i nt ( nvm, nvb, nvk) ;

cl r scr ( ) ;
about ( ) ;
cout << " Gener asi ke - 1\ n" ;
cout << " \ nJ uml ah St r ukt ur desai n = \ n" ;
cout << " \ nWakt u yang t el ah ber j al an : 0 det i k\ n" ;
cout << " \ nEst i masi wakt u yang di per l ukan : ?\ n" ;


/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
/ / Pembangki t an Gener asi Per t ama / /
/ / St r ukt ur Di bangki t kan Sebanyak J uml ah St r ukt ur Desai n / /
/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /

f or ( i nt i op=0; i op<J STD; i op++)
{
/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
/ / I ni si al i sasi Var i abel St r ukt ur / /
/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
no_st r ukt ur =i op;
kendal ast r [ i op] =0. ;
har gast r [ i op] =0. ; ;
f i t st r [ i op] =0. ;

/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
/ / Pencat at an J uml ah St r ukt ur Desai n Yang Di bangki t kan / /
/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
got oxy( 26, 9) ;
cout << ( i op+1) << " " ;

/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
/ / Pembacaan Dat a UmumSt r ukt ur / /
/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
baca_dat a( ) ;

/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
/ / Membaca Beban Yang Beker j a Pada St r ukt ur / /
/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
baca_beban( ) ;

/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
/ / Menghi t ung Gaya- Gaya St r ukt ur / /
/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
i ner si a( ) ;
st r ukt ur ( ) ;

/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
/ / Menghi t ung Kendal a Dan Har ga Bal ok / /
/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
f or ( i nt j op=0; j op<j um_bal ok; j op++)
{
/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
/ / Memer i ksa Kemi r i ngan Bat ang / /
/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
per i ksa_bat ang( no_bal ok[ j op] ) ;

/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
/ / Mengi si Pr oper t i El emen Bal ok / /
/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
i si _el emen_bal ok( j op) ;

/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
/ / Membangki t kan Bal ok Pada Lapangan / /
/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
el emen_l apangan( j op) ;
bal ok l apangan;
LAMPIRAN 13

/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
/ / Menggant i j ar ak sengkang / /
/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
f or ( i nt car i _S=( nvb[ 11+( 12*j op) ] - 1) ;
car i _S>0; car i _S- - )
{
i f ( i si ( car i _S, J S_d) <=Sr ef )
{
var _b[ no_st r ukt ur ] [ 11+( 12*j op) ] =car i _S;
J ar ak_S=i si ( car i _S, J S_d) ;
br eak;
}
}
bal ok r ai se_l ap;

kendal ast r [ i op] +=kendal a;
har gast r [ i op] +=har ga;

/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
/ / Menghi t ung Lendut an Pada Tengah Bent ang / /
/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
l endut an( no_bal ok[ j op] ) ;
kendal ast r [ i op] +=kendal a_l endut an;

/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
/ / Membangki t kan Bal ok Pada Tumpuan / /
/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
el emen_t umpuan( j op) ;
bal ok t umpuan;
kendal ast r [ i op] +=kendal a;
har gast r [ i op] +=har ga;
}

/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
/ / Menghi t ung Kendal a Dan Har ga Kol om/ /
/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
f or ( i nt j op=0; j op<j um_kol om; j op++)
{
/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
/ / Memer i ksa Kemi r i ngan Bat ang / /
/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
per i ksa_bat ang( no_kol om[ j op] ) ;

/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
/ / Mengi si Pr oper t i El emen Kol om/ /
/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
i si _el emen_kol om( j op) ;

/ / / / / / / / / / / / / / / / / / / / / / / / /
/ / Membangki t kan Kol om/ /
/ / / / / / / / / / / / / / / / / / / / / / / / /
kol ombangki t ;

/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
/ / Menggant i j ar ak sengkang / /
/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
f or ( i nt car i _S=( nvk[ 4+( 5*j op) ] - 1) ;
car i _S>0; car i _S- - )
{
i f ( i si ( car i _S, J S_d) <=Sr ef )
{
var _k[ no_st r ukt ur ] [ 4+( 5*j op) ] =car i _S;
J ar ak_S=i si ( car i _S, J S_d) ;
br eak;
}
}
kol omr ai se;



LAMPIRAN 13
/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
/ / Bi l a Ada Kendal a Kel angsi ngan Ubah Ni l ai Si si / /
/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
i f ( kendal a_kel angsi ngan>0)
{
L=EL[ no_kol om[ j op] ] ;
f l oat si si _bar u=( ( 0. 75*L*1000. ) / ( 22. *sqr t ( ( 1. / 12. ) ) ) ) ;
f or ( i nt car i _si si =var _k[ no_st r ukt ur ] [ 0+( 5*j op) ] ;
car i _si si <nvk[ 0+( 5*j op) ] ; car i _si si ++)
{
f l oat si si _car i =i si ( car i _si si , si si _d_K) ;
i f ( si si _car i >si si _bar u)
{
var _k[ no_st r ukt ur ] [ 0+( 5*j op) ] =car i _si si ;
si si =i si ( car i _si si , si si _d_K) ;
br eak;
}
}
/ / / / / / / / / / / / / / / / / / / / / / / / /
/ / Hi t ung Kendal a Bar u / /
/ / / / / / / / / / / / / / / / / / / / / / / / /
kol ombangki t ;
}

kendal ast r [ i op] +=kendal a;
har gast r [ i op] +=har ga;
}

/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
/ / Menghi t ung Fi t ness St r ukt ur / /
/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
f i t st r [ i op] =( f i nal t i / ( har gast r [ i op] +( f i nal t i *kendal ast r [ i op] ) ) ) ;
}

/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
/ / Lakukan Pengur ut an Fi t ness / /
/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
sor t ( f i t st r , kendal ast r , har gast r , var _b, var _k, J STD) ;

/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
/ / Pengambi l an wakt u si st em/ /
/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
t i me_t t _awal , t _sekar ang, t _akhi r ;
t i me( &t _awal ) ;

/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
/ / Pr oses Pencar i an Hasi l Opt i mal Di mul ai / /
/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
i nt gener asi =1;
j um_susut =0;
do
{
/ / / / / / / / / / / / / / / / / / / / / / / / / / / /
/ / Menul i s Nomor Gener asi / /
/ / / / / / / / / / / / / / / / / / / / / / / / / / / /
got oxy( 15, 7) ;
cout << ( gener asi +1) << " " ;

/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
/ / Menbangki t kan Kel as Ti mer / /
/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
t i me( &t _sekar ang) ;

/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
/ / Menul i s Lama Wakt u Yang Sedang Ber j al an / /
/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
got oxy( 29, 11) ;
cout << di f f t i me( t _sekar ang, t _awal ) << " det i k " ;



LAMPIRAN 13
/ / / / / / / / / / / / / / / / / / / / / / / / / / / /
/ / Menul i s Est i masi Wakt u / /
/ / / / / / / / / / / / / / / / / / / / / / / / / / / /
got oxy( 34, 13) ;
cout << i nt ( ( di f f t i me( t _sekar ang, t _awal ) / ( gener asi +1) )
*( j _i t er asi _mak- gener asi ) ) << " det i k " ;

/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
/ / Menent ukan Ar ah Penel usur an / /
/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
penel usur an( ) ;

/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
/ / Mencar i Ti t i k Bar u Unt uk Menggant i kan Ti t i k Wor st / /
/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
car i _bar u( ) ;


/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
/ / Membandi ngkan Fi t ness St r ukt ur Bar u / /
/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /


i f ( ( f i t cb_best ) >( f i t st r [ 0] ) )
{
i f ( j um_susut >1)
{
opt i << " Penyusut an ber t ur ut ber akhi r set el ah "
<< j um_susut << " kal i \ n" ;
j um_susut =0;
}

/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
/ / Gant i Var i abel Ter j el ek Dengan Var i abel Bar u / /
/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
gant i _bar u( ) ;

}
el se
{
/ / / / / / / / / / / / / / / / / / / / / / / /
/ / Lakukan Penyusut an / /
/ / / / / / / / / / / / / / / / / / / / / / / /
penyusut an( ) ;
j um_susut ++;
i f ( j um_susut ==1)
{
pat ok_f i t =f i t st r [ J STD- 1] ;
opt i << " Penyusut an ber t ur ut per t ama pada gener asi : " << gener asi
<< " Fi t ness t er bai k : " << f i t st r [ J STD- 1] << endl ;
}
}

/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
/ / I ni si al i sasi Var i abel St r ukt ur / /
/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
no_st r ukt ur =0;
kendal ast r [ 0] =0. ;
har gast r [ 0] =0. ; ;
f i t st r [ 0] =0. ;

/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
/ / Pembacaan Dat a UmumSt r ukt ur / /
/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
baca_dat a( ) ;

/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
/ / Membaca Beban Yang Beker j a Pada St r ukt ur / /
/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
baca_beban( ) ;

LAMPIRAN 13
/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
/ / Menghi t ung Gaya- Gaya St r ukt ur / /
/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
i ner si a( ) ;
st r ukt ur ( ) ;

/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
/ / Menghi t ung Kendal a Dan Har ga Bal ok / /
/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
f or ( i nt i op=0; i op<j um_bal ok; i op++)
{
per i ksa_bat ang( no_bal ok[ i op] ) ;
i si _el emen_bal ok( i op) ;
el emen_l apangan( i op) ;
bal ok l apangan;
kendal ast r [ 0] +=kendal a;
har gast r [ 0] +=har ga;
l endut an( no_bal ok[ i op] ) ;
kendal ast r [ 0] +=kendal a_l endut an;
el emen_t umpuan( i op) ;
bal ok t umpuan;
kendal ast r [ 0] +=kendal a;
har gast r [ 0] +=har ga;
}

/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
/ / Menghi t ung Kendal a Dan Har ga Kol om/ /
/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
f or ( i nt i op=0; i op<j um_kol om; i op++)
{
per i ksa_bat ang( no_kol om[ i op] ) ;
i si _el emen_kol om( i op) ;
kol ombangki t ;
kendal ast r [ 0] +=kendal a;
har gast r [ 0] +=har ga;
}
f i t st r [ 0] =f i nal t i / ( har gast r [ 0] +( f i nal t i *kendal ast r [ 0] ) ) ;

/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
/ / Lakukan Pengur ut an Fi t ness / /
/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
sor t ( f i t st r , kendal ast r , har gast r , var _b, var _k, J STD) ;

/ / / / / / / / / / / / / / / / / / / / / / / / /
/ / Pencet akan Ke Layar / /
/ / / / / / / / / / / / / / / / / / / / / / / / /
got oxy( 1, 17) ;
cout << " Fi t ness t er bai k : " << f i t st r [ J STD- 1]
<< " \ n\ n" ;
cout << " Har ga : " << har gast r [ J STD- 1]
<< " \ n\ n" ;
cout << " Kendal a : " << kendal ast r [ J STD- 1]
<< " \ n\ n" ;

/ / / / / / / / / / / / / / / / / / / / / / / / / / /
/ / Memer i ksa Konver gensi / /
/ / / / / / / / / / / / / / / / / / / / / / / / / / /
i f ( f i t st r [ J STD- 1] ==f i t st r [ ( J STD- J VD) - 1] )
{
opt i << " Konver gen pada gener asi : " << gener asi << endl ;
br eak;
}


/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
/ / Accel er at or Konver gensi / /
/ / Di j al ankan Apabi l a Tel ah Ter j adi 0. 5*J STD Penyusut an / /
/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /

i f ( j um_susut ==J STD)
{
LAMPIRAN 13
/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
/ / Hent i kan I t er asi Apabi l a Set el ah J VD Kal i Menyusut / /
/ / Dan Fi t ness Ter bai k Tet ap / /
/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
i f ( pat ok_f i t ==f i t st r [ J STD- 1] )
{
opt i << " Konver gen Pada Gener asi : " << gener asi
<< " kar ena j uml ah penyusut an mel ebi hi bat as" << endl ;
br eak;
}

/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
/ / J uml ah Penyusut an Di Reset Lagi / /
/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
j um_susut =0;
}

/ / / / / / / / / / / / / / /
/ / I ncr eat or / /
/ / / / / / / / / / / / / / /
gener asi ++;
}whi l e( gener asi <j _i t er asi _mak) ;

/ / / / / / / / / / / / / / / / / / / / / / / / / / /
/ / Mengambi l Wakt u Akhi r / /
/ / / / / / / / / / / / / / / / / / / / / / / / / / /
t i me( & t _akhi r ) ;

/ / / / / / / / / / / / / / / / / / / /
/ / Cet ak Ke Layar / /
/ / / / / / / / / / / / / / / / / / / /
got oxy( 1, 17) ;
cout << " Wakt u opt i masi : " << di f f t i me( t _akhi r , t _awal )
<< " det i k \ n\ a" ;
cout << " \ nFi t ness Ter bai k : " << f i t st r [ J STD- 1]
<< " " << endl ;
cout << " Har ga : " << har gast r [ J STD- 1]
<< " " << endl ;
cout << " Kendal a : " << kendal ast r [ J STD- 1]
<< " " << endl ;
got oxy( 55, 24) ;
cout << " Tekan <CR> unt uk kel uar " ;
get ch( ) ;

/ / / / / / / / / / / / / / / / / / /
/ / Cet ak Ke Fi l e / /
/ / / / / / / / / / / / / / / / / / /
i f ( gener asi ==j _i t er asi _mak)
{
opt i << " Sel esai pada gener asi " << ( gener asi )
<< " kar ena j uml ah i t er asi mencapai j uml ah i t er asi maksi mum\ n" ;
}
opt i << " Fi t ness = " << f i t st r [ J STD- 1] << endl ;
opt i << " Har ga = " << har gast r [ J STD- 1] << endl ;
opt i << " Kendal a = " << kendal ast r [ J STD- 1] << endl ;
opt i << " Wakt u opt i masi : " << di f f t i me( t _akhi r , t _awal )
<< " det i k " ;
opt i . cl ose( ) ;
cet ak_akhi r ( ) ;
}
LAMPIRAN 14
/ ***********************************************************************/
/ * FI LE : PENORMALAN. HPP */
/ * PENANGANAN MASALAH VARI ABEL BALOK DAN KOLOM */
/ * DENGAN VARI ABEL GABUNGAN BALOK KOLOM */
/ ***********************************************************************/

/ *****************************************************/
/ * SUBPROGRAM MENGEMBALI KAN VARI ABEL BALOK DAN KOLOM */
/ *****************************************************/
voi d unnor mal i sasi ( i nt var _nor [ mak] , i nt var _bv[ mak] , i nt var _kv[ mak] )
{
i nt novar =0;
f or ( i nt i sum=0; i sum<j um_bal ok; i sum++)
{
f or ( i nt j sum=0; j sum<12; j sum++)
{
var _bv[ j sum+( 12*i sum) ] =var _nor [ novar ] ;
novar ++;
}
}
f or ( i nt i sum=0; i sum<j um_kol om; i sum++)
{
f or ( i nt j sum=0; j sum<5; j sum++)
{
var _kv[ j sum+( 5*i sum) ] =var _nor [ novar ] ;
novar ++;
}
}
}

/ *******************************************************************/
/ * SUBPROGRAM MENORMALI SASI KAN VARI ABEL BALOK DAN KOLOM TI PE FLOAT */
/ *******************************************************************/
voi d nor mal i sasi _f l oat ( f l oat var _nor [ ] , f l oat var _bv[ ] , f l oat var _kv[ ] )
{
i nt novar =0;
f or ( i nt i sum=0; i sum<j um_bal ok; i sum++)
{
f or ( i nt j sum=0; j sum<12; j sum++)
{
var _nor [ novar ] =var _bv[ j sum+( 12*i sum) ] ;
novar ++;
}
}
f or ( i nt i sum=0; i sum<j um_kol om; i sum++)
{
f or ( i nt j sum=0; j sum<5; j sum++)
{
var _nor [ novar ] =var _kv[ j sum+( 5*i sum) ] ;
novar ++;
}
}
}

/ *********************************************************************/
/ * SUBPROGRAM MENORMALI SASI KAN VARI ABEL BALOK DAN KOLOM TI PE I NTEGER */
/ *********************************************************************/
voi d nor mal i sasi _i nt ( i nt var _nor [ ] , i nt var _bv[ ] , i nt var _kv[ ] )
{
i nt novar =0;
f or ( i nt i sum=0; i sum<j um_bal ok; i sum++)
{
f or ( i nt j sum=0; j sum<12; j sum++)
{
var _nor [ novar ] =var _bv[ j sum+( 12*i sum) ] ;
novar ++;
}
}
f or ( i nt i sum=0; i sum<j um_kol om; i sum++)
{
f or ( i nt j sum=0; j sum<5; j sum++)
LAMPIRAN 14
{
var _nor [ novar ] =var _kv[ j sum+( 5*i sum) ] ;
novar ++;
}
}
}
LAMPIRAN 15
/ ***********************************************************************/
/ * FI LE : PENGACAKAN. HPP */
/ * PUSTAKA URUSAN VARI ABEL DESAI N ACAK */
/ ***********************************************************************/

/ ******************************************/
/ * SUBPROGRAM PENGENDALI LOOP RANDOMI SASI */
/ ******************************************/
voi d acak_var i abel ( )
{
/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
/ / Pengacakan Seed Unt uk RandomNumber Gener at or / /
/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
r andomi ze( ) ;

l oad_bat as_at as( ) ;

f or ( i nt i av=0; i av<J STD; i av++)
{
no_st r ukt ur =i av;

i f ( i av==1)
{
car i _st r ukt ur _awal ( ) ;
cont i nue;
}

/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
/ / RandomSt r ukt ur Sel anj ut nya / /
/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
r andomi sasi ( ) ;
}
}

/ ******************************************/
/ * SUBPROGRAM UNTUK MELAKUKAN RANDOMI SASI */
/ ******************************************/
voi d r andomi sasi ( )
{
/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
/ / Randomi sasi Var i abel Desai n Bal ok / /
/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
f or ( i nt i r an=0; i r an<j um_bal ok; i r an++)
{
f or ( i nt nv_b=0; nv_b<12; nv_b++)
{
var _b[ no_st r ukt ur ] [ nv_b+( 12*i r an) ] =r andom( nvb[ nv_b] ) ;
}
}

/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
/ / Randomi sasi Var i abel Desai n Kol om/ /
/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
f or ( i nt i r an=0; i r an<j um_kol om; i r an++)
{
f or ( i nt nv_k=0; nv_k<5; nv_k++)
{
var _k[ no_st r ukt ur ] [ nv_k+( 5*i r an) ] =r andom( nvk[ nv_k] ) ;
}
}
}

/ **********************************************************/
/ * SUBPROGRAM UNTUK MENENTUKAN BATAS ATAS VARI ABEL DESAI N */
/ **********************************************************/
voi d l oad_bat as_at as( )
{
f or ( i nt i si nv=0; i si nv<j um_bal ok; i si nv++)
{
nvb[ 0+( 12*i si nv) ] =nsi si _B; / / B
nvb[ 1+( 12*i si nv) ] =nsi si _H; / / H
LAMPIRAN 15
nvb[ 2+( 12*i si nv) ] =nDI A; / / Di amet er t ul angan t ar i k l apangan
nvb[ 3+( 12*i si nv) ] =nNL; / / j uml ah t ul angan t ar i k l apangan
nvb[ 4+( 12*i si nv) ] =nDI A; / / Di amet er t ul angan desak l apangan
nvb[ 5+( 12*i si nv) ] =nNL; / / j uml ah t ul angan desak l apangan
nvb[ 6+( 12*i si nv) ] =nDI A; / / Di amet er t ul angan t ar i k t umpuan
nvb[ 7+( 12*i si nv) ] =nNL; / / j uml ah t ul angan t ar i k t umpuan
nvb[ 8+( 12*i si nv) ] =nDI A; / / Di amet er t ul angan desak t umpuan
nvb[ 9+( 12*i si nv) ] =nNL; / / j uml ah t ul angan desak t umpuan
nvb[ 10+( 12*i si nv) ] =nDI AS; / / Di amet er t ul angan sengkang
nvb[ 11+( 12*i si nv) ] =nJ S; / / j ar ak ant ar t ul angan sengkang
}
f or ( i nt i si nv=0; i si nv<j um_kol om; i si nv++)
{
nvk[ 0+( 5*i si nv) ] =nsi si _K; / / Si si B=H
nvk[ 1+( 5*i si nv) ] =nDI A; / / Di amet er t ul angan bawah l apangan
nvk[ 2+( 5*i si nv) ] =nNL; / / j uml ah t ul angan pada sat u si si
nvk[ 3+( 5*i si nv) ] =nDI AS; / / Di amet er t ul angan sengkang
nvk[ 4+( 5*i si nv) ] =nJ S; / / j ar ak ant ar t ul angan sengkang
}
}

voi d car i _st r ukt ur _awal ( )
{
f or ( i nt i r an=0; i r an<j um_bal ok; i r an++)
{
f or ( i nt nv_b=0; nv_b<12; nv_b++)
{
var _b[ no_st r ukt ur ] [ nv_b+( 12*i r an) ] =( nvb[ nv_b] - 1) ;
i f ( nv_b==5| | nv_b==9| | nv_b==11)
{
var _b[ no_st r ukt ur ] [ nv_b+( 12*i r an) ] =0;
}
}
}

f or ( i nt i r an=0; i r an<j um_kol om; i r an++)
{
f or ( i nt nv_k=0; nv_k<5; nv_k++)
{
var _k[ no_st r ukt ur ] [ nv_k+( 5*i r an) ] =( nvk[ nv_k] - 1) ;
}
}
}
LAMPIRAN 16
/ *************************************************************************/
/ * FI LE : DI SKRI TI SASI . HPP */
/ * SUBPROGRAM UNTUK MELAKUKAN KONVERSI MENJ ADI BI LANGAN DI SKRI T */
/ *************************************************************************/
i nt konver si ( f l oat bi l _asl i )
{
i f ( ( f abs( bi l _asl i ) - ( abs( bi l _asl i ) ) ) <=0. 5)
{
bi l _asl i =f l oor ( bi l _asl i ) ;
}
el se
{
bi l _asl i =cei l ( bi l _asl i ) ;
}
r et ur n bi l _asl i ;
}
LAMPIRAN 17
/ ***********************************************************************/
/ * FI LE : KENDALA. HPP */
/ * SUBPROGRAM UNTUK MENGHI TUNG KENDALA */
/ ***********************************************************************/
f l oat Kendal a_Har ga( i nt var _b_nya[ ] , i nt var _k_nya[ ] )
{
/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
/ / I ni si al i sasi Kendal a Dan Har ga / /
/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
f l oat kendal anya=0. ;
f l oat har ganya=0. ;

/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
/ / Pembacaan Dat a UmumSt r ukt ur / /
/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
baca_dat a( ) ;

/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
/ / Membaca Beban Yang Beker j a Pada St r ukt ur / /
/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
baca_beban( ) ;

/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
/ / Menghi t ung Gaya- Gaya St r ukt ur / /
/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
i ner si a( ) ;
st r ukt ur ( ) ;


/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
/ / Menghi t ung Kendal a Dan Har ga Bal ok / /
/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
f or ( i nt i KH=0; i KH<j um_bal ok; i KH++)
{
/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
/ / Memer i kasa Kemi r i ngan Bat ang / /
/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
per i ksa_bat ang( no_bal ok[ i KH] ) ;

/ / / / / / / / / / / / / / / / / / / / / / / / / / / /
/ / Pengi si an El emen Bal ok / /
/ / / / / / / / / / / / / / / / / / / / / / / / / / / /
B=i si ( var _b_nya[ 0+( 12*i KH) ] , si si _d_B) ;
H=i si ( var _b_nya[ 1+( 12*i KH) ] , si si _d_H) ;

DI A1l ap=i si ( var _b_nya[ 2+( 12*i KH) ] , DI A_d) ;
NL1l ap=i si ( var _b_nya[ 3+( 12*i KH) ] , NL_d) ;
DI A2l ap=i si ( var _b_nya[ 4+( 12*i KH) ] , DI A_d) ;
NL2l ap=i si ( var _b_nya[ 5+( 12*i KH) ] , NL_d) ;

DI A1t um=i si ( var _b_nya[ 6+( 12*i KH) ] , DI A_d) ;
NL1t um=i si ( var _b_nya[ 7+( 12*i KH) ] , NL_d) ;
DI A2t um=i si ( var _b_nya[ 8+( 12*i KH) ] , DI A_d) ;
NL2t um=i si ( var _b_nya[ 9+( 12*i KH) ] , NL_d) ;

DI AS=i si ( var _b_nya[ 10+( 12*i KH) ] , DI AS_d) ;
J ar ak_S=i si ( var _b_nya[ 11+( 12*i KH) ] , J S_d) ;
L=EL[ no_bal ok[ i KH] ] ;

/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
/ / Menent ukan Gaya Geser Yang Ter j adi / /
/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
i f ( f abs( GESER_KI [ no_bal ok[ i KH] ] ) >GESER_KA[ no_bal ok[ i KH] ] )
{
VU = f abs( GESER_KI [ no_bal ok[ i KH] ] / t et a) ;
}
el se
{
VU = f abs( GESER_KA[ no_bal ok[ i KH] ] / t et a) ;
}

LAMPIRAN 17
/ / / / / / / / / / / / / / / / / / / / /
/ / Daer ah Lapangan / /
/ / / / / / / / / / / / / / / / / / / / /
DI A1=DI A1l ap;
NL1=NL1l ap;
DI A2=DI A2l ap;
NL2=NL2l ap;
MU=f abs( MLAP[ no_bal ok[ i KH] ] / t et a) ;

/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
/ / Membangki t kan Bal ok Pada Lapangan / /
/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
bal ok l apangan;
kendal anya+=kendal a;
har ganya+=har ga;

l endut an( no_bal ok[ i KH] ) ;
kendal anya+=kendal a_l endut an;

/ / / / / / / / / / / / / / / / / / / /
/ / Daer ah Tumpuan / /
/ / / / / / / / / / / / / / / / / / / /
DI A1=DI A1t um;
NL1=NL1t um;
DI A2=DI A2t um;
NL2=NL2t um;

i f ( f abs( MTUM_KI [ no_bal ok[ i KH] ] ) >f abs( MTUM_KA[ no_bal ok[ i KH] ] ) )
{
MU=f abs( MTUM_KI [ no_bal ok[ i KH] ] / t et a) ;
}
el se
{
MU=f abs( MTUM_KA[ no_bal ok[ i KH] ] / t et a) ;
}

/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
/ / Membangki t kan Bal ok Pada Tumpuan / /
/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
bal ok t umpuan;
kendal anya+=kendal a;
har ganya+=har ga;
}


/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
/ / Menghi t ung Kendal a Dan Har ga Kol omBi aksi al / /
/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
f or ( i nt i KH=0; i KH<j um_kol om; i KH++)
{
/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
/ / Memer i ksa Kemi r i ngan Bat ang / /
/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
per i ksa_bat ang( no_kol om[ i KH] ) ;

/ / / / / / / / / / / / / / / / / / / / / / / / / / /
/ / Pengi si an Dat a El emen / /
/ / / / / / / / / / / / / / / / / / / / / / / / / / /
si si =i si ( var _k_nya[ 0+( 5*i KH) ] , si si _d_K) ; / / si si kol om( mm)
DI A =i si ( var _k_nya[ 1+( 5*i KH) ] , DI A_d) ; / / Di amet er t ul angan
/ / ut ama ( mm)

N_DI A =i si ( var _k_nya[ 2+( 5*i KH) ] , NL_d) ; / / J uml ah t ul angan
DI AS =i si ( var _k_nya[ 3+( 5*i KH) ] , DI AS_d) ; / / Di amet er sengkang ( mm)
J ar ak_S=i si ( var _k_nya[ 4+( 5*i KH) ] , J S_d) ; / / J ar ak ant ar a
/ / sengkang ( mm)

/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
/ / Gaya Aksi al Yang Har us Di t ahan / /
/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
PU =f abs( ( PK[ no_kol om[ i KH] ] ) / ( t et a) ) ; / / ( N)
LAMPIRAN 17

/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
/ / Momen Yang Har us Di t ahan / /
/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
MUX =( MKX[ no_kol om[ i KH] ] ) / ( t et a) ; / / ( Nm)
MUY =( MKY[ no_kol om[ i KH] ] ) / ( t et a) ; / / ( Nm)

/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
/ / Gaya Geser Yang Har us Di t ahan / /
/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
VU =f abs( ( GK[ no_kol om[ i KH] ] ) / ( t et a) ) ; / / ( N)

L=EL[ no_kol om[ i KH] ] ; / / Panj ang kol om( m)

/ / / / / / / / / / / / / / / / / / / / / / / / /
/ / Membangki t kan Kol om/ /
/ / / / / / / / / / / / / / / / / / / / / / / / /
kol ombangki t ;


f or ( i nt car i _S=( nvk[ 4+( 5*i KH) ] - 1) ;
car i _S>0; car i _S- - )
{
i f ( i si ( car i _S, J S_d) <=Sr ef )
{
var _k_nya[ 4+( 5*i KH) ] =car i _S;
J ar ak_S=i si ( car i _S, J S_d) ;
br eak;
}
}
kol omr ai se;

/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
/ / Bi l a Ada Kendal a Kel angsi ngan Ubah Ni l ai Si si / /
/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
i f ( kendal a_kel angsi ngan>0)
{
L=EL[ no_kol om[ i KH] ] ; / / Panj ang kol om( m)
f l oat si si _bar u=( ( 0. 75*L*1000. ) / ( 22. *sqr t ( ( 1. / 12. ) ) ) ) ;
f or ( i nt car i _si si =var _k_nya[ 0+( 5*i KH) ] ;
car i _si si <nvk[ 0+( 5*i KH) ] ; car i _si si ++)
{
f l oat si si _car i =i si ( car i _si si , si si _d_K) ;
i f ( si si _car i >si si _bar u)
{
var _k_nya[ 0+( 5*i KH) ] =car i _si si ;
si si =i si ( car i _si si , si si _d_K) ;
br eak;
}
}
/ / / / / / / / / / / / / / / / / / / / / / / / /
/ / Hi t ung Kendal a Bar u / /
/ / / / / / / / / / / / / / / / / / / / / / / / /
kol ombangki t ;
}

kendal anya+=kendal a;
har ganya+=har ga;
}
r et ur n( f i nal t i / ( har ganya+( f i nal t i *kendal anya) ) ) ;
}
LAMPIRAN 18
/ **********************************************************************/
/ * FI LE : TELUSUR. HPP */
/ * SUBPROGRAM UNTUK MELAKUKAN PENELUSURAN MENUJ U TI TI K BARU */
/ **********************************************************************/
voi d penel usur an( )
{
/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
/ / Mencar i Let ak Ti t i k Mi dl e / /
/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /

/ / / / / / / / / / / / / / / / / / / / / / /
/ / I ni si al i sasi Awal / /
/ / / / / / / / / / / / / / / / / / / / / / /
f l oat sum_best good_b[ mak] ;
f l oat sum_best good_k[ mak] ;
f or ( i nt i sum=0; i sum<j um_bal ok; i sum++)
{
f or ( i nt j sum=0; j sum<12; j sum++)
{
sum_best good_b[ j sum+( 12*i sum) ] =0. ;
}
}
f or ( i nt i sum=0; i sum<j um_kol om; i sum++)
{
f or ( i nt j sum=0; j sum<5; j sum++)
{
sum_best good_k[ j sum+( 5*i sum) ] =0. ;
}
}

/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
/ / J uml ah Kor di nat = 12*j um_bal ok_p + 5*j um_kol om_p / /
/ / Menj uml ahkan Var i abel Best Dan Good Pada Bal ok / /
/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
f or ( i nt nbgw=1; nbgw<J STD; nbgw++)
{
/ / / / / / / / / / / / / / / / / / / / / / / / / / / /
/ / 12*j um_bal ok_p Ti t i k M / /
/ / / / / / / / / / / / / / / / / / / / / / / / / / / /
f or ( i nt i sum=0; i sum<j um_bal ok; i sum++)
{
f or ( i nt j sum=0; j sum<12; j sum++)
{
sum_best good_b[ j sum+( 12*i sum) ] +=var _b[ nbgw] [ j sum+( 12*i sum) ] ;
}
}

/ / / / / / / / / / / / / / / / / / / / / / / / / / /
/ / 5*j um_kol om_p Ti t i k M / /
/ / / / / / / / / / / / / / / / / / / / / / / / / / /
f or ( i nt i sum=0; i sum<j um_kol om; i sum++)
{
f or ( i nt j sum=0; j sum<5; j sum++)
{
sum_best good_k[ j sum+( 5*i sum) ] +=var _k[ nbgw] [ j sum+( 5*i sum) ] ;
}
}
}

/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
/ / Dar i Si ni Ki t a Mempunyai j um_kol om_p Koor di nat / /
/ / Dan j um_bal ok_p Koor di nat / /
/ / Menent ukan Koor di nat Ti t i k M / /
/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
f or ( i nt i sum=0; i sum<j um_bal ok; i sum++)
{
f or ( i nt j sum=0; j sum<12; j sum++)
{
XM_b[ j sum+( 12*i sum) ] =sum_best good_b[ j sum+( 12*i sum) ] / ( J STD- 1. ) ;
}
}
LAMPIRAN 18
f or ( i nt i sum=0; i sum<j um_kol om; i sum++)
{
f or ( i nt j sum=0; j sum<5; j sum++)
{
XM_k[ j sum+( 5*i sum) ] =sum_best good_k[ j sum+( 5*i sum) ] / ( J STD- 1. ) ;
}
}


/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
/ / Mencar i Ar ah Penel usur an Pada Bal ok / /
/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
f or ( i nt i sum=0; i sum<j um_bal ok; i sum++)
{
f or ( i nt j sum=0; j sum<12; j sum++)
{
XS_b[ j sum+( 12*i sum) ] =( XM_b[ j sum+( 12*i sum) ]
- var _b[ 0] [ j sum+( 12*i sum) ] ) ;
i f ( XS_b[ j sum+( 12*i sum) ] >0. )
{
t anda_ar ah_b[ j sum+( 12*i sum) ] =1. ;
}
el se
{
i f ( XS_b[ j sum+( 12*i sum) ] <0)
{
t anda_ar ah_b[ j sum+( 12*i sum) ] =( - 1. ) ;
}
i f ( XS_b[ j sum+( 12*i sum) ] ==0)
{
t anda_ar ah_b[ j sum+( 12*i sum) ] =( 0. ) ;
}
}
}
}

/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
/ / Mencar i Ar ah Penel usur an Pada Kol om/ /
/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
f or ( i nt i sum=0; i sum<j um_kol om; i sum++)
{
f or ( i nt j sum=0; j sum<5; j sum++)
{
XS_k[ j sum+( 5*i sum) ] =( XM_k[ j sum+( 5*i sum) ]
- var _k[ 0] [ j sum+( 5*i sum) ] ) ;
i f ( XS_k[ j sum+( 5*i sum) ] >0. )
{
t anda_ar ah_k[ j sum+( 5*i sum) ] =1. ;
}
el se
{
i f ( XS_k[ j sum+( 5*i sum) ] <0)
{
t anda_ar ah_k[ j sum+( 5*i sum) ] =( - 1. ) ;
}
i f ( XS_k[ j sum+( 5*i sum) ] ==0)
{
t anda_ar ah_k[ j sum+( 5*i sum) ] =( 0. ) ;
}
}
}
}

/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
/ / Penggandaan Var i abel Ter j el ek / /
/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /

/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
/ / 12*j um_bal ok_p Koor di nat Ti t i k Ter j el ek / /
/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
f or ( i nt i sum=0; i sum<j um_bal ok; i sum++)
LAMPIRAN 18
{
f or ( i nt j sum=0; j sum<12; j sum++)
{
var _b_j el ek[ j sum+( 12*i sum) ] =var _b[ 0] [ j sum+( 12*i sum) ] ;
}
}

/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
/ / 5*j um_kol om_p Koor di nat Ti t i k Ter j el ek / /
/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
f or ( i nt i sum=0; i sum<j um_kol om; i sum++)
{
f or ( i nt j sum=0; j sum<5; j sum++)
{
var _k_j el ek[ j sum+( 5*i sum) ] =var _k[ 0] [ j sum+( 5*i sum) ] ;
}
}

/ / / / / / / / / / / / / / / / / / / / / / / / / / /
/ / I ni si al i sasi Awal = 0 / /
/ / / / / / / / / / / / / / / / / / / / / / / / / / /
f or ( i nt i sum=0; i sum<J VD; i sum++)
{
TM[ i sum] =0. ;
TS[ i sum] =0. ;
var new_asl i [ i sum] =0;
ar ah[ i sum] =0;
}
nor mal i sasi _f l oat ( TM, XM_b, XM_k) ;
nor mal i sasi _f l oat ( TS, XS_b, XS_k) ;
nor mal i sasi _i nt ( ar ah, t anda_ar ah_b, t anda_ar ah_k) ;

/ / / / / / / / / / / / / / / / / / / / / / / / / / / / /
/ / Car i nomor Ar ah Ter j auh / /
/ / / / / / / / / / / / / / / / / / / / / / / / / / / / /
no_TS_t er j auh=0;
f or ( i nt car i _t s=1; car i _t s<J VD; car i _t s++)
{
i f ( f abs( TS[ car i _t s] ) >f abs( TS[ no_TS_t er j auh] ) )
{
no_TS_t er j auh=car i _t s;
}
}
}
LAMPIRAN 19
/ ***********************************************************************/
/ * FI LE : BARU. HPP */
/ * PUSTAKA PENANGANAN TI TI K BARU */
/ ***********************************************************************/

/ ***************************************/
/ * SUBPROGRAM UNTUK MENCARI TI TI K BARU */
/ ***************************************/
voi d car i _bar u( )
{
/ / / / / / / / / / / / / / / / / / / / / / /
/ / I ni si al i sasi Awal / /
/ / / / / / / / / / / / / / / / / / / / / / /
i t er asi _var =0;

nor mal i sasi _i nt ( var new_asl i , var _b_j el ek, var _k_j el ek) ;
f i t cb_best =0. ;
do
{
got oxy( 1, 15) ;
cpr i nt f ( " Pencar i an ar ah bar u ke - %d" , ( i t er asi _var +1) ) ;
cpr i nt f ( " " ) ;

/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
/ / Menent ukan Ti t i k X Per t ama Bar u / /
/ / Di ambi l Yang Ar ahnya Pal i ng J auh / /
/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
var pl us[ no_TS_t er j auh] =( i t er asi _var +1. ) ;

/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
/ / Var i abel Bar u Di t ambahkan Sesuai Ar ahnya / /
/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
var new_f [ no_TS_t er j auh] =var new_asl i [ no_TS_t er j auh]
+var pl us[ no_TS_t er j auh]
*ar ah[ no_TS_t er j auh] ;

/ / / / / / / / / / / / / / / / / / / / / / / / / / / /
/ / Menent ukan X Bar u Lai n / /
/ / / / / / / / / / / / / / / / / / / / / / / / / / / /
f or ( i nt i cb=0; i cb<J VD; i cb++)
{
/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
/ / Ski p Bi l a i cb Adal ah Nomor ar ah Pencar i an Ter j auh / /
/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
i f ( i cb==no_TS_t er j auh)
{
cont i nue;
}

i f ( TS[ no_TS_t er j auh] ! =0)
{
/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
/ / Menghi t ung Penambahannya / /
/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
var pl us[ i cb] =f abs( ( TS[ i cb] / TS[ no_TS_t er j auh] )
*var pl us[ no_TS_t er j auh] ) ;
var new_f [ i cb] =var new_asl i [ i cb]
+var pl us[ i cb] *ar ah[ i cb] ;
}
el se
{
var new_f [ i cb] =var new_asl i [ i cb]
+( ( i t er asi _var +1. ) *ar ah[ i cb] ) ;
}
}

f or ( i nt i cb=0; i cb<J VD; i cb++)
{
var new[ i cb] =konver si ( var new_f [ i cb] ) ;
}

LAMPIRAN 19
/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
/ / Memer i ksa Apakah Ti t i k Bar u Ter sebut I dent i k Dengan Ti t i k M / /
/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
f or ( i nt i l p=0; i l p<J VD; i l p++)
{
i f ( var new[ i l p] ==TM[ i l p] )
{
i f ( i l p==( J VD- 1) )
{
l ompat =1;
}
}
el se
{
l ompat =0;
br eak;
}
}

/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
/ / Lompat Dar i Loop Apabi l a I ndi kat or Pel ompat ber ni l ai 1 / /
/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
i f ( l ompat ==1)
{
l ompat =0;
i t er asi _var ++;
cont i nue;
}

per i ksa_bat as( ) ;

/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
/ / Per ubahan Var i abel UmumKe Var i abel Bal ok Kol om/ /
/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
unnor mal i sasi ( var new, var _b_cb, var _k_cb) ;

/ / / / / / / / / / / / / / / / / / / / / / / /
/ / Menghi t ung Kendal a / /
/ / / / / / / / / / / / / / / / / / / / / / / /
f i t cb=Kendal a_Har ga( var _b_cb, var _k_cb) ;

i f ( f i t cb>f i t cb_best )
{
f i t cb_best =f i t cb;
f or ( i nt i cb=0; i cb<j um_bal ok; i cb++)
{
f or ( i nt j cb=0; j cb<12; j cb++)
{
var _b_cb_best [ j cb+( 12*i cb) ] =var _b_cb[ j cb+( 12*i cb) ] ;

}
}
f or ( i nt i cb=0; i cb<j um_kol om; i cb++)
{
f or ( i nt j cb=0; j cb<5; j cb++)
{
var _k_cb_best [ j cb+( 5*i cb) ] =var _k_cb[ j cb+( 5*i cb) ] ;
}
}
}
i t er asi _var ++;
}whi l e( i t er asi _var <( f abs( TS[ no_TS_t er j auh] ) *3) ) ;
}

/ *****************************************/
/ * SUBPROGRAM UNTUK MEMERI KSA BATAS ATAS */
/ * DAN BAWAH VARI ABEL DESAI N BARU */
/ * DAN BI LA TERJ ADI PELANGGARAN MAKA */
/ * VARI ABEL I TU AKAN DI CERMI NKAN */
/ *****************************************/
voi d per i ksa_bat as( )
LAMPIRAN 19
{
f or ( i nt i pb=0; i pb<J VD; i pb++)
{
i f ( ( var new[ i pb] ) >( nvm[ i pb] - 1) )
{
var new[ i pb] =( nvm[ i pb] - 1) ;
}
i f ( var new[ i pb] <0)
{
var new[ i pb] =0;
}
}
}

/ *********************************************************************/
/ * SUBPROGRAM UNTUK MENGGANTI VARI ABEL TERJ ELEK DENGAN VARI ABEL BARU */
/ *********************************************************************/
voi d gant i _bar u( )
{
f or ( i nt i gbar =0; i gbar <j um_bal ok; i gbar ++)
{
f or ( i nt j gbar =0; j gbar <12; j gbar ++)
{
var _b[ 0] [ j gbar +( 12*i gbar ) ] =var _b_cb_best [ j gbar +( 12*i gbar ) ] ;
}
}
f or ( i nt i gbar =0; i gbar <j um_kol om; i gbar ++)
{
f or ( i nt j gbar =0; j gbar <5; j gbar ++)
{
var _k[ 0] [ j gbar +( 5*i gbar ) ] =var _k_cb_best [ j gbar +( 5*i gbar ) ] ;
}
}
}

/ ************************************************/
/ * SUBPROGRAM UNTUK MENYUSUTKAN VARI ABEL DESAI N */
/ ************************************************/
voi d penyusut an( )
{
f or ( i nt nkon=0; nkon<( J STD- 1) ; nkon++)
{
f or ( i nt i gbar =0; i gbar <j um_bal ok; i gbar ++)
{
f or ( i nt j gbar =0; j gbar <12; j gbar ++)
{
var _b[ nkon] [ j gbar +( 12*i gbar ) ] =
konver si ( 0. 5*( var _b[ nkon] [ j gbar +( 12*i gbar ) ]
+var _b[ J STD- 1] [ j gbar +( 12*i gbar ) ] ) ) ;
}
}
f or ( i nt i gbar =0; i gbar <j um_kol om; i gbar ++)
{
f or ( i nt j gbar =0; j gbar <5; j gbar ++)
{
var _k[ nkon] [ j gbar +( 5*i gbar ) ] =
konver si ( 0. 5*( var _k[ nkon] [ j gbar +( 5*i gbar ) ]
+var _k[ J STD- 1] [ j gbar +( 5*i gbar ) ] ) ) ;
}
}
}
}
LAMPIRAN 20
/ ***********************************************************************/
/ * FI LE : PENGURUTAN. HPP */
/ * SUBPROGRAM UNTUK MENGURUTKAN DATA BERDASARKAN FI TNESS */
/ * DENGAN BANTUAN METODA BUBBLE SORT */
/ ***********************************************************************/
voi d sor t ( f l oat ni l ai 1[ ] , f l oat ni l ai 2[ ] , f l oat ni l ai 3[ ]
, i nt ur ut _var _b[ ] [ mak] , i nt ur ut _var _k[ ] [ mak]
, i nt n_ar r ay)
{
/ / / / / / / / / / / / / / / / / / / / / / / /
/ / Met ode Bubbl e Sor t / /
/ / / / / / / / / / / / / / / / / / / / / / / /

/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
/ / Ni l ai 1 Unt uk Fi t ness / /
/ / Ni l ai 2 Unt uk Kendal a / /
/ / Ni l ai 3 Unt uk Har ga / /
/ / ur ut _var _b Unt uk Var i abel Bal ok / /
/ / ur ut _var _k Unt uk Var i abel Kol om / /
/ / n_ar r ay Adal ah J uml ah Ti t i k Yang Akan Di ur ut kan Fi t nessnya / /
/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
doubl e dummy1=0. ;
f l oat dummy2=0. ;
f l oat dummy3=0. ;
i nt dummyvar b[ mak] ;
i nt dummyvar k[ mak] ;
f or ( i nt dum1=0; dum1<J STD; dum1++)
{
dummyvar b[ dum1] =0;
dummyvar k[ dum1] =0;
}

/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
/ / Pemer i ksaaan Di mul ai Dar i Ni l ai Ter keci l +1 / /
/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
f or ( i nt i sor t =1; i sor t <n_ar r ay; ++i sor t )
{
/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
/ / Pembandi ngan Kepada Ni l ai - Ni l ai Sebel umnya / /
/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
f or ( i nt j sor t =0; j sor t <=i sor t ; ++j sor t )
{
/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
/ / Bi l a Ni l ai Sekar ang Lebi h Keci l Dar i pada Ni l ai Sebel umnya / /
/ / Maka Di l akukan Penukar an Posi si Ke Tempat Ni l ai Sebel umnya / /
/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
i f ( ni l ai 1[ i sor t ] <ni l ai 1[ j sor t ] )
{
/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
/ / Pengi si an Ni l ai Sekar ang Ke Var i abel Dummy / /
/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
dummy1=ni l ai 1[ i sor t ] ;
dummy2=ni l ai 2[ i sor t ] ;
dummy3=ni l ai 3[ i sor t ] ;
f or ( i nt dvb=0; dvb<j um_bal ok; dvb++)
{
f or ( i nt dnv_b=0; dnv_b<12; dnv_b++)
{
dummyvar b[ dnv_b+( 12*dvb) ]
=ur ut _var _b[ i sor t ] [ dnv_b+( 12*dvb) ] ;
}
}
f or ( i nt dvk=0; dvk<j um_kol om; dvk++)
{
f or ( i nt dnv_k=0; dnv_k<5; dnv_k++)
{
dummyvar k[ dnv_k+( 5*dvk) ]
=ur ut _var _k[ i sor t ] [ dnv_k+( 5*dvk) ] ;
}
}

LAMPIRAN 20
/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
/ / Pemi ndahan Ni l ai Yang Akan Di gant i kan Posi si nya / /
/ / Ke Posi si Sekar ang / /
/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
ni l ai 1[ i sor t ] =ni l ai 1[ j sor t ] ;
ni l ai 2[ i sor t ] =ni l ai 2[ j sor t ] ;
ni l ai 3[ i sor t ] =ni l ai 3[ j sor t ] ;
f or ( i nt dvb=0; dvb<j um_bal ok; dvb++)
{
f or ( i nt dnv_b=0; dnv_b<12; dnv_b++)
{
ur ut _var _b[ i sor t ] [ dnv_b+( 12*dvb) ]
=ur ut _var _b[ j sor t ] [ dnv_b+( 12*dvb) ] ;
}
}
f or ( i nt dvk=0; dvk<j um_kol om; dvk++)
{
f or ( i nt dnv_k=0; dnv_k<5; dnv_k++)
{
ur ut _var _k[ i sor t ] [ dnv_k+( 5*dvk) ]
=ur ut _var _k[ j sor t ] [ dnv_k+( 5*dvk) ] ;
}
}

/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
/ / Pemi ndahan Ni l ai Sekar ang Ke Posi si Yang Di gant i kan / /
/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
ni l ai 1[ j sor t ] =dummy1;
ni l ai 2[ j sor t ] =dummy2;
ni l ai 3[ j sor t ] =dummy3;
f or ( i nt dvb=0; dvb<j um_bal ok; dvb++)
{
f or ( i nt dnv_b=0; dnv_b<12; dnv_b++)
{
ur ut _var _b[ j sor t ] [ dnv_b+( 12*dvb) ]
=dummyvar b[ dnv_b+( 12*dvb) ] ;
}
}
f or ( i nt dvk=0; dvk<j um_kol om; dvk++)
{
f or ( i nt dnv_k=0; dnv_k<5; dnv_k++)
{
ur ut _var _k[ j sor t ] [ dnv_k+( 5*dvk) ]
=dummyvar k[ dnv_k+( 5*dvk) ] ;
}
}

/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
/ / Pr oses Penukar an Sel esai / /
/ / Mel anj ut kan Ni l ai Sel anj ut nya / /
/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
}
}
}

/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
/ / Sesudah Di ur ut kan Ni l ai Ter j el ek Ter dapat Pada Ar r ay 0 / /
/ / Ni l ai Ter bai k Ter dapat Pada ( n_ar r ay- 1) / /
/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
}
LAMPIRAN 21
/ ***********************************************************************/
/ * FI LE : TAMPI LAN. HPP */
/ * KUMPULAN SUBPROGRAM PENANGANAN TAMPI LAN KE LAYAR */
/ ***********************************************************************/

/ *******************************************/
/ * SUBPROGRAM UNTUK MENAMPI LKAN MENU UTAMA */
/ *******************************************/
voi d menu_ut ama( )
{
i nt pi l i h;
do
{
t ext backgr ound( 1) ;
t ext col or ( LI GHTGREEN) ;
cl r scr ( ) ;
about ( ) ;
cout << " 1. I nput dat a awal ke f i l e\ n" ;
cout << " 2. I nput dat a beban ke f i l e\ n" ;
cout << " 3. Mel i hat i si f i l e i nput \ n" ;
cout << " 4. Mengopt i masi st r ukt ur \ n" ;
cout << " 5. Kel uar \ n" ;
cout << " Pi l i han ( 1- 5) = " ;
st r uct t i me t ;

get t i me( &t ) ;
t ext col or ( YELLOW) ;
got oxy( 61, 6) ;
cpr i nt f ( " Ti me : %2d: %02d: %02d. %02d\ n" ,
t . t i _hour , t . t i _mi n, t . t i _sec, t . t i _hund) ;
got oxy( 19, 12) ;
ci n >> pi l i h;

i f ( pi l i h==1)
{
i nput _dat a( ) ;
}
i f ( pi l i h==2)
{
l oad_dat a( ) ; / / Memasukan dat a beban
cout << " Dat a beban sudah di i si . . . \ n" ;
}
i f ( pi l i h==3)
{
cout << " Nama f i l e i nput yang akan di baca = " ;
ci n >> f i ;
st r cpy( f i nput , f i ) ;
st r cat ( f i nput , " . i np" ) ;
st r cpy( f beban, f i ) ;
st r cat ( f beban, " . bbn" ) ;
baca_dat a( ) ;
baca_beban( ) ;
do
{
cl r scr ( ) ;
about ( ) ;
cout << " 1. Dat a umum\ n" ;
cout << " 2. Koor di nat t i t i k kumpul \ n" ;
cout << " 3. I nf or masi bat ang\ n" ;
cout << " 4. Pengekang t i t i k kumpul \ n" ;
cout << " 5. Gaya uj ung bat ang t er kekang\ n" ;
cout << " 6. Beban pada j oi nt \ n" ;
cout << " 7. Kel uar ke menu ut ama\ n" ;
cout << " Pi l i han ( 1- 7) = " ;
ci n >> pi l i h;
cl r scr ( ) ;
i f ( pi l i h==1)
{
out put _par amet er _st r ukt ur al ( ) ;
}
i f ( pi l i h==2)
LAMPIRAN 21
{
out put _koor di nat _t i t i k_kumpul ( ) ;
}
i f ( pi l i h==3)
{
out put _i nf or masi _bat ang( ) ;
}
i f ( pi l i h==4)
{
out put _pengekang_t i t i k_kumpul ( ) ;
}
i f ( pi l i h==5)
{
out put _beban_bat ang( ) ;
}
i f ( pi l i h==6)
{
out put _beban_t i t i k( ) ;
}
i f ( pi l i h==7)
{
cout << " Anda kel uar ke Menu Ut ama\ n" ;
}
cout << " \ n Tekan Sembar ang Tombol \ n" ;
get ch( ) ;
}whi l e( pi l i h! =7) ;
}
i f ( pi l i h==4)
{
cout << " Nama f i l e st ukt ur ( t anpa ekst ensi ) = " ;
ci n >> f i ;
st r cpy( f i nput , f i ) ;
st r cat ( f i nput , " . i np" ) ; / / Nama f i l e gener i k
st r cpy( f si si , f i ) ;
st r cat ( f si si , " . i sd" ) ; / / i nput si si di skr i t
st r cpy( f di al , f i ) ;
st r cat ( f di al , " . i dl " ) ; / / i nput di amet er t ul angan l ent ur
st r cpy( f j t l , f i ) ;
st r cat ( f j t l , " . i j l " ) ; / / i nput j uml ah t ul angan l ent ur
st r cpy( f di as, f i ) ;
st r cat ( f di as, " . i ds" ) ; / / i nput di amet er t ul angan sengkang
st r cpy( f j t s, f i ) ;
st r cat ( f j t s, " . i j s" ) ; / / i nput j ar ak t ul angan sengkang
st r cpy( f beban, f i ) ;
st r cat ( f beban, " . bbn" ) ; / / i nput beban pada bat ang
st r cpy( f hi st or y, f i ) ;
st r cat ( f hi st or y, " . hi s" ) ; / / Kel uar an dar i r i wayat opt i masi
st r cpy( f opt i masi , f i ) ;
st r cat ( f opt i masi , " . opt " ) ; / / Kel uar an dar i hasi l opt i masi
st r cpy( f st r ukt ur , f i ) ;
st r cat ( f st r ukt ur , " . st r " ) ; / / Kel uar an dar i hasi l anal i sa st r ukt ur
st r cpy( f kendal a, f i ) ;
st r cat ( f kendal a, " . kdl " ) ; / / Kel uar an kendal a pada st r ukt ur
st r cpy( f i nf or masi , f i ) ;
st r cat ( f i nf or masi , " . i nf " ) ; / / Kel uar an i nf or masi masukkan


cout << " f i l e i nput = " << f i nput << endl ;
cout << " f i l e beban = " << f beban << endl ;
cout << " Har ga Bet on ( Rp. / m^3) = " ;
ci n >> har ga_bet on;
cout << " Har ga Besi ( Rp. / kg) = " ;
ci n >> har ga_besi ;
cout << " Tebal sel i mut kol om( mi ni mum40 mm) = " ;
ci n >> sel i mut _kol om;
cout << " Tebal sel i mut bal ok ( mi ni mum40 mm) = " ;
ci n >> sel i mut _bal ok;
cout << " Fakt or f i nal t i = " ;
ci n >> f i nal t i ;
cout << " I t er asi maksi mum= " ;
ci n >> j _i t er asi _mak;
LAMPIRAN 21
cout << " Fakt or penambah j uml ah var i abel desai n = " ;
ci n >> f ak_pl us;
do
{
cout << " Fakt or pengal i j uml ah var i abel desai n = " ;
ci n >> f ak_kal i ;
i f ( f ak_kal i <=0)
{
" Fakt or pengal i mi ni mal di i si 1 ! \ n" ;
}
}whi l e( f ak_kal i <=0) ;
opt i masi ( ) ;
}
i f ( pi l i h==5)
{
cout << " \ n Anda kel uar dar i pr ogr am\ n" ;
}
} whi l e( pi l i h! =5) ;
}

/ **************************************************/
/ * SUBPROGRAM UNTUK MENAMPI LKAN I NFORMASI PROGRAM */
/ **************************************************/
voi d about ( )
{
cout << " ****************************************" ;
cout << " ****************************************" ;
cout << " "
<< " Pr ogr amOpt i masi Bet on Ber t ul ang Pada St r ukt ur Por t al Ruang\ n" ;
cout << " "
<< " Ol eh : Yohan Naf t al i \ n" ;
cout << " "
<< " 7712/ TS\ n" ;
cout << " ****************************************" ;
cout << " ****************************************\ n" ;
}
LAMPIRAN 22
/ ***********************************************************************/
/ * FI LE : CETAK. HPP */
/ * SUBPROGRAM UNTUK MENCETAK HASI L AKHI R OPTI MASI */
/ * DI TULI S OLEH YOHAN NAFTALI ( J ULI 1999) */
/ ***********************************************************************/
voi d cet ak_akhi r ( )
{
of st r eamhopt ( f opt i masi ) ;
of st r eamhst r ( f st r ukt ur ) ;
of st r eamhkdl ( f kendal a) ;
of st r eamhi nf ( f i nf or masi ) ;

/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
/ / Pembacaan Dat a UmumSt r ukt ur / /
/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
baca_dat a( ) ;

/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
/ / Membaca Beban Yang Beker j a Pada St r ukt ur / /
/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
baca_beban( ) ;

/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
/ / Mencet ak I nf or masi Masukkan Ke Fi l e / /
/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
hi nf << " St r ukt ur Por t al Ruang " << I SN << " \ n\ n" ;
hi nf << " Par amet er St r ukt ur \ n" ;
hi nf << " J uml ah bat ang : " << M << endl ;
hi nf << " DOF : " << N << endl ;
hi nf << " J uml ah j oi nt : " << NJ << endl ;
hi nf << " J uml ah pengekang t umpuan : " << NR << endl ;
hi nf << " J uml ah t i t i k kumpul yang di kekang : " << NRJ << endl ;
hi nf << " Modul us El ast i si t as aksi al : " << E << " N/ m^2\ n" ;
hi nf << " Modul us Geser : " << G << " N/ m^2\ n\ n" ;
hi nf << " Pr oper t i El emen Mat er i al \ n" ;
hi nf << " Kuat desak bet on kar akt er i st i k : " << FC << " MPa\ n" ;
hi nf << " Kuat t ar i k baj a t ul angan : " << FY << " MPa\ n" ;
hi nf << " Kuat t ar i k t ul angan sengkang : " << FYS << " MPa\ n" ;

hi nf << " \ n Koor di nat Ti t i k Kumpul ( m) \ n" ;
hi nf << " Ti t i k X Y Z \ n" ;
f or ( i nt kout =1; kout <=NJ ; kout ++)
{
hi nf << set i osf l ags( i os: : l ef t ) ;
hi nf << " " << set w( 10) << kout
<< set w( 14) << X[ kout ]
<< set w( 14) << Y[ kout ]
<< set w( 14) << Z[ kout ] << endl ;
}

hi nf << " \ n I nf or masi Bat ang \ n" ;
hi nf << " Bat ang J J J K I A\ n" ;
f or ( i nt i out =1; i out <=M; i out ++)
{
hi nf << set i osf l ags( i os: : l ef t ) ;
hi nf << " " << set w( 8) << i out
<< set w( 8) << J J [ i out ]
<< set w( 8) << J K[ i out ]
<< set w( 3) << I A[ i out ] << endl ;
i f ( I A[ i out ] ! = 0)
{
hi nf << set i osf l ags( i os: : l ef t ) ;
hi nf << " XP = " << set w( 12) << XP[ i out ] ;
hi nf << " YP = " << set w( 12) << YP[ i out ] << ' \ t ' ;
hi nf << " ZP = " << set w( 12) << ZP[ i out ] << endl ;
hi nf << endl ;
}
}

hi nf << " \ n Pengekang Ti t i k Kumpul \ n" ;
hi nf << " Ti t i k J R1 J R2 J R3 J R4 J R5 J R6\ n" ;
LAMPIRAN 22
f or ( i nt i out =1; i out <=NRJ ; i out ++)
{
hi nf << set i osf l ags( i os: : l ef t ) ;
hi nf << " " << set w( 10) <<T_K[ i out ]
<< set w( 6) << J RL[ 6*T_K[ i out ] - 5]
<< set w( 6) << J RL[ 6*T_K[ i out ] - 4]
<< set w( 6) << J RL[ 6*T_K[ i out ] - 3]
<< set w( 6) << J RL[ 6*T_K[ i out ] - 2]
<< set w( 6) << J RL[ 6*T_K[ i out ] - 1]
<< set w( 6) << J RL[ 6*T_K[ i out ] ] << endl ;
}

hi nf << " \ n Gaya di Uj ung Bat ang Ter kekang Aki bat Beban ( Nm) \ n"
<< " Bat ang AML1 AML2 AML3 "
<< " AML4 AML5 AML6\ n"
<< " AML7 AML8 AML9 "
<< " AML10 AML11 AML12\ n" ;
f or ( i nt kout =1; kout <=M; kout ++)
{
hi nf << set i osf l ags( i os: : l ef t ) ;
hi nf << " " << set w( 8) << kout
<< set w( 12) << AML[ 1] [ kout ]
<< set w( 12) << AML[ 2] [ kout ]
<< set w( 12) << AML[ 3] [ kout ]
<< set w( 12) << AML[ 4] [ kout ]
<< set w( 12) << AML[ 5] [ kout ]
<< set w( 12) << AML[ 6] [ kout ] << endl ;
hi nf << " "
<< set w( 12) << AML[ 7] [ kout ]
<< set w( 12) << AML[ 8] [ kout ]
<< set w( 12) << AML[ 9] [ kout ]
<< set w( 12) << AML[ 10] [ kout ]
<< set w( 12) << AML[ 11] [ kout ]
<< set w( 12) << AML[ 12] [ kout ] << endl ;
}

hi nf << " \ n Beban Ti t i k ( N) \ n"
<< " Ti t i k Ar ah 1 Ar ah 2 Ar ah 3 "
<< " Ar ah 4 Ar ah 5 Ar ah 6\ n" ;
f or ( i nt kout =1; kout <=NJ ; kout ++)
{
hi nf << set i osf l ags( i os: : l ef t ) ;
hi nf << " " << set w( 8) << kout
<< set w( 12) << AJ [ ( ( 6*kout ) - 5) ]
<< set w( 12) << AJ [ ( ( 6*kout ) - 4) ]
<< set w( 12) << AJ [ ( ( 6*kout ) - 3) ]
<< set w( 12) << AJ [ ( ( 6*kout ) - 2) ]
<< set w( 12) << AJ [ ( ( 6*kout ) - 1) ]
<< set w( 12) << AJ [ ( 6*kout ) ] << endl ;
}

/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
/ / Menghi t ung Gaya- Gaya St r ukt ur / /
/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
i ner si a( ) ;
st r ukt ur ( ) ;

/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
/ / Cet ak Hasi l Anal i sa St r ukt ur / /
/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
hst r << " Hasi l Anal i sa St r ukt ur Dengan Met oda Kekakuan\ n" ;
hst r << " Di kembangkan dar i Weaver & Ger e\ n" ;
hst r << " Ol eh Yohan Naf t al i 1999\ n\ n" ;
hst r << " Nama Fi l e Gener i k : " << f i << endl ;
hopt << " Nama St r ukt ur : " << I SN << endl ;
hst r << " J uml ah bat ang : " << M << endl ;
hst r << " J uml ah t i t i k kumpul : " << NJ << endl ;
hst r << " Modul us el ast i si t as t ar i k/ t ekan : "
<< ( E*1. E- 6) << " MPa" << endl ;
hst r << " Modul us el ast i si t as geser G : "
<< ( G*1. E- 6) << " MPa" << endl ;
LAMPIRAN 22
hst r << " \ nPer pi ndahan Ti t i k Kumpul \ n" ;
hst r << " Ti t i k DJ 1 DJ 2 DJ 3 " ;
hst r << " DJ 4 DJ 5 DJ 6\ n" ;
f or ( i nt cst =1; cst <=NJ ; cst ++)
{
hst r << set i osf l ags( i os: : l ef t ) ;
hst r << set w( 7) << cst ;
hst r << set i osf l ags( i os: : f i xed | i os: : showpos) ;
hst r << set w( 12) << DJ [ 6*cst - 5] << set w( 12) ;
hst r << DJ [ 6*cst - 4] << set w( 12) << DJ [ 6*cst - 3] << set w( 12) ;
hst r << DJ [ 6*cst - 2] << set w( 12) << DJ [ 6*cst - 1] << set w( 12) ;
hst r << DJ [ 6*cst ] << endl ;
hst r << r eset i osf l ags( i os: : f i xed | i os: : showpos) ;
}

hst r << " \ nGaya Uj ung Bat ang\ n" ;
hst r << " Bat ang AM1 AM2 AM3 " ;
hst r << " AM4 AM5 AM6\ n" ;
hst r << " AM7 AM8 AM9 " ;
hst r << " AM10 AM11 AM12\ n" ;

f or ( i nt i h=1; i h<=M; i h++)
{
per i ksa_bat ang( i h) ;
i si _mat r i k_kekakuan( i h) ;
i ndeks_bat ang( i h) ;
f or ( i nt j h=1; j h<=MD; j h++)
{
AMD[ j h] =0. ;
f or ( i nt kh=1; kh<=MD; kh++)
{
AMD[ j h] =AMD[ j h] +SMRT[ j h] [ kh] *DJ [ I M[ kh] ] ;
}
AM[ i h] [ j h] =AML[ j h] [ i h] +AMD[ j h] ;
}
hst r << set i osf l ags( i os: : l ef t ) ;
hst r << set w( 8) << i h;
hst r << set w( 12) << AM[ i h] [ 1]
<< set w( 12) << AM[ i h] [ 2]
<< set w( 12) << AM[ i h] [ 3]
<< set w( 12) << AM[ i h] [ 4]
<< set w( 12) << AM[ i h] [ 5]
<< set w( 12) << AM[ i h] [ 6] << ' \ n' ;
hst r << " "
<< set w( 12) << AM[ i h] [ 7]
<< set w( 12) << AM[ i h] [ 8]
<< set w( 12) << AM[ i h] [ 9]
<< set w( 12) << AM[ i h] [ 10]
<< set w( 12) << AM[ i h] [ 11]
<< set w( 12) << AM[ i h] [ 12] << ' \ n' ;
}

hst r << " \ nReaksi Tummpuan\ n" ;
hst r << " Ti t i k AR1 AR2 AR3" ;
hst r << " AR4 AR5 AR6 \ n" ;

f or ( i nt i h=1; i h<=NJ ; i h++)
{
i nt J 1=( 6*i h- 5) , J 2=( 6*i h- 4) , J 3=( 6*i h- 3) ,
J 4=( 6*i h- 2) , J 5=( 6*i h- 1) , J 6=( 6*i h) ;
i nt N1=J RL[ J 1] +J RL[ J 2] +J RL[ J 3] +J RL[ J 4] +J RL[ J 5] +J RL[ J 6] ;
i f ( N1! =0)
{
hst r << set i osf l ags( i os: : l ef t ) ;
hst r << set w( 8) << i h;

hst r << set w( 12) << AR[ J 1]
<< set w( 12) << AR[ J 2]
<< set w( 12) << AR[ J 3] ;
hst r << set w( 12) << AR[ J 4]
<< set w( 12) << AR[ J 5]
LAMPIRAN 22
<< set w( 12) << AR[ J 6] << ' \ n' ;
}
}
hst r . cl ose( ) ;

/ / / / / / / / / / / / / / / / / / / / / / / / / /
/ / Cet ak Hasi l Opt i masi / /
/ / / / / / / / / / / / / / / / / / / / / / / / / /
hopt << " Hasi l Opt i masi Bet on Ber t ul ang "
<< " Pada St r ukt ur Por t al Ruang\ n" ;
hopt << " Met oda Opt i masi : Fl exi bl e Pol yhedr on\ n" ;
hopt << " J uml ah Var i abel Desai n : " << J VD << endl ;
hopt << " J uml ah St r ukt ur Desai n : " << J STD << endl ;
hopt << " Ol eh Yohan Naf t al i 1999\ n\ n" ;
hopt << " Nama Fi l e Gener i k : " << f i << endl ;
hopt << " Nama St r ukt ur : " << I SN << endl ;
hopt << " J uml ah bat ang : " << M << endl ;
hopt << " J uml ah t i t i k kumpul : " << NJ << endl ;
hopt << " Modul us el ast i si t as t ar i k/ t ekan : "
<< ( E*1. E- 6) << " MPa" << endl ;
hopt << " Modul us el ast i si t as geser G : "
<< ( G*1. E- 6) << " MPa" << endl ;
hopt << " Kuat desak Kar akt er i st i k Bet on : " << FC << " MPa\ n" ;
hopt << " Kuat t ar i k baj a t ul angan l ent ur : " << FY << " MPa\ n" ;
hopt << " Kuat t ar i k baj a t ul angan sengkang : " << FYS << " MPa\ n" ;

/ / / / / / / / / / / / / / / / / / / / / / / / / /
/ / Cet ak Header Kendal a / /
/ / / / / / / / / / / / / / / / / / / / / / / / / /
hkdl << " Kendal a Pada St r ukt ur \ n" ;
hkdl << " Ol eh Yohan Naf t al i 1999\ n\ n" ;
hkdl << " Nama Fi l e Gener i k : " << f i << endl ;
hkdl << " Nama St r ukt ur : " << I SN << endl ;

no_st r ukt ur =( J STD- 1) ;
f or ( i nt oi o=0; oi o<j um_bal ok; oi o++)
{
/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
/ / Memer i ksa Kemi r i ngan Bat ang / /
/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
per i ksa_bat ang( no_bal ok[ oi o] ) ;

/ / / / / / / / / / / / / / / / / / / / / / / / / / / /
/ / Pengi si an El emen Bal ok / /
/ / / / / / / / / / / / / / / / / / / / / / / / / / / /
i si _el emen_bal ok( oi o) ;

hopt << " - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ n" ;
hopt << " Bal ok " << ( oi o+1) << " " << B << " x " << H << endl ;
hopt << " Nomor Bat ang : " << no_bal ok[ oi o] << endl ;
hopt << " Panj ang Bent ang : " << L << " m" << endl ;
hopt << " Beban Tot al : " << W[ no_bal ok[ oi o] ] << " N/ m\ n" ;
hopt << " Ber at Sendi r i : " << W_Bal ok[ no_bal ok[ oi o] ] << " N/ m\ n" ;
hopt << " Momen ki r i : "
<< ( ( MTUM_KI [ no_bal ok[ oi o] ] ) / ( 0. 8) ) << " Nmm" << endl ;
hopt << " Momen t engah : "
<< ( ( MLAP[ no_bal ok[ oi o] ] ) / ( 0. 8) ) << " Nmm" << endl ;
hopt << " Momen kanan : "
<< ( ( MTUM_KA[ no_bal ok[ oi o] ] ) / ( 0. 8) ) << " Nmm" << endl ;
hopt << " Geser ki r i : "
<< ( GESER_KI [ no_bal ok[ oi o] ] / 0. 8) << " N" << endl ;
hopt << " Geser kanan : "
<< ( GESER_KA[ no_bal ok[ oi o] ] / 0. 8) << " N" << endl ;

/ / / / / / / / / / / / / / / / / / / / /
/ / Daer ah Lapangan / /
/ / / / / / / / / / / / / / / / / / / / /
el emen_l apangan( oi o) ;
bal ok l apangan;

l endut an( no_bal ok[ oi o] ) ;
LAMPIRAN 22

/ / / / / / / / / / / / / / / / / / / / / / / / / /
/ / Cet ak Hasi l Opt i masi / /
/ / / / / / / / / / / / / / / / / / / / / / / / / /
hopt << " Lendut an Tengah Bent ang : " << LENDUTAN
<< " mm" << endl ;
hopt << " Lendut an i j i n " << LENDUTAN_I J I N << " mm" << endl ;
hopt << " Sengkang " << DI AS << " - " << J ar ak_S << endl ;
hopt << " J ar ak sengkang maksi mum: " << Sr ef << " mm\ n" ;

hopt << " \ nDaer ah Lapangan\ n" ;
hopt << " Tul angan t ar i k " << NL1 << " D " << DI A1 << endl ;
hopt << " Tul angan desak " << NL2 << " D " << DI A2 << endl ;
hopt << " Vol ume bet on : " << vol ume_bet on << " m^3" << endl ;
hopt << " Ber at Tul angan ut ama : " << ber at _besi << " kg\ n" ;
hopt << " Ber at Tul angan geser : " << ber at _sengkang << " kg\ n" ;
hopt << " Har ga bal ok daer ah l apangan : " << har ga << endl ;
hopt << " Momen yang membebani : " << MU << " Nmm" << endl ;
hopt << " Momen yang dapat di t ahan : " << FMU << " Nmm" << endl ;
hopt << endl ;

/ / / / / / / / / / / / / / / / / / /
/ / Cet ak Kendal a / /
/ / / / / / / / / / / / / / / / / / /
hkdl << " \ nBal ok " << ( oi o+1) << endl ;
hkdl << " Nomor Bat ang : " << no_bal ok[ oi o] << endl ;
hkdl << " Kendal a aki bat l endut an : "
<< kendal a_l endut an << endl ;
hkdl << " \ nDaer ah Lapangan\ n" ;
hkdl << " Kendal a r asi o penul angan "
<< kendal a_r ho << endl ;
hkdl << " Kendal a sengkang : "
<< kendal a_sb << endl ;
hkdl << " Kendal a momen l ent ur : "
<< kendal a_M << endl ;


/ / / / / / / / / / / / / / / / / / / /
/ / Daer ah Tumpuan / /
/ / / / / / / / / / / / / / / / / / / /
el emen_t umpuan( oi o) ;
bal ok t umpuan;

/ / / / / / / / / / / / / / / / / / / / / / / / / /
/ / Cet ak Hasi l Opt i masi / /
/ / / / / / / / / / / / / / / / / / / / / / / / / /
hopt << " Daer ah Tumpuan\ n" ;
hopt << " Tul angan desak " << NL2 << " D " << DI A2 << endl ;
hopt << " Tul angan t ar i k " << NL1 << " D " << DI A1 << endl ;
hopt << " Vol ume bet on : " << vol ume_bet on << " m^3" << endl ;
hopt << " Ber at Tul angan ut ama : " << ber at _besi << " kg\ n" ;
hopt << " Ber at Tul angan geser : " << ber at _sengkang << " kg\ n" ;
hopt << " Har ga bal ok pada t umpuan ki r i + kanan : " << har ga << endl ;
hopt << " Momen yang membebani : " << MU << " Nmm" << endl ;
hopt << " Momen yang dapat di t ahan : " << FMU << " Nmm" << endl ;
hopt << endl ;

/ / / / / / / / / / / / / / / / / / /
/ / Cet ak Kendal a / /
/ / / / / / / / / / / / / / / / / / /
hkdl << " \ nDaer ah Tumpuan\ n" ;
hkdl << " Kendal a r asi o penul angan "
<< kendal a_r ho << endl ;
hkdl << " Kendal a sengkang : "
<< kendal a_sb << endl ;
hkdl << " Kendal a momen l ent ur : "
<< kendal a_M << endl ;
}



LAMPIRAN 22
/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
/ / Menghi t ung Kendal a Dan Har ga Kol om/ /
/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
f or ( i nt oi o=0; oi o<j um_kol om; oi o++)
{
/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
/ / Memer i ksa Kemi r i ngan Bat ang / /
/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
per i ksa_bat ang( no_kol om[ oi o] ) ;

/ / / / / / / / / / / / / / / / / / / / / / / / / / / /
/ / Pengi si an El emen Bal ok / /
/ / / / / / / / / / / / / / / / / / / / / / / / / / / /
i si _el emen_kol om( oi o) ;

/ / / / / / / / / / / / / / / / / / / / / / / / /
/ / Membangki t kan Kol om/ /
/ / / / / / / / / / / / / / / / / / / / / / / / /
kol ombangki t ;

/ / / / / / / / / / / / / / / / / / / / / / / / / /
/ / Cet ak Hasi l Opt i masi / /
/ / / / / / / / / / / / / / / / / / / / / / / / / /
hopt << " - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ n" ;
hopt << " Kol om" << ( oi o+1) << " "
<< si si << " x " << si si << endl ;
hopt << " Nomor Bat ang : " << no_kol om[ oi o] << endl ;
hopt << " Tul angan ut ama "
<< ( 4*N_DI A- 4) << " D " << DI A << endl ;
hopt << " J ar ak ant ar t ul angan : " << j ar ak_ant ar _t ul angan << " mm\ n" ;
hopt << " Sengkang " << DI AS << " - " << J ar ak_S << endl ;
hopt << " J ar ak sengkang maksi mum: " << Sr ef << " mm\ n" ;

hopt << " Vol ume bet on : " << vol ume_bet on << " m^3" << endl ;
hopt << " Ber at Tul angan ut ama : " << ber at _besi << " kg\ n" ;
hopt << " Ber at Tul angan geser : " << ber at _sengkang << " kg\ n" ;
hopt << " Har ga kol om: " << har ga << endl ;

hopt << " Ber at Kol om: " << ( - P_Kol om[ no_kol om[ oi o] ] ) << " N\ n" ;
hopt << " Gaya aksi al : "
<< ( PK[ no_kol om[ oi o] ] / 0. 8) << " N" << endl ;
hopt << " Gaya aksi al yang dapat di t ahan = "
<< FPU << " N\ n" ;
hopt << " Momen ar ah X : "
<< ( MKX[ no_kol om[ oi o] ] / 0. 8) << " Nmm" << endl ;
hopt << " Momen ar ah Y : "
<< ( MKY[ no_kol om[ oi o] ] / 0. 8) << " Nmm" << endl ;
hopt << " Momen yang dapat di t ahan : "
<< FMU << " Nmm\ n" ;
hopt << " Geser pada kol om: "
<< ( GK[ no_kol om[ oi o] ] / 0. 8) << " N" << endl ;
hopt << endl ;

/ / / / / / / / / / / / / / / / / / /
/ / Cet ak Kendal a / /
/ / / / / / / / / / / / / / / / / / /
hkdl << " \ nKol om" << ( oi o+1) << endl ;
hkdl << " Nomor Bat ang : " << no_kol om[ oi o] << endl ;
hkdl << " \ nKendal a gaya : "
<< kendal a_gaya << endl ;
hkdl << " Kendal a r asi o penul angan : "
<< kendal a_r << endl ;
hkdl << " Kendal a j ar ak t ul angan : "
<< kendal a_t ul << endl ;
hkdl << " Kendal a sengkang : "
<< kendal a_sengkang << endl ;
hkdl << " Kendal a kel angsi ngan kol om: "
<< kendal a_kel angsi ngan << endl ;
}
hopt << " \ nHar ga Bet on Rp. " << har ga_bet on << " / m^3\ n" ;
hopt << " Har ga Besi Rp. " << har ga_besi << " / kg\ n" ;
LAMPIRAN 22
hopt << " Tebal sel i mut kol om" << sel i mut _kol om<< " mm\ n" ;
hopt << " Tebal sel i mut bal ok " << sel i mut _bal ok << " mm\ n" ;
hopt << " Fakt or f i nal t i : " << f i nal t i << endl ;
hopt << " J STD = ( J VD*" << f ak_kal i << " ) +" << f ak_pl us << endl ;
}
LAMPIRAN 23
# Fi l e ORCI SF. MAK
# Konf i gur asi pada saat pembuat an execut abl e f i l e
#
. AUTODEPEND


#
# Bor l and C++ t ool s
#
I MPLI B = I mpl i b
BCC32 = Bcc32 +BccW32. cf g
BCC32I = Bcc32i +BccW32. cf g
TLI NK32 = TLi nk32
I LI NK32 = I l i nk32
TLI B = TLi b
BRC32 = Br c32
TASM32 = Tasm32
#
# I DE macr os
#


#
# Opt i ons
#
I DE_Li nkFLAGS32 = - LC: \ BC5\ LI B
Li nker Local Opt sAt C32_or ci sf dexe = - Tpe - ap - c
ResLocal Opt sAt C32_or ci sf dexe =
BLocal Opt sAt C32_or ci sf dexe =
CompI nher i t Opt sAt _or ci sf dexe = - I C: \ BC5\ I NCLUDE - D_RTLDLL;
Li nker I nher i t Opt sAt _or ci sf dexe = - x
Li nker Opt sAt _or ci sf dexe = $( Li nker Local Opt sAt C32_or ci sf dexe)
ResOpt sAt _or ci sf dexe = $( ResLocal Opt sAt C32_or ci sf dexe)
BOpt sAt _or ci sf dexe = $( BLocal Opt sAt C32_or ci sf dexe)

#
# Dependency Li st
#
Dep_ORCI SF = \
or ci sf . exe

ORCI SF : BccW32. cf g $( Dep_ORCI SF)
echo MakeNode

Dep_or ci sf dexe = \
or ci sf . obj

or ci sf . exe : $( Dep_or ci sf dexe)
$( I LI NK32) @&&|
/ v $( I DE_Li nkFLAGS32) $( Li nker Opt sAt _or ci sf dexe)
$( Li nker I nher i t Opt sAt _or ci sf dexe) +
C: \ BC5\ LI B\ c0x32. obj +
or ci sf . obj
$<, $*
C: \ BC5\ LI B\ i mpor t 32. l i b+
C: \ BC5\ LI B\ cw32i . l i b



|
or ci sf . obj : or ci sf . cpp
$( BCC32) - c @&&|
$( CompOpt sAt _or ci sf dexe) $( CompI nher i t Opt sAt _or ci sf dexe) - o$@or ci sf . cpp
|

# Compi l er conf i gur at i on f i l e
BccW32. cf g :
Copy &&|
- w
- R
- v
LAMPIRAN 23
- WM-
- vi
- H
- H=ORCI SF. csm
- WC
- O2
- OS
- 5
- a8
| $@
LAMPIRAN 24
Input data struktur portal gedung 2 lantai pada gambar 4-1

File : gedung.inp

GEDUNG_2_LANTAI
21 16 16 60
1. 96615e+10 1. 13054e+10
17. 5 240 240
96 36

[ Koor di nat ]
1 0 0 0
2 6 0 0
3 10 0 0
4 16 0 0
5 0 4 0
6 6 4 0
7 10 4 0
8 16 4 0
9 0 8 0
10 6 8 0
11 10 8 0
12 16 8 0
13 0 12 0
14 6 12 0
15 10 12 0
16 16 12 0

[ Pengekang]
1 1 1 1 1 1 1
2 1 1 1 1 1 1
3 1 1 1 1 1 1
4 1 1 1 1 1 1
5 0 0 1 1 1 0
6 0 0 1 1 1 0
7 0 0 1 1 1 0
8 0 0 1 1 1 0
9 0 0 1 1 1 0
10 0 0 1 1 1 0
11 0 0 1 1 1 0
12 0 0 1 1 1 0
13 0 0 1 1 1 0
14 0 0 1 1 1 0
15 0 0 1 1 1 0
16 0 0 1 1 1 0

[ Bat ang]
1 1 5 0
2 2 6 0
3 3 7 0
4 4 8 0
5 5 9 0
6 6 10 0
7 7 11 0
8 8 12 0
9 9 13 0
10 10 14 0
11 11 15 0
12 12 16 0
13 5 6 0
14 6 7 0
15 7 8 0
16 9 10 0
17 10 11 0
18 11 12 0
19 13 14 0
20 14 15 0
21 15 16 0
LAMPIRAN 25
Input Data Diskrit struktur portal gedung 2 lantai pada gambar 4-1

File : gedung.isd

[ Lebar Bal ok]
21
200 210 220 230 240 250 260 270 280 290 300 310 320 330
340 350 360 370 380 390 400

[ Ti nggi Bal ok]
41
200 210 220 230 240 250 260 270 280 290 300 310 320 330
340 350 360 370 380 390 400 410 420 430 440 450 460 470
480 490 500 510 520 530 540 550 560 570 580 590 600

[ Si si Kol om]
16
350 360 370 380 390 400 410 420 430 440 450 460 470 480
490 500

File : gedung.idl

[ Di amet er Tul anganUt ama]
8
19 20 22 25 28 29 32 36

File : gedung.ijl

[ J uml ahTul anganUt ama]
3
2 3 4

File : gedung.ids

[ Di amet er Tul anganSengkang]
3
8 12 13

File : gedung.ijs

[ J ar akAnt ar Sengkang]
23
80 90 100 110 120 130 140 150 160 170
180 190 200 210 220 230 240 250 260 270
280 290 300
LAMPIRAN 26
Input data pembebanan pada struktur gambar 4-1

File : Gedung.bbn

[ BebanBat ang]
21
1 0 0 0 0 0 0 0
0 0 0 0 0 0
2 0 0 0 0 0 0 0
0 0 0 0 0 0
3 0 0 0 0 0 0 0
0 0 0 0 0 0
4 0 0 0 0 0 0 0
0 0 0 0 0 0
5 0 0 0 0 0 0 0
0 0 0 0 0 0
6 0 0 0 0 0 0 0
0 0 0 0 0 0
7 0 0 0 0 0 0 0
0 0 0 0 0 0
8 0 0 0 0 0 0 0
0 0 0 0 0 0
9 0 0 0 0 0 0 0
0 0 0 0 0 0
10 0 0 0 0 0 0 0
0 0 0 0 0 0
11 0 0 0 0 0 0 0
0 0 0 0 0 0
12 0 0 0 0 0 0 0
0 0 0 0 0 0
13 37400 0 112200 0 0 0 112200
0 112200 0 0 0 - 112200
14 31310 0 62620 0 0 0 41746. 7
0 62620 0 0 0 - 41746. 7
15 37400 0 112200 0 0 0 112200
0 112200 0 0 0 - 112200
16 37400 0 112200 0 0 0 112200
0 112200 0 0 0 - 112200
17 31310 0 62620 0 0 0 41746. 7
0 62620 0 0 0 - 41746. 7
18 37400 0 112200 0 0 0 112200
0 112200 0 0 0 - 112200
19 14620 0 43860 0 0 0 43860
0 43860 0 0 0 - 43860
20 11470 0 22940 0 0 0 15293. 3
0 22940 0 0 0 - 15293. 3
21 14620 0 43860 0 0 0 43860
0 43860 0 0 0 - 43860

[ BebanTi t i k]
16
1 0 0 0 0 0 0
2 0 0 0 0 0 0
3 0 0 0 0 0 0
4 0 0 0 0 0 0
5 8000 0 0 0 0 0
6 0 0 0 0 0 0
7 0 0 0 0 0 0
8 0 0 0 0 0 0
9 8000 0 0 0 0 0
10 0 0 0 0 0 0
11 0 0 0 0 0 0
12 0 0 0 0 0 0
13 4000 0 0 0 0 0
14 0 0 0 0 0 0
15 0 0 0 0 0 0
16 0 0 0 0 0 0
LAMPIRAN 27
Hasil berupa informasi struktur pada gambar 4-1

File : Gedung.inf

St r ukt ur Por t al Ruang GEDUNG_2_LANTAI

Par amet er St r ukt ur
J uml ah bat ang : 21
DOF : 36
J uml ah j oi nt : 16
J uml ah pengekang t umpuan : 60
J uml ah t i t i k kumpul yang di kekang : 16
Modul us El ast i si t as aksi al : 1. 96615e+10 N/ m^2
Modul us Geser : 1. 13054e+10 N/ m^2

Pr oper t i El emen Mat er i al
Kuat desak bet on kar akt er i st i k : 17. 5 MPa
Kuat t ar i k baj a t ul angan : 240 MPa
Kuat t ar i k t ul angan sengkang : 240 MPa

Koor di nat Ti t i k Kumpul ( m)
Ti t i k X Y Z
1 0 0 0
2 6 0 0
3 10 0 0
4 16 0 0
5 0 4 0
6 6 4 0
7 10 4 0
8 16 4 0
9 0 8 0
10 6 8 0
11 10 8 0
12 16 8 0
13 0 12 0
14 6 12 0
15 10 12 0
16 16 12 0

I nf or masi Bat ang
Bat ang J J J K I A
1 1 5 0
2 2 6 0
3 3 7 0
4 4 8 0
5 5 9 0
6 6 10 0
7 7 11 0
8 8 12 0
9 9 13 0
10 10 14 0
11 11 15 0
12 12 16 0
13 5 6 0
14 6 7 0
15 7 8 0
16 9 10 0
17 10 11 0
18 11 12 0
19 13 14 0
20 14 15 0
21 15 16 0

Pengekang Ti t i k Kumpul
Ti t i k J R1 J R2 J R3 J R4 J R5 J R6
1 1 1 1 1 1 1
2 1 1 1 1 1 1
3 1 1 1 1 1 1
4 1 1 1 1 1 1
5 0 0 1 1 1 0
6 0 0 1 1 1 0
LAMPIRAN 27
7 0 0 1 1 1 0
8 0 0 1 1 1 0
9 0 0 1 1 1 0
10 0 0 1 1 1 0
11 0 0 1 1 1 0
12 0 0 1 1 1 0
13 0 0 1 1 1 0
14 0 0 1 1 1 0
15 0 0 1 1 1 0
16 0 0 1 1 1 0

Gaya di Uj ung Bat ang Ter kekang Aki bat Beban ( Nm)
Bat ang AML1 AML2 AML3 AML4 AML5 AML6
AML7 AML8 AML9 AML10 AML11 AML12
1 0 0 0 0 0 0
0 0 0 0 0 0
2 0 0 0 0 0 0
0 0 0 0 0 0
3 0 0 0 0 0 0
0 0 0 0 0 0
4 0 0 0 0 0 0
0 0 0 0 0 0
5 0 0 0 0 0 0
0 0 0 0 0 0
6 0 0 0 0 0 0
0 0 0 0 0 0
7 0 0 0 0 0 0
0 0 0 0 0 0
8 0 0 0 0 0 0
0 0 0 0 0 0
9 0 0 0 0 0 0
0 0 0 0 0 0
10 0 0 0 0 0 0
0 0 0 0 0 0
11 0 0 0 0 0 0
0 0 0 0 0 0
12 0 0 0 0 0 0
0 0 0 0 0 0
13 0 125743 0 0 0 125743
0 125743 0 0 0 - 125743
14 0 70856. 8 0 0 0 47237. 9
0 70856. 8 0 0 0 - 47237. 9
15 0 125419 0 0 0 125419
0 125419 0 0 0 - 125419
16 0 124476 0 0 0 124476
0 124476 0 0 0 - 124476
17 0 70856. 8 0 0 0 47237. 9
0 70856. 8 0 0 0 - 47237. 9
18 0 125419 0 0 0 125419
0 125419 0 0 0 - 125419
19 0 55502. 4 0 0 0 55502. 4
0 55502. 4 0 0 0 - 55502. 4
20 0 30701. 6 0 0 0 20467. 7
0 30701. 6 0 0 0 - 20467. 7
21 0 55977. 6 0 0 0 55977. 6
0 55977. 6 0 0 0 - 55977. 6

Beban Ti t i k ( N)
Ti t i k Ar ah 1 Ar ah 2 Ar ah 3 Ar ah 4 Ar ah 5 Ar ah 6
1 0 - 16137. 6 0 0 0 0
2 0 - 16137. 6 0 0 0 0
3 0 - 15360 0 0 0 0
4 0 - 17750. 4 0 0 0 0
5 8000 - 18585. 6 0 0 0 0
6 0 - 18585. 6 0 0 0 0
7 0 - 16934. 4 0 0 0 0
8 0 - 16934. 4 0 0 0 0
9 8000 - 16137. 6 0 0 0 0
10 0 - 19440 0 0 0 0
11 0 - 20313. 6 0 0 0 0
12 0 - 18585. 6 0 0 0 0
LAMPIRAN 27
13 4000 0 0 0 0 0
14 0 0 0 0 0 0
15 0 0 0 0 0 0
16 0 0 0 0 0 0
LAMPIRAN 28
Hasil tentang riwayat proses optimasi struktur pada gambar 4-1

File : Gedung.his

Penyusut an ber t ur ut per t ama pada gener asi : 274 Fi t ness t er bai k : 225. 645
Penyusut an ber t ur ut ber akhi r set el ah 2 kal i
Penyusut an ber t ur ut per t ama pada gener asi : 837 Fi t ness t er bai k : 562. 289
Penyusut an ber t ur ut per t ama pada gener asi : 1008 Fi t ness t er bai k : 563. 087
Konver gen Pada Gener asi : 1178 kar ena j uml ah penyusut an mel ebi hi bat as
Fi t ness = 563. 087
Har ga = 1. 77592e+07
Kendal a = 0
Wakt u opt i masi : 177 det i k
LAMPIRAN 29
Hasil akhir struktur terbaik untuk kasus portal pada gambar 4-1

File : Gedung.opt

Nama St r ukt ur : GEDUNG_2_LANTAI
Hasi l Opt i masi Bet on Ber t ul ang Pada St r ukt ur Por t al Ruang
Met oda Opt i masi : Fl exi bl e Pol yhedr on
J uml ah Var i abel Desai n : 168
J uml ah St r ukt ur Desai n : 171
Ol eh Yohan Naf t al i 1999

Nama Fi l e Gener i k : dat a01/ gedung
Nama St r ukt ur : GEDUNG_2_LANTAI
J uml ah bat ang : 21
J uml ah t i t i k kumpul : 16
Modul us el ast i si t as t ar i k/ t ekan : 19661. 5 MPa
Modul us el ast i si t as geser G : 11305. 4 MPa
Kuat desak Kar akt er i st i k Bet on : 17. 5 MPa
Kuat t ar i k baj a t ul angan l ent ur : 240 MPa
Kuat t ar i k baj a t ul angan sengkang : 240 MPa
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Bal ok 1 330 x 570
Nomor Bat ang : 13
Panj ang Bent ang : 6 m
Beban Tot al : 41914. 4 N/ m
Ber at Sendi r i : 4514. 4 N/ m
Momen ki r i : - 106424 Nmm
Momen t engah : 129345 Nmm
Momen kanan : - 158332 Nmm
Geser ki r i : 148528 N
Geser kanan : - 165830 N
Lendut an Tengah Bent ang : 19. 305 mm
Lendut an i j i n 33. 3333 mm
Sengkang 12 - 130
J ar ak sengkang maksi mum: 152. 099 mm

Daer ah Lapangan
Tul angan t ar i k 3 D 25
Tul angan desak 2 D 22
Vol ume bet on : 0. 5643 m^3
Ber at Tul angan ut ama : 52. 5578 kg
Ber at Tul angan geser : 46. 8794 kg
Har ga bal ok daer ah l apangan : 638261
Momen yang membebani : 129345 Nmm
Momen yang dapat di t ahan : 133420 Nmm

Daer ah Tumpuan
Tul angan desak 2 D 25
Tul angan t ar i k 3 D 28
Vol ume bet on : 0. 5643 m^3
Ber at Tul angan ut ama : 66. 5893 kg
Ber at Tul angan geser : 46. 8794 kg
Har ga bal ok pada t umpuan ki r i + kanan : 708419
Momen yang membebani : 158332 Nmm
Momen yang dapat di t ahan : 164707 Nmm

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Bal ok 2 330 x 520
Nomor Bat ang : 14
Panj ang Bent ang : 4 m
Beban Tot al : 35428. 4 N/ m
Ber at Sendi r i : 4118. 4 N/ m
Momen ki r i : - 68181. 4 Nmm
Momen t engah : 20389. 6 Nmm
Momen kanan : - 91455. 9 Nmm
Geser ki r i : 82752. 4 N
Geser kanan : - 94389. 6 N
Lendut an Tengah Bent ang : 0. 0940298 mm
Lendut an i j i n 22. 2222 mm
Sengkang 12 - 150
LAMPIRAN 29
J ar ak sengkang maksi mum: 228. 75 mm

Daer ah Lapangan
Tul angan t ar i k 3 D 25
Tul angan desak 2 D 20
Vol ume bet on : 0. 3432 m^3
Ber at Tul angan ut ama : 32. 968 kg
Ber at Tul angan geser : 24. 37 kg
Har ga bal ok daer ah l apangan : 372490
Momen yang membebani : 20389. 6 Nmm
Momen yang dapat di t ahan : 119295 Nmm

Daer ah Tumpuan
Tul angan desak 2 D 22
Tul angan t ar i k 3 D 22
Vol ume bet on : 0. 3432 m^3
Ber at Tul angan ut ama : 29. 8253 kg
Ber at Tul angan geser : 24. 37 kg
Har ga bal ok pada t umpuan ki r i + kanan : 356776
Momen yang membebani : 91455. 9 Nmm
Momen yang dapat di t ahan : 94289. 1 Nmm

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Bal ok 3 340 x 550
Nomor Bat ang : 15
Panj ang Bent ang : 6 m
Beban Tot al : 41806. 4 N/ m
Ber at Sendi r i : 4406. 4 N/ m
Momen ki r i : - 135899 Nmm
Momen t engah : 99262 Nmm
Momen kanan : - 135390 Nmm
Geser ki r i : 156859 N
Geser kanan : - 156689 N
Lendut an Tengah Bent ang : 15. 8906 mm
Lendut an i j i n 33. 3333 mm
Sengkang 12 - 140
J ar ak sengkang maksi mum: 165. 51 mm

Daer ah Lapangan
Tul angan t ar i k 3 D 22
Tul angan desak 2 D 22
Vol ume bet on : 0. 561 m^3
Ber at Tul angan ut ama : 44. 7379 kg
Ber at Tul angan geser : 42. 3425 kg
Har ga bal ok daer ah l apangan : 575652
Momen yang membebani : 99262 Nmm
Momen yang dapat di t ahan : 101053 Nmm

Daer ah Tumpuan
Tul angan desak 2 D 22
Tul angan t ar i k 3 D 28
Vol ume bet on : 0. 561 m^3
Ber at Tul angan ut ama : 61. 376 kg
Ber at Tul angan geser : 42. 3425 kg
Har ga bal ok pada t umpuan ki r i + kanan : 658842
Momen yang membebani : 135899 Nmm
Momen yang dapat di t ahan : 157836 Nmm

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Bal ok 4 310 x 550
Nomor Bat ang : 16
Panj ang Bent ang : 6 m
Beban Tot al : 41492 N/ m
Ber at Sendi r i : 4092 N/ m
Momen ki r i : - 120596 Nmm
Momen t engah : 112796 Nmm
Momen kanan : - 156278 Nmm
Geser ki r i : 149648 N
Geser kanan : - 161542 N
Lendut an Tengah Bent ang : 17. 5832 mm
Lendut an i j i n 33. 3333 mm
LAMPIRAN 29
Sengkang 12 - 130
J ar ak sengkang maksi mum: 136. 968 mm

Daer ah Lapangan
Tul angan t ar i k 3 D 25
Tul angan desak 2 D 28
Vol ume bet on : 0. 5115 m^3
Ber at Tul angan ut ama : 63. 6499 kg
Ber at Tul angan geser : 44. 4754 kg
Har ga bal ok daer ah l apangan : 668501
Momen yang membebani : 112796 Nmm
Momen yang dapat di t ahan : 127293 Nmm

Daer ah Tumpuan
Tul angan desak 2 D 28
Tul angan t ar i k 3 D 28
Vol ume bet on : 0. 5115 m^3
Ber at Tul angan ut ama : 72. 4681 kg
Ber at Tul angan geser : 44. 4754 kg
Har ga bal ok pada t umpuan ki r i + kanan : 712592
Momen yang membebani : 156278 Nmm
Momen yang dapat di t ahan : 157138 Nmm

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Bal ok 5 330 x 520
Nomor Bat ang : 17
Panj ang Bent ang : 4 m
Beban Tot al : 35428. 4 N/ m
Ber at Sendi r i : 4118. 4 N/ m
Momen ki r i : - 68118. 1 Nmm
Momen t engah : 20452. 9 Nmm
Momen kanan : - 79987. 3 Nmm
Geser ki r i : 85603. 7 N
Geser kanan : - 91538. 3 N
Lendut an Tengah Bent ang : 0. 0724975 mm
Lendut an i j i n 22. 2222 mm
Sengkang 12 - 170
J ar ak sengkang maksi mum: 230 mm

Daer ah Lapangan
Tul angan t ar i k 3 D 20
Tul angan desak 2 D 25
Vol ume bet on : 0. 3432 m^3
Ber at Tul angan ut ama : 30. 195 kg
Ber at Tul angan geser : 21. 3912 kg
Har ga bal ok daer ah l apangan : 343731
Momen yang membebani : 20452. 9 Nmm
Momen yang dapat di t ahan : 84694. 9 Nmm

Daer ah Tumpuan
Tul angan desak 2 D 25
Tul angan t ar i k 3 D 25
Vol ume bet on : 0. 3432 m^3
Ber at Tul angan ut ama : 38. 5141 kg
Ber at Tul angan geser : 21. 3912 kg
Har ga bal ok pada t umpuan ki r i + kanan : 385326
Momen yang membebani : 79987. 3 Nmm
Momen yang dapat di t ahan : 119278 Nmm

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Bal ok 6 340 x 540
Nomor Bat ang : 18
Panj ang Bent ang : 6 m
Beban Tot al : 41806. 4 N/ m
Ber at Sendi r i : 4406. 4 N/ m
Momen ki r i : - 142863 Nmm
Momen t engah : 92298. 2 Nmm
Momen kanan : - 135999 Nmm
Geser ki r i : 157918 N
Geser kanan : - 155630 N
Lendut an Tengah Bent ang : 14. 5626 mm
LAMPIRAN 29
Lendut an i j i n 33. 3333 mm
Sengkang 12 - 140
J ar ak sengkang maksi mum: 154. 982 mm

Daer ah Lapangan
Tul angan t ar i k 3 D 22
Tul angan desak 2 D 25
Vol ume bet on : 0. 5508 m^3
Ber at Tul angan ut ama : 49. 9512 kg
Ber at Tul angan geser : 41. 5996 kg
Har ga bal ok daer ah l apangan : 595454
Momen yang membebani : 92298. 2 Nmm
Momen yang dapat di t ahan : 98860. 4 Nmm

Daer ah Tumpuan
Tul angan desak 2 D 20
Tul angan t ar i k 3 D 28
Vol ume bet on : 0. 5508 m^3
Ber at Tul angan ut ama : 58. 2702 kg
Ber at Tul angan geser : 41. 5996 kg
Har ga bal ok pada t umpuan ki r i + kanan : 637049
Momen yang membebani : 142863 Nmm
Momen yang dapat di t ahan : 154251 Nmm

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Bal ok 7 330 x 490
Nomor Bat ang : 19
Panj ang Bent ang : 6 m
Beban Tot al : 18500. 8 N/ m
Ber at Sendi r i : 3880. 8 N/ m
Momen ki r i : - 49540. 2 Nmm
Momen t engah : 54526. 8 Nmm
Momen kanan : - 68648. 5 Nmm
Geser ki r i : 66193. 3 N
Geser kanan : - 72562. 7 N
Lendut an Tengah Bent ang : 8. 44502 mm
Lendut an i j i n 33. 3333 mm
Sengkang 12 - 160
J ar ak sengkang maksi mum: 214. 5 mm

Daer ah Lapangan
Tul angan t ar i k 3 D 22
Tul angan desak 2 D 19
Vol ume bet on : 0. 4851 m^3
Ber at Tul angan ut ama : 40. 1902 kg
Ber at Tul angan geser : 32. 7127 kg
Har ga bal ok daer ah l apangan : 485789
Momen yang membebani : 54526. 8 Nmm
Momen yang dapat di t ahan : 87732. 1 Nmm

Daer ah Tumpuan
Tul angan desak 2 D 25
Tul angan t ar i k 3 D 28
Vol ume bet on : 0. 4851 m^3
Ber at Tul angan ut ama : 66. 5893 kg
Ber at Tul angan geser : 32. 7127 kg
Har ga bal ok pada t umpuan ki r i + kanan : 617785
Momen yang membebani : 68648. 5 Nmm
Momen yang dapat di t ahan : 136348 Nmm

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Bal ok 8 330 x 490
Nomor Bat ang : 20
Panj ang Bent ang : 4 m
Beban Tot al : 15350. 8 N/ m
Ber at Sendi r i : 3880. 8 N/ m
Momen ki r i : - 35061. 1 Nmm
Momen t engah : 3315. 94 Nmm
Momen kanan : - 32611. 1 Nmm
Geser ki r i : 38989. 5 N
Geser kanan : - 37764. 5 N
LAMPIRAN 29
Lendut an Tengah Bent ang : 0. 000110305 mm
Lendut an i j i n 22. 2222 mm
Sengkang 12 - 180
J ar ak sengkang maksi mum: 213. 75 mm

Daer ah Lapangan
Tul angan t ar i k 3 D 25
Tul angan desak 2 D 28
Vol ume bet on : 0. 3234 m^3
Ber at Tul angan ut ama : 42. 4333 kg
Ber at Tul angan geser : 19. 0202 kg
Har ga bal ok daer ah l apangan : 388117
Momen yang membebani : 3315. 94 Nmm
Momen yang dapat di t ahan : 110786 Nmm

Daer ah Tumpuan
Tul angan desak 2 D 22
Tul angan t ar i k 3 D 22
Vol ume bet on : 0. 3234 m^3
Ber at Tul angan ut ama : 29. 8253 kg
Ber at Tul angan geser : 19. 0202 kg
Har ga bal ok pada t umpuan ki r i + kanan : 325077
Momen yang membebani : 35061. 1 Nmm
Momen yang dapat di t ahan : 87723. 8 Nmm

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Bal ok 9 330 x 510
Nomor Bat ang : 21
Panj ang Bent ang : 6 m
Beban Tot al : 18659. 2 N/ m
Ber at Sendi r i : 4039. 2 N/ m
Momen ki r i : - 63125. 1 Nmm
Momen t engah : 41832. 9 Nmm
Momen kanan : - 58046. 8 Nmm
Geser ki r i : 70818. 4 N
Geser kanan : - 69125. 6 N
Lendut an Tengah Bent ang : 3. 18938 mm
Lendut an i j i n 33. 3333 mm
Sengkang 12 - 170
J ar ak sengkang maksi mum: 223. 75 mm

Daer ah Lapangan
Tul angan t ar i k 3 D 25
Tul angan desak 2 D 19
Vol ume bet on : 0. 5049 m^3
Ber at Tul angan ut ama : 48. 0101 kg
Ber at Tul angan geser : 31. 9529 kg
Har ga bal ok daer ah l apangan : 526040
Momen yang membebani : 41832. 9 Nmm
Momen yang dapat di t ahan : 116470 Nmm

Daer ah Tumpuan
Tul angan desak 2 D 22
Tul angan t ar i k 3 D 20
Vol ume bet on : 0. 5049 m^3
Ber at Tul angan ut ama : 40. 0793 kg
Ber at Tul angan geser : 31. 9529 kg
Har ga bal ok pada t umpuan ki r i + kanan : 486386
Momen yang membebani : 63125. 1 Nmm
Momen yang dapat di t ahan : 82326. 5 Nmm

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Kol om1 410 x 410
Nomor Bat ang : 1
Tul angan ut ama 8 D 25
J ar ak ant ar t ul angan : 117. 5 mm
Sengkang 12 - 300
J ar ak sengkang maksi mum: 400 mm
Vol ume bet on : 0. 6724 m^3
Ber at Tul angan ut ama : 123. 245 kg
Ber at Tul angan geser : 13. 5708 kg
LAMPIRAN 29
Har ga kol om: 852179
Ber at Kol om: 16137. 6 N
Gaya aksi al : 407773 N
Gaya aksi al yang dapat di t ahan = 1. 96661e+06 N
Momen ar ah X : 0 Nmm
Momen ar ah Y : 34729. 3 Nmm
Momen yang dapat di t ahan : 167472 Nmm
Geser pada kol om: 11275. 9 N

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Kol om2 410 x 410
Nomor Bat ang : 2
Tul angan ut ama 8 D 22
J ar ak ant ar t ul angan : 122 mm
Sengkang 12 - 300
J ar ak sengkang maksi mum: 352 mm
Vol ume bet on : 0. 6724 m^3
Ber at Tul angan ut ama : 95. 4409 kg
Ber at Tul angan geser : 13. 5708 kg
Har ga kol om: 713158
Ber at Kol om: 16137. 6 N
Gaya aksi al : 654813 N
Gaya aksi al yang dapat di t ahan = 2. 25132e+06 N
Momen ar ah X : 0 Nmm
Momen ar ah Y : 34452. 3 Nmm
Momen yang dapat di t ahan : 118413 Nmm
Geser pada kol om: 14714. 3 N

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Kol om3 400 x 400
Nomor Bat ang : 3
Tul angan ut ama 8 D 22
J ar ak ant ar t ul angan : 117 mm
Sengkang 8 - 300
J ar ak sengkang maksi mum: 352 mm
Vol ume bet on : 0. 64 m^3
Ber at Tul angan ut ama : 95. 4409 kg
Ber at Tul angan geser : 5. 83688 kg
Har ga kol om: 666389
Ber at Kol om: 15360 N
Gaya aksi al : 655848 N
Gaya aksi al yang dapat di t ahan = 2. 55049e+06 N
Momen ar ah X : 0 Nmm
Momen ar ah Y : 14606. 9 Nmm
Momen yang dapat di t ahan : 56796. 8 Nmm
Geser pada kol om: 3849. 15 N

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Kol om4 430 x 430
Nomor Bat ang : 4
Tul angan ut ama 8 D 19
J ar ak ant ar t ul angan : 136. 5 mm
Sengkang 12 - 300
J ar ak sengkang maksi mum: 304 mm
Vol ume bet on : 0. 7396 m^3
Ber at Tul angan ut ama : 71. 1863 kg
Ber at Tul angan geser : 14. 4463 kg
Har ga kol om: 613063
Ber at Kol om: 17750. 4 N
Gaya aksi al : 425845 N
Gaya aksi al yang dapat di t ahan = 1. 43579e+06 N
Momen ar ah X : 0 Nmm
Momen ar ah Y : 61832. 4 Nmm
Momen yang dapat di t ahan : 208444 Nmm
Geser pada kol om: 25409. 6 N

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Kol om5 440 x 440
Nomor Bat ang : 5
Tul angan ut ama 8 D 20
J ar ak ant ar t ul angan : 140 mm
LAMPIRAN 29
Sengkang 12 - 300
J ar ak sengkang maksi mum: 320 mm
Vol ume bet on : 0. 7744 m^3
Ber at Tul angan ut ama : 78. 8768 kg
Ber at Tul angan geser : 14. 8841 kg
Har ga kol om: 662404
Ber at Kol om: 18585. 6 N
Gaya aksi al : 236013 N
Gaya aksi al yang dapat di t ahan = 639545 N
Momen ar ah X : 0 Nmm
Momen ar ah Y : 66895. 8 Nmm
Momen yang dapat di t ahan : 181255 Nmm
Geser pada kol om: 34647. 6 N

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Kol om6 440 x 440
Nomor Bat ang : 6
Tul angan ut ama 8 D 19
J ar ak ant ar t ul angan : 141. 5 mm
Sengkang 8 - 300
J ar ak sengkang maksi mum: 304 mm
Vol ume bet on : 0. 7744 m^3
Ber at Tul angan ut ama : 71. 1863 kg
Ber at Tul angan geser : 6. 61513 kg
Har ga kol om: 582607
Ber at Kol om: 18585. 6 N
Gaya aksi al : 382998 N
Gaya aksi al yang dapat di t ahan = 1. 5848e+06 N
Momen ar ah X : 0 Nmm
Momen ar ah Y : 52271. 2 Nmm
Momen yang dapat di t ahan : 216262 Nmm
Geser pada kol om: 26992. 4 N

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Kol om7 420 x 420
Nomor Bat ang : 7
Tul angan ut ama 8 D 19
J ar ak ant ar t ul angan : 131. 5 mm
Sengkang 12 - 300
J ar ak sengkang maksi mum: 304 mm
Vol ume bet on : 0. 7056 m^3
Ber at Tul angan ut ama : 71. 1863 kg
Ber at Tul angan geser : 14. 0085 kg
Har ga kol om: 602374
Ber at Kol om: 16934. 4 N
Gaya aksi al : 383431 N
Gaya aksi al yang dapat di t ahan = 2. 1089e+06 N
Momen ar ah X : 0 Nmm
Momen ar ah Y : 24947. 9 Nmm
Momen yang dapat di t ahan : 137182 Nmm
Geser pada kol om: 13696 N

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Kol om8 420 x 420
Nomor Bat ang : 8
Tul angan ut ama 8 D 22
J ar ak ant ar t ul angan : 127 mm
Sengkang 12 - 300
J ar ak sengkang maksi mum: 352 mm
Vol ume bet on : 0. 7056 m^3
Ber at Tul angan ut ama : 95. 4409 kg
Ber at Tul angan geser : 14. 0085 kg
Har ga kol om: 723647
Ber at Kol om: 16934. 4 N
Gaya aksi al : 247988 N
Gaya aksi al yang dapat di t ahan = 637102 N
Momen ar ah X : 0 Nmm
Momen ar ah Y : 71843 Nmm
Momen yang dapat di t ahan : 182109 Nmm
Geser pada kol om: 36350. 1 N

LAMPIRAN 29
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Kol om9 410 x 410
Nomor Bat ang : 9
Tul angan ut ama 8 D 20
J ar ak ant ar t ul angan : 125 mm
Sengkang 12 - 300
J ar ak sengkang maksi mum: 320 mm
Vol ume bet on : 0. 6724 m^3
Ber at Tul angan ut ama : 78. 8768 kg
Ber at Tul angan geser : 13. 5708 kg
Har ga kol om: 630338
Ber at Kol om: 16137. 6 N
Gaya aksi al : 66193. 3 N
Gaya aksi al yang dapat di t ahan = 126633 N
Momen ar ah X : 0 Nmm
Momen ar ah Y : 49540. 2 Nmm
Momen yang dapat di t ahan : 94774 Nmm
Geser pada kol om: 25810. 2 N

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Kol om10 450 x 450
Nomor Bat ang : 10
Tul angan ut ama 8 D 19
J ar ak ant ar t ul angan : 146. 5 mm
Sengkang 12 - 300
J ar ak sengkang maksi mum: 304 mm
Vol ume bet on : 0. 81 m^3
Ber at Tul angan ut ama : 71. 1863 kg
Ber at Tul angan geser : 15. 3218 kg
Har ga kol om: 635041
Ber at Kol om: 19440 N
Gaya aksi al : 111552 N
Gaya aksi al yang dapat di t ahan = 567435 N
Momen ar ah X : 0 Nmm
Momen ar ah Y : 33587. 4 Nmm
Momen yang dapat di t ahan : 170827 Nmm
Geser pada kol om: 17369. 1 N

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Kol om11 460 x 460
Nomor Bat ang : 11
Tul angan ut ama 8 D 28
J ar ak ant ar t ul angan : 138 mm
Sengkang 8 - 300
J ar ak sengkang maksi mum: 384 mm
Vol ume bet on : 0. 8464 m^3
Ber at Tul angan ut ama : 154. 599 kg
Ber at Tul angan geser : 7. 00426 kg
Har ga kol om: 1. 01961e+06
Ber at Kol om: 20313. 6 N
Gaya aksi al : 108583 N
Gaya aksi al yang dapat di t ahan = 1. 09943e+06 N
Momen ar ah X : 0 Nmm
Momen ar ah Y : 30514 Nmm
Momen yang dapat di t ahan : 308947 Nmm
Geser pada kol om: 17110. 4 N

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Kol om12 440 x 440
Nomor Bat ang : 12
Tul angan ut ama 4 D 25
J ar ak ant ar t ul angan : 290 mm
Sengkang 12 - 300
J ar ak sengkang maksi mum: 400 mm
Vol ume bet on : 0. 7744 m^3
Ber at Tul angan ut ama : 61. 6225 kg
Ber at Tul angan geser : 14. 8841 kg
Har ga kol om: 576133
Ber at Kol om: 18585. 6 N
Gaya aksi al : 69125. 6 N
Gaya aksi al yang dapat di t ahan = 127125 N
LAMPIRAN 29
Momen ar ah X : 0 Nmm
Momen ar ah Y : 58046. 8 Nmm
Momen yang dapat di t ahan : 106750 Nmm
Geser pada kol om: 30550. 7 N


Har ga Bet on Rp. 250000 / m^3
Har ga Besi Rp. 5000 / kg
Tebal sel i mut kol om50 mm
Tebal sel i mut bal ok 50 mm
Fakt or f i nal t i : 1e+10
J STD = ( J VD*1) +3: 177 det i k
LAMPIRAN 30
Hasil perhitungan gaya batang pada kasus portal pada gambar 4-1

File : Gedung.str

Hasi l Anal i sa St r ukt ur Dengan Met oda Kekakuan
Di kembangkan dar i Weaver & Ger e
Ol eh Yohan Naf t al i 1999

Nama Fi l e Gener i k : dat a01/ gedung
J uml ah bat ang : 21
J uml ah t i t i k kumpul : 16
Modul us el ast i si t as t ar i k/ t ekan : 19661. 5 MPa
Modul us el ast i si t as geser G : 11305. 4 MPa

Per pi ndahan Ti t i k Kumpul
Ti t i k DJ 1 DJ 2 DJ 3 DJ 4 DJ 5 DJ 6
1 +0. 000000 +0. 000000 +0. 000000 +0. 000000 +0. 000000 +0. 000000
2 +0. 000000 +0. 000000 +0. 000000 +0. 000000 +0. 000000 +0. 000000
3 +0. 000000 +0. 000000 +0. 000000 +0. 000000 +0. 000000 +0. 000000
4 +0. 000000 +0. 000000 +0. 000000 +0. 000000 +0. 000000 +0. 000000
5 +0. 000644 - 0. 000395 +0. 000000 +0. 000000 +0. 000000 - 0. 000842
6 +0. 000662 - 0. 000634 +0. 000000 +0. 000000 +0. 000000 +0. 000347
7 +0. 000663 - 0. 000667 +0. 000000 +0. 000000 +0. 000000 - 0. 000527
8 +0. 000677 - 0. 000375 +0. 000000 +0. 000000 +0. 000000 +0. 000629
9 +0. 001354 - 0. 000593 +0. 000000 +0. 000000 +0. 000000 - 0. 000717
10 +0. 001327 - 0. 000956 +0. 000000 +0. 000000 +0. 000000 +0. 000258
11 +0. 001318 - 0. 001021 +0. 000000 +0. 000000 +0. 000000 - 0. 000374
12 +0. 001310 - 0. 000604 +0. 000000 +0. 000000 +0. 000000 +0. 000575
13 +0. 001554 - 0. 000657 +0. 000000 +0. 000000 +0. 000000 - 0. 000573
14 +0. 001508 - 0. 001046 +0. 000000 +0. 000000 +0. 000000 +0. 000203
15 +0. 001494 - 0. 001104 +0. 000000 +0. 000000 +0. 000000 - 0. 000212
16 +0. 001450 - 0. 000662 +0. 000000 +0. 000000 +0. 000000 +0. 000416

Gaya Uj ung Bat ang
Bat ang AM1 AM2 AM3 AM4 AM5 AM6
AM7 AM8 AM9 AM10 AM11 AM12
1 326218 - 9020. 7 0 0 0 - 8299. 37
- 326218 9020. 7 0 0 0 - 27783. 4
2 523850 11771. 4 0 0 0 19523. 9
- 523850 - 11771. 4 0 0 0 27561. 8
3 524678 - 3079. 32 0 0 0 - 631. 738
- 524678 3079. 32 0 0 0 - 11685. 5
4 340676 20327. 7 0 0 0 31844. 9
- 340676 - 20327. 7 0 0 0 49465. 9
5 188811 - 27718 0 0 0 - 57355. 5
- 188811 27718 0 0 0 - 53516. 6
6 306398 21593. 9 0 0 0 44558. 7
- 306398 - 21593. 9 0 0 0 41816. 9
7 306745 - 10956. 8 0 0 0 - 23868. 9
- 306745 10956. 8 0 0 0 - 19958. 3
8 198390 29080. 1 0 0 0 58845. 8
- 198390 - 29080. 1 0 0 0 57474. 4
9 52954. 6 - 20648. 2 0 0 0 - 42960. 5
- 52954. 6 20648. 2 0 0 0 - 39632. 2
10 89241. 7 13895. 3 0 0 0 28711. 3
- 89241. 7 - 13895. 3 0 0 0 26869. 9
11 86866. 2 - 13688. 3 0 0 0 - 30342. 1
- 86866. 2 13688. 3 0 0 0 - 24411. 2
12 55300. 5 24440. 6 0 0 0 51324. 9
- 55300. 5 - 24440. 6 0 0 0 46437. 5
13 - 10697. 3 118822 0 0 0 85139
10697. 3 132664 0 0 0 - 126666
14 - 874. 811 66201. 9 0 0 0 54545. 1
874. 811 75511. 7 0 0 0 - 73164. 7
15 - 8752. 38 125487 0 0 0 108719
8752. 38 125351 0 0 0 - 108312
16 15069. 5 119718 0 0 0 96477. 1
- 15069. 5 129234 0 0 0 - 125023
17 7370. 91 68483 0 0 0 54494. 5
- 7370. 91 73230. 6 0 0 0 - 63989. 8
18 4639. 57 126334 0 0 0 114290
LAMPIRAN 30
- 4639. 57 124504 0 0 0 - 108799
19 24648 52954. 6 0 0 0 39632. 2
- 24648 58050. 2 0 0 0 - 54918. 8
20 10752. 2 31191. 6 0 0 0 28048. 8
- 10752. 2 30211. 6 0 0 0 - 26088. 9
21 24440. 5 56654. 7 0 0 0 50500. 1
- 24440. 5 55300. 5 0 0 0 - 46437. 5

Reaksi Tummpuan
Ti t i k AR1 AR2 AR3 AR4 AR5 AR6
1 9020. 7 342356 0 0 0 - 8299. 37
2 - 11771. 4 539988 0 0 0 19523. 9
3 3079. 32 540038 0 0 0 - 631. 738
4 - 20327. 7 358426 0 0 0 31844. 9
5 0 0 0 0 0 0
6 0 0 0 0 0 0
7 0 0 0 0 0 0
8 0 0 0 0 0 0
9 0 0 0 0 0 0
10 0 0 0 0 0 0
11 0 0 0 0 0 0
12 0 0 0 0 0 0
13 0 0 0 0 0 0
14 0 0 0 0 0 0
15 0 0 0 0 0 0
16 0 0 0 0 0 0
LAMPIRAN 31
Laporan kendala yang terdapat pada struktur portal pada gambar 4-1

File : Gedung.kdl

Kendal a Pada St r ukt ur

Nama Fi l e Gener i k : dat a01/ gedung
Nama St r ukt ur : GEDUNG_2_LANTAI

Bal ok 1 Nomor Bat ang : 13
Kendal a aki bat l endut an : 0
Daer ah Lapangan
Kendal a r asi o penul angan 0 Kendal a sengkang : 0 Kendal a momen l ent ur : 0
Daer ah Tumpuan
Kendal a r asi o penul angan 0 Kendal a sengkang : 0 Kendal a momen l ent ur : 0

Bal ok 2 Nomor Bat ang : 14
Kendal a aki bat l endut an : 0
Daer ah Lapangan
Kendal a r asi o penul angan 0 Kendal a sengkang : 0 Kendal a momen l ent ur : 0
Daer ah Tumpuan
Kendal a r asi o penul angan 0 Kendal a sengkang : 0 Kendal a momen l ent ur : 0

Bal ok 3 Nomor Bat ang : 15
Kendal a aki bat l endut an : 0
Daer ah Lapangan
Kendal a r asi o penul angan 0 Kendal a sengkang : 0 Kendal a momen l ent ur : 0
Daer ah Tumpuan
Kendal a r asi o penul angan 0 Kendal a sengkang : 0 Kendal a momen l ent ur : 0

Bal ok 4 Nomor Bat ang : 16
Kendal a aki bat l endut an : 0
Daer ah Lapangan
Kendal a r asi o penul angan 0 Kendal a sengkang : 0 Kendal a momen l ent ur : 0
Daer ah Tumpuan
Kendal a r asi o penul angan 0 Kendal a sengkang : 0 Kendal a momen l ent ur : 0

Bal ok 5 Nomor Bat ang : 17
Kendal a aki bat l endut an : 0
Daer ah Lapangan
Kendal a r asi o penul angan 0 Kendal a sengkang : 0 Kendal a momen l ent ur : 0
Daer ah Tumpuan
Kendal a r asi o penul angan 0 Kendal a sengkang : 0 Kendal a momen l ent ur : 0

Bal ok 6 Nomor Bat ang : 18
Kendal a aki bat l endut an : 0
Daer ah Lapangan
Kendal a r asi o penul angan 0 Kendal a sengkang : 0 Kendal a momen l ent ur : 0
Daer ah Tumpuan
Kendal a r asi o penul angan 0 Kendal a sengkang : 0 Kendal a momen l ent ur : 0

Bal ok 7 Nomor Bat ang : 19
Kendal a aki bat l endut an : 0
Daer ah Lapangan
Kendal a r asi o penul angan 0 Kendal a sengkang : 0 Kendal a momen l ent ur : 0
Daer ah Tumpuan
Kendal a r asi o penul angan 0 Kendal a sengkang : 0 Kendal a momen l ent ur : 0

Bal ok 8 Nomor Bat ang : 20
Kendal a aki bat l endut an : 0
Daer ah Lapangan
Kendal a r asi o penul angan 0 Kendal a sengkang : 0 Kendal a momen l ent ur : 0
Daer ah Tumpuan
Kendal a r asi o penul angan 0 Kendal a sengkang : 0 Kendal a momen l ent ur : 0

Bal ok 9 Nomor Bat ang : 21
Kendal a aki bat l endut an : 0
Daer ah Lapangan
Kendal a r asi o penul angan 0 Kendal a sengkang : 0 Kendal a momen l ent ur : 0
Daer ah Tumpuan
Kendal a r asi o penul angan 0 Kendal a sengkang : 0 Kendal a momen l ent ur : 0
LAMPIRAN 31

Kol om1 Nomor Bat ang : 1
Kendal a gaya : 0 Kendal a r asi o penul angan : 0 Kendal a j ar ak t ul angan : 0
Kendal a sengkang : 0 Kendal a kel angsi ngan kol om: 0

Kol om2 Nomor Bat ang : 2
Kendal a gaya : 0 Kendal a r asi o penul angan : 0 Kendal a j ar ak t ul angan : 0
Kendal a sengkang : 0 Kendal a kel angsi ngan kol om: 0

Kol om3 Nomor Bat ang : 3
Kendal a gaya : 0 Kendal a r asi o penul angan : 0 Kendal a j ar ak t ul angan : 0
Kendal a sengkang : 0 Kendal a kel angsi ngan kol om: 0

Kol om4 Nomor Bat ang : 4
Kendal a gaya : 0 Kendal a r asi o penul angan : 0 Kendal a j ar ak t ul angan : 0
Kendal a sengkang : 0 Kendal a kel angsi ngan kol om: 0

Kol om5 Nomor Bat ang : 5
Kendal a gaya : 0 Kendal a r asi o penul angan : 0 Kendal a j ar ak t ul angan : 0
Kendal a sengkang : 0 Kendal a kel angsi ngan kol om: 0

Kol om6 Nomor Bat ang : 6
Kendal a gaya : 0 Kendal a r asi o penul angan : 0 Kendal a j ar ak t ul angan : 0
Kendal a sengkang : 0 Kendal a kel angsi ngan kol om: 0

Kol om7 Nomor Bat ang : 7
Kendal a gaya : 0 Kendal a r asi o penul angan : 0 Kendal a j ar ak t ul angan : 0
Kendal a sengkang : 0 Kendal a kel angsi ngan kol om: 0

Kol om8 Nomor Bat ang : 8
Kendal a gaya : 0 Kendal a r asi o penul angan : 0 Kendal a j ar ak t ul angan : 0
Kendal a sengkang : 0 Kendal a kel angsi ngan kol om: 0

Kol om9 Nomor Bat ang : 9
Kendal a gaya : 0 Kendal a r asi o penul angan : 0 Kendal a j ar ak t ul angan : 0
Kendal a sengkang : 0 Kendal a kel angsi ngan kol om: 0

Kol om10 Nomor Bat ang : 10
Kendal a gaya : 0 Kendal a r asi o penul angan : 0 Kendal a j ar ak t ul angan : 0
Kendal a sengkang : 0 Kendal a kel angsi ngan kol om: 0

Kol om11 Nomor Bat ang : 11
Kendal a gaya : 0 Kendal a r asi o penul angan : 0 Kendal a j ar ak t ul angan : 0
Kendal a sengkang : 0 Kendal a kel angsi ngan kol om: 0

Kol om12 Nomor Bat ang : 12
Kendal a gaya : 0 Kendal a r asi o penul angan : 0 Kendal a j ar ak t ul angan : 0
Kendal a sengkang : 0 Kendal a kel angsi ngan kol om: 0
LAMPIRAN 32
Input data struktur portal ruang pada gambar 4-3

File : aplikasi.inp

Apl i kasi _Por t al _Bet on_3D
8 8 4 24
2. 5743e+10 1. 48022e+10
30 400 240
48 24

[ Koor di nat ]
1 0 0 0
2 6 0 0
3 0 0 6
4 6 0 6
5 0 5 0
6 6 5 0
7 0 5 6
8 6 5 6

[ Pengekang]
1 1 1 1 1 1 1
2 1 1 1 1 1 1
3 1 1 1 1 1 1
4 1 1 1 1 1 1

[ I nf or masi Bat ang]
1 1 5 0
2 2 6 0
3 3 7 0
4 4 8 0
5 5 6 0
6 7 8 0
7 5 7 0
8 6 8 0
LAMPIRAN 33
Input data diskrit struktur portal ruang pada gambar 4-3

File : aplikasi.isd

[ Lebar Bal ok]
5
200 250 300 350 400

[ Ti nggi Bal ok]
11
250 300 350 400 450 500 550 600 650 700 750

[ Si si Kol om]
5
400 450 500 550 600

File : aplikasi.idl

[ Di amet er Tul anganUt ama]
8
19 20 22 25 28 29 32 36

File : aplikasi.ijl

[ J uml ahTul anganUt ama]
4
2 3 4 5

File : aplikasi.ids

[ Di amet er Tul anganSengkang]
3
8 10 12

File : aplikasi.ijs

[ J ar akAnt ar Sengkang]
21
100 110 120 130 140 150 160 170 180 190 200
210 220 230 240 250 260 270 280 290 300



LAMPIRAN 34
Input data pembebanan struktur portal ruang pada gambar 4-3

File : aplikasi.bbn

[ BebanBat ang]
8 1 0 0 0 0 0 0
0 0 0 0 0 0
2 0 0 0 0 0 0 0
0 0 0 0 0 0
3 0 0 0 0 0 0 0
0 0 0 0 0 0
4 0 0 0 0 0 0 0
0 0 0 0 0 0
5 35000 0 105000 0 0 0 105000
0 105000 0 0 0 - 105000
6 35000 0 105000 0 0 0 105000
0 105000 0 0 0 - 105000
7 35000 0 105000 0 0 0 105000
0 105000 0 0 0 - 105000
8 35000 0 105000 0 0 0 105000
0 105000 0 0 0 - 105000

[ BebanTi t i k]
8
1 0 0 0 0 0 0
2 0 0 0 0 0 0
3 0 0 0 0 0 0
4 0 0 0 0 0 0
5 0 0 0 0 0 0
6 0 0 0 0 0 0
7 0 0 0 0 0 0
8 0 0 0 0 0 0

LAMPIRAN 35
Hasil berupa informasi struktur portal ruang pada gambar 4-3

File : aplikasi.inf

St r ukt ur Por t al Ruang Apl i kasi _Por t al _Bet on_3D

Par amet er St r ukt ur
J uml ah bat ang : 8
DOF : 24
J uml ah j oi nt : 8
J uml ah pengekang t umpuan : 24
J uml ah t i t i k kumpul yang di kekang : 4
Modul us El ast i si t as aksi al : 2. 5743e+10 N/ m^2
Modul us Geser : 1. 48022e+10 N/ m^2

Pr oper t i El emen Mat er i al
Kuat desak bet on kar akt er i st i k : 30 MPa
Kuat t ar i k baj a t ul angan : 400 MPa
Kuat t ar i k t ul angan sengkang : 240 MPa

Koor di nat Ti t i k Kumpul ( m)
Ti t i k X Y Z
1 0 0 0
2 6 0 0
3 0 0 6
4 6 0 6
5 0 5 0
6 6 5 0
7 0 5 6
8 6 5 6

I nf or masi Bat ang
Bat ang J J J K I A
1 1 5 0
2 2 6 0
3 3 7 0
4 4 8 0
5 5 6 0
6 7 8 0
7 5 7 0
8 6 8 0

Pengekang Ti t i k Kumpul
Ti t i k J R1 J R2 J R3 J R4 J R5 J R6
1 1 1 1 1 1 1
2 1 1 1 1 1 1
3 1 1 1 1 1 1
4 1 1 1 1 1 1

Gaya di Uj ung Bat ang Ter kekang Aki bat Beban ( Nm)
Bat ang AML1 AML2 AML3 AML4 AML5 AML6
AML7 AML8 AML9 AML10 AML11 AML12
1 0 0 0 0 0 0
0 0 0 0 0 0
2 0 0 0 0 0 0
0 0 0 0 0 0
3 0 0 0 0 0 0
0 0 0 0 0 0
4 0 0 0 0 0 0
0 0 0 0 0 0
5 0 115800 0 0 0 115800
0 115800 0 0 0 - 115800
6 0 117960 0 0 0 117960
0 117960 0 0 0 - 117960
7 0 117600 0 0 0 117600
0 117600 0 0 0 - 117600
8 0 117960 0 0 0 117960
0 117960 0 0 0 - 117960

Beban Ti t i k ( N)
Ti t i k Ar ah 1 Ar ah 2 Ar ah 3 Ar ah 4 Ar ah 5 Ar ah 6
LAMPIRAN 35
1 0 - 24300 0 0 0 0
2 0 - 30000 0 0 0 0
3 0 - 30000 0 0 0 0
4 0 - 24300 0 0 0 0
5 0 0 0 0 0 0
6 0 0 0 0 0 0
7 0 0 0 0 0 0
8 0 0 0 0 0 0
LAMPIRAN 36
Hasil berupa riwayat proses optimasi struktur portal ruang pada gambar 4-3

File : aplikasi.his

1. Jumlah Struktur Desain = JVD + 3
Run ke-1
Penyusut an ber t ur ut per t ama pada gener asi : 275 Fi t ness t er bai k : 884. 543
Konver gen Pada Gener asi : 345 kar ena j uml ah penyusut an mel ebi hi bat as
Fi t ness = 884. 543
Har ga = 1. 13053e+07
Kendal a = 0
Wakt u opt i masi : 21 det i k

Run ke-2
Penyusut an ber t ur ut per t ama pada gener asi : 388 Fi t ness t er bai k : 920. 91
Konver gen Pada Gener asi : 780 kar ena j uml ah penyusut an mel ebi hi bat as
Fi t ness = 920. 91
Har ga = 1. 08588e+07
Kendal a = 0
Wakt u opt i masi : 39 det i k

Run ke-3
Penyusut an ber t ur ut per t ama pada gener asi : 111 Fi t ness t er bai k : 896. 938
Penyusut an ber t ur ut ber akhi r set el ah 2 kal i
Penyusut an ber t ur ut per t ama pada gener asi : 126 Fi t ness t er bai k : 915. 185
Penyusut an ber t ur ut ber akhi r set el ah 2 kal i
Penyusut an ber t ur ut per t ama pada gener asi : 145 Fi t ness t er bai k : 922. 347
Konver gen Pada Gener asi : 215 kar ena j uml ah penyusut an mel ebi hi bat as
Fi t ness = 922. 347
Har ga = 1. 08419e+07
Kendal a = 0
Wakt u opt i masi : 16 det i k

Run ke-4
Konver gen pada gener asi : 612
Fi t ness = 975. 574
Har ga = 1. 02504e+07
Kendal a = 0
Wakt u opt i masi : 26 det i k

Run ke-5
Penyusut an ber t ur ut per t ama pada gener asi : 445 Fi t ness t er bai k : 882. 731
Penyusut an ber t ur ut ber akhi r set el ah 2 kal i
Penyusut an ber t ur ut per t ama pada gener asi : 712 Fi t ness t er bai k : 972. 161
Konver gen pada gener asi : 782
Fi t ness = 978. 844
Har ga = 1. 02161e+07
Kendal a = 0
Wakt u opt i masi : 36 det i k

2. Jumlah Struktur Desain = JVD x 2
Run ke-1
Penyusut an ber t ur ut per t ama pada gener asi : 378 Fi t ness t er bai k : 952. 009
Penyusut an ber t ur ut ber akhi r set el ah 2 kal i
Penyusut an ber t ur ut per t ama pada gener asi : 382 Fi t ness t er bai k : 952. 009
Konver gen Pada Gener asi : 517 kar ena j uml ah penyusut an mel ebi hi bat as
Fi t ness = 952. 009
Har ga = 1. 05041e+07
Kendal a = 0
Wakt u opt i masi : 36 det i k

Run ke-2
Penyusut an ber t ur ut per t ama pada gener asi : 189 Fi t ness t er bai k : 929. 264
Penyusut an ber t ur ut ber akhi r set el ah 2 kal i
Penyusut an ber t ur ut per t ama pada gener asi : 580 Fi t ness t er bai k : 1093. 41
Konver gen pada gener asi : 649
Fi t ness = 1102. 15
Har ga = 9. 0732e+06
Kendal a = 0
Wakt u opt i masi : 34 det i k

LAMPIRAN 36
Run ke-3
Penyusut an ber t ur ut per t ama pada gener asi : 213 Fi t ness t er bai k : 956. 24
Konver gen pada gener asi : 848
Fi t ness = 1044. 07
Har ga = 9. 57794e+06
Kendal a = 0
Wakt u opt i masi : 42 det i k

Run ke-4
Penyusut an ber t ur ut per t ama pada gener asi : 204 Fi t ness t er bai k : 945. 211
Penyusut an ber t ur ut ber akhi r set el ah 3 kal i
Penyusut an ber t ur ut per t ama pada gener asi : 208 Fi t ness t er bai k : 1061. 04
Konver gen Pada Gener asi : 343 kar ena j uml ah penyusut an mel ebi hi bat as
Fi t ness = 1061. 04
Har ga = 9. 42469e+06
Kendal a = 0
Wakt u opt i masi : 30 det i k

Run ke-5
Penyusut an ber t ur ut per t ama pada gener asi : 709 Fi t ness t er bai k : 951. 672
Konver gen pada gener asi : 778
Fi t ness = 1030. 85
Har ga = 9. 7007e+06
Kendal a = 0
Wakt u opt i masi : 44 det i k

3. Jumlah Struktur Desain = JVD x 3
Run ke-1
Penyusut an ber t ur ut per t ama pada gener asi : 252 Fi t ness t er bai k : 956. 726
Konver gen Pada Gener asi : 455 kar ena j uml ah penyusut an mel ebi hi bat as
Fi t ness = 956. 726
Har ga = 1. 04523e+07
Kendal a = 0
Wakt u opt i masi : 43 det i k

Run ke-2
Penyusut an ber t ur ut per t ama pada gener asi : 644 Fi t ness t er bai k : 963. 602
Konver gen Pada Gener asi : 847 kar ena j uml ah penyusut an mel ebi hi bat as
Fi t ness = 963. 602
Har ga = 1. 03777e+07
Kendal a = 0
Wakt u opt i masi : 54 det i k

Run ke-3
Penyusut an ber t ur ut per t ama pada gener asi : 341 Fi t ness t er bai k : 1039. 36
Konver gen Pada Gener asi : 545 kar ena j uml ah penyusut an mel ebi hi bat as
Fi t ness = 1039. 36
Har ga = 9. 62127e+06
Kendal a = 0
Wakt u opt i masi : 48 det i k

Run ke-4
Penyusut an ber t ur ut per t ama pada gener asi : 377 Fi t ness t er bai k : 933. 474
Penyusut an ber t ur ut ber akhi r set el ah 2 kal i
Konver gen pada gener asi : 1150
Fi t ness = 1077. 23
Har ga = 9. 28304e+06
Kendal a = 0
Wakt u opt i masi : 63 det i k

Run ke-5
Penyusut an ber t ur ut per t ama pada gener asi : 378 Fi t ness t er bai k : 978. 152
Konver gen pada gener asi : 1272
Fi t ness = 1171. 59
Har ga = 8. 53543e+06
Kendal a = 0
Wakt u opt i masi : 74 det i k



LAMPIRAN 37
Hasil akhir struktur terbaik untuk kasus portal ruang pada gambar 4-3

File : aplikasi.opt

Nama St r ukt ur : Apl i kasi _Por t al _Bet on_3D
Hasi l Opt i masi Bet on Ber t ul ang Pada St r ukt ur Por t al Ruang
Met oda Opt i masi : Fl exi bl e Pol yhedr on
J uml ah Var i abel Desai n : 68
J uml ah St r ukt ur Desai n : 204
Ol eh Yohan Naf t al i 1999

Nama Fi l e Gener i k : apl i kasi
Nama St r ukt ur : Apl i kasi _Por t al _Bet on_3D
J uml ah bat ang : 8
J uml ah t i t i k kumpul : 8
Modul us el ast i si t as t ar i k/ t ekan : 25743 MPa
Modul us el ast i si t as geser G : 14802. 2 MPa
Kuat desak Kar akt er i st i k Bet on : 30 MPa
Kuat t ar i k baj a t ul angan l ent ur : 400 MPa
Kuat t ar i k baj a t ul angan sengkang : 240 MPa
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Bal ok 1 250 x 600
Nomor Bat ang : 5
Panj ang Bent ang : 6 m
Beban Tot al : 38600 N/ m
Ber at Sendi r i : 3600 N/ m
Momen ki r i : - 93297. 9 Nmm
Momen t engah : 123827 Nmm
Momen kanan : - 106649 Nmm
Geser ki r i : 142525 N
Geser kanan : - 146975 N
Lendut an Tengah Bent ang : 16. 5438 mm
Lendut an i j i n 33. 3333 mm
Sengkang 10 - 160
J ar ak sengkang maksi mum: 168. 684 mm

Daer ah Lapangan
Tul angan t ar i k 4 D 19
Tul angan desak 3 D 19
Vol ume bet on : 0. 45 m^3
Ber at Tul angan ut ama : 46. 716 kg
Ber at Tul angan geser : 25. 866 kg
Har ga bal ok daer ah l apangan : 475410
Momen yang membebani : 123827 Nmm
Momen yang dapat di t ahan : 183502 Nmm

Daer ah Tumpuan
Tul angan desak 4 D 25
Tul angan t ar i k 3 D 19
Vol ume bet on : 0. 45 m^3
Ber at Tul angan ut ama : 66. 238 kg
Ber at Tul angan geser : 25. 866 kg
Har ga bal ok pada t umpuan ki r i + kanan : 573020
Momen yang membebani : 106649 Nmm
Momen yang dapat di t ahan : 139707 Nmm

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Bal ok 2 300 x 600
Nomor Bat ang : 6
Panj ang Bent ang : 6 m
Beban Tot al : 39320 N/ m
Ber at Sendi r i : 4320 N/ m
Momen ki r i : - 102355 Nmm
Momen t engah : 118820 Nmm
Momen kanan : - 88960. 6 Nmm
Geser ki r i : 149682 N
Geser kanan : - 145218 N
Lendut an Tengah Bent ang : 9. 2669 mm
Lendut an i j i n 33. 3333 mm
Sengkang 10 - 160
J ar ak sengkang maksi mum: 188. 4 mm
LAMPIRAN 37

Daer ah Lapangan
Tul angan t ar i k 4 D 22
Tul angan desak 3 D 29
Vol ume bet on : 0. 54 m^3
Ber at Tul angan ut ama : 82. 4324 kg
Ber at Tul angan geser : 26. 9907 kg
Har ga bal ok daer ah l apangan : 682115
Momen yang membebani : 118820 Nmm
Momen yang dapat di t ahan : 243842 Nmm

Daer ah Tumpuan
Tul angan desak 2 D 25
Tul angan t ar i k 4 D 22
Vol ume bet on : 0. 54 m^3
Ber at Tul angan ut ama : 58. 8988 kg
Ber at Tul angan geser : 26. 9907 kg
Har ga bal ok pada t umpuan ki r i + kanan : 564447
Momen yang membebani : 102355 Nmm
Momen yang dapat di t ahan : 243813 Nmm

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Bal ok 3 350 x 500
Nomor Bat ang : 7
Panj ang Bent ang : 6 m
Beban Tot al : 39200 N/ m
Ber at Sendi r i : 4200 N/ m
Momen ki r i : - 101127 Nmm
Momen t engah : 119373 Nmm
Momen kanan : - 114716 Nmm
Geser ki r i : 144735 N
Geser kanan : - 149265 N
Lendut an Tengah Bent ang : 15. 4015 mm
Lendut an i j i n 33. 3333 mm
Sengkang 10 - 160
J ar ak sengkang maksi mum: 161. 486 mm

Daer ah Lapangan
Tul angan t ar i k 4 D 28
Tul angan desak 2 D 22
Vol ume bet on : 0. 525 m^3
Ber at Tul angan ut ama : 75. 8696 kg
Ber at Tul angan geser : 23. 6168 kg
Har ga bal ok daer ah l apangan : 628682
Momen yang membebani : 119373 Nmm
Momen yang dapat di t ahan : 305240 Nmm

Daer ah Tumpuan
Tul angan desak 2 D 19
Tul angan t ar i k 3 D 25
Vol ume bet on : 0. 525 m^3
Ber at Tul angan ut ama : 48. 0101 kg
Ber at Tul angan geser : 23. 6168 kg
Har ga bal ok pada t umpuan ki r i + kanan : 489385
Momen yang membebani : 114716 Nmm
Momen yang dapat di t ahan : 190563 Nmm

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Bal ok 4 300 x 600
Nomor Bat ang : 8
Panj ang Bent ang : 6 m
Beban Tot al : 39320 N/ m
Ber at Sendi r i : 4320 N/ m
Momen ki r i : - 102269 Nmm
Momen t engah : 118906 Nmm
Momen kanan : - 88770. 3 Nmm
Geser ki r i : 149700 N
Geser kanan : - 145200 N
Lendut an Tengah Bent ang : 9. 87336 mm
Lendut an i j i n 33. 3333 mm
Sengkang 10 - 180
LAMPIRAN 37
J ar ak sengkang maksi mum: 188. 4 mm

Daer ah Lapangan
Tul angan t ar i k 2 D 28
Tul angan desak 3 D 29
Vol ume bet on : 0. 54 m^3
Ber at Tul angan ut ama : 75. 6293 kg
Ber at Tul angan geser : 23. 9095 kg
Har ga bal ok daer ah l apangan : 632694
Momen yang membebani : 118906 Nmm
Momen yang dapat di t ahan : 198299 Nmm

Daer ah Tumpuan
Tul angan desak 2 D 28
Tul angan t ar i k 2 D 22
Vol ume bet on : 0. 54 m^3
Ber at Tul angan ut ama : 46. 8824 kg
Ber at Tul angan geser : 23. 9095 kg
Har ga bal ok pada t umpuan ki r i + kanan : 488960
Momen yang membebani : 102269 Nmm
Momen yang dapat di t ahan : 150791 Nmm

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Kol om1 450 x 450
Nomor Bat ang : 1
Tul angan ut ama 8 D 19
J ar ak ant ar t ul angan : 146. 5 mm
Sengkang 10 - 300
J ar ak sengkang maksi mum: 304 mm
Vol ume bet on : 1. 0125 m^3
Ber at Tul angan ut ama : 88. 9829 kg
Ber at Tul angan geser : 13. 5159 kg
Har ga kol om: 765619
Ber at Kol om: 24300 N
Gaya aksi al : 287260 N
Gaya aksi al yang dapat di t ahan = 863066 N
Momen ar ah X : 733. 231 Nmm
Momen ar ah Y : 91972. 2 Nmm
Momen yang dapat di t ahan : 271092 Nmm
Geser pada kol om: 30668. 3 N

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Kol om2 500 x 500
Nomor Bat ang : 2
Tul angan ut ama 8 D 22
J ar ak ant ar t ul angan : 167 mm
Sengkang 10 - 300
J ar ak sengkang maksi mum: 352 mm
Vol ume bet on : 1. 25 m^3
Ber at Tul angan ut ama : 119. 301 kg
Ber at Tul angan geser : 15. 4467 kg
Har ga kol om: 986239
Ber at Kol om: 30000 N
Gaya aksi al : 296675 N
Gaya aksi al yang dapat di t ahan = 1. 08939e+06 N
Momen ar ah X : 597. 372 Nmm
Momen ar ah Y : 107095 Nmm
Momen yang dapat di t ahan : 393148 Nmm
Geser pada kol om: 30937. 6 N

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Kol om3 500 x 500
Nomor Bat ang : 3
Tul angan ut ama 8 D 28
J ar ak ant ar t ul angan : 158 mm
Sengkang 10 - 300
J ar ak sengkang maksi mum: 448 mm
Vol ume bet on : 1. 25 m^3
Ber at Tul angan ut ama : 193. 248 kg
Ber at Tul angan geser : 15. 4467 kg
Har ga kol om: 1. 35597e+06
LAMPIRAN 37
Ber at Kol om: 30000 N
Gaya aksi al : 298947 N
Gaya aksi al yang dapat di t ahan = 1. 65179e+06 N
Momen ar ah X : 165. 848 Nmm
Momen ar ah Y : 103680 Nmm
Momen yang dapat di t ahan : 572763 Nmm
Geser pada kol om: 33103. 8 N

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Kol om4 450 x 450
Nomor Bat ang : 4
Tul angan ut ama 8 D 22
J ar ak ant ar t ul angan : 142 mm
Sengkang 8 - 300
J ar ak sengkang maksi mum: 352 mm
Vol ume bet on : 1. 0125 m^3
Ber at Tul angan ut ama : 119. 301 kg
Ber at Tul angan geser : 8. 65016 kg
Har ga kol om: 892882
Ber at Kol om: 24300 N
Gaya aksi al : 290418 N
Gaya aksi al yang dapat di t ahan = 1. 12221e+06 N
Momen ar ah X : 137. 749 Nmm
Momen ar ah Y : 88514. 9 Nmm
Momen yang dapat di t ahan : 341799 Nmm
Geser pada kol om: 27419 N


Har ga Bet on Rp. 250000 / m^3
Har ga Besi Rp. 5000 / kg
Tebal sel i mut kol om50 mm
Tebal sel i mut bal ok 50 mm
Fakt or f i nal t i : 1e+10
J STD = ( J VD*3) +0
LAMPIRAN 38
185
Hasil perhitungan gaya batang pada kasus portal ruang gambar 4-3

File : aplikasi.str

Hasi l Anal i sa St r ukt ur Dengan Met oda Kekakuan
Di kembangkan dar i Weaver & Ger e
Ol eh Yohan Naf t al i 1999

Nama Fi l e Gener i k : apl 15/ apl i kasi
J uml ah bat ang : 8
J uml ah t i t i k kumpul : 8
Modul us el ast i si t as t ar i k/ t ekan : 25743 MPa
Modul us el ast i si t as geser G : 14802. 2 MPa

Per pi ndahan Ti t i k Kumpul
Ti t i k DJ 1 DJ 2 DJ 3 DJ 4 DJ 5 DJ 6
1 +0. 000000 +0. 000000 +0. 000000 +0. 000000 +0. 000000 +0. 000000
2 +0. 000000 +0. 000000 +0. 000000 +0. 000000 +0. 000000 +0. 000000
3 +0. 000000 +0. 000000 +0. 000000 +0. 000000 +0. 000000 +0. 000000
4 +0. 000000 +0. 000000 +0. 000000 +0. 000000 +0. 000000 +0. 000000
5 - 0. 000259 - 0. 000220 - 0. 000277 +0. 001051 +0. 000034 - 0. 000968
6 - 0. 000296 - 0. 000184 +0. 000305 +0. 000864 +0. 000018 +0. 000888
7 +0. 000295 - 0. 000186 - 0. 000310 - 0. 000947 +0. 000005 - 0. 000862
8 +0. 000266 - 0. 000223 +0. 000275 - 0. 000929 - 0. 000006 +0. 000927

Gaya Uj ung Bat ang
Bat ang AM1 AM2 AM3 AM4 AM5 AM6
AM7 AM8 AM9 AM10 AM11 AM12
1 229808 - 22620. 5 24534. 7 - 586. 584 - 42837. 8 - 39524. 8
- 229808 22620. 5 - 24534. 7 586. 584 - 79835. 5 - 73577. 8
2 237340 24750. 1 23883. 5 - 477. 898 - 36536. 6 38074. 5
- 237340 - 24750. 1 - 23883. 5 477. 898 - 82881 85675. 8
3 239158 - 23933. 7 - 26483. 1 - 132. 679 40809 - 36724. 3
- 239158 23933. 7 26483. 1 132. 679 91606. 2 - 82944. 3
4 232334 21804. 2 - 21935. 2 110. 199 38493. 5 38209. 1
- 232334 - 21804. 2 21935. 2 - 110. 199 71182. 4 70811. 9
5 23734. 6 114020 - 826. 098 1065. 98 2531. 83 74638. 4
- 23734. 6 117580 826. 098 - 1065. 98 2424. 76 - 85319. 2
6 22819. 6 119746 - 1122. 27 - 166. 143 3433. 64 81883. 8
- 22819. 6 116174 1122. 27 166. 143 3299. 98 - 71168. 5
7 25360. 8 115788 1114. 12 - 1060. 55 - 3118. 41 80901. 5
- 25360. 8 119412 - 1114. 12 1060. 55 - 3566. 31 - 91772. 4
8 23057. 5 119760 1015. 41 - 356. 562 - 2902. 66 81815
- 23057. 5 116160 - 1015. 41 356. 562 - 3189. 78 - 71016. 3

Reaksi Tummpuan
Ti t i k AR1 AR2 AR3 AR4 AR5 AR6
1 22620. 5 254108 24534. 7 42837. 8 - 586. 584 - 39524. 8
2 - 24750. 1 267340 23883. 5 36536. 6 - 477. 898 38074. 5
3 23933. 7 269158 - 26483. 1 - 40809 - 132. 679 - 36724. 3
4 - 21804. 2 256634 - 21935. 2 - 38493. 5 110. 199 38209. 1

Anda mungkin juga menyukai