1. PENDAHULUAN
1.1 Latar belakang
Masyarakat Indonesia banyak yang menggantungkan hidup pada laut, baik dalam kegiatan pelayaran, perencanaan dermaga dan pelabuhan, perencanaan
ataupun pengembangan wilayah pesisir dan pantai, sehingga diperlukan data aktivitas laut seperti angin untuk mendukung kegiatan masyarakat WALHI,
2011. Banyak badan internasional penyedia data khusunya data angin secara
realtime NOAA, dan IFREMER, yang menyediakan data secara gratis. Permasalahan yang dihadapi pengguna data oseanografi yang berada di Indonesia
adalah koneksi yang lambat untuk mengunduh data, data yang diunduh terlalu besar karena berisi data satu dunia. Badan Meteorologi Klimatologi dan
Geofisika BMKG sudah melakukan pengembangan informasi data angin namun belum dapat diakses secara bebas.
Prototipe server penyedia data lokal untuk daerah Indonesia berbasis web yang akan dikembangkan pada penelitian ini menjawab kebutuhan pengguna data
di Indonesia. Prototipe server penyedia data lokal mempermudah pihak-pihak yang berkepentingan untuk memperoleh data klimatologi dan oseanografi,
khususnya data angin secara realtime karena server di akses dengan koneksi lokal yang relatif lebih cepat dibandingkan dengan koneksi internasional
Prototipe server penyedia data lokal menyediakan data dengan ukuran yang lebih kecil daripada data asli yang berasal dari website penyedia data
internasional, karena area jangkauan data adalah Indonesia. Ukuran file yang lebih kecil dan koneksi server yang lokal akan mempercepat dan mempermudah
2 pengguna data untuk mengakses data yang dibutuhkan. Penelitian ini akan
difokuskan pada data angin berformat NetCDF yang berasal dari website IFREMER, dan mempunyai luasan 0.25 ° x 0.25°.
1.2 Tujuan
Membuat prototipe server lokal penyedia data untuk daerah Indonesia berbasis web sehingga mempermudah pihak-pihak yang berkepentingan untuk
memperoleh data klimatologi dan oseanografi, khususnya data angin dengan cepat dan mudah.
2. TINJAUAN PUSTAKA
2.1 Sistem Manajemen Basis Data
Data merupakan fakta mengenai suatu objek seperti manusia, benda, peristiwa, konsep, keadaan dan sebagainya yang dapat dicatat dan mempunyai arti
implisit. Data dapat dinyatakan dalam bentuk angka, karakter atau simbol, sehingga bila data dikumpulkan dan saling berhubung maka dikenal dengan istilah
basis data atau database Ramez, 2000. Basis data merupakan suatu kumpulan data yang disimpan secara bersama-sama pada suatu media tanpa ada redundansi
data yang tidak diperlukan atau pengulangan data satu sama lain sehingga mudah untuk digunakan atau ditampilkan kembali Sutanta, 1996.
Satu sistem manajemen basis data atau Data Base Management System DBMS adalah sistem yang berisi satu koleksi data yang saling berelasi dan satu
set program untuk mengakses data tersebut. DBMS terdiri dari satu set basis data dan set program pengelola untuk menambah, menghapus, mengambil dan
membaca data Kristanto, 1994. Pada umumnya database bersifat intergrated dan shared. Intergrated
berarti basis data merupakan penggabungan beberapa file data yang berbeda dengan membatasi pengulangan baik keseluruhan file ataupun sebagian. Shared
sendiri artinya adalah data individu dalam basis data dapat digunakan secara bersamaan antara beberapa pengguna yang berbeda Robby et al, 2009.
Beberapa Kelebihan digunakannya sistem basisdata:
Padat : tidak perlu lagi membuat arsip kertas dalam ukuran besar.
4
Kecepatan : mesin dapat mendapatkan kembali dan mengubah data jauh lebih cepat daripada manusia yang dapat lakukan.
Mengurangi pekerjaan yang membosankan.
Aktual : informasi yang terbaru dan akurat selalu tersedia di setiap waktu ketika dibutuhkan.
Menurut Kristanto 2002 ada beberapa syarat untuk merancang basis data, yaitu :
1. Redundansi dan Inkonsisten Data Redudansi adalah data yang sama di beberapa tempat. Hal ini dapat
menyebabkan inkonsisten data, karena jika ada data yang harus dirubah harus merubah satu per satu. Selain itu juga menyebabkan pemborosan ruang dan
biaya. 2. Kesulitan Akses Data
Data yang kita miliki mudah untuk diakses dengan program yang familiar dan DBMS sudah dapat memenuhi syarat tersebut.
3. Isolasi Data Untuk Standarisasi Apabila data yang kita miliki tersebut merupakan beberapa file, maka
haruslah dalam format yang sama sehingga tidak menyulitkan pengaksesan data.
5 4.
Multiple User Salah satu alasan mengapa basis data dibuat karena nantinya basis data
digunakan oleh banyak orang dan waktu yang tak terbatas, sehingga basis data yang baik harus tidak bergantung dan menyatu dengan programnya.
5. Masalah Keamanan Sistem basis data haruslah mempunyai program yang dapat mengatur
akses dari user. 6. Masalah Integritas
Apabila terdapat dua file yang saling berkaitan maka harus ada field rinci yang mengkaitkan keduanya.
7. Masalah Kebebasan Data Sistem basis data yang baik harus menjamin bahwa suatu saat struktur data
dapat berubah, maka program tidak perlu dirubah dan tetap dapat mengakses data.
2.2 Sistem Jaringan
Jaringan network dalam bidang Information Technology IT diartikan sebagai dua atau lebih komputer yang dihubungkan sehingga dapat berhubungan
dan berkomunikasi, sehingga akan menimbulkan efisiensi, sentralisasi dan optimasi kerja. Riyanto, 2003.
Jaringan adalah suatu set perangkat keras dan lunak di dalam suatu sistem yang memiliki suatu aturan tertentu yang mengatur seluruh aktivitas dan perilaku
anggota-anggotanya dalam melakukan suatu aktivitas. Komponen dari suatu jaringan adalah node dan link. Node adalah titik yang dapat menerima input data
6 ke dalam jaringan atau menghasilkan output informasi atau kedua-duanya seperti
PC atau komputer mikro dan modem, sedangkan link adalah kanal atau jalur transmisi untuk arus informasi atau data diantara node berupa kabel, sistem
gelombang mikro, laser atau sistem satelit. Satu komputer yang terkoneksi ke jaringan menjadi satu node dari jaringan tersebut. Komputer juga dapat menjadi
node sepanjang mereka dapat berkomunikasi melalui jaringan, dengan mengirim dan menerima data dari node-node yang lain. Istilah
“host” secara umum diartikan sebagai komputer yang terkoneksi ke jaringan yang dapat memberikan
layanan jaringan network service. Data dikirimkan dari satu komputer ke komputer lain dalam jaringan dibawa oleh medium jaringan Riyanto, 2003.
Jaringan dapat bermanfaat sebagai sharing informasi, sharing hardware, dan sentral administrasi dan support jaringan.
2.2.1 Internetworking
Tujuan dari Transmission Control ProtocolInternet Protocol TCPIP adalah untuk membangun suatu koneksi antar jaringan network,
dimana biasa disebut internetwork, atau internet, yang menyediakan pelayanan komunikasi antar jaringan yang memiliki bentuk fisik yang
beragam. Tujuan yang jelas adalah menghubungkan host pada jaringan yang berbeda, atau mungkin terpisahkan secara geografis pada area yang luas.
Gambar 1 merupakan contoh jaringan internet dimana keduanya terlihat dalam 1 logika jaringan. Internet dapat digolongkan menjadi beberapa grup
jaringan, antara lain:
7 Backbone: Jaringan besar yang menghubungkan antar jaringan
lainnya. Contoh : NSFNET yang merupakan jaringan backbone dunia di Amerika, EBONE yang merupakan jaringan backbone di Eropa, dan
lainnya. Jaringan regional, contoh: jaringan antar kampus.
Jaringan yang bersifat komersial dimana menyediakan koneksi menuju backbone kepada pelanggannya.
Jaringan lokal, contoh: jaringan dalam sebuah kampus. Aspek lain yang penting dari Transmission Control ProtocolInternet
Protocol TCPIP adalah membentuk suatu standarisasi dalam komunikasi. Tiap-tiap bentuk fisik suatu jaringan memiliki teknologi yang berbeda-beda,
sehingga diperlukan pemrograman atau fungsi khusus untuk digunakan dalam komunikasi. Transmission Control ProtocolInternet Protocol TCPIP
memberikan fasilitas khusus yang bekerja diatas pemrograman atau fungsi khusus tersebut dari masing-masing fisik jaringan. Sehingga bentuk arsitektur
dari fisik jaringan akan tersamarkan dari pengguna dan pembuat aplikasi jaringan. Dengan TCPIP, pengguna tidak perlu lagi memikirkan bentuk fisik
jaringan untuk melakukan sebuah komunikasi.
8 Gambar 1. Jaringan internet Dhoto, 2007
Gambar 1 diatas menjelaskan bahwa untuk dapat berkomunikasi antar 2 jaringan, diperlukan komputer yang terhubung dalam suatu perangkat yang
dapat meneruskan suatu paket data dari jaringan yang satu ke jaringan yang lain. Perangkat tersebut disebut Router. Selain itu router juga digunakan
sebagai pengarah jalur routing. Internet Protocol IP adalah sebuah alamat yang berguna untuk
mengidentifikasi sebuah host. Sebuah host yang memiliki beberapa perangkat jaringan interface, seperti router, maka setiap interface harus memiliki sebuah
alamat Internet Protocol IP yang unik sebagai pengidentifikasi.
2.2.2 Model Client Server
Model clientserver merupakan sistem yang memisahkan secara jelas, mana yang dapat memberikan layanan jaringan server dan mana yang hanya
menerima layanan client. Beberapa komputer diatur sebagai server yang
9 memberikan segala sumberdaya resource dari jaringan printer, modem, saluran
dan lain-lain kepada komputer lain yang terkoneksi ke jaringan yang berfungsi sebagai client. Untuk dapat berkomunikasi antara server dan client dan diantara
mereka server menggunakan aplikasi jaringan yang disebut server program dan client berinteraksi dengan server menggunakan program client.
Server merupakan progam yang dapat menerima permintaan request, melakukan pelayanan yang diminta, kemudian mengembalikan sebagai reply.
Server dapat melayani multi request bersamaan.
Gambar 2. Model client-server Anonim, 2010
Gambar 2 diatas menjelaskan bahwa server bekerja dengan cara menunggu request pada port yang sudah terdaftar, sehingga client dapat dengan
mudah mengirimkan data ke port pada server.
2.3 Format Data Kelautan
Berdasarkan NESL’s Climate Global Dynamics 2010 data atmosfer
dan oseanografi dapat diarsipkan dalam beberapa bentuk karakter format, native format, paket biner atau dalam salah satu dari beberapa format data standar
10 ilmiah. Pengguna dataset harus mengetahui informasi penyimpanan
data. Terdapat beberapa metode yang berbeda untuk menyimpan baik karakter dan nilai-nilai numerik. Biasanya, deskripsi rinci tentang format data yang
disediakan dan, seringkali, perangkat lunak untuk mengakses data sudah tersedia.
Unsur terkecil dari informasi yang terkandung dalam komputer disebut “bit”. Setiap bit dapat “on” atau “off” dan diwakili oleh “1” atau “0”. Komputer
menyimpan teks dan angka sebagai rangkaian dari bit. Rangkaian 8-bit disebut byte dan sering digunakan untuk menggambarkan karakter
teks, misalnya „a’, „q’, „;’, „6’, dan lain-lain. Memerintahkan urutan byte disebut dengan word. Pada
umumnya, komputer workstation dan super komputer yang digunakan oleh para ilmuwan atmosfer dan oseanografi memiliki panjang data 3264-bit. Jika merujuk
byte ke karakter, kemudian kata 32-bit bisa mengandung 4 karakter, sedangkan kata 64-bit bisa berisi 8 karakter. Sebuah teks komputer yang digunakan untuk
menyimpan nilai numerik float terdiri dari tiga segmen, yakni bit penanda, karakteristik bias eksponen dan sebuah mantissa. Sebuah integer diwakili oleh
dua segmen, yakni bit tanda dan rangkaian bit atau sebuah data 32-bit dapat menyimpan nomor float dengan enam sampai tujuh presisi desimal sementara data
64-bit dapat menyimpan nomor dengan tiga belas sampai empat belas presisi desimal.
Workstation yang biasanya beroperasi dengan kata-kata 32-bit juga bisa menggunakan dan menyimpan data angka dalam modus 64-bit dengan
menggunakan pernyataan deklarasi tipe dalam FORTRAN double precision dan C int double dan long. Karakteristik arsitektur perangkat keras komputer dapat
menyebabkan beberapa kesulitan saat menggunakan data biner yang dibuat pada
11 mesin yang berbeda. Namun, perangkat lunak sering tersedia untuk mengubah
data ke bentuk yang sesuai. Terdapat sejumlah format data standar ilmiah. Dokumentasi dan
perangkat lunak yang diperlukan untuk mengimplementasikan format ini umumnya tersedia melalui jaringan computer. Arsitektur format standar
independen yang umum digunakan untuk data atmosfer dan oseanografi mencakup: GRIB GRId in Binary, CDF Common Data Format, HDF
Hierarchical Data Format, BUFR Binary Universal Format Representation, dan netCDF network CDF Setiawan, 2008.
2.3.1 GRID in Binary GRIB
GRIB adalah standar World Meteorological Organization WMO format data yang merupakan metode yang efisien untuk transmisi dan pengarsipan untuk
volume data meteorologi dan oseanografi dua dimensi yang besar. GRIB adalah standar yang digunakan oleh pusat operasional meteorologi terbesar di dunia
NMC dan ECMWF. Sebuah format GRIB baru, yang dikenal sebagai GRIB2, dinyatakan beroperasi pada bulan November 2001. GRIB2 Informasi secara
umum dan teratur didistribusikan dalam dataset binary lebih fleksibel dibandingkan dengan GRIB asli. Hal ini dapat digunakan untuk menangani data
radar dan satelit dan memungkinkan untuk kompresi data yang lebih baik. 2.3.2
Common Data Format CDF
CDF pada awalnya dikembangkan oleh NASA Goddard sekitar tahun 1980 sebagai interface dan toolkit untuk arsip dan akses ke data multidimensi
pada VAX menggunakan VMS FORTRAN. Selama bertahun-tahun telah
12 berkembang menjadi standar mesin-independen dan sering digunakan oleh
NASA untuk menyimpan data luar angkasa dan data ilmu bumi.
2.3.3 Hierarchical Data Format HDF
HDF adalah format data umum yang dibuat oleh NCSA, ada dua versi utama, yakni HDF4 dan HDF5 yang diperkenalkan pada tahun 1999. HDF4 tidak
kompatibel dengan HDF5. HDF menekankan format umum tunggal untuk data, di mana banyak interface dapat dibangun. Sebuah interface netCDF untuk HDF4
disediakan tetapi tidak ada dukungan untuk pencampuran struktur HDF dan netCDF. Dengan kata lain, perangkat lunak HDF4 dapat membaca HDF dan
netCDF tetapi hanya bisa menulis di HDF4. Baik HDF4 dan HDF5 lebih fleksibel daripada netCDF tetapi juga lebih rumit. HDF sering digunakan untuk
arsip dan mengirimkan gambar raster.
2.3.4 Binary Universal Format Representation BUFR
BUFR adalah sebuah data format standar WMO World Meteorological Organization untuk representasi data meteorologi dan oseanografi. Meskipun
dapat digunakan untuk semua jenis data, fungsi utamanya adalah untuk mewakili data pengamatan, misalnya dari stasiun, raobs dan kapal. Hal ini dirancang untuk
mengurangi redundansi untuk transmisi yang efisien melalui GTS dan untuk mengurangi waktu komputer yang diperlukan untuk memecahkan kode informasi.
2.3.5 Network Common Data Form NetCDF
Network Common Data Form atau netCDF merupakan sebuah interface untuk mengakses fungsi library data untuk menyimpan dan mengambil data dari
bentuk array. Array adalah dimensi yang memiliki struktur empat persegi
13 panjang yang berisi data dengan tipe yang sama Rew et al, 2010. Sejak tahun
1988, netCDF telah merekomendasikan penggunaan konvensi untuk mewakili data dan untuk mendorong interoperabilitas antara penyedia data, pengembang
aplikasi, dan pengguna data. Konvensi dimaksudkan agar format yang ditetapkan dapat berlaku umum untuk setiap jenis data yang direpresentasikan dalam bentuk
netCDF, termasuk data yang tidak berhubungan dengan kebumian, seperti:
Penggunaan nama yang sama untuk suatu variabel sebagai dimensi untuk mewakili koordinat sederhana.
Atribut untuk menyimpan string representasi dari unit suatu pengukuran
Atribut untuk mewakili data yang belum ditulis atau yang hilang.
Sebuah konvensi atribut yang menyatakan disiplin, spesifik, dan khusus.
NetCDF merupakan serangkaian perangkat lunak perpustakaan dan self- describing mesin independen format data yang mendukung penciptaan, akses, dan
berbagai array berorientasi data ilmiah. Proyek homepage yang diselenggarakan oleh Unidata Program di University Corporation for Atmospheric Research
UCAR. Mereka juga pemimpin sumber perangkat lunat NetCDF, standar pengembangan, update, dan lain-lain. Format ini merupakan standar terbuka.
Proyek ini didukung aktif dan baru saja diluncurkan versi 4.0 2008 dimana hal ini sangat meningkatkan perkembangan data model bagi pengguna data HDF5.
NetCDF versi 4 rilis dengan membawa tiga aspek terdiri dari Hartnett dan Rew, 2008:
14 Sebuah konsep dari suatu model data
Kumpulan format data binary Kumpulan dari APIs untuk C Fotran Java
2.3.5.1 Model Data NetCDF
Rew 2008 menjelaskan format data tingkat rendah yang menerapkan konvensi data dengan pemetaan abstraksi yang merupakan subjek konvensi untuk
perwakilan mereka pada media penyimpanan, data konvensi, memanfaatkan format data, menambahkan lebih tinggi tingkat abstraksi dan objek data seperti
sistem koordinat model data yang paling abstrak dan konseptual lapisan paling sederhana, dan dapat menggunakan data dalam konvensi yang mewakili maksud
dari penyedia format data. Biasanya mengimplementasikan model data secara langsung tidak ada konvensi yang digunakan, tapi konvensi dapat meningkatkan
model data dengan mendukung abstraksi tambahan atau penyederhanaan. Dua model data penting untuk netCDF :
Model netCDF klasik, digunakan untuk netCDF-3 dan versi sebelumnya.
Model data yang ditingkatkan disebut sebagai Common Data Model CDM, digunakan untuk netCDF-4 dan versi selanjutnya.
Model netCDF klasik merupakan data set menggunakan nama variabel, dimensi, dan atribut. Variabel array multidimensi yang semua tipe unsur
variabelnya sama juga bisa memiliki atribut dan terkait.. Setiap variabel memiliki bentuk, ditentukan oleh dimensi dan sumbu bernama yang memiliki panjang satu
dimensi. Berbagi variabel menunjukkan grid umum. Salah satu dimensi mungkin memiliki panjang tak terbatas, sehingga data dapat secara efisien ditambahkan ke
15 variabel bersama. Variabel atribut memiliki salah satu dari enam tipe data
primitif, yakni byte, short, int char, float, atau double.
Gambar 3. Data netCDF model klasik R.Rew, 2009.
Meskipun model data netCDF-3 memiliki model yang sederhana, namun model data ini juga memiliki keterbatasan yang signifikan yakni kurang
mendukungnya netCDF model klasik untuk struktur data array multidimensi dan list. Secara khusus nest array struktur dan ragged arrays tidak mudah diwakili.
Hanya satu array multi dimessi untuk setiap file berarti beberapa dataset harus menggunakan beberapa file. Karakter array dapat mewakili string, tetapi
membutuhkan pembatasan yang tegas dengan panjang array. Kurangnya jenis dan tipe unsigned integer 64-bit sehingga menghalangi beberapa aplikasi. Format
netCDF yang klasik tidak mendukung kompresi variabel secara individu, penambahan file skema, misalnya menambahkan variabel baru dan dimensi, bisa
sangat tidak efisien. Akhirnya, format data yang klasik memiliki bias terhadap
16 little-endian platforms, karena membutuhkan lebih banyak konversi byte-
swapping untuk mengakses data pada little-endian platforms. Model netCDF-4 data diimplementasikan dengan menggunakan lapisan
HDF5 berbasis penyimpanan. Dalam model data yang disempurnakan, file memiliki kelompok level tinggi tanpa nama. Setiap kelompok mungkin berisi
satu atau lebih variabel, dimensi, atribut, kelompok, dan jenis. Variabel adalah array multidimensi yang masih merupakan elemen yang semuanya dari jenis yang
sama, variabel masing-masing memiliki atribut, dan bentuk setiap variabel adalah ditentukan oleh dimensi, dan dapat dipergunakan bersama. Namun, dalam model
data yang disempurnakan, satu atau lebih dimensi mungkin memiliki panjang tak terbatas, sehingga data dapat secara efisien ditambahkan ke variabel. Variabel
dan atribut memiliki salah satu dari dua belas tipe data primitif atau salah satu dari empat jenis tipe user-defined. Model data netCDF dapat lebih jelas dilihat melalui
Gambar 4.
Gambar 4. UML dari data model netCDF yang disempurnakan netCDF-4 merah Rew, 2008.
17
2.4 Wget
Wget merupakan utility download non-interaktif yang gratis untuk mengunduh file dari website. Wget mensupport HTTP Hypertext Transfer
Protocol , HTTPS Hypertext Transfer Protocol Secure dan FTP File Transfer Protocol, wget bekerja sama baiknya di bawah HTTP proxy Niksic, 2009.
Wget merupakan pendownload non-interaktif ini berarti pengguna tidak harus selalu login, sebagian besar web browser untuk mendownload file
diperlukan user untuk terus login, dengan menggunakan wget saat pengguna sedang tidak log on maka wget untuk bekerja sendiri untuk menyelesaikan suatu
tugas. Berikut beberapa fitur dari wget Niksic, 2009: Wget bisa mengunakan link Hypertext Markup Language HTML,
Extensible Hypertext Markup Language XHTML, dan halaman Cascading Style Sheet CSS untuk membuat versi lokal dari website
yang jauh, wget juga membuat struktur derektori yang sama dengan struktur dari website asli yang biasanya disebut recursive downloadin.
Wget juga menghormati Robot Exclusion Standard „robots.txt’.
Wget dapat membaca informasi time-stamp yang diberikan oleh server HTTP dan FTP. Wget dapat melihat apakah remote file telah berubah dan
secara automatis mendownload file yang baru, ini yang membuat wget sangat tepat untuk melakukan mirroring dari site FTP sama baiknya
dengan homepage. Wget didesain untuk mendownload pada jaringan yang lambat dan tidak
stabil, jika pengunduhan gagal karena masalah koneksi wget akan terus berusaha sampai semua file berhasil diunduh, jika server mensupport
18 regetting ini akan menginstruksikan untuk melanjutkan pengunduhan dari
file yang belum diunduh. Wget mendukung server proxy yang mana bisa meringankan server,
mempercepat pengunduhan dan mengakses file di dalam firewall. Wget menggunakan pasif FTP untuk mengunduh sebagai standar.
Wget mensupport IP versi 6 yang merupakan generasi selanjutnya. Binary dibangun dengan IPv6 yang mensupport dengan baik pada IPv6 dan IPv4
Fitur dari wget mempunyai kemampuan untuk memyempurnakan link yang ingin diikuti.
Progress pengunduhan individual file dilacak dengan menggunkan process gauge yang dilambangkan dengan non-interaktif dot. Secara standar,
setiap titik menjelaskan data yang diterima sebesar 1 KB.
2.5 Python
Python Software Foundation 1990 menjelaskan Python merupakan bahasa pemrograman yang sangat kuat, dinamis dan digunakan dalam berbagai
domain aplikasi. Python sering dibandingkan dengan Tcl, Perl, Ruby, Scheme atau Java. Beberapa fitur utama yang membedakan antara lain:
Sangat jelas, sintaks mudah dibaca Kemampuan introspeksi yang kuat
Objek orientasi programming Ekspresi natural dalam kode prosedural
Modul, mendukung paket hirarki Pengecualian dalam penanganan error
19 Tipe data yang sangat dinamis
Ekstensi dan modul mudah ditulis dalam C, C + + atau Java untuk Jython, atau. bahasa NET untuk IronPython.
Python tersedia untuk semua sistem operasi utama: Windows, Linux Unix, OS 2, Mac, Amiga, antara lain. Bahkan ada versi yang berjalan di NET,
Mesin virtual Java, dan Seri ponsel Nokia 60. Kode sumber yang sama akan berjalan dan tidak berubah di semua implementasi Python, 2010.
2.5.1 Modul Python
Python memiliki cara untuk menempatkan definisi dalam sebuah file dan menggunakannya dalam naskah atau dalam interaktif interpreter. File seperti ini
disebut modul, definisi dari sebuah modul dapat diimpor ke modul lain atau ke modul utama.
2.5.1.1 Modul NetCDF
NetCDF interface menggunakan bahasa pemograman Python. Module netCDF ini digunakan untuk membuka dan membuat file netCDF. Sekarang ada
beberapa interface netCDF untuk Python, seperti: André Gosselin dari Institut Maurice-Lamontagne, Péches Océans
Canada, telah menerapkan pycdf, interface python baru ke netCDF. Ini tersedia dari
http:pysclint.sourceforge.netpycdf , dimana pengguna akan
menemukan file mentah, instruksi instalasi, dokumentasi yang ekstensif dalam teks dan format html, dan contoh. pycdf membutuhkan paket
python Numeric.
20 Bill Siang
noonsnow.cit.cornell.edu telah menerapkan netCDF Python
modul lain yang memungkinkan membuat, akses, dan browsing data netCDF dengan mudah. Modul ini juga menggunakan perpustakaan
udunits untuk melakukan konversi unit. Informasi lebih lanjut dan sumber untuk Nuns netCDF modul untuk python tersedia di
http:snow.cit.cornell.edunoonncmodule.html .
Paket dari Konrad Hinsen telah diintegrasikan ke dalam paket ScientificPython nya.
Jeff Whitaker dari NOAA Earth System Research Lab telah mengembangkan modul netCDF-4 untuk python. Dapat di peroleh di
http:code.google.compnetcdf4-python .
Dave Brown dari NCARs Computational and Information Systems Laboratory telah mengembangkan PyNIO, paket Python yang
memungkinkan membaca dan menulis ke berbagai format data menggunakan model interface pada netCDF. Saat ini format yang
didukung mencakup netCDF, HDF4, GRIB1 dan GRIB2 dan HDF-EOS 2 Grid .
Kristen Dieterich dari University of Chicago menulis pynci, yang menyediakan akses ke interface netCDF C dari prompt Python.
Vicente Galiano dari Universitas Miguel Hernandez telah mengembangkan interface Python untuk PnetCDF. Paket Python ini
disebut PyPnetCDF memungkinkan akses ke file NetCDF menggunakan MPI dan perpustakaan pnetCDF dikembangkan oleh
http:www.mcs.anl.govparallel-netcdf . Alat ini sangat mirip dengan
21 paket NetCDF Konrad Hinsen untuk Python tetapi dapat membaca dan
menulis secara paralel. Dapat diperoleh di: http:www.pyacts.orgpypnetcdf
Pupynere Pure Python NEtcdf Reader Roberto De Almeida telah mengembangkan pupynere, murni python NEtcdf Reader yang
memungkinkan membaca dan mengakses ke netCDF file menggunakan sintaks yang sama sebagai modul Python Scientific.IO.NetCDF. Meski
ditulis dengan Python, modul ini hingga 40 lebih cepat dari Scientific.IO.NetCDF dan pynetcdf.
2.5.1.2 Numpy
NumPy adalah paket fundamental untuk komputasi ilmiah di Python. Ini adalah perpustakaan Python yang menyediakan multidimensional array objek,
diturunkan berbagai obyek seperti masked array dan matriks, dan berbagai macam rutin untuk operasi cepat pada array, termasuk matematika, manipulasi
logis, bentuk, menyortir, memilih, I O, Fourier diskrit transform, aljabar linear dasar, operasi statistik dasar, dan simulasi acak NumPy community, 2010.
Pada inti dari paket NumPy, adalah obyek n-array. Merangkum array n-dimensi dengan tipe data yang homogen, dengan banyaknya
operasi yang dilakukan dalam kode yang di kompilasi untuk kinerja. NumPy array memiliki ukuran tetap pada penciptaan, tidak seperti
daftar Python yang bisa tumbuh secara dinamis. Mengubah ukuran sebuah array akan menciptakan array baru dan
menghapus yang asli. Elemen-elemen dalam array NumPy semua diwajibkan dalam tipe data yang sama, dengan demikian akan menjadi
22 ukuran yang sama di memori. Pengecualian: satu dapat memiliki
array Python, termasuk NumPy obyek, sehingga memungkinkan untuk array memiliki elemen ukuran yang berbeda.
NumPy array memfasilitasi banyak fungsi matematika dan operasi yang lain dalam junlah data yang besar.
2.5.1.3 Matplotlib
Matplotlib adalah paket Python untuk membuat grafik 2D yang berkualitas. Mendukung interaktif dan non-interaktif plotting, dan dapat
menyimpan gambar dalam beberapa output format PNG, PS, dan lain-lain. Selain itu, dengan Matplotlib dapat digunakan toolkit GTK, wxWidgets, Qt, dan
sebagainya dan menyediakan berbagai jenis plot baris, bar, pie chart, histogram, dan banyak lagi. Selain itu, sangat bervariasi, fleksibel, dan mudah digunakan.
Matplotlib dimodelkan pada MATLAB, karena grafik adalah sesuatu yang MATLAB lakukan dengan sangat baik.
Beberapa kelebihan dari matplotlib: Menggunakan Python: Python adalah bahasa yang sangat menarik
untuk tujuan ilmiah Itu diinterpretasikan, tingkat tinggi, mudah dipelajari, extensible, dan memiliki library standar yang kuat dan
sekarang digunakan oleh lembaga besar seperti NASA, JPL, Google, DreamWorks, Disney, dan banyak lagi.
Open source, jadi tidak ada lisensi untuk membayar: Ini membuatnya sangat menarik bagi dosen dan mahasiswa, yang
sering memiliki anggaran yang rendah.
23 Ini adalah bahasa pemrograman yang nyata: Bahasa MATLAB
tidak memiliki banyak fitur dari bahasa untuk tujuan yang umum seperti Python.
Ini jauh lebih lengkap: Python memiliki banyak modul-modul eksternal yang akan membantu kita melakukan semua fungsi yang
kita perlukan. Jadi alat yang sempurna untuk memperoleh data, menguraikan data, kemudian melakukan plot data.
Ini sangat dapat buat bervariasi dan extensible: Matplotlib dapat menyesuaikan setiap masalah karena memiliki banyak jenis grafik,
fitur, dan opsi konfigurasi. Terintegrasi dengan markup LaTeX: Ini benar-benar berguna saat
menulis makalah ilmiah. Cross-platform dan portabel: Matplotlib dapat berjalan di Linux,
Windows, Mac OS X, dan Sun Solaris dan Python bisa berjalan di hampir setiap arsitektur yang tersedia.
2.6 Komputasi di Bidang Ilmu Kelautan
Banyak lembaga –lembaga yang menyediakan data kelautan seperti
NOAA, IFREMER, JAMSTEC, dan CSIRO. Untuk menyediakan data kelautan di perlukan komputasi dalam memproses data, sistem penyimpanan dan diakhiri
dengan distribusi data ke user, semua hal di atas harus ditunjang dengan sistem komputasi yang cepat dan efisien, berhubungan dengan jumlah data yang besar
Stewart, 2005.
24
2.6.1 Sistem Pengolahan Data Stasiun Lapang AMSR ADEOS-II
Ishida et al. menjelaskan bahwa AMSR adalah radiometer microwave dengan antena berdiameter 2 meter, yang merupakan onboard antena terbesar
untuk microwave. Tujuan AMSR adalah memperoleh data energi sirkulasi global melalui sirkulasi air. AMSR dapat mengamati permukaan bumi dalam 24 jam
tanpa memperhatikan waktu setempat atau cuaca, dan dapat memperoleh serangkaian data observasi. Sistem Pengolahan Data Stasiun Lapang AMSR akan
memproses semua data tersebut. Persyaratan untuk pengolahan data near realtime dan pengolahan semua
data yang diamati, sistem pengolahan data stasiun lapang AMSR harus memiliki kemampuan memproses sejumlah besar data dengan cepat. Secara umum,
pengolahan kecepatan yang lebih tinggi membutuhkan biaya yang lebih tinggi untuk pengembangan sistem.
Satelit ADEOS-II yang mengintegrasikan AMSR, ADEOS-II ground segmen dimana ground data processing system AMSR sebagai suatu
subsistem. ADEOS satelit-II yang memiliki orbit sinkron matahari dan membutuhkan waktu sekitar 101 menit untuk membuat putaran bumi dan akan
melewati titik yang sama setiap 4 hari. Hal tersebut terintegrasi AMSR and GLIGlobal Imager, ILAS-II Improved Limb Atmospheric Spectrometer-II,
POLDER Polarization and Directionality of the Earth’s Reflectances, SeaWinds
dan lain-lain. Operasi dasar ADEOS-II untuk merekam data yang diamati menggunakan Misi Data Recorder MDR yang terpasang di satelit, untuk
mengirim kembali play-back MDR ke stasiun bumi melalui Inter Orbit Komunikasi Ishido et al.
25 Satelit IOCS dihubungkan oleh band Ka atau mengirim langsung data-
data tersebut ke stasiun bumi dengan menggunakan band X. Operasi yang menggunakan penghubung IOCS akan mulai dengan DRTS,DRTS Data Relay
Test Satellite yang pertama pada tahun 2000. Sebelumnya, data yang diamati terutama akan dioperasikan dengan transmisi langsung oleh band X dan data
pengamatan ADEOS-II berbentuk sebagai data paket berdasarkan CCSDS Consultative Committee for Space Data System. Ini adalah aplikasi pertama
Jepang untuk pengamatan sistem satelit. Konfigurasi sistem ADEOS-II ground sistem ditampilkan pada Gambar 5.
26 Gambar 5. Konfigurasi system ground segmen ADEOS-II Ishido et al.
27 Ground segmen ADEOS-II beroperasi total untuk menerima, mencatat,
mengolah, mengelola data operasi satelit dan mendistribusikan data yang selesai di proses yang dapat dilihat pada Gambar 6.
Gambar 6. Hubungan interface data subsistem pengolahan data AMSR Ishido et al.
Subsistem pengolahan data AMSR menerima data tingkat 0 dari EOC Recording System, stasiun lapang NASA dan stasiun kiruna. Subsistem
pengolahan data AMSR menerima informasi perintah produksi dari manajemen misi dan sistem operasi atau jadwal sistem manajemen melalui manajemen
pengolahan data stelah itu pengolahan data akan dimulai. Subsistem Pengolahan data AMSR membuat produk dari tingkat 1 ke tingkat 3 dari data tingkat AMSR
0. Serta perekaman media tape jenis kaset ditangani oleh Subsistem Master Data Storage dalam EOIS. EOIS memiliki tanggung jawab untuk benar-benar
mengelola dan menyimpan semua data yang telah diproses dari setiap sensor yang ada.
28
2.6.2 High Speed Processing AMSR ADEOS-II
Terdapat beberapa metode untuk mencapai pengolahan data berkecepatan tinggi, yakni mengembangkan perangkat lunak ke tingkat operating system
prosesornya atau dengan menggunakan prosesor kecepatan tinggi. Berdasarkan hal tersebut stasiun lapang AMSR harus menggunakan yang memiliki
kemampuan prosesor yang tinggi, jaringan kecepatan tinggi dan sistem disk RAID.
Konfigurasi hardware subsistem pengolahan data AMSR ditunjukkan pada Gambar 7.
Gambar 7. Konfigurasi subsistem pengolahan data AMSR Ishido et al.
29 Untuk membagi sumber daya data dan memperpendek waktu pemrosesan,
komputer yang terhubung dengan RAID disk. Perangkat ini berperan sebagai server data dan isi dari disk dibagikan melalui jaringan NFS dari komputer yang
lain. Selain itu, agar penggunaan sumber daya perangkat keras lebih efektif, dapat dilakukan dengan cara memberi beberapa fungsi sekaligus, seperti fasilitas
pengolahan data memiliki dua fungsi yaitu pengolahan data dan interface data dengan subsistem lainnya. Beberapa faktor penting untuk mempercepat
pemrosesan data: 1. Fasilitas pemrosesan data
Proses AMSR level 1 memakan banyak waktu terutama pada penghitungan suhu pada pengamatan masing-masing titik. Karena data AMSR memiliki jumlah
kanal 16 channel dan jumlah titik sampel. Pada jumlah data yang banyak untuk memperpendek waktu proses, digunakan server 64bit yang mampu melakukan
kerja secara pararel. 2. Jaringan
Ethernet berkecepatan 100 mbps digunakan dalam fasilitas network internal, ATM dan FDDI digunakan untuk menghubungkan dengan subsistem yang lain.
Alasan memilih Ethernet 100 mbps adalah:
Mudah untuk dikeluarkan dari computer umum daripada Asynchronous Transfer Mode ATM dan Fider Distributed Data Interface FDDI
Pemanfaatan band komunikasi lebih efektif dibandingkan dengan LAN ethernet dengan menggunakan fungsi switch. Switch mempunyai
kemampuan untuk full duplex
30 3. Sistem RAID
RAID digunakan berhubungan dengan akses data kecepatan tinggi dan daya tahan tinggi untuk fasilitas internal server. RAID mempunya kemampuan stand-
by yang lama dan proteksi data menggunakan parity bit. 4. Fasilitas penyimpanan data
Hard disk berguna untuk menyimpan data. Hard disk mempunyai kecepatan merekam dan memproses data berbeda-beda, semaik cepat kemampuan
harddisk merekam dan memproses data makan pemrosesan data akan semakin cepat.
2.7 Data Angin CERSAT-IFREMER
CERSAT Centre ERS dArchivage et de Traitement - French ERS Processing and Archiving Facility dibentuk pada tahun 1991
dan merupakan
bagian dari ESA European Space Agency. Pusat komputer yang dikelola oleh
Departemen oseanografi dan luar angkasa di IFREMER Institut Francais de
Recherche pour lExploitation de la mer, Plouzan, France. CERSAT bertugas untuk mengelola data secara offline dari sensor low-bit rate ERS-1 dan ERS-2.
Radar Altimeter, Scatterometer, Micro-wave sounder and SAR dalam model gelombang.
ERS-1ERS-2NSCAT mempunyai daerah jangkauan 80° Lintang Utara sampai 80° Selatan lintang, dan 180° Bujur Barat sampai 180° Bujur Timur,
dengan resolusi spasial persegi sebesar 1° x 1°. Data diproyeksikan pada grid 1 ° persegi panjang dari 360 kolom dan 160 baris. Sebuah grid rentang sel 1° di bujur
dan 1° dalam lintang. Lintang dan bujur dari setiap sel grid mengacu pada
31 pusatnya. Asal setiap grid data sel grid didefinisikan oleh 179,5° BB dalam bujur
dan 79,5° Lintang Utara dalam lintang. Lalu yang terakhir, sel grid yang berpusat pada 79,5 ° di selatan dan 179,5 ° BT Ifremer, JPL, CERSAT, 2002.
Sejak 1996 CERSAT memperluas aktifitasnya dengan menangani dataset yang baru dari berbagai jenis sensor yang mirip atau komplementer dari
ERS seperti : SSMI, ADEOSNSCAT, QuikSCATSeaWinds dan mengembangkan beberapa variable serta basis data wind fields, sea-ice
characterization maps atau multi-sensor colocated datasets gabungan dari ERS, NSCAT, QuikSCATSeaWinds, TOPEX, SSMI, JASON-1, ENVISAT satelit
tapi juga buoy dan model output. CERSAT telah berkembang sampai beberapa tahun kedepan pusat dari banyak misi untuk mengarchive, pengolahan dan
validasi berbagai sensor data untuk oseanografi. Termasuk misi terbaru seperti ADEOS IISeaWinds 2001 or METOPASCAT 2003 untuk menciptakan
series yang homogeneous dari jumlah data yang dtambahkan seperti wind fields, fluxes, waves or sea-ice.
Produk ini dimaksudkan untuk memberikan komunitas ilmiah dengan mudah digunakan sinoptik grid parameter angin diambil dari ESA scatterometer
AMI-Wind onboard ERS-1 ERS-2, from NASA scatterometers NSCAT onboard ADEOS and SeaWinds onboard QuikSCAT.
32
2.7.1 ERS Scatterometer
Satelit penginderaan jauh Eropa, ERS-1 2, memberikan kontribusi substansial ilmiah untuk studi lautan. Estimasi parameter permukaan dilakukan
dengan menggunakan tiga instrumen microwave: Altimeter, Scatterometer dan Synthetic Aperture Radar SAR mode gelombang yang dapat dilihat pada
Gambar 8.
NSCAT
a b Gambar 8. a The ERS-1 satellite and its microwave instruments. b Wind
ERS-1 scatterometer geometry Ifremer, JPL, CERSAT, 2002. Scatterometer ERS pada Gambar 8 merupakan instrumen yang beroperasi
microwave aktif di 5.4GHz band C yang menghasilkan vektor angin kecepatan dan arah angin pada resolusi 50 km dengan pemisahan 25 km melintasi petak
500km. Sudut untuk rentang tiga antena dari 17° sampai 46°, pada pertengahan 25° sampai 57° baik depan dan belakang. Angin permukaan diproses dan
didistribusikan oleh Institut Français de Recherche pour lEksploitasi de la MER IFREMER menggunakan off-line algoritma Bentamy et al, 1994; Quilfen
1995. Angin ERS-2 disebut WNF angin Lapangan. Kalibrasi dan validasi
33 algoritma dilakukan dengan buoy data selama percobaan RENE91, dengan
National Oceanic Atmospheric Administration NOAA, Nasional Data Bouy Center NDBC, Tropical Ocean Global Atmosphere TOGA, dan Tropical
Atmosphere Ocean TAO. Akurasi dari kecepatan dan arah angin berasal dari algoritma IFREMER sebesar 1m s dan 14°. Validasi produk off-line angin
menunjukkan bahwa, pada kecepatan angin yang rendah, data kecepatan angin dan arah angin kurang akurat Graber et al, 1996.
2.7.2 NSCAT
Scatterometer NASA yang dapat dilihat pada Gambar 9, berada dalam orbit lingkaran untuk jangka waktu sekitar 100,92 menit, dengan inclination
98,59° dan dinominal ketinggian 796 km dengan siklus berulang 41 hari. NSCAT memiliki dua swaths seluas 600 km, terletak di setiap sisi jalur satelit, dipisahkan
oleh 300 km. Beroperasi di 14 Ku band GHz, fore-beam dan antena aft-beam berada di titik di 45° dan 135° untuk setiap sisi jalur satelit Mid-beam berada di
titik pada 65° dan 115° tergantung pada swath NSCAT. Resolusi spasial dari instrumen di permukaan bumi adalah sekitar 25 km.
34 Gambar 9. ADEOS satellite and its instrument Ifremer, JPL, CERSAT, 2002.
3. BAHAN DAN METODE
3.1 Lokasi dan Waktu Penelitian
Penelitian ini dilakukan di Workshop Laboratorium Instrumentasi dan Telemetri Kelautan, Departemen Ilmu dan Teknologi Kelautan, Fakultas
Perikanan dan Ilmu Kelautan, Institut Pertanian Bogor pada bulan Febuari 2009 sampai November 2010.
3.2 Perangkat dan Peralatan
3.2.1 Perangkat Keras
1. 2 buah personal computer 2. 1 buah computer server hp proliant ml370 g3
3. 1 buah hub 4. Kabel jaringan 100 mbps
5. Alat inputan mouse dan keyboard.
3.2.2 Perangkat Lunak
1. Sistem Operasi : Linux ubuntu 9.04 karmic
http:www.ubuntu.com 2. Bahasa Pemrograman
: Phyton2.6 http:www.python.org
, PHP http:www.php.net
3. DBMS : MySQL Server 5
http:dev.mysql.comdownloadsmysql 4.
Downloader : wget 1.10.2-1ubuntu1.2
http:packages.ubuntu.comdapperwget 5. Web Server
: apache2 2.2.12-1ubuntu2.3
36 http:packages.ubuntu.comkarmicapache2
6. Browser : Google Chrome
8. Modul Python
: NetCDF interface http:code.google.compnetcdf4
Matplotlib http:matplotlib.sourceforge.net
Numpy http:numpy.scipy.org
\
3.2.3 Sumber data
Data yang digunakan dalam penelitian ini berasal dari CERSAT Centre ERS dArchivage et de Traitement - French ERS Processing and Archiving
Facility. Parameter yang digunakan adalah angin permukaan dengan rerata bidang angin menutupi samudera global dari 80° Lintang Utara sampai 80°
Selatan lintang, dan 180° Bujur Barat sampai 180° Bujur Timur, dengan resolusi spasial persegi sebesar 0.25° x 0.25°. Data diproyeksikan pada grid 0.251°
persegi panjang dari 1440 kolom dan 641 baris. Sebuah grid rentang sel 1° bujur dan 1° lintang. Lintang dan bujur dari setiap sel grid mengacu pada pusatnya.
Data dapat diperoleh dari website: ftp:ftp.ifremer.frifremercersatproductsgriddedmwf-blendeddata6-hourly
Data disimpan dalam format Network Common Data Form NetCDF, setiap data berisi semua parameter berdasarkan tanggal setipa enam jam,
menggunakan penamaan: tahun-bulantanggaljam.
nc with dates as „YYYYMMDDhh’ Contoh : 2000100100.nc 1 oktober 2000 jam 00:00
Struktur data angin yang berformat netCDF mempunyai beberapa parameter yang terlihat pada Tabel 1:
37 Tabel 1. Struktur data angin
Nama Elemen Tipe data
Satuan
time Integer
Hours depth
Real m
woce_date string
UTC woce_time
time UTC
latitude real
degrees_north longitude
real degrees_east
swath_count integer
quality_flag integer
wind_speed real
ms wind_speed_error
real ms
zonal_wind_speed real
ms zonal_wind_speed_error
real ms
meridional_wind_speed real
ms meridional_wind_speed_error
real ms
wind_speed_divergence real
s-1 wind_stress
real Pa
wind_stress_error real
Pa zonal_wind_stress
real Pa
zonal_wind_stress_error real
Pa meridional_wind_stress
real Pa
meridional_wind_stress_error real
Pa wind_stress_curl
real Pam
3.3 Metodologi Penelitian Secara Umum
Secara umum penelitian ini dibagi menjadi 5 bagian yaitu pendownload data, pengolahan data, visualisasi, webserver dan user, seperti terlihat pada
Gambar 10.
38
ftp:ftp.ifremer.fr ifremercersat
productsgridded mwf-blendeddata6-
hourly
Penunduhan data aktif
Pengolahan Data Webserver
User Interface tampilab
Visualisasi
Gambar 10. Metodologi penelitian secara umum
3.4 Skenario Pengunduhan Data
Data yang digunakan pada penelitian ini berasal dari CERSAT Centre ERS dArchivage et de Traitement - French ERS Processing and Archiving
Facility-IFREMER. Parameter yang digunakan adalah angin permukaan dengan resolusi 1° x 1°, dalam satu hari terdapat empat data dengan waktu temporal 6
jam. Download data menggunakan wget, wget adalah downloader yang dijalankan dengan mengunakan code tertentu. Data kemudian disimpan pada
harddisk dengan penamaan tertentu sehingga memudahkan pengolahan data, S
elanjutnya untuk memudahkan data ini disebut sebagai “raw data”. Raw data ini memiliki format bz2. Pendownload-an data dapat dilihat pada Gambar 11.
39
Website penyedia Data ftp:ftp.ifremer.fr
ifremercersatproducts griddedmwf-blended
data6-hourly
Penownload Data
wget
Simpan Data di komputer
lokalraw data
Gambar 11. Proses pengunduhan data
3.5 Skenario Pengolahan Data
Pada bagian pengolahan data, raw data yang telah di unduh dari website penyedia data IFREMER dengan mengunakan python file yang berekstensi .bz2
diekstrak menjadi file berekstensi .nc, file berekstensi .nc disimpan kedalam computer local di direktori yang telah ditentukan. Selanjutnya data yang telah
diekstrak masuk ke dalam proses cropping untuk mengambil wilayah Indonesia dengan menggunakan bahasa pemograman python yang didukung oleh modul
netCDF inteface. Data hasil cropping masuk kedalam proses selanjutnya yang pertama data simpan dengan nama baru di computer local. Data berekstensi .nc
yang telah dicropping masuk dalam proses perataan data menjadi data harian, bulanan dan tahunan. Perata-ratan data ini merupakan pengolahan data yang tidak
dilakukan oleh CERSAT-IFEMER. Setelah data hasil cropping selesai dirata-
40 ratakan disimpan dengan nama yang baru dalam proses penggabungan ini
dilakukan oleh pythin dengan bantuan modul netCDF interface. Tahap terakhir dari proses pengolahan data ini adalah import nama dan
directory ke mysql, yang nantinya akan digunakan untuk proses search di sistem database. Proses import data ini menggunakan python dengan bantuan modul
mysqlDB yang berguna sebagai perantara antara python dan mysql. Dalam bagian pengolahan data ini python memegang peranan yang penting dalam setiap
subproses pengolahan data. Secara lengkap tahapan pengolahan data dapat dilihat pada Gambar 12.
41
Ekstrak bz2 Menjadi .nc
Cropping Wilayah
Indonesia
Gabung data menjadi Harian,
bulanan, tahun Simpan Data
baru indoBlendedEc
mwf25km6h_tan ggal.nc
Simpan Data baru
indoBlendedEc mwf25km6h_tan
ggal.nc Raw Data
python
Netcdf interface untuk python
Directory : home\ data\IFREMER
windblended data_nc_indo
Directory: home\ data\IFREMER
windblended data_nc_indo_
1day
Import mysql nama+
directory Python import ke mysql
Python simpan file
Gambar 12. Proses pengolahan data
42
3.6 Skenario Visualisasi Data
Visualisasi data hasil cropping menggunakan bahasa pemograman python, modul yang digunakan untuk visualisasi ini adalah matplotlib
untuk membuat plot dan numpy modul untuk melakukan perhitungan matematika. Visualisasi ini dilakukan secara otomatis setiap ada data
baru yang masuk script python akan bekerja untuk membuat plot sebaran 2D angin. Setelah proses visualisasi selesai di simpan dengan nama
tertentu pada directory yang telah ditentukan. Proses terakhir adalah import ke mysql disini juga yang berperan adalah python dengan bantuan
modul mysqlDB. Secara keseluruhan proses visualisasi data dapat dilihat pada Gambar 13 berikut.
Data Indonesia
Simpan Gambar dalam komputer
lokal
Import nama dan directory
ke mysql Modul python mysqlDB
Modul python Numpy untuk mengubah zonal dan merdional wind
speed menjadi arah dan kecepatan Modul python
matplotlib untuk membuat Plot
sebaran angin 2D
Gambar 13. Proses visualisasi data
43
3.7 Skenario Sistem Webserver
Melalui Gambar 14 dapat dijelaskan bahwa pada penelitian ini terdiri dari tiga sistem yang bekerja saling berhubungan, yaitu sistem pengolahan data, sistem
basis data, dan sistem webserver. Setiap sistem menjalankan fungsinya sendiri –
sendiri, sistem pengolahan data berfungsi untuk download data, pengolahan data, dan mengirim lokasi file ke sistem basis data. Sistem database ini menyimpan
informasi database dan bekerja menurut respon dari sistem webserver yang berperan sebagai interface dengan user.
Webserver apache
Sistem Pengolahan Data Sistem Basis Data mysql
Hub
Website penyedia data ftp:ftp.ifremer.frifremer
cersatproductsgriddedmwf- blendeddata6-hourly
Gambar 14. Sistem webserver
44
3.8 Website
Website merupakan interface ke user yang membutuhkan data. Website ini berisi dua link yaitu about us dan data, about us berisi tentang pengelola website.
Link data berisi dua bagian yaitu raw data dan data Indonesia, raw data berisi data mentah global hasil unduhan dari website
ftp:ftp.ifremer.frifremercersatproductsgriddedmwf-blendeddata6-hourly ,
sedangkan data Indonesia adalah data telah mengalami pengolahan data yang telah dijelaskan di bagian pengolahan data. Data Indonesia ini berisi 5 link yaitu
rataan: data 6jam, data harian,data bulanan, data tahunan dan plot data. Semua bagian ini dihubungkan dengan basis data yang berada di sistem basis data. Pada
website ini terdapat fungsi searching yang berfungsi untuk mencari data yang dikehendaki oleh user dapat dilihat pada Gambar 15.
Home Page Data
About Us Raw Data
Data Indonesia
Plot Data Indonesia
Data Harian
Data Bulanan
Data Tahunan
Data 6 jam
Rataan
Deskripsi Data
Gambar 15. Diagram alir website
45
3.9 Analisis Kerja Sistem
Untuk mengetahui kinerja semua sistem yang bekerja dalam penelitian ini maka diperlukan analisis untuk memantau kinerja sistem yang telah dibuat.
Berikut beberapa hal yang akan diukur: Besar file raw data
Waktu yang dibutuhkan untuk dekompresi file bz2 menjadi file netCDF.
Waktu yang dibutuhkan untuk cropping. Besar file hasil cropping
Waktu yang dibutuhkan untuk penggabungan data harian, bulanan, dan tahunan
Besar file hasil penggabungan Besar file gambar.
3.10 Validasi Data
Validasi data merupakan proses pengecekan atau perhitungan dengan membandingkan antara data hasil pengolahan yang telah dilakuan dengan data
bouy triton yang merupakan data insitu . validasi harus dilakukan sebelum data tersebut diterima dan diolah untuk keperluan selanjutnya. Hal tersebut dilakukan
agar data model yang akan digunakan adalah data yang sahih Pearson, 1984. Proses validasi kedua data tersebut dilakukan dengan membuat grafik
perbandingan antara data IFREMER dengan data TRITON sebagai data insitu. Berdasarkan data tersebut dapat dilihat bagaimana pola sebaran dari kedua data.
46
4. HASIL DAN PEMBAHASAN
4.1 Alur Kerja Sistem
Penelitian in terdiri dari 3 subsistem utama yang mempunyai fungsi dan peranan sendiri-sendiri, ketiga subsistem ini adalah:
Subsistem pengolahan data Subsistem basis data
Subsistem webserver Ketiga subsistem dihubungkan dengan jaringan intranet menggunakan
hub dan kabel ethernet 100 mbps dimana semua subsistem saling terhubung satu sama lain dan mempunyai fungsi
–fungsi yang spesifik. Tujuan ketiga subsistem ini dibagi menjadi tiga bagian adalah agar terjadi pembagian sumber daya serta
mempercepat pemrosesan data. Selain juga dapat mempermudah mengambil redudansi dari masing-masing perangkat lunak yang bekerja.
4.1.1 Subsistem Pengolahan Data
Pada bagian subsistem pengolahan data dibagi menjadi tiga bagian subsubsistem yang bekerja berkesinanbungan. Ketiga subsubsistem ini adalah:
Modul pengunduhan data, Gambar 16 bagian A Modul pengolahan data Gambar 16 bagian B
Modul komunikasi Gambar 16 bagian C
4.1.1.1 Modul Pengunduhan Data
Modul pengunduhan data berperan dalam mengunduh data dari website: ftp:ftp.ifremer.frifremercersatproductsgriddedmwf-blendeddata6-hourly
47
data yang diunduh mempunyai ekstensi .bz2. Data yang diunduh berasal dari tahun 2006-2009. Setiap data yang diunduh disimpan dalam direktori
:home\data\IFREMERwindblendeddata_bz2. Pengunduhan data ini dilakukan oleh software wget yang dijalankan pada shell linux. Wget mengunduh secara
otomatis setiap ada data yang baru di website penyedia data. Wget bekerja di belakang Operating System OS, sehingga setiap komputer dinyalakan dan
masuk kedalam OS maka secara otomatis script wget bekerja di background OS. 4.1.1.2 Modul Pengolahan Data
Modul pengolahan data berperan untuk mengolah raw data data hasil unduh dari website berekstensi .bz2. Seperti terlihat pada Gambar 16 bagian D,
proses diawali dengan decompress raw data yang berekstensi .bz2 menjadi file netCDF yang berekstensi .nc tugas ini dilakukan oleh bahasa pemograman
python. Python selain mengekstrak juga menyimpan data hasil ekstrak ke komputer lokal pada directory: home\data\IFREMERwindblendeddata_nc.
Proses selanjutnya pada modul pengolahan data adalah cropping data, dimana data yang dicropping sebatas wilayah Indonesia saja. Cropping ini
dilakukan dengan bahasa pemograman python yang didukung oleh modul netCDF interface. NetCDF interface mengambil data berdasarkan array yang terdapat
pada data. Setelah proses cropping, python juga berfungsi menyimpan data hasil cropping ke dalam direktori, file yang disimpan dalam direktori ini akan melalui
proses selanjutnya yaitu penggabungan data. Penggabungan raw data per 6 jam dilakukan dengan menggunakan bahasa
pemograman python. Hal ini merupakan kelebihan dari pengolahan data karena institusi yang membuat data ini tidak melakukan pengolahan data pada bagian
48
penggabungan. Data akan dirata-ratakan menjadi data harian, data bulanan, dan data tahunan.
Proses selanjutnya adalah visualisasi, data hasil cropping selain masuk dalam proses penggabungan juga masuk dalam proses visualisasi. Visualisasi
merupakan tahap pembuatan plot sebaran angin yang memberi gambaran awal kepada pengguna tentang kondisi sebaran angin 2D.
4.1.1.3 Modul Komunikasi
Modul komunikasi adalah bagian terakhir dari subsistem pengolahan data yang bertugas untuk mengimport nama dan direktori ke subsistem basis data.
Subsistem pengolahan data dan subsistembasis data dihubungkan dengan Ethernet 100 mbps. Pada subsistem pengolahan subsistem basis data dilakukan
penginstalan MySQL server 5.0. MySQL berperan sebagai pengatur lalu lintas dari client MySQL dan MySQL server. MySQL client berfungsi sebagai client
yang berperan dalam mengirim basis data ke MySQL server. MySQL server mengidentifikasi client yang punya kemampuan untuk mengakses atau
memodifikasi tabel MySQL di dalam basis data. Modul komunikasi ini terihat pada Gambar 16 bagian B.
4.1.2 Subsistem Basis Data
Subsistembasis basis data berisi tentang info data yang tersimpan dalam subsistem pengolah data dan diimport dalam bentuk tabel pada MySQL seperti
terlihat pada Gambar 16 bagian E. Pada subsistem basis data terdapat enam tabel yaitu:
49
Tabel raw data Tabel data Indonesia
Tabel data harian Tabel data bulanan
Tabel data tahunan Tabel plot data Indonesia
Tabel –tabel di atas berisi informasi tentang semua data yang terdapat di
dalam subsistem pengolah data. Informasi yang diambil dari data adalah: nama file, tahun, tanggal, jam, dan lokasi file di direktori, semua informasi ini
diperlukan untuk proses searching di dalam website. Subsistembasis data menerima informasi yang dikirim dari MySQL client
yang terkoneksi dan teridentifikasi oleh MySQL server. Pada MySQL server terdapat pengaturan yang memungkinkan mengindentifikasi komputer lain untuk
dapat mengubah basis data yang terdapat di subsistembasis data, pengidentifikasian ini menggunakan nama pengguna MySQL client, alamat IP
komputer dan diproteksi oleh password. Semua data pengguna ini tersimpan dalam basis data server.
4.1.3 Subsistem Webserver
Subsistem webserver berfungsi sebagai penghubung antara pengguna dengan subsistem basis data dan subsistem pengolahan data. Dalam subsistem
webserver terinstal apache yang berfungsi sebagai virtual host. Dalam apache terdapat 3 file konfigurasi yaitu :
50
httpd.conf access.conf
srm.conf Ketiga file di atas merupakan file yang mengatur tugas apache secara
spesifik. Pada subsistem webserver pengaturan apache dilakukan untuk mengatur direktori
–direktori data yang dapat diakses oleh pengguna. Pada saat terdapat permintaan dari pengguna yang menginginkan data tertentu, maka subsistem
webserver akan mencari alamat direktori dari file tersebut pada subsistem basis data. Setelah alamat direktori didapatkan, apache yang telah mengatur hak askses
pada direktori tersebut mengambil file tersebut dan memberikannya kepada pengguna melalui website.
Dalam subsistem webserver juga terdapat file –file penyusun website yang
di simpan didalam direktori apache. Website berisi dua link yaitu about us, data, dan link. Data ini berhubungan dengan basis data yang terdapat pada subsistem
basis data seperti terlihat pada Gambar 16 bagian F. Website dibuat dengan bahasa pemograman ajax Asynchronous JavaScript , php Hypertext
Preprocessor, javascript, html Hypertext markup language dan sql Structured Query Language.
51
Webserver apache Sistem Pengolahan Data
Sistem Basis Data mysql Hub
Jaringan Internal
Website penyedia data ftp:ftp.ifremer.frifremer
cersatproductsgriddedmwf- blendeddata6-hourly
Download datawget
Mysql Client
Mysql Server
Apache Pengguna
Cloud
Tabel mysql raw
data Tabel
mysql data Indonesia
Tabel mysql data
harian Tabel
mysql data bulanan
Tabel mysql data
tahunan Tabel Plot
data indonesia
Basis Data Data
About Us Raw Data
Data Indonesia
Plot Data Indonesia
Data Harian
Data Bulanan
Data Tahunan
Data 6 jam
Home Page Ekstrak bz2
Menjadi .nc Cropping
Wilayah Indonesia
Gabung data menjadi Harian,
bulanan, tahun Simpan Data
baru indoBlendedEc
mwf25km6h_tan ggal.nc
Simpan Data baru
indoBlendedEc mwf25km6h_tan
ggal.nc Raw Data
python Netcdf interface untuk python
Directory : home\ data\IFREMER
windblended data_nc_indo
Directory: home\ data\IFREMER
windblended data_nc_indo_
1day Python simpan file
A
D E
F B
C
Gambar 16. A. Modul pengunduhan data, B. Modul pengolahan data C. Modul komunikasi, D.Sistem pengolahan data, E. Sistem basis data, F.Basis data.
52
4.2 Model Pengunduh Data
Pengunduh yang digunakan pada penelitian ini adalah wget. Wget menggunakan script untuk menjalankan fungsi unduh yang spesifik sesuai yang
kita inginkan. Wget bekerja di bawah proxy yang telah diatur oleh DKSI-IPB, sebelum wget digunakan untuk proses pengunduhan diperlukan seting pada wget
untuk dapat bekerja di bawah proxy, seperti berikut: Buka file wgetrc yang merupakan file untuk konfigurasi wget yang
berada di direktori ~.wgetrc
perintah yang digunakan adalah sudo ~.wgetrc
File wgetrc berisi baris baris konfigurasi untuk wget bagian yang diperlukan untuk setting proxy adalah:
1. You can set the default proxies for Wget to use for http, https, and
ftp. 2.
They will override the value in the environment. 3.
https_proxy = http:proxy.yoyodyne.com:18023 4.
http_proxy = http:proxy.yoyodyne.com:18023 5.
ftp_proxy = http:proxy.yoyodyne.com:18023 6.
7. If you do not want to use proxy at all, set this to off.
8. use_proxy = on
Baris code di atas yang harus dirubah menjadi setting yang tepat dengan jaringan yang dipakai.
1. You can set the default proxies for Wget to use for http, https, and
ftp. 2.
They will override the value in the environment. 3. https_proxy =
172.17.0.11 :
8080 4. http_proxy =
172.17.0.11 :
8080 5. ftp_proxy =
172.17.0.11 :
8080 6.
If you do not want to use proxy at all, set this to off. 7. use_proxy = on
53
Simpan file dan tutup, setelah melakukan konfigurasi ini maka wget siap digunakan untuk proses unduh data. Wget merupakan pengunduh yang
bekerja dengan kode perintah agar wget dapat melakukan penunduhan sesuai yang diinginkan. Pada penelitian ini ada beberapa kode perintah yang digunkan
sebagai berikut:. 1. wget -nd -A
bz2 -r - nc -np -c
–P homeaditridcIfermerwindblendeddatabz2
ftp:ftp.ifremer.frifremercersatproductsgriddedmwf- blendeddata
6 -hourly
Penjelasan perintah yang digunakan:
Pada script di atas perintah diawali dengan wget, ini merupakan perintah dasar untuk menjalankan suatu program di terminal OS
linux di ubuntu.
-nd --no-directories digunakan supaya saat mengunduh semua isi dari website tidak mengambil parent direktori. Contoh
ftp:ftp.ifremer.frifremercersatproducts jika mengunduh link di
atas tanpa menggunakan –nd maka semua file yang berada di
bagian ftp.ifremer.fr, ifremer, cersat, dan products akan diunduh semuanya ini akan memakan banyak waktu.
-A bz2 perintah ini digunakan untuk mengunduh hanya file
berkekstensi .bz2 jika tidak menggunakan perintah ini maka wget akan mengunduh semua file berekstensi apapun, ini akan
memperlama proses penunduhan karena banyak file yang tidak kita perlukan ikut terunduh dan memakan banyak ruang di hardisk.
54
-r --recursive mengaktifkan pengunduhan recursive, pengunduhan
recursive adalah mengunduh semua link yang terhubung dalam suatu website.
-nc --no-clobber perintah ini digunakan agar tidak ada file yang
sama dalam satu direktori. Ini berguna karena pada saat script bekerja secara terus menerus memantau sebuah website penyedia
data, data yang sudah di unduh akan dilewati.
-np --no-parent perintah ini digunakan untuk mengunduh hanya direktori terakhir dari link yang di berikan contoh pada link
ftp:ftp.ifremer.frifremercersatproductsgriddedmwf- blendeddata6-hourly maka direktori yang didownlad hanya yang
terakhir yaitu 6-Hourly. Karena data yang diperlukan ada didalam direktori tersebut.
-c continue digunakan untuk melanjutkan unduh sampai file
tersebut selesai diunduh jika file tersebut belum selesai di unduh maka wget tidak akan berlanjut ke file yang lain sampai percobaan
11 kali.
P homeaditridcIfermerwindblendeddatabz2 perintah ini digunakan untuk menspesifikan direktori untuk menyimpan hasil
unduh.
55
ftp:ftp.ifremer.frifremercersatproductsgriddedmwf-
blendeddata6-hourly yang terakhir ini adalah link website yang dituju.
Gambar 17. Contoh proses pengunduhan data yang error.
Gambar 17 diatas merupakan gambar proses pengunduhan data yang sedang berlangsung. File hasil unduh raw data disimpan di direktori
“mediaaditrimyresearchdataIFREMER_CERSATWIND_BlendedEcmwfdata _worldbz2data_beres
” seperti terlihat pada Gambar 18.
56
Gambar 18. Tempat penyimpanan raw data di lokal komputer
Data yang digunakan dalam penelitian ini berasal dari tahun 2006 sampai 2009 dan disusun menurut tahun pada direktori seperti terlihat pada
Gambar 18. Wget bekerja secara otomatis mengunduh data di startup OS Operating system. Namun untuk membuatnya bekerja secara otomatis
diperlukan script tersendiri untuk menjadikannya bagian dalam subsistemstartup. Crontab merupakan utility di unix dan linux untuk membuat pekerjaan bekerja
dengan otomatis. Berikut script untuk crontab: 1.
Unduh.sh 2. wget -nd -A
bz2 -r - nc -np -c -P
homeaditridcIfermerwindblendeddatabz2 --retry- connrefused
–
pengguna agent=
autounduher ftp:ftp.ifremer.frifremercersatproductsgriddedmwf-
blendeddata6-hourly
Code di atas merupakan file yang berisi perintah pengunduhan yang ingin dijalankan di startup. Ekstensi yang digunakan adalah .sh yang meupakan file
57
executable. Selanjutnya adalah melihat jadwal yang ada didalam crontab dengan perintah dibawah ini:
sudo crontab -i
Selanjutnya adalah memasukan file unduh.sh dalam list pekerjaan di dalam crontab, dengan menggunan perintah dibawah :
sudo crontab -e
Perintah crontab-e akan membuka semua pekerjaan yang ada di crontab menggunakan tekt editor yang default pada subsistemOS. Selanjutnya
menambahkan satu line yang berisi perintah pekerjaan untuk crontab : reboot homeaditriunduh.sh
Perintah reboot merupakan code yang digunakan untuk menyatakan waktu script akan dijalankan setelah perintah di atas selesai ditambahkan, save file
lalu close. Yang terakhir dilakukan adalah membuat sile yang berisi log dari script yang kita jalankan pada crontab.
daily homeaditriunduh.sh 21 homeadtrilogunduhdata.log
Script diatas menggunakan daily ini menandakan bahwa log akan disimpan setiap satu hari dan disimpan dalam bentuk file pada direktori
homeadtrilogunduhdata.log.
58
4.3 Pengolahan Data
Proses pengolahan data dalam penelitian ini terbagi dari 4 bagian. Setiap bagian ini bekerja saling berhubungan. Bagian-bagian tersebut adalah:
Proses ekstrak data Proses cropping data
Proses perata-rataan data Proses import ke MySQL
Visualisasi data Setiap bagian bekerja secara berurutan yang dimulai dari ekstrak data, lalu
cropping data, penggabungan data dan yang terakhir adalah mengimport header dan lokasi file ke dalam MySQL pada subsistem basis data. Proses pengolahan
data dapat di lihat pada Gambar 19.
59
Dekompresi bz2
Menjadi .nc
Cropping Wilayah
Indonesia Raw Data
python
Netcdf interface untuk python
Import mysql nama+
directory Python import ke mysql
A
Simpan Data baru
indoBlendedEc mwf25km6h_tan
ggal.nc Directory : home\
data\IFREMER windblended
data_nc_indo
B
C
D
Rataan data
Simpan Data baru
indoBlendedE cmwf25km6h_t
anggal.nc Harian
Bulanan Tahunan
28 hari 29 hari 30 hari 31 hari Tahun
kabisat Tahun
bukan kabisat
Python simpan file
Per 6 jam
Gambar 19. Diagram Blok Proses Pengolahan Data A. Proses Ekstrak Data, B. Proses Cropping Data, C. Proses merata-ratakan Data, D.
Proses Import ke MySQL
60
1.5.1 Proses Ekstrak Data
Proses ekstrak data merupakan proses untuk mengekstrak raw data yang berekstensi .bz2 menjadi netCDF file yang berekstensi .nc . Proses ekstrak ini
dilakukan dengan bahasa pemograman python. Proses ekstrak data dimulai dengan inisialisai modul yang di gunakan, modul python yang digunakan adalah:
import os, os.path import bz2
import numpy import MySQLdb
import shutil
Modul os merupakan modul bawaan dari python untuk mengakses
fitur-fitur yang ada dalam Operating System OS, fitur yang digunakan dalam proses ekstrak data ini adalah os.path yang
merupakan fitur untuk mengakses direktori dari OS
Modul bz2 digunakan untuk menangani file bz2.
Modul numpy pada proses ekstrak data digunakan untuk membuat list dari direktori,mengurutkan direktori file menjadi list.
Modul MySQLdb digunakan untuk mengimport nama, direktori
dari raw data dan direktori file hasil ekstrak ke MySQL.
Modul shutil digunakan untuk memindahkan file ke direktori tertentu.
Setelah import modul yang dilakukan adalah membuat variable yang berisi direktori raw data dan direktori yang dituju untuk hasil dari ekstrak data.
startDir = mediaaditrimyresearchdataIFREMER_CERSATWIND_Blende
dEcmwfdata_worldbz2data_beres startncdir =
mediaaditrimyresearchdataIFREMER_CERSATWIND_Blende
61
dEcmwfdata_nc_world directories = [startDir]
while lendirectories0: directory = directories.pop
for name in os.listdirdirectory: fullpath = os.path.joindirectory,name
for nama in os.listdirfullpath: fullpathdua = os.path.joinfullpath,nama
print fullpathdua
StartDir merupakan folder awal yang berisi raw data, dan startncDir merupakan direktori tempat file hasil ekstrak disimpan. Selanjutnya code di atas
membuat looping yang terus berjalan, pada bagian directories.pop merupakan perintah yang digunakan untuk membuat list file direktori.
1.
input_file = bz2.BZ2Filefullpathdua, rb try:
2.
namafilebaru=fullpathdua[:lenfullpathdua-4] if os.path.isfilenamafilebaru:
print namafilebaru else:
dest= file namafilebaru, wb baca=input_file.read
dest.writebaca
a. dest.close
Code perintah diatas digunakan untuk mengekstrak raw data menjadi file netCDF. Code perintah bernomor 1 merupakan perintah untuk membuka file
.bz2 dan pada code perintah nomor 2 berfungsi untuk mengekstrak file .bz2 yang dibuka oleh code perintah nomor satu menjadi file netCDF. Hasil ekstrak
raw data tersimpan dalam direktori mediaaditrimyresearchdataIFREMER_CERSATWIND_BlendedEcmwfdata
_nc_world yang dapat dilihat pada Gambar 20.
62
Gambar 20. Direktori raw data dan data hasil ekstrak.
2.5.1 Proses Cropping Data
Proses cropping data merupakan proses selanjutnya dari proses ekstrak data. Data hasil ekstrak mempunyai scope satu bumi, dalam penelitian ini data
yang dihasilkan dalam scope Indonesia yaitu -20.125º LS sampai 20.125º LU.dan 90.125º BT sampai 145.125º BT. Modul yang digunakan untuk script cropping
ini adalah: import os, os.path
from Scientific.IO import NetCDF import numpy
import shutil
63
Pada proses cropping data menggunakan modul netcdf yang berbeda dari proses ekstrak data. Modul ini digunak untuk membuka file netCDF di python,
dan berguna untuk membuat file netCDF yang baru. 1. filenc=NetCDF.NetCDFFilefullpath,r
2. time_ind = filenc.variables[time][:] 3. depth_ind = filenc.variables[depth][:]
4. lat_ind = filenc.variables[latitude][239:401] 5. lon_ind = filenc.variables[longitude][1080:1301]
6. ws_ind = filenc.variables[wind_speed][:,239:401,1080:1301] 7. zws = filenc.variables[zonal_wind_speed][:]
8. zws_ind = zws[:,239:401,1080:1301] 9. mws = filenc.variables[meridional_wind_speed][:]
10. mws_ind = mws[:,239:401,1080:1301] 11. wst = filenc.variables[wind_stress][:]
12. wst_ind = wst[:,239:401,1080:1301] 13. zwst = filenc.variables[zonal_wind_stress][:]
14. zwst_ind = zwst[:,239:401,1080:1301] 15. mwst = filenc.variables[meridional_wind_stress][:]
16. mwst_ind = mwst[:,239:401,1080:1301]
Baris nomor satu pada code di atas merupakan perintah untuk membuka file nerCDF ke dalam memory komputer. Baris-baris selanjutnya digunakan
untuk mengambil variable dari file netCDF yang di buka, variable yang di ambil adalah time waktu, depth kedalaman, latitude, longitude, wind speed, zonal
wind speed, meridional wind speed, wind stress, zona wind stress, dan meridional wind stress, setiap variable ini tersusun dalam array. Time dan depth merupakan
array 1dimensi, latitude dan longitude merupakan array dua dimensi dan wind speed, zonal wind speed, meridional wind speed, wind stress, zona wind stress,
dan meridional wind stress merupakan array tiga dimensi. Untuk melakukan cropping data Indonesia kita perlu mengetahui letak di array ke berapa data yang
kita inginkan untuk mengetahui hal itu di lakukan dengan perhitungan yang dapat dilihat pada Gambar 21.
64
7.5 LU 12.5 LS
95 BT 142.5 BT
80 LU
80 LS
1
80BB 180BT
Indon esia
1440 kolom 641 baris
Gambar 21. Cropping data Perhitungan untuk lintang menggunkan rumus:
yx =
Baris pada array lmaks =
Nilai lintang terbesar l
= Lintang
A =
Total semua baris pada array =
Total jumlah maksimum dan minimum dari lintang Batas lintang yang gunakan adalah -20.125º LS sampai 20.125º LU.
Perhitungan untuk 20.125º LU
65
Perhitungan untuk -20.125º LS
Batas bujur yang digunakan adalah 90.125 º BT sampai 142.5 º BT. Perhitungan untuk 90.125º BT
Perhitungan untuk 145.125º BT
Berdasarkan hasil perhitungan diatas, batas lintang Indonesia yang telah ditentukan terdapat pada array [239:401], dan untuk longitude berada pada array
[1080:1301]. Pengambilan nilai dari variabel wind speed, zonal wind speed, meriditiona wind speed, wind stress, zona wind stress, dan meriditional wind
stress yang merupakan array tiga dimensi yang dipengaruhi oleh variable time, latitude dan longitude maka untuk mengambil nilai yang kita inginkan maka
array tempat nilai variabel yang kita inginkan berada di array [:,239:401,1080:1301]. Pada variable time dan depth mempunyai nilai yang sama
dan hanya berisi satu nilai untuk mengambil nilai pada variabel ini menggunakan code [:] yang menandakan mengambil semua nilai yag ada pada variabel tersebut.
Semua variabel yang diperlukan telah tersimpan dalam memory yang dibuat oleh bahasa pemograman python, langkah selanjutnya adalah membuat file
netCDF baru dan memasukan nilai yang telah kita ambil dari file netCDF yang asli. Berikut code untuk melakukan tugas ini:
66
1.
nc_indo = NetCDF.NetCDFFilepathindo, w
2.
nc_indo.createDimensionlatdims,162,
3.
nc_indo.createDimensionlondims,221,
4.
nc_indo.createDimensiontime,1,
5.
nc_indo.createDimensiondepth,1,
Baris pertama merupakan code untuk membuat file netCDF baru yang di tunjukan oleh w yang berarti write. Baris ke 2 sampai ke 5 digunakan untuk
membuat dimensi. Dimensi akan di isi oleh nilai nilai yang telah kita ambil pada langkah sebelumnya.. Penetuan nilai dimensi menggunakan rumus :
D = Nilai dimensi x1 = Nilai posisi array pertama
x2 = Nilai posisi array kedua
1. timedims = time
, 2. time_indo = nc_indo.createVariable
time ,
i ,timedims
3. nc_indo.variables [
time ][
: ]
= time_ind 4.
setattr time_indo,
units ,
hours since 1900-1-1 0:0:0 5. nc_indo.sync
6. lat = latdims
, 7. latitude_indo = nc_indo.createVariable
latitude ,
f ,lat
8. nc_indo.variables [
latitude ][
: ]
= lat_ind 9.
setattr latitude_indo,
units ,
degrees_N 10. nc_indo.sync
11. lon = londims
, 12. longitudes_indo = nc_indo.createVariable
longitude ,
f ,lon
13. nc_indo.variables [
longitude ][
: ]
= lon_ind 14.
setattr latitude_indo,
units ,
degrees_N 15. nc_indo.sync
16. 17. dimensi =
time ,
latdims ,
londims ,
18. windspeed_indo = nc_indo.createVariable wind_speed
, s
,dimensi 19. nc_indo.variables
[ wind_speed
][ :
] = ws_ind
20. setattr
windspeed_indo, units
, meters per second
21. setattr
windspeed_indo, scale_factor
, 0.0100000
22. nc_indo.sync
67
Baris kedua dalam code diatas digunakan untuk membuat variabel time dengan format data integer bilangan bulat, variable ini akan ditempatkan pada
dimensi timedims, demikian juga pada variabel latitude dan longitude yang ditunjukan oleh baris ke 7 dan 12. Pada variabel wind speed, zonal wind speed,
meriditiona wind speed, wind stress, zona wind stress, dan meriditional wind ditunjukkan oleh baris ke 18 variabel wind speed, zonal wind speed, meridional
wind speed, wind stress, zona wind stress, dan meridional wind disimpan dalam 3 dimensi yang berbeda yaitu time,latdims,londims, ini berarti untuk mengambil
nilai dari variabel wind speed, zonal wind speed, meriditiona wind speed, wind stress, zona wind stress, dan meriditional wind memperhitungkan variabel dari
time, latitude dan longitude. Nilai dimasukan ke dalam variabel dengan cara code pada baris ke 3,
variabel yang telah selesai berisi file bernilai kosong dengan jumlah sesuai dengan dimensi yang telah ditentukan. Nilai yang dimasukan harus sesuai jumlahnya
dengan dimensi yang dibuat. Variabel selain mempunyai nilai juga mempunyai attribute. Attribute
berisi keterangan dari variabel seperti satuan dan scale factor, untuk membuat attribute pada variabel digunakan perintah seperti pada baris ke 4 ,9 ,14, 20, dan
21. Hal terakhir yang dilakukan adalah menulis semua dimensi, variabel, dan attribute ke dalam file yang telah dibuat dengan menggunakan perintah pada baris
ke 22. File asli mempunyai penamaan BlendedEcmwf25km6h_yymmddhh.nc data hasil cropping mempunyai penamaan indoBlendedEcmwf25km6h_
yymmddhh.nc yang dapat dilihat pada Gambar 22.
68
Gambar 22. Direktori data hasil cropping
3.5.1 Proses Perata-rataan Data
Proses perata-rataan data ini betujuan untuk memudahkan pengolahan data, perata-rataan data ini menggunakan bahasa
pemograman python. Modul python yang digunakan dalam proses penggabungan data ini sama dengan proses cropping data, yaitu:
import os, os.path from Scientific.IO import NetCDF
import numpy import shutil
Data yang akan dihasilkan dari perata-rataan data ini adalah data
harian, data bulanan, dan data tahunan.
69
4.3.3.1 Data Harian
Kode program di bawah berfungsi untuk membuat lokasi direktori dari
empat file yang akan disatukan. Lokasi direktori ditentukan dari y[x]+m[z]+d[a] yang merupakan tahun, bulan, dan hari, y[x]+m[z]+d[a] diatur oleh x, z, a yang
berisi nilai posisi dari array yang akan loop terus menerus. Variabel y, m, d seperti terlihat pada bari 3, 4 ,dan 5 merupakan array yang mempunyai nilai yang
menggambarkan hari, bulan, dan tahun yang nantinya akan mengisi code pada baris 15, 16, 17, dan 18. Variabel x, z, dan a mengatur urutan nilai yang keluar
dari array y, m, dan d. 1. path =
homeaditridata_nc_indo 2. path1day =
homeaditridata_nc_indo_1day 3. m =
[ 01
, 02
, 03
, 04
, 05
, 06
, 07
, 08
, 09
, 10
, 11
, 12
]
4. d = [
01 ,
02 ,
03 ,
04 ,
05 ,
06 ,
07 ,
08 ,
09 ,
10 ,
11 ,
12 ,
13 ,
14 ,
15 ,
16 ,
17 ,
18 ,
19 ,
20 ,
21 ,
22 ,
23 ,
24 ,
25 ,
26 ,
27 ,
28 ,
29 ,
30 ,
31 ]
5. y = [
2006 ,
2007 ,
2008 ]
6. for
x in
range 3
: 7.
print x =
,x 8. y
[ x
]
9. for
z in
range 12
: 10. m
[ z
]
11. print
z= ,z
12. for
a in
range 31
: 13. d
[ a
]
14. print
a= ,a
15. path1 = path+ indoBlendedEcmwf25km6h_
+y [
x ]
+m [
z ]
+d [
a ]
+ 00.nc
16. path2 = path+ indoBlendedEcmwf25km6h_
+y [
x ]
+m [
z ]
+d [
a ]
+ 06.nc
17. path3 = path+ indoBlendedEcmwf25km6h_
+y [
x ]
+m [
z ]
+d [
a ]
+ 12.nc
18. path4 = path+ indoBlendedEcmwf25km6h_
+y [
x ]
+m [
z ]
+d [
a ]
+ 18.nc
Data windblended dari IFREMER mempunya range waktu per 6 jam,
dalam satu hari terdapat empat data. perata-rataan data harian ini menggunakan 4
file ini menjadi satu file netCDF.
70
Berdasarkan dari lokasi direktori yang dibuat oleh code diatas langkah selanjutnya adalah membuka file netcdf tersebut dan mengambil variabel yang di
inginkan yaitu time, depth, latitude, longitude, wind speed, zonal wind speed, meriditiona wind speed, wind stress, zona wind stress, dan meriditional wind
stress dari setiap file dengan menggunakan modul netCDF. Semua nilai dalam variabel yang diambil tersimpan dalam memori komputer yang diciptakan oleh
python, dan langkah selanjutnya adalah menyatukan variabel yang sama dari setiap file netCDF yang dibuka. Berikut code untuk menyatukan variabel :
1. for r in range35802: 2. if r 35802:
3. wsf = wsf1[r:r+1]+wsf2[r:r+1]+wsf3[r:r+1]+wsf4[r:r+1]4 4. zwsf =
zwsf1[r:r+1]+zwsf2[r:r+1]+zwsf3[r:r+1]+zwsf4[r:r+1]4 5. mwsf =
mwsf1[r:r+1]+mwsf2[r:r+1]+mwsf3[r:r+1]+mwsf4[r:r+1] 4
6. wstf = wstf1[r:r+1]+wstf2[r:r+1]+wstf3[r:r+1]+wstf4[r:r+1]4
7. zwstf = zwstf1[r:r+1]+zwstf2[r:r+1]+zwstf3[r:r+1]+zwstf4[r:r+1]4
8. mwstf = mwstf1[r:r+1]+mwstf2[r:r+1]+mwstf3[r:r+1]+mwstf4[r:r+1]
4 9. print coba,coba
10. wsfgabung.appendwsf 11. zwsfgabung.appendzwsf
12. mwsfgabung.appendmwsf 13. wstfgabung.appendwstf
14. zwstfgabung.appendzwstf 15. mwstfgabung.appendmwstf
16. wsfreshape = numpy.reshapewsfgabung, 1,162,221 17. print wsfreshape
18. zwsfreshape = numpy.reshapezwsfgabung, 1,162,221 19. mwsfreshape = numpy.reshapemwsfgabung, 1,162,221
20. wstfreshape = numpy.reshapewstfgabung, 1,162,221 21. zwstfreshape = numpy.reshapezwstfgabung, 1,162,221
22. mwstfreshape = numpy.reshapemwstfgabung, 1,162,221
71
Pada kode di atas terdapat “wsf = wsf1[r:r+1]+wsf2[r:r+1]+wsf3[r:r+1]+wsf4[r:r+1]4
“ kode ini digunakan untuk merata-ratakan file dari setiap file yang dibuka dengan
“r” sebagai penanda array yang akan di rata-ratakan. Perata-rataan file netCDF
variabel menggunakan modul numpy. Fungsi yang digunakan adalah append dan. Append merupakan fungsi dari numpy yang berfungsi untuk menambahkan nilai
pada akhir array, yang mengunakan fungsi ini adalah variabel time untuk menyatukan dan mengurutkan time dari yang terlama,.
Array yang selesai digabung telah tersimpan di memory komputer, langkah selanjutnya adalah membuat file netCDF baru dan memasukan nilai dari
array yang telah digabung ke dalam variabel baru. Ini dilakukan dengan cara : 1. pathday =
path1day+indoBlendedEcmwf25km6h_+y[x]+m[z]+d[a]+.nc 2. nc_indo = NetCDF.NetCDFFilepathday, w
3. nc_indo.createDimensionlatitude,162, 4. nc_indo.createDimensionlongitude,221,
5. nc_indo.createDimensiontime,1, 6. nc_indo.createDimensiondepth,1,