Pengantar Pemrograman Komputer untuk Bidang Teknik Sipil

advertisement
BAB I
Pengantar Pemrograman Komputer untuk Bidang Teknik
Sipil
A. Pemrograman di Bidang Teknik Sipil
Pada bidang Teknik Sipil, sejak awal dikenalkan pemanfaatan komputer untuk hitungan
perancangan atau analisis, telah dikembangkan berbagai program komputer untuk
membantu perhitungan analisis struktur baik untuk gedung bertingkat maupun jembatan,
perhitungan aliran air untuk banjir di sungai maupun dinamika aliran pada jaringan irigasi
serta hitungan-hitungan lainnya. Pada masa itu yang dibantu komputer khususnya adalah
perhitungan yang memerlukan penyelesaian persamaan matriks yang besar maupun
hitungan yang memerlukan iterasi (perulangan hitungan) yang banyak seperti
permasalahan struktur dan dinamika aliran yang telah disebut di atas.
Pada masa awal komputer, bahasa pemrograman yang digunakan di bidang Teknik Sipil
adalah bahasa FORTRAN yang merupakan kependekan dari “FORmula TRANslation”
Language. Bahasa Fortran disusun dalam rangka memfasilitasi pekerjaan-pekerjaan yang
sarat dengan hitungan penyelesaian persamaan matematika. Ada bahasa pemrograman
lain pada masa awal teknologi komputasi yang khusus untuk pengolahan data non
penyelesaian persamaan matematika seperti COBOL (COmmon Business Oriented
Language) yaitu mengolah data administrasi, keuangan dan bisnis. Bahasa Fortran pada
masa awal teknologi komputasi secara luas juga digunakan bidang-bidang teknik lain dan
sain. Perangkat lunak di bidang Teknik Sipil telah dikembangkan dalam bahasa Fortran
telah menjadi warisan generasi sekarang cukup banyak seperti pada analisis struktur
(NASTRAN, ), analisis hidrodinamika (FASTTABS, HEC, DAMBREAK), dll.
Selain itu telah banyak pula modul-modul subroutine dalam bahasa FORTRAN yang
berisi bagian hitungan-hitungan standar seperti perkalian vektor, perkalian matriks,
tranasformasi koordinat dan lain-lain yang kemudian dibendel menjadi library (misalnya
NAG Library). Belakangan, pada pengembangannya, Fortran 95 (FTN95)
mengakomodasi sebagian modul-modul operasi matriks vektor menjadi operator dalam
bahasa FTN95 itu sendiri.
Perkembangan bahasa pemrograman telah menyediakan teknologi-teknologi informatika
baru dengan berbagai inovasi yang memberi kemudahan dan perluasan fungsi atau
fasilitas-fasilitas seperti pada sistem operasi berbasis gambar / image yang semakin userfriendly, bahasa pemrograman yang mengakomodasi paralelisme, pemrograman
berorientasi obyek, komputasi berkinerja tinggi (High Performance Computing/ HPC),
dll. Berbagai bahasa pemrograman menawarkan keunggulan-keunggulan, seperti Visual
C++, Dephi, Java, Visual Basic .Net, dll. Namun tidak berarti yang paling unggul dapat
menyelesaiakan semua jenis urusan komputasi karena setiap bahasa pemrograman
mempunyai target komunitas pengguna utamanya masing-masing. Aktifitas target
komunitas pengguna ini yang menjadi perhatian dalam proses pengembangan. Dengan
demikian pemilihan bahasa pemrograman yang akan digunakan untuk mengembangkan
1
perangkat lunak perlu memperhatikan kesesuaian ini (antara urusan dan fasilitas yang
disediakan oleh bahasa pemrograman).
B. Pengenalan Komputer
Unsur-unsur komputer dapat dibedakan menjadi perangkat keras (hardware) dan
perangkat lunak (software). Perangkat keras adalah bagian-bagian mesin hitung yang
dapat dipegang dan dilihat secara fisik seperti kotak (casing), motherboard, layar
(screen), papan tompol (keyboard), mouse, dll. Perangkat lunak adalah bagian komputer
yang merespon pengguna, menggerakkan dan mengendalikan mesin hitung tersebut
bekerja dalam bentuk susunan perintah-perintah yang disimpan dalam perangkat keras
penyimpan tetap (hard disk) atau sementara (Random Access Memory/ RAM).
Gambar 1. Perangkat keras komputer.
Perangkat keras komputer dapat digolongkan dalam kategori Central Processing Unit/
CPU, Peripheral / Input dan Output Devices dan Bagian Penghubung /Interface seperti
terlihat dalam Gambar 1. Bagian CPU dapat diartikan kotak atau unit yang melakukan
proses-proses hitungan termasuk tempat penyimpan namun ada kalanya dimaksud untuk
menunjuk bagian dari motherboard yang melakukan pengolahan instruksi atau perintahperintah hitungan saja (processor dan memori registernya).
Dalam unit CPU umumnya berisi motherboard atau mainboard yang berupa pelat dari
bahan sintetis yang berlapis yang berisi komponen-komponen elektronik utama sebuah
komputer yaitu processor, RAM, dan jaringan konduktor penghubung serta bagian
interface tempat menghubungkan rangkaian elektronik pada motherboard ke board / card
lain maupun soket-soket untuk piranti input dan output. Ada kalanya beberapa komponen
peripheral dimasukkan dalam motherboard seperti graphic card (on board graphic card).
Perangkat peripheral adalah hard disk (HD), Solid State Disk (SSD), papan tombol (key
board), mouse, CD drivers, Wifi dan Bluetooth device, finger pad, camera, microphone,
dll. Perintah-perintah yang dijalankan oleh processor perlu mengenali atau diberi tahu
tentang kode-kode elektronik yang dikenali oleh perangkat peripher. Pada umumnya
vendor sistem operasi dan pembuat perangkat keras bekerja sama untuk membuat
“driver” setiap perangkat peripheral. Perangkat peripheral yang ada di dalam unit CPU
umumnya diperiksa dan dikenali oleh sistem operasi sesaat setelah menghidupkan
2
komputer (Starting dan Booting). Perangkat peripheral yang dihubungkan belakangan di
tengah waktu komputer bekerja pada umumnya langsung diperiksa setelah dihubungkan,
Jika “driver” nya sudah diinstall, maka perangkat tersebut langsung dikenali dan dapat
digunakan (plug and play). Namun jika belum ada “driver”nya atau belum diinstall,
processor tidak mengenali bagaimana memerintah perangkat peripher tersebut. Oleh
karena itu jika pengguna mempunyai peralatan baru seperti printer, scanner atau modem,
maka perlu dilakukan penginstallan driver alat baru tersebut yang pada umumnya
disertakan dalam CD dalam paket pembelian atau diunduh dari situs pabriknya sebelum
alat tersebut dapat digunakan.
Perangkat lunak komputer terdiri dari beberapa lapis. Secara ringkas dapat dikenali
adanya lapis bahasa mesin, lapis sistem operasi dan lapis software aplikasi. Dalam
kenyataannya lapis-lapis software tersebut bisa bervariasi. Lapis perangkat lunak yang
paling rendah adalah susunan perintah-perintah yang langsung mengendalikan bagaimana
isi dalam sel-sel memori komputer dibaca, diolah, disimpan lagi atau dikirim ke saluran
peripheral tertentu oleh processor. Lapis perangkat lunak terendah sering disebut bahasa
mesin. Modul-modul bahasa mesin untuk berbagai keperluan disimpan dalam library dan
digunakan oleh lapis perangkat lunak di atasnya yaitu sistem operasi. Bagaimana bentuk
instruksi yang paling rendah (langsung ke processor) dari sebuah komputer ? Processor
komputer berkomunikasi dengan kode-kode yang tersusun dalam bentuk perbedaan
tegangan. Tegangan melebihi voltase tertentu merepresentasikan nilai “1” dan tegangan
kurang dari voltase tertentu merepresentasikan nilai “0”. Karena tersusun dari dua
simbol, maka sistem kode ini disebut dengan “binary”. Kode-kode binary ini yang saling
dikirim dan diterima oleh processor, memori dan peripheral devices. Kode binary dapat
pula merepresentasikan nilai angka dengan sistem bilangan berbasis 2.
Bilangan berbasis 2: “1101” nilainya adalah 1 x 23 + 1 x 22 + 0 x 21 + 1 x 20 = 13,
bandingkan dengan,
bilangan berbasis 10: “731” = 7 x 102 + 3 x 101 + 1 x 100
Komputer menyimpan kode dan angka dalam memori juga menggunakan kode binary.
Sebuah sel lokasi memori hanya dapat menyimpan angka 0 atau 1. Ukuran sel ini sering
disebut “bit”. Pada umumnya 8 bit dibundel dalam satu wadah yang disebut “byte”.
Perhatikan bahwa 1 bit lokasi memori dapat merepresentasikan 2 keadaan atau nilai yaitu
0 x 20 dan 1 x 20 (atau 0 dan 1). Untuk 8 bit lokasi memori, terdapat 28 (256) kombinasi
yang dapat direpresentasikan. Dalam bidang grafis digunakan istilah “resolusi”. Dengan
demikian 1 byte hanya dapat digunakan untuk merepresentasikan (mewakili) 256 variasi
atau 256 nilai anga bilangan bulat.
Dalam bidang informatika 1 byte sering digunakan untuk merepresentasikan bilangan
yang tersusun dalam 2 buah sub-bundel 4 bit, sehingga masing-masing sub-bundel dapat
ditulis dengan bilangan berbasis 16 (hexadesimal atau disingkat hex) yaitu 0, 1, 2, 3, 4, 5,
6, 7, 8, 9, A, B, C, D, E dan F. Contoh:
Memori 1 “byte” menyimpan angka “E7” = 14 x 161 + 7 x 160 = 224 + 7 = 231,
Dalam binari “E7” adalah “1110 0111”
Binari “0110 1010” = Hexadesimal “6A” = Desimal “106”
Susunan kode binary tersebut, baik yang merepresentasikan perintah, angka atau data lain
membentuk modul-modul fungsional yang digunakan oleh lapis perangka lunak di
3
atasnya atau sistem operasi. Sistem operasi adalah lapis perangkat lunak yang melayani
pengguna sejak komputer mulai siap merespon apa-apa yang diperintahkannya. Pengguna
tidak berhadapan dengan bahasa mesin maupun dengan perangkat lunak aplikasi setelah
ia menghidupkan komputer, namun dengan sistem operasi dalam bentuk apapun (text
base atau graphic base).
Sistem operasi berbasis text (misalnya Unix, Linux, atau DOS) akan “menyambut”
pengguna dengan jendela berlatarbelakang putih atau hitam dan akan menunggu
pengguna mengetikkan kata, karakter dan bilangan untuk memerintahkan komputer
melakukan sesuatu (misalnya untuk menayangkan isi folder root dalam hard disk, diketik
“dir C:\”). Sistem operasi berbasis grafik (Windows, Ubuntu atau Mac) akan menyambut
pengguna dengan gambar latar belakang gambar pemandangan atau gambar lain yang
dapat oleh pengguna, latar depan menu bar dan icon-icon untuk fungsi-fungsi tertentu
dan menunggu pengguna mengklik salah satu icon untuk direspon sesuai fungsinya.
Icon-icon pada umumnya digunakan untuk mengaktifkan aplikasi komputer, yaitu
perangkat lunak lapis ketiga. Software-software aplikasi melayani berbagai keperluan
termasuk diantaranya adalah keperluan pengguna menuliskan program komputer untuk
membuat software aplikasi baru. Klik pada icon-icon oleh sistem operasi dihubungkan
dengan urutan perintah-perintah khusus dalam bahawa mesin sesuai fungsi tomboltombol tersebut. Pengguna tidak lagi dihadapkan pada perintah-perintah yang rumit dan
pelik yang prosessor diminta mengerjakannya.
C. Pemrograman
Pengertian pemrograman komputer perlu dibedakan dengan pengertian penggunaan
perangkat lunak aplikasi (application software) untuk keperluan atau hitungan tertentu
seperti menggunakan software AutoCad untuk menggambar tampang saluran atau
fondasi bangunan. Pemrograman komputer di sini dimaksudkan sebagai menyusun
langkah-langkah atau perintah-perintah pekerjaan tertentu secara rinci untuk suatu
pekerjaan yang dapat dilakukan oleh komputer. Pemrograman komputer menghasilkan
perangkat lunak aplikasi. Sejauh mana kerincian langkah-langkah dalam program
komputer ? Jawabannya adalah tergantung “kepandaian” bahasa komputer yang kita
pakai.
Sebagai contoh, jika kita akan meminta komputer untuk mem’print’ suatu teks yang kita
inputkan, maka kita dihadapkan pada pertanyaan apakah komputer begitu saja tahu satu
perintah tunggal untuk pekerjaan tersebut. Pada suatu keadaan mungkin bisa, karena
bahasa komputer yang digunakan telah menyiapkan sebuah program (koleksi susunan
perintah-perintah) yang disimpan dalam ‘library’ yang membantu kita dengan
menjediakan pelayanan untuk mengarahkan perintah dan bahan yang akan diprint pada
channel atau port mana untuk sebuah perintah “print” tersebut.
Pada keadaan lain, dapat ditemui komputer (dalam hal ini sistem operasi atau software
aplikasi) belum menyediakan susunan perintah-perintah tersebut sehingga diperlukan
untuk dipersiapkan user / programer beberapa susunan langkah-langkah untuk diberikan
kepada komputer supaya dapat melakukan pekerjaan tersebut. Misalnya jika belum ada
programnya untuk keperluan menjalankan perintah print, maka untuk dapat
menjalankannya diperlukan tahapan langkah perintah yang meliputi perintah membuka
4
atau menghubungkan printer yang diinginkan dengan channel/ saluran tertentu, dan
kemudian memerintah komputer untuk mengirim data teks yang akan diprint dengan
kode-kode tertentu.
Hal lain yang semacam adalah pada kasus penggunaan jenis printer yang tidak populer
pada komputer dengan sistem operasi yang tidak populer pula sehingga tidak tersedia
printer drivernya (kode-kode khusus dari pabrik pembuat hardware printer untuk
menjalankan bagian-bagian dari produknya).
Perhatikan kata-kata baru yang saudara mungkin masih asing (library,
default, yang lain jika ada). Carilah pengertian kata-kata tersebut, diskusikan
dengan teman-teman jika ragu !
Urutan perintah-perintah tersebut untuk kasus yang sederhana dapat hanya berupa urutan
perintah yang linier (maksud kata ‘linier’ adalah tidak ada pengulangan dan percabangan,
bukan seperti pengertian ‘linier’ yang berteman dengan istilah ‘kuadratis’, ‘kubik’, dan
seterusnya).
Sebagai contoh, untuk sebuah pekerjaan sederhana dan pendek seperti komputer diminta
untuk membantu
“membaca sebuah angka dari keyboard kemudian menyimpan kedalam hard disk”,
dari sisi pengguna komputer pekerjaan tersebut adalah
“memasukkan/ menginputkan angka pada keyboard dengan meksud untuk disimpan
dalam hard disk oleh komputer”.
Cobalah cermati dan fahami beda dua pada judul pekerjaan tersebut. Bagi seseorang yang
akan membuat program komputer ungkapan yang pertama yang harus digunakan sebagai
dasar penyusunan langkah-langkah. Programer harus membayangkan bagaimana ia
seolah-olah sebagai komputer yang akan mengerjakan langkah-langkah tersebut dengan
kerincian sesuai ‘kosa kata’ yang dimiliki dalam bahasa pemrograman komputer yang
digunakan.
Mungkin kita akan terpikir bahwa langkah pemrograman untuk pekerjaan tersebut (yang
akan dikerjakan komputer) adalah hanya:
membaca angka dari keyboard, dan
menyimpannya ke dalam hard disk
Namun demikian sebelumnya pertanyaan apakah ada atau tersedia satu perintah untuk
mengerjakan butir satu atau butir dua tersebut di atas harus terjawab. Jika jawabnya ‘ya’
maka dua butir perintah tersebut di atas cukup. Tinggal disesuaikan ‘tata bahasa’nya saja.
Jika jawabnya ‘tidak’, maka harus dicari satu langkah yang tidak ada perintahnya (‘kosa
kata’ nya) dalam bahasa pemrograman komputer yang digunakan tersebut terdiri dari
urutan langkah-langkah yang lebih rinci apa saja, yang tersedia dalam ‘perbendaharaan
kata’ dalam bahasa tersebut. Oleh karena itu untuk dapat menyusun program komputer
diperlukan pengetahuan tentang bahasa pemrograman yang akan digunakan,
‘perbendaharaan kata’ nya dan ‘tata bahasa’ nya.
Salah satu bahasa pemrograman yang mudah diakses adalah Visual Basic® for
Application (VBA) yang merupakan bagian dari perangkar lunak Microsoft Excel (MS
5
Excel). Langkah-langkah pemrograman dengan VBA dalam MS Excel disebut ‘macro’.
Untuk dapat menggunakan VBA ini, macro harus diaktifkan terlebih dahulu. Cara
mengaktifkan macro sedikit bervariasi pada beberapa versi MS Excel. Pengguna dapat
mencari prosedurnya yang sesuai melalui fasilitas Excel Help. Umumnya terletak pada
menu ‘Option’ atau ‘Preference’ (yang berada di pulldown menu Excel pada MS Excel
Office for Mac 2011).
Dengan menggunakan VBA, data yang digunakan atau dibaca oleh program dapat
diletakkan dalam worksheet. Demikian pula hasil hitungan program VBA dapat ditulis ke
worksheet.
Contoh berikut adalah menyimpan angka dari worksheet di sel B3 ke dalam variabel A.
A = Range(“B3”).value
atau
A = Cell(3,2).value
Dalam bahasa FORTRAN untuk membaca angka dari keyboard diperlukan:
jenis variabel yang sesuai dan nama variabel yang akan menangkap atau
menyimpan sementara dalam memory komputer, misalnya variabel dengan jenis
bilangan bulat dan diberi nama “A”. Kalau tidak sesuai dengan “default” maka
variabel tersebut harus didefinisikan terlebih dahulu dengan statement:
INTEGER*2 A
demikian juga nomor saluran untuk menangkap angka yang diinputkan melalui
keyboard dapat menggunakan ‘default’nya yaitu saluran no 5. Sehingga dapat
ditulis perintah: READ (5,*) A yang artinya “tunggu dan tangkap informasi yang
dimasukkan melalui keyboard sampai diakhiri dengan menekan tombol <return>
kemudian simpan sementara di lokasi memori komputer yang ditunjuk dengan
simbol A”
kolom
baris
Lengkapnya:
baris
kolom
INTEGER*2 A
READ (5,*) A
OPEN (4, FILE=’tempat.txt’)
WRITE (4,*) A
CLOSE (4)
Perhatikan ada 3 baris perintah kepada komputer untuk meminta menyimpan nilai yang
sementara disimpan dalam variabel A ke dalam file pada hard disk yang diberi nama
“tempat.txt”. Baris yang pertama dari 3 baris itu untuk membuka saluran, yaitu saluran
nomor 4 yang dihubungkan dengan file yang diberi nama “tempat.txt”. Baris berikutnya
6
menuliskan isi variabel A ke dalam file tersebut (yaitu di hard disk). Baris terakhir
menutup saluran nomor 4.
Demikianlah salah satu contoh yang dilakukan dalam pemrograman komputer. Sudah
dapatkah saudara membayangkan urutan-urutan perintah untuk urusan yang lain ? Kalau
belum silakan membaca beberapa material terkait dengan bahasa FORTRAN dan
beberapa contoh program-program sederhana. Kemudian cobalah membuatnya dan
merasakan kegagalan dan keberhasilannya.
Untuk mencoba menyusun dan menjalankan program dengan bahasa FORTRAN dapat
digunakan SilverFrost Plato Integrated Development Environment / SFP IDE
(FORTRAN 1995 / FTN95) dari Salford UK yang dapat didownload dari
http://www.silverfrost.com/32/ftn95/ftn95_personal_edition.aspx , yang bekerja pada
sistem operasi Windows 32 bit. Bagi yang menggunakan sistem operasi 64 bit dapat
menginstall aplikasi virtual machine (misalnya VMware atau VirtualBox:
www.oracle.com/technetwork/server-storage/virtualbox/downloads/)
kemudian
menginstall di dalamnya sistem operasi Windows 32 bit.
Tugas Individual:
Buka Plato IDE. Tuliskan pada lembar kerja perintah-perintah berikut ini.
Program Coba
Print*, ‘Berhasil’ atau Write(*,*) ‘Berhasil’
End
Sudah berhasil ? Kalau belum periksa lagi program saudara dan coba lagi.
Coba lagi menulis program baru sebagai berikut ini.
Susun urutan langkah dengan bahasa awam langkah-langkah rinci yang dapat
diserahkan kepada komputer untuk mengerjakannya pekerjaan menerima 3 angka
berturut-turut kemudian menyimpan jumlahnya.
Langkah-langkah rinci:
menerima angka pertama dan disimpan ke dalam variabel 1,
menerima angka kedua dan disimpan ke dalam variabel 2,
menerima angka ketiga dan disimpan kedalam variabel 3,
menjumlah nilai dalam variabel 1, variabel 2 dan variabel 3, kemudian
menyimpan ke dalam variabel 4,
tulis hasil terakhir yaitu nilai variabel 4
alternatifnya:
menerima angka pertama dan disimpan ke dalam variabel 1,
menerima angka kedua, dijumlahkan dengan nilai variabel 1 dan hasilnya
disimpan ke dalam variabel 1 lagi (dioverwrite),
menerima angka ketiga, dijumlahkan dengan nilai variabel 1 dan hasilnya
7
disimpan kedalam variabel 1 lagi (dioverwrite),
tulis hasil terakhir yaitu nilai variabel 1
Sementara ‘menerima 3 angka’ langsung di dalam program
Program Jumlah01
a=7
b=6
c = 11
d=a+b+c
print*, d
End
alternatif
Program Jumlah02
a=7
a=a+6
a = a +11
print*, a
End
Jika ‘menerima 3 angka’ dari keyboard, maka harus ada perintah baca dan tulis
Program Jumlah03
print*,’masukkan angka pertama kemudian tekan Enter, ’
read(*,*) a
print*,’masukkan angka kedua kemudian tekan Enter, ’
read(*,*) b
print*,’masukkan angka ketiga kemudian tekan Enter, ’
read(*,*) c
d=a+b+c
print*, d
End
alternatif
Program Jumlah04
print*,’masukkan angka pertama kemudian tekan Enter, ’
read(*,*) a
print*,’masukkan angka kedua kemudian tekan Enter, ’
read(*,*) b
a=a+b
print*,’masukkan angka ketiga kemudian tekan Enter, ’
read(*,*) b
a=a+b
print*, a
End
Diskusikan dengan teman-teman saudara. Silahkan membaca buku apa saja tentang
pemrograman komputer. Di Perpustakaan T Sipil atau Browsing di Internet terdapat
beberapa buku tentang Fortran. Hasil dikumpulkan minggu depan sebelum kuliah.
8
9
BAB II
Menyusun dan menjalankan Program Komputer
Menggunakan Plato IDE dengan Bahasa Fortran 95
Menu pada SFP IDE
Tampilan jendela SFP IDE seperti gambar berikut ini.
1
0
BAB III
Pemrograman dan Algoritma
1
1
BAB IV
Unsur-unsur Bahasa Fortran 95
1
2
BAB V
Pemrograman Visual dan Dikendalikan Kejadian (Event
Driven)
1
3
BAB VI
Pemrograman Berorientasi Obyek (Object Oriented
Programming / OOP)
1
4
BAB VII
Visual Basic Applications dan Visual Basic
1
5
BAB VIII
Contoh-contoh Pemrograman Sederhana dalam Teknik
Sipil dan Lingkungan
1
6
Download