PENDAHULUAN nc_indo.createDimensionlatitude,162, 4. nc_indo.createDimensionlongitude,221,

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,