Plotting Centroid Moment Tensor

Data Global Centroid Moment Tensor bisa diunduh dari situs globalcmt.org untuk selanjutnya kita plot menggunakan Generic Mapping Tools. Screenshot hasil filtering data untuk Nusa Tenggara Timur (dengan pilihan format output sebagai input psmeca) bisa dilihat di bawah ini:

Hasil Pencarian Dari Global CMT Catalog
Hasil Pencarian Dari Global CMT Catalog

Setelah kita simpan data di atas pada file gcmt_ntt.gmt (atau nama pilihan Anda), maka selanjutnya perlu kita filter menggunakan perintah UNIX awk untuk mendapatkan data yang kita perlukan dan membuang data pada kolom lain yang tidak akan kita gunakan untuk pengeplotan ini.

$ awk '{print $1, $2, $3, $4, $5, $6, $7, $8, $9, $10}' gcmt_ntt.gmt > psm_ntt.gmt

Centroid Moment Tensor kita plot dengan perintah psmeca. Pastikan GMT Anda mempunyai perintah suplement ini. Distribusi GMT linux ubuntu versi 5.2.1 tidak menyertakan psmeca seperti ditulis pada forum ini.

Script untuk pengeplotan semua CMT  ada di bawah ini:

#!/usr/bin/bash

# Plot CMT
# GMT 5.2.1
# oleh: Hendro Nugroho

gmt set MAP_FRAME_TYPE plain

# Variabel
out='cmt_ntt.ps'
area='-R118.5/127.5/-11.5/-7.5'

# extraksi kolom yang kita perlukan
#awk '{print $1, $2, $3, $4, $5, $6, $7, $8, $9, $10}' gcmt_ntt.gmt > psm_ntt.gmt

# frame peta
gmt psbasemap $area -JM8.5i -Xc -Yc -Bxa2f1 -Bya1f1 -B+t"CMT Nusa Tenggara" -K > $out

# peta garis pantai
gmt pscoast -R -JM -Xc -Yc -B -Di -Ggray -O -K >> $out

# plot CMT
gmt psmeca psm_ntt.gmt -R -JM -Xc -Yc -Sm0.4 -h13 -O >> $out

Hasil pengeplotan CMT dengan zero trace (-Sm):

CMT Nusa Tenggara Timur
CMT Nusa Tenggara Timur (zero trace)

Dan hasil plot hanya bagian double couple dari moment tensor saja (-Sd):

cmt_ntt_sd
CMT Nusa Tenggara Timur (double couple)

Nah sekarang tugas Anda adalah membuat plot ini lebih informatif dan selektif.
Hal-hal yang bisa dikerjakan antara lain: 1) membedakan cmt untuk gempabumi, dangkal, sedang, dan dalam dengan menggunakan warna plot cmt yang berbeda, 2) melakukan pengeplotan menggunakan offset lokasi; gempa bumi diplot sebagai titik, lalu CMT tertentu diplot pada posisi off dengan referensi garis mengacu pada titik lokasi gempa.

Advertisements

Gempabumi dan Gunungapi

Earthquakes and Volcanoes
Earthquakes and Volcanoes

Data gempabumi dari NGDC akan kita plot dengan menggunakan aplikasi Generic Mapping Tools. Data format CSV dipilih empat kolom saja yaitu data longitude, latitude, depth dan magnitude. Penyaringan data bisa menggunakan grep, awk atau excel. Untuk keperluan ini data hasil penyaringan saya masukkan ke dalam file quakes_ntt.gmt.

Kedalaman gempa akan kita plot menggunakan 10 skala warna. Tabel warna master yang saya pilih adalah no_green.cpt. Tabel warna derivatif saya beri nama quake_depth.cpt.

Data gunungapi diunduh dari situs yang sama dan empat kolom saja yang saya ambil: longitude, latitude, heigth, dan nama gunungapi. Untuk keperluan ini hanya data longitude dan latitude saja yang akan digunakan dan data disimpan pada file volc-id.gmt.

Script lengkap bisa Anda cermati di bawah ini:

#!/usr/bin/bash
# Plot Basemap Dan Kontur Batimetri
# GMT 5.2.1
# oleh: Hendro Nugroho

gmt set MAP_FRAME_TYPE plain

# Data grid topografi: SRTM15 plus
out='q_map_ntt.ps'
area='-R118.5/127.5/-11.5/-7.5'

# cpt kedalaman gempa
gmt makecpt -Cno_green -I -T0/100/10 > quake_depth.cpt

# frame peta
gmt psbasemap $area -JM8.5i -Xc -Yc -Bxa2f1 -Bya1f1 -K > $out

# peta garis pantai
gmt pscoast -R -JM -Xc -Yc -B -Di -Ggray -O -K >> $out

# plot gunungapi dengan simbol segitiga berwarna merah
gmt psxy volc-id.gmt -R -JM -Xc -Yc -St0.4c -h2 -G255/0/0 -O -K >> $out

# plot quakes data
gmt psxy -R -JM -Xc -Yc quakes_ntt.gmt -Wfaint -i0,1,2,3s0.025 -h1 -Scc -Cquake_depth.cpt -O -K >> $out

# skala kedalaman
gmt psscale -D5/-1/10/0.5h -Xc -Cquake_depth.cpt -Bx10f10a20 -By+lKm -O  -K >> $out

# legenda
gmt pslegend -R -J -O -K -Dx4.2i/0.025i+w1.5i+o0.25i -F+glightgray+pthicker --FONT_ANNOT_PRIMARY=14p,Helvetica-Bold  $out
S 0.1i T 0.09i red - 0.3i Gunungapi
EOF

Untuk melihat distribusi kedalaman gempabumi yang lebih mudah, kita bisa membuat tabel warna sederhana berikut ini, (simpan dengan nama quakes.cpt):

# Tabel warna untuk kegempaan
# berdasarkan kedalaman (z)
#z0 warna z1 warna
0 red 70 red
70 green 300 green
300 blue 1000 blue

Script di atas perlu kita modifikasi sedikit. Pada baris 27, kita ganti file .cpt dengan file quakes.cpt yang baru saja kita buat di atas.
Barus 30 (plot skala kedalaman) tidak lagi kita perlukan. Dan pada legenda perlu kita tambahkan untuk tiga skala kedalaman gempabumi.

# legenda
gmt pslegend -R -J -O -K -Dx6.2i/0.01i+w1.85i+o0.25i -F+glightgray+pthicker --FONT_ANNOT_PRIMARY=12p,Helvetica-Bold  $out
S 0.1i T 0.09i red - 0.3i Gunungapi
S 0.1i c 0.07i red - 0.3i Eq 0 - <70 Km
S 0.1i c 0.07i green - 0.3i Eq 70 - <300 Km
S 0.1i c 0.07i blue - 0.3i Eq 300 - 1000 Km
EOF

Hasil peta baru bisa dilihat di bawah ini.

Earthquakes NTT

Bagaimana kalau Anda menambahkan data batas lempeng?

Menggambar Kontur Batimetri

Kontur Batimetri Hitam-Putih
Kontur Batimetri Hitam-Putih

File grid srtm_ntt.grd bisa kita interpolasi untuk menggambarkan kontur batimetri. SRTM 15 plus merupakan gabungan data batimetri dan topografi dari berbagai sumber akuisisi data, baik data dari satelit maupun data survei kelautan.

Generic Mapping Tools akan membantu kita melakukan plotting kontur batimetri  dari kedalaman -7500m sampai -500m dengan kontur interval 500m. Anotasi diberikan setiap 2000m. Daratan digambarkan memakai warna abu-abu.  Script singkat untuk melakukan plotting peta ada di bawah ini:

#!/usr/bin/bash

# Plot Basemap Dan Kontur Batimetri
# GMT 5.2.1
# oleh: Hendro Nugroho

gmt set MAP_FRAME_TYPE plain

# Data grid topografi: SRTM15 plus
ntt='srtm_ntt.grd'
out='kontur_batimetri_ntt.ps'
area='-R118.5/127.5/-11.5/-7.5'
k_int=500	# interval kontur
a_int=2000	# interval anotasi kontur
k_limit=-7500/-500

# frame peta
gmt psbasemap $area -JM8.5i -Xc -Bxa2f1 -Bya1f1 -K > $out

# peta garis pantai
gmt pscoast -R -JM -Xc -B -Di -Ggray -Wthinnest -O -K >> $out

# plot kontur batimetri
gmt grdcontour $ntt -R -JM -Xc -C$k_int -A$a_int -L$k_limit -O >> $out

Peta hasil pengeplotan bisa dilihat pada featured image di atas.

Dengan sedikit tambahan warna, hasil akhir peta akan lebih menarik. Level warna kontur bisa kita berikan dengan terlebih dahulu membuat tabel warna. Lalu kita plot file grid dengan perintah grdimage.

Mari kita sisipkan kode berikut ini di bawah deklarasi variabel terakhir.

cpt='kontur.cpt'
#membuat tabel warna level kontur
gmt makecpt -Chaxby -T-8000/0/1000 -Z > $cpt

# plot grd dengan tabel warna baru
# -Yc ditambahkan untuk memberi tempat skala warna
# yang akan diplot di bawah peta.
gmt grdimage $ntt -JM8.5i -Xc -Yc $area -C$cpt -K > $out

Perubahan kode script serta tambahan perintah untuk menggambar skala warna di bawah peta ada di bawah ini:

# ==> tambahan kode -Yc
# frame peta
gmt psbasemap $area -JM8.5i -Xc -Yc -Bxa2f1 -Bya1f1 -O -K >> $out

# peta garis pantai
gmt pscoast -R -JM -Xc -Yc -B -Di -Ggray -Wthinnest -O -K >> $out

# plot kontur batimetri
gmt grdcontour $ntt -R -JM -Xc -Yc -C$k_int -A$a_int -L$k_limit -O -K >> $out

# plot skala warna
gmt psscale -D5/-1/10/0.5h -Xc -C$cpt2 -Bf1000a2000 -O >> $out

Inilah hasil akhir peta dengan kontur batimetri berwarna:

peta_kontur_batimetri_berwarna

Plotting Basemap Dengan CPT Asimetri

Basemap Nusa Tenggara Timur
Basemap Nusa Tenggara Timur

Kita akan melihat kembali script GMT pada posting sebelumnya (plotting peta jaringan YS) dan akan menggunakan script tersebut untuk membuat basemap dengan color palette table asimetri. Warna batimetri akan kita ambil dari abyss.cpt sedangkan warna topografi akan kita ambilkan dari arctic.cpt dan memofidikasi file ini dengan menghilangkan warna-warna untuk kedalaman laut.

Sebelum membuat tabel warna (cpt) mari kita lihat informasi grid file yang akan kita pakai (srtm_ntt.grd) yang merupakan hasil pemotongan dari grid global srtm 15 plus. Untuk keperluan tersebut kita memanggil perintah gmt grdinfo

user@kkomputer ~/GMT_Project $ gmt grdinfo srtm_ntt.grd
srtm_ntt.grd: Title: Produced by grdcut
srtm_ntt.grd: Command: grdcut srtm15-plus/topo15.grd -R118.5/127.5/-11.5/-7.5 -Gsrtm_ntt.grd
srtm_ntt.grd: Remark: Derived from the full resolution shorelinen
srtm_ntt.grd: Gridline node registration used [Geographic grid]
srtm_ntt.grd: Grid file format: nf = GMT netCDF format (32-bit float), COARDS, CF-1.5
srtm_ntt.grd: x_min: 118.5 x_max: 127.5 x_inc: 0.00416666666667 name: longitude [degrees_east] nx: 2161
srtm_ntt.grd: y_min: -11.5 y_max: -7.5 y_inc: 0.00416666666667 name: latitude [degrees_north] ny: 961
srtm_ntt.grd: z_min: -7079.01904297 z_max: 2847 name: z
srtm_ntt.grd: scale_factor: 1 add_offset: 0
srtm_ntt.grd: format: netCDF-4 chunk_size: 136,138 shuffle: on deflation_level: 3

Sekarang kita tahu nilai z minimal pada file srtm_ntt.grd adalah -7079 meter dan nilai z maksimumnya adalah 2847 meter. Menggunakan keterangan ini kita bisa membuat color palette table asimetri yang kita inginkan secara terpisah dengan memberikan perintah berikut ini:

$ gmt makecpt -Cabyss -T-7500/0/250 -Z -N > mynew.cpt
$ gmt makecpt -Cmod_arctic.cpt -T0/3000/500 -Z >> mynew.cpt

Atau kita bisa memasukkannya menjadi bagian dari keseluruhan script plotting basemap berikut ini:

#!/usr/bin/bash

# Plot Basemap Menggunakan CPT asimetri
# GMT 5.2.1
# oleh: Hendro Nugroho

gmt set MAP_FRAME_TYPE plain

# Data grid topografi: SRTM15 plus
ntt='srtm_ntt.grd'
ntti='srtm_ntt_i.grd'
out='basemap_ntt.ps'
area='-R118.5/127.5/-11.5/-7.5'
# abyss.cpt dam modofikasi arctic.cpt [download dari cpt-city]
cpt='asimetri.cpt'

gmt makecpt -Cabyss -T-7500/0/250 -Z -N > $cpt
gmt makecpt -Cmod_arctic.cpt -T0/3000/500 -Z >> $cpt

# plot grd plus iluminasi
gmt grdimage $ntt -JM8.5i -Xc $area -I$ntti -C$cpt -K > $out

# frame peta
gmt psbasemap $area -JM8.5i -Xc -Bxa2f1 -Bya1f1 -O -K >> $out

## peta garis pantai
gmt pscoast -R -JM -Xc -B -Di -Wthinnest -O -K >> $out

Peta hasil plotting menggunakan GMT ini bisa kita lihat dengan gs

$ gs basemap_ntt.ps

Sekarang Anda bisa mencoba sendiri membuat peta di atas menggunakan tabel warna yang sama atau menggunakan warna kesukaan Anda.
Mungkin Anda akan memadukan abyss.cpt dengan dem2.cpt? Silakan mencoba!

List Pada Python

Salah satu variabel pada python adalah list yang didefinisikan sebagai kumpulan item dengan urutan tertentu. Kita bisa membuat list yang terdiri dari huruf, angka, nama, dan lain sebagainya. Bahkan kita bisa membuat list yang terdiri dari beberapa list. Item-item yang tercantum pada list tidak harus berkaitan. Item pada list ini mutable atau bisa diubah isinya dengan mengganti, menghapus, menambah. List ditandai dengan tanda kurung kotak [ ]. Perhatikanlah eksekusi kode-kode di bawah ini:

>>> merksepedamotor = ['honda', 'yamaha', 'suzuki', 'kawasaki']
>>> print merksepedamotor
['honda', 'yamaha', 'suzuki', 'kawasaki']

>>> len(merksepedamotor)
4

>>> print merksepedamotor[0]
honda

>>> print merksepedamotor[0].title()
Honda

>>> pernyataan = "Sepeda motor pertamaku bermerk " + merksepedamotor[1].title() + "."
>>> print pernyataan
Sepeda motor pertamaku bermerk Yamaha.

>>> merksepedamotor.append('ducati')
>>> print merksepedamotor
['honda', 'yamaha', 'suzuki', 'kawasaki', 'ducati']

>>> del merksepedamotor[3]
['honda', 'yamaha', 'suzuki', 'ducati'] 

>>> merksepedamotor.pop(0)
'honda'
>>> print merksepedamotor
['yamaha', 'suzuki', 'ducati']

Loop pada Python

Kita bisa menulis program sederhana untuk menunjukkan prosess looping pada python.

#!/usr/bin/env python
# Program looping sederhana

for penghitung in range(0,11):
    print penghitung

Setelah kita simpan kode tersebut ke dalam file smpl-loop-for.py, kita bisa menjalankan program tersebut di terminal.

user@komputer$ python smpl-loop-for.py

Atau kita bisa menjadikan file tersebut executable dengan perintah:

user@komputer$ chmod +x smpl-loop-for.py

lalu memanggilnya:

user@komputer$ ./smpl-loop-for.py
0
1
2
3
4
5
6
7
8
9
10

Perintah yang kita berikan kepada Python untuk melakukan looping 11 kali telah dilakukannya.

Python – Operasi String

Pada python, string bisa diungkapkan menggunakan tanda kutip tunggal (‘ ‘), tanda kutip ganda (” “), tiga pasang tanda kutip tunggal (”’ ”’), atau tiga pasang tanda kutip ganda (“”” “””). String bisa berisi tab, diungkapkan dengan (\t) dan garis baru dengan (\n). String yang diapit dengan tanda kutip ganda, bisa berisi tanda kutip tunggal dan begitu pula sebaliknya.

Isi variable string yang sudah dideklarasikan tidak bisa ditambah isinya, dikurangi atau diganti. Dengan kata lain string immutable. Operasi string menggunakan operator in, +, dan *, serta menggunakan fungsi len, max, min bisa dijalankan sebagaimana pada list atau tuple.

>>> kalimat1 = "String dalam tanda kutip ganda bisa berisi karakter 'tanda kutip tunggal'"
>>> print kalimat1
String dalam tanda kutip ganda bisa berisi karakter 'tanda kutip tunggal'
>>> kalimat2 = 'String dalam tanda kutip tunggal bisa berisi karakter "tanda kutip ganda"'
>>> print kalimat2
String dalam tanda kutip tunggal bisa berisi karakter "tanda kutip ganda"
>>> len(kalimat1)
73
>>> kalimat1+kalimat2
'String dalam tanda kutip ganda bisa berisi karakter \'tanda kutip tunggal\'String dalam tanda kutip tunggal bisa berisi karakter "tanda kutip ganda"'
>>> kalimat1*2
"String dalam tanda kutip ganda bisa berisi karakter 'tanda kutip tunggal'String dalam tanda kutip ganda bisa berisi karakter 'tanda kutip tunggal'"

Plotting Peta Jaringan YS

stasiun-YS

Jaringan YS adalah jaringan seismic recorder sementara dalam rangka penelitian di daerah Busur Banda. Data titik koordinat dan nama stasiun ini akan saya ambil untuk memaparkan pengeplotan titik, jaringan tringulasi, dan plot nama stasiun menggunakan aplikasi Generic Mapping Tools. Background topografi yang akan dipakai kali ini diambil dari SRTM 15 plus dari NOAA. Master color palette table yang akan saya pakai adalah gray.cpt.

Berikut ini adalah script untuk plotting peta jaringan YS tersebut:

#!/usr/bin/bash

# Plot stasiun seismometer network YS
# Sumber: http://www.fdsn.org/networks/detail/YS_2014/
# Ekstraksi informasi: lon, lat, nama_stasiun
# Data grid topografi: SRTM15 plus
# GMT 5.2.1
# oleh: Hendro Nugroho

data='/home/eagle1/Data/srtm15-plus/'
srtm15_ori='topo15.grd'
ntt='srtm_ntt.grd'
ntti='srtm_ntt_i.grd'
out='net_YS.ps'
area='-R118.5/127.5/-11.5/-7.5'
cpt='ntt_gray.cpt'

# potong srtm15+
gmt grdcut $data$srtm15_ori $area -G$ntt

# membuat cpt abu-abu
gmt grd2cpt $ntt -Cgray > $cpt

# Membuat gradient dari file grid NTT
gmt grdgradient $ntt -A345 -Ne0.6 -G$ntti

# plot grd plus iluminasi
gmt grdimage $ntt -JM8.5i -Xc $area -I$ntti -C$cpt -K > $out 

# buat jaringan triangulasi
# Sumber: http://ds.iris.edu/mda/YS?timewindow=2014-2017
# Ekstraksi informasi:
# Lon Lat elev station
# 124.411500  -8.219400 69  ALRB
# Nama file: stasiun_YS.gmt; hasil triangulasi: ys.net.gmt
gmt triangulate stasiun_YS.gmt -M > ys.net.gmt

# frame peta
gmt psbasemap $area -JM8.5i -Xc -Ba1f1 -K > $out

# siapkan clipper
gmt pscoast -R -JM -Xc -Di -Gc -O -K >> $out

# plot grd plus iluminasi
gmt grdimage $ntt -JM -Xc $area -I$ntti -C$cpt -O -K >> $out 

# undo clipping
gmt pscoast -R -JM -B -Xc -O -K -Q >> $out
#
# peta garis pantai
gmt pscoast -R -JM -Xc -B -Di -Wthinnest -O -K >> $out
# plot triangulasi
gmt psxy ys.net.gmt -R -JM -Xc -B -W -O -K >> $out
# plot stasiun
gmt psxy stasiun_YS.gmt -R -JM -Xc -Sc0.06i -Gred -O -K >> $out
gmt psxy stasiun_YS.gmt -R -JM -Xc -Sc0.04i -Gwhite -O -K >> $out
# plot nama stasiun dari file nama_stasiun.gmt
# Isi file adalah ekstraksi informasi yg terdiri dari
# Lon Lat Justify Station
# CB = Center Bottom
# 124.411500 -8.219400 CB ALRB
gmt pstext nama_stasiun.gmt -R -JM -F+f6p,Helvetica,red+j -D0/0.05i -N -Gwhite -Wthinnest -C0.02i -O >> $out

Silakan Anda coba!

Catatan Awal Python

Catatan ini didasarkan pada pengalaman selama beberapa kali mencoba bahasa pemrograman Python.

  1. Tipe data pada Python terjaga ketat. Misalnya saja, kita tidak bisa menambahkan string dan integer.
  2. Tanpa deklarasi jenis variable, Python secara dinamis dan implisit akan terjaga pada saat program dijalankan.
  3. Segala sesuatu dianggap obyek oleh Python.
  4. Python memperhatikan dan membedakan antara huruf besar dan huruf kecil / case sensitive => Variabel JumlahHari berbeda dengan Variabel JUMLAHHari.

Variable

Variable sebagai wadah data dinyatakan secara sederhana: nama_variable = nilai_variable. Yang perlu diperhatikan dari nama_variable adalah menghindari penggunaan kata-kata yang sudah dipakai oleh Python, misalnya and, as, assert, break, class, def, del, elif dan lain sebagainya seperti dituliskan pada referensi Python.

Untuk memudahkan pembacaan program dan debugging serta untuk memudahkan kita di kemudian hari apabila harus menengok ulang program yang kita tulis, maka sebaiknya variable diberi nama semestinya. Misalnya apabila kita ingin memberikan nilai 30 sebagai jumlah hari, maka deklarasi variable yang sesuai adalah JumlahHari = 30, dan bukan x = 30.

Tipe Data

Python mempunyai tipe data bawaan / built-in seperti halnya bilangan (integer, float, complex dan Booleans), string, list, tuple, dan dictionary. Tipe data ini bisa dimanipulasi menggunakan operator, fungsi, dan metode.

Bilangan integer atau bilangan bulat (terdiri dari bilangan cacah dan negatif) misalnya 1, 5, 976544, -567890, sedangkan bilangan float / pecahan selalu ditandai dengan titik, misalnya: 1.0, 5.890876, -999.99, -767.00025, 3.2. Booleans hanya mempunyai dua pilihan True atau False (bisa juga dengan 1 atau 0).

Operator

Sejak kecil kita telah diajar menggunakan operator dan telah sering kali menggunakannya dalam kehidupan sehari-hari. Operator ini digunakan untuk melakukan operasi bilangan berupa: penambahan (+), pengurangan (-), pembagian (/), perkalian (*), operasi modulus (%, //), perpangkatan (**).

Contoh operasi bilangan pada Python:

user@komputer ~/environments $ python
Python 2.7.12 (default, Nov 19 2016, 06:48:10)
[GCC 5.4.0 20160609] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>>9 + 5
14
>>>9 - 5
4
>>>9 * 5
45
>>>9 ** 5
59049
>>>9 / 5   # Python 2.x
1
>>>9.0 / 5
1.8
>>>9 // 5
1
>>>9 % 5
4
>>>9 > 5
True
>>>9 >>9 == 5
False
>>>9 !=5
True
>>>9 >= 5
True

Silakan menelusuri tautan berikut untuk membaca penjelasan mengenai ambiguitas tanda / pada Python 2.x.

Inilah cara memperoleh hasil true division pada Python 2.x

>>>from __future__ import division
>>>9 / 5
1.8
>>> from operator import truediv
>>> c = truediv(9, 5)
>>> c
1.8

Fungsi

Python mempunyai beberapa fungsi built-in untuk memanipulasi integer. Disamping itu ada juga modul dari Pustaka Standard Python, misalnya math.

Contoh fungsi build-in antara lain: float(), int(), str(), abs() dan lain sebagainya.

Untuk menguji kebenaran bilangan, kita bisa memakai type built-in misalnya float.is_integer()

>>> float(9)
9.0
>>> float('9')
9.0
>>> int('9')
9
>>> int(9.0)
9
>>> (9.6).is_integer()
False
>>> (9.0).is_integer()
True

Saya cukupkan sekian untuk bagian ini. Selanjutnya akan saya bahas string, manipulasi string dan beberepa fungsi berkaitan dengan string.