modul map basic indo

31
GEOVISI™ GIS TEXTBOOKS SERIES : BUKU SERI PEMROGRAMAN SISTEM INFORMASI GEOGRAFIS DENGAN MAPINFO MAPBASIC PENULIS : IBNU ROSYADI, S.Si PT GEOVISI MITRATAMA

Upload: imat-ruhimat

Post on 20-Jun-2015

4.797 views

Category:

Technology


3 download

DESCRIPTION

NI tutorial buat yang mau belajar Map Basic Programing,,cocok buat beginer

TRANSCRIPT

Page 1: Modul Map Basic Indo

GEOVISI™ GIS TEXTBOOKS SERIES :

BUKU SERI PEMROGRAMAN SISTEM INFORMASI GEOGRAFIS

DENGAN MAPINFO MAPBASIC

PENULIS : IBNU ROSYADI, S.Si

PT GEOVISI MITRATAMA

Page 2: Modul Map Basic Indo

GeoVISI™ GIS TEXTBOOKS SERIES : GIS Programming Using Map Basic. Silahkan dikopi dan disebarkan secara bebas dengan syarat tidak menghilangkan label Geovisi. Geovisi™ merupakan merk dagang PT. Geovisi Mitratama http://geovisi.com email : [email protected]. E-book ini dipublish di Mailing list Komunitas GIS.

1

BAB 1

Page 3: Modul Map Basic Indo

GeoVISI™ GIS TEXTBOOKS SERIES : GIS Programming Using Map Basic. Silahkan dikopi dan disebarkan secara bebas dengan syarat tidak menghilangkan label Geovisi. Geovisi™ merupakan merk dagang PT. Geovisi Mitratama http://geovisi.com email : [email protected]. E-book ini dipublish di Mailing list Komunitas GIS.

2

1. Dasar-Dasar Pemrograman MapBasic

1.1 Elemen-Elemen Dasar Pemrograman MapBasic

Elemen dasar pemrograman MapBasic mendeskripsikan beberapa aspek dasar dari sintak pemrograman

MapBasic.

1.1.1 Baris Komentar Program

Baris komentar merupakan baris kode yang dimaksudkan sebagai deskripsi dari program yang akan

diabaikan oleh compiler MapBasic. Seperti pada program Basic pada umumnya, pada MapBasic

komentar diawali dengan karakter aphostrophe (' ).

Contoh penulisan komentar:

' Program menampilkan pesan

Note "Selamat Datang"

Silahkan compile dan jalankan program dengan cara klik menu Project kemudian pilih Compile, setelah

berhasil silahkan klik menu Run maka akan menghasilkan tampilan seperti berikut ini:

Page 4: Modul Map Basic Indo

GeoVISI™ GIS TEXTBOOKS SERIES : GIS Programming Using Map Basic. Silahkan dikopi dan disebarkan secara bebas dengan syarat tidak menghilangkan label Geovisi. Geovisi™ merupakan merk dagang PT. Geovisi Mitratama http://geovisi.com email : [email protected]. E-book ini dipublish di Mailing list Komunitas GIS.

3

Perhatikan bahwa kode beris kode “' Program menampilkan pesan “ tidak berefek pada program.

1.1.2 Variabel

Variabel merupakan tempat menyimpan nilai yang dapat berubah selama siklus hidupnya. Sebelum

digunakan, variabel harus dideklarasikan terlebih dahulu. Statemen Dim (untuk variabel lokal) atau

Global (untuk variabel global) digunakan untuk mendeklarasikan dan mendefinisikan variabel. Deklarasi

variabel mencakup nama dan tipe variabel. Gunakan operator sama dengan (=) untuk memasukkan nilai

ke dalam variabel. Contoh pendeklarasian dan pengisian nilai pada variabel.

Dim nama As String

nama = "Ibnu"

Satu statemen pendeklarasian dan pendefinisian variabel (Dim atau Global) dapat digunakan untuk

mendeklarasikan beberapa variabel dengan dipisahkan tanda koma. Contoh berikut merupakan

pendeklarasian dua variabel dengan tipe yang sama.

Page 5: Modul Map Basic Indo

GeoVISI™ GIS TEXTBOOKS SERIES : GIS Programming Using Map Basic. Silahkan dikopi dan disebarkan secara bebas dengan syarat tidak menghilangkan label Geovisi. Geovisi™ merupakan merk dagang PT. Geovisi Mitratama http://geovisi.com email : [email protected]. E-book ini dipublish di Mailing list Komunitas GIS.

4

Dim nama, alamat As String

nama = "Ibnu"

alamat = "Yogyakarta"

Contoh berikut merupakan pendeklarasian empat variabel dengan tipe yang berbeda.

Dim nama, alamat As String, tinggi, berat As Float

nama = "Ibnu"

alamat = "Yogyakarta"

tinggi = 170.5

berat = 60

Note "Nama : " + nama + Chr$(10) + "Alamat : " + al amat + Chr$(10) +

"Tinggi : " + tinggi + Chr$(10) + "Berat : " + ber at

Penamaan Variabel

Terdapat beberapa ketentuan untuk pemberian nama varibel sebagai berikut:

- harus dimulai dengan karakter huruf (alfabetik), garis bawah atau tilde (~) - tidak boleh mengandung spasi - maksimum 31 karakter - dapat terdiri dari karakter huruf, bilangan, tanda pound (#), atau garis bawah

Page 6: Modul Map Basic Indo

GeoVISI™ GIS TEXTBOOKS SERIES : GIS Programming Using Map Basic. Silahkan dikopi dan disebarkan secara bebas dengan syarat tidak menghilangkan label Geovisi. Geovisi™ merupakan merk dagang PT. Geovisi Mitratama http://geovisi.com email : [email protected]. E-book ini dipublish di Mailing list Komunitas GIS.

5

- dapat diakhiri dengan tanda persen (%), ampersand (&), tanda seru (!), atau karakter @, dimana penulisan ini tidak memiliki fungsi khusus walaupun dalam bahasa Basic dapat mengindikasikan tipe variabel tertentu

- tidak boleh sama dengan salah satu key word yang dimiliki oleh MapBasic (misal: Call, Close, Goto, dan lain sebagainya)

- bersifat case-insensitive sehingga penulisan nama variabel dengan huruf besar dan kecil dianggap sama.

Tipe Variabel

Tipe variabel yang didukung oleh MapBasic adalah

Tipe Keterangan

SmallInt Data 2 byte bilangan bulat dengan

interval nilai antara -32.767 sampai 32.767

Integer Data 4 byte bilangan bulat dengan

interval nilai antara -2.147.483.647 sampai 2.147.483.647

Float Data 8 byte format IEEE bilangan real

String Data karakter dengan panjang maksimal hingga 32.767

karakter

Page 7: Modul Map Basic Indo

GeoVISI™ GIS TEXTBOOKS SERIES : GIS Programming Using Map Basic. Silahkan dikopi dan disebarkan secara bebas dengan syarat tidak menghilangkan label Geovisi. Geovisi™ merupakan merk dagang PT. Geovisi Mitratama http://geovisi.com email : [email protected]. E-book ini dipublish di Mailing list Komunitas GIS.

6

String * n Data karakter dengan panjang n karakter (hingga 32.767

karakter)

Logical Data 1 byte, TRUE (nilai ≠ 0) atau FALSE (nilai = 0)

Date Data 4 byte: 2 byte untuk menyimpan data tahun, 1 byte

untuk bulan, dan 1 byte untuk hari (tanggal)

Object Tipe data yang digunakan untuk menyimpan variabel objek-

objek yang bersifat grafis (point, region, line, polyline, arc,

rectangle, rounded rectangle, ellipse, text, atau frame)

Tipe Variabel Buatan Sendiri

Untuk mendefinisikan variabel buatan sendiri digunakan statemen “Type…End Type”. Berikut contoh

kode pembuatan dan penggunaan tipe variabel buatan sendiri.

Type DataPribadi

nama As String * 30

alamat As String * 100

tinggi As Float

berat As Float

End Type

Dim siswa As DataPribadi

Page 8: Modul Map Basic Indo

GeoVISI™ GIS TEXTBOOKS SERIES : GIS Programming Using Map Basic. Silahkan dikopi dan disebarkan secara bebas dengan syarat tidak menghilangkan label Geovisi. Geovisi™ merupakan merk dagang PT. Geovisi Mitratama http://geovisi.com email : [email protected]. E-book ini dipublish di Mailing list Komunitas GIS.

7

siswa.nama = "Ibnu"

siswa.alamat = "Yogyakarta"

siswa.tinggi = 170.5

siswa.berat = 60

Note siswa.nama

Variabel Array

MapBasic mendukung variabel array satu dimensi dengan aturan penulisan sebagai berikut:

Dim NamaVariabel (JumlahAnggota) As TipeVariabel

Statemen “UBound” digunakan untuk mengetahui ukuran aktual variabel array, sedangkan “ReDim”

digunakan untuk mengubah ukuran atau jumlah anggota variabel array yang bersangkutan.

Contoh kode program pendeklarasian, pengisian nilai dan pengambilan nilai dari variabel array.

Dim nama(4) As String

nama(1) = "Ani"

nama(2) = "Ana"

nama(3) = "Ina"

nama(4) = "Oni"

Note nama(1)

Page 9: Modul Map Basic Indo

GeoVISI™ GIS TEXTBOOKS SERIES : GIS Programming Using Map Basic. Silahkan dikopi dan disebarkan secara bebas dengan syarat tidak menghilangkan label Geovisi. Geovisi™ merupakan merk dagang PT. Geovisi Mitratama http://geovisi.com email : [email protected]. E-book ini dipublish di Mailing list Komunitas GIS.

8

Jangkauan (Scope) Variabel

Variabel yang dideklarasikan dengan menggunakan statemen “Dim” merupakan varibel lokal yang hanya

berlaku (siklus hidupnya) di dalam fungsi atau prosedur dimana variable tersebut dideklarasikan.

Sedangkan variabel yang dideklarasikan dengan menggunakan statemen “Global” berlaku umum di

dalam sebuah program MapBasic. Variabel ini dideklarasikan di luar fungsi atau prosedur, dan

didefinisikan sebelum fungsi atau prosedur.

Apabila terdapat kasus dua nama variabel yang sama dimana sebuah variabel global dan yang satu lagi

variabel lokal di dalam prosedur, maka prioritas akan diberikan pada variabel lokal selama siklus

hidupnya, kemudian setelah siklus variabel lokal berlalu prioritas diberikan kepada variabel global.

Declare Sub Main

Declare Sub initialize_globals

Global strVar As String

Sub Main

Dim strVar As String

strVar = "Lokal"

Call initialize_globals

Note "Prosedur Main : " + strVar

End Sub

Page 10: Modul Map Basic Indo

GeoVISI™ GIS TEXTBOOKS SERIES : GIS Programming Using Map Basic. Silahkan dikopi dan disebarkan secara bebas dengan syarat tidak menghilangkan label Geovisi. Geovisi™ merupakan merk dagang PT. Geovisi Mitratama http://geovisi.com email : [email protected]. E-book ini dipublish di Mailing list Komunitas GIS.

9

Sub initialize_globals

strVar = "Global"

Note "Prosedur initialize_globals : " + strVar

End Sub

1.1.3 Konstanta

Konstanta merupakan nilai tertentu (data value) yang tidak akan berubah selama program yang

bersangkutan dieksekusi (siklus hidup). Konstanta didefinisikan dengan key word “Define”. Contoh kode

yang mengandung konstanta:

Define Pi 3.14

Define Programmer "Ibnu"

1.1.4 Operator

Operator merupakan simbol yang menginformasikan kepada compiler MapBasic untuk menjalankan

manipulasi matematis atau logika tertentu. MapBasic mendukung beberapa jenis operator sebagai berikut:

Page 11: Modul Map Basic Indo

GeoVISI™ GIS TEXTBOOKS SERIES : GIS Programming Using Map Basic. Silahkan dikopi dan disebarkan secara bebas dengan syarat tidak menghilangkan label Geovisi. Geovisi™ merupakan merk dagang PT. Geovisi Mitratama http://geovisi.com email : [email protected]. E-book ini dipublish di Mailing list Komunitas GIS.

10

Operator Numerik

Operator Deskripsi

+ Penjumlahan (untuk variabel bertipe string akan menghasilkan variabel

string baru dari masukan dua variabel

- Pengurangan

* Perkalian

/ Pembagian

\ Pembagian bilangan bulat integer (tanpa sisa)

Mod Sisa pembagian bilangan bulat

^ Pangkat

Operator Perbandingan

Operator Deskripsi

= Sama dengan

<> Tidak sama dengan

Page 12: Modul Map Basic Indo

GeoVISI™ GIS TEXTBOOKS SERIES : GIS Programming Using Map Basic. Silahkan dikopi dan disebarkan secara bebas dengan syarat tidak menghilangkan label Geovisi. Geovisi™ merupakan merk dagang PT. Geovisi Mitratama http://geovisi.com email : [email protected]. E-book ini dipublish di Mailing list Komunitas GIS.

11

< Lebih kecil dari

> Lebih besar dari

<= Lebih kecil atau sama dengan

>= Lebih besar atau sama dengan

Between Di antara nilai minimum dan maksimum yang ditentukan sendiri

Misal: X Between 0 And 10

Operator Logika

Operator Deskripsi

And Kedua operand benar – kedua kondisi terpenuhi, menghasilkan nilai

logika TRUE

Or Salah satu operand benar – salah satu kondisi sudah terpenuhi,

menghasilkan nilai logika TRUE

Not Operand akan menghasilkan nilai logika FALSE

Page 13: Modul Map Basic Indo

GeoVISI™ GIS TEXTBOOKS SERIES : GIS Programming Using Map Basic. Silahkan dikopi dan disebarkan secara bebas dengan syarat tidak menghilangkan label Geovisi. Geovisi™ merupakan merk dagang PT. Geovisi Mitratama http://geovisi.com email : [email protected]. E-book ini dipublish di Mailing list Komunitas GIS.

12

Operator Geografis

Operator Deskripsi

Contains Koordinat titik pusat (centroid) unsur spasial yang kedua berada di

dalam wilayah unsur spasial yang pertama

Contains Part Sebagian wilayah unsur spasial yang kedua berada di dalam wilayah

unsur spasial yang pertama

Contains Entire Keseluruhan wilayah unsur spasial yang kedua berada di dalam wilayah

unsur spasial yang pertama

Within Koordinat titik pusat (centroid) unsur spasial yang pertama berada di

dalam wilayah unsur spasial yang kedua

Partly Within Sebagian wilayah unsur spasial yang pertama berada di dalam wilayah

unsur spasial yang kedua

Entirely Within Keseluruhan wilayah unsur spasial yang pertama berada di dalam

wilayah unsur spasial yang kedua

Intersects (wilayah, batas, atau garis) unsur spasial yang pertama dan yang kedua

berpotongan di beberapa titik

Page 14: Modul Map Basic Indo

GeoVISI™ GIS TEXTBOOKS SERIES : GIS Programming Using Map Basic. Silahkan dikopi dan disebarkan secara bebas dengan syarat tidak menghilangkan label Geovisi. Geovisi™ merupakan merk dagang PT. Geovisi Mitratama http://geovisi.com email : [email protected]. E-book ini dipublish di Mailing list Komunitas GIS.

13

Prioritas Operator

MapBasic menentukan prioritas evaluasi dengan urutan seperti berikut:

1. tanda kurung [()] 2. pangkat [^] 3. negasi [–] 4. perkalian [*], pembagian [/ dan \], mod 5. penjumlahan [+], pengurangan [-], penggabungan string [+ dan &] 6. operator geografis, operator perbandingan, dan Like 7. operator Not 8. operator And 9. operator Or

1.2 Struktur Pemrograman

1.2.1 Percabangan

Compiler MapBasic mendukung bebarapa konsep dan implemantasi struktur pemrograman sebagai

berikut:

IF – THEN – END IF

Digunakan untuk percabangan yang melibatkan satu kondisi dengan satu alternatif (blok) tindakan.

Page 15: Modul Map Basic Indo

GeoVISI™ GIS TEXTBOOKS SERIES : GIS Programming Using Map Basic. Silahkan dikopi dan disebarkan secara bebas dengan syarat tidak menghilangkan label Geovisi. Geovisi™ merupakan merk dagang PT. Geovisi Mitratama http://geovisi.com email : [email protected]. E-book ini dipublish di Mailing list Komunitas GIS.

14

If (kondisi) Then

Blok Proses

End If

IF – THEN – ELSE – END IF

Digunakan untuk percabangan yang melibatkan satu kondisi dengan dua alternatif (blok) tindakan.

If (kondisi) Then

Blok Proses_1

Else

Blok Proses_2

End If

IF – THEN – ELSEIF – ELSE – END IF

Digunakan untuk percabangan yang melibatkan beberapa kondisi dan beberapa alternatif (blok) tindakan.

If (kondisi_1) Then

Blok Proses_1

ElseIf (kondisi_2) Then

Blok Proses_2

Page 16: Modul Map Basic Indo

GeoVISI™ GIS TEXTBOOKS SERIES : GIS Programming Using Map Basic. Silahkan dikopi dan disebarkan secara bebas dengan syarat tidak menghilangkan label Geovisi. Geovisi™ merupakan merk dagang PT. Geovisi Mitratama http://geovisi.com email : [email protected]. E-book ini dipublish di Mailing list Komunitas GIS.

15

ElseIf (kondisi_n) Then

Blok Proses_n

Else

Blok Proses_n+1

End If

DO – CASE

Digunakan untuk percabangan yang melibatkan beberapa kondisi dan beberapa alternatif (blok) tindakan,

sebagai alternatif dari IF – THEN – ELSEIF – ELSE – END IF

Do Case VariabelString (atau bilangan bulat)

Case KumpulanNilai_1

Blok Proses_1

Case KumpulanNilai_2

Blok Proses_2

Case KumpulanNilai_n

Blok Proses_n

Case Else

Blok Proses_n+1

End Case

1.2.2 Pengulangan

Page 17: Modul Map Basic Indo

GeoVISI™ GIS TEXTBOOKS SERIES : GIS Programming Using Map Basic. Silahkan dikopi dan disebarkan secara bebas dengan syarat tidak menghilangkan label Geovisi. Geovisi™ merupakan merk dagang PT. Geovisi Mitratama http://geovisi.com email : [email protected]. E-book ini dipublish di Mailing list Komunitas GIS.

16

Compiler MapBasic mendukung konsep dan implementasi struktur pengulangan sebagai berikut:

FOR - NEXT

Melakukan pengulangan blok proses dari nilai awal ke nilai akhir

For IndeksLoop = NilaiAwal To NilaiAkhir

Blok Proses

Next

Skema For-Next di atas akan menambah nilai IndeksLoop naik satu tingkat. Apabila menghendaki

tingkatan yang tidak sama dengan satu (dapat bernilai negatif atau positif) maka dapat ditambahkan

STEP, sehingga skemanya menjadi sebagai berikut:

For IndeksLoop = NilaiAwal To NilaiAkhir Step Nilai Step

Blok Proses

Next

Apabila menghendaki keluar dari pengulangan sebelum IndeksLoop NilaiAkhir dapat digunakan

statemen EXIT FOR , sehingga skemannya dapat menjadi seperti berikut:

For IndeksLoop = NilaiAwal To NilaiAkhir Step Nilai Step

Blok Proses1

If (Kondisi) Then

Exit For

Page 18: Modul Map Basic Indo

GeoVISI™ GIS TEXTBOOKS SERIES : GIS Programming Using Map Basic. Silahkan dikopi dan disebarkan secara bebas dengan syarat tidak menghilangkan label Geovisi. Geovisi™ merupakan merk dagang PT. Geovisi Mitratama http://geovisi.com email : [email protected]. E-book ini dipublish di Mailing list Komunitas GIS.

17

End If

Blok Proses2

Next

DO – LOOP UNTIL dan DO UNTIL – LOOP

Digunakan untuk proses pengulangan hingga tercapai suatu kondisi tertentu (pengulangan terakhir

dilakukan pada saat kondisi terpenuhi)

Do

Blok Proses

Loop Until (Kondisi)

Pada skema DO – LOOP UNTIL di atas program minimal melakukan satu kali eksekusi Blok Proses.

Do Until (Kondisi)

Blok Proses

Loop

DO – LOOP WHILE dan DO WHILE – LOOP

Page 19: Modul Map Basic Indo

GeoVISI™ GIS TEXTBOOKS SERIES : GIS Programming Using Map Basic. Silahkan dikopi dan disebarkan secara bebas dengan syarat tidak menghilangkan label Geovisi. Geovisi™ merupakan merk dagang PT. Geovisi Mitratama http://geovisi.com email : [email protected]. E-book ini dipublish di Mailing list Komunitas GIS.

18

Digunakan untuk proses pengulangan selama kondisi tertentu dipenuhi (pengulangan dilakukan selama

kondisi terpenuhi). Skema yang berlaku adalah sebagai berikut:

Do

Blok Proses

Loop While (Kondisi)

Pada skema DO – LOOP While di atas program minimal melakukan satu kali eksekusi Blok Proses.

Do While (Kondisi)

Blok Proses

Loop

WHILE – WEND

Merupakan variasi dari “Do While – Loop “ dengan skema sebagai berikut:

While (Kondisi)

Blok Proses

Wend

DO – EXIT DO – LOOP

Page 20: Modul Map Basic Indo

GeoVISI™ GIS TEXTBOOKS SERIES : GIS Programming Using Map Basic. Silahkan dikopi dan disebarkan secara bebas dengan syarat tidak menghilangkan label Geovisi. Geovisi™ merupakan merk dagang PT. Geovisi Mitratama http://geovisi.com email : [email protected]. E-book ini dipublish di Mailing list Komunitas GIS.

19

Untuk proses pengulangan (tak terhingga) di mana di dalam blok yang bersangkutan terdapat pengujian

suatu kondisi untuk keluar. Skema yang berlaku adalah sebagai berikut:

Do

Blok Proses1

If (Kondisi) Then

Exit Do

End If

Blok Proses2

Loop

Page 21: Modul Map Basic Indo

GeoVISI™ GIS TEXTBOOKS SERIES : GIS Programming Using Map Basic. Silahkan dikopi dan disebarkan secara bebas dengan syarat tidak menghilangkan label Geovisi. Geovisi™ merupakan merk dagang PT. Geovisi Mitratama http://geovisi.com email : [email protected]. E-book ini dipublish di Mailing list Komunitas GIS.

20

BAB 2

Page 22: Modul Map Basic Indo

GeoVISI™ GIS TEXTBOOKS SERIES : GIS Programming Using Map Basic. Silahkan dikopi dan disebarkan secara bebas dengan syarat tidak menghilangkan label Geovisi. Geovisi™ merupakan merk dagang PT. Geovisi Mitratama http://geovisi.com email : [email protected]. E-book ini dipublish di Mailing list Komunitas GIS.

21

2. Prosedur, Fungsi serta Feature Dasar Pemrograman Aplikasi Pada

MapBasic

Implemantasi prosedur dan fungsi bertujuan untuk memodularisasikan program yang bersangkutan

melalui pemisahan tugas-tugas menjadi unit tersendiri yang lebih kecil sehingga dapat dikendalikan dan

dikelola dengan mudah, dapat digunakan untuk membangun program aplikasi yang baru, dan dapat

menghindari duplikasi potongan program. Dengan penggunaan prosedur dan fungsi pengembangan

program aplikasi MapBasic dapat terpenuhi secara efisien dalam waktu yang relatif singkat.

2.1 Prosedur

Prosedur merupakan sekumpulan baris-baris kode (instruksi) yang kemudian diberi nama sendiri

(terkadang memiliki parameter dengan tipe data tertentu) dan akan menghasilkan status (state) yang

terdefinisi (tidak bersifat mengembalikan nilai).

Skema prosedur dalam MapBasic adalah:

Declare Sub NamaProsedur ([Kumpulan Parameter]) ' d eklarasi prosedur . . . Sub NamaProsedur ([Kumpulan Parameter]) ' a wal prosedur Blok baris kode berisi prosedur End Sub ' akhir prosedur

Page 23: Modul Map Basic Indo

GeoVISI™ GIS TEXTBOOKS SERIES : GIS Programming Using Map Basic. Silahkan dikopi dan disebarkan secara bebas dengan syarat tidak menghilangkan label Geovisi. Geovisi™ merupakan merk dagang PT. Geovisi Mitratama http://geovisi.com email : [email protected]. E-book ini dipublish di Mailing list Komunitas GIS.

22

Contoh pembuatan dan pengunaan prosedur:

Declare Sub TulisPesan (kalimat As String) Sub TulisPesan(kalimat As String) Note kalimat End Sub Dim pesan As String Pesan = "Selamat Datang" Call TulisPesan(pesan) ' pemanggilan prosedur

Prosedur Main (Sub Main) adalah prosedur MapBasic yang bersifat khusus dan akan dieksekusi pertama

kali ketika program aplikasi yang bersangkutan dieksekusi. Kemudian, prosedur ini dapat mengambil alih

kontrol program dengan memanggil prosedur, fungsi, atau baris-baris kode elementer lainnya.

Contoh penggunaan prosedur Main:

Declare Sub Main Declare Sub TulisPesan (kalimat As String) Sub TulisPesan(kalimat As String) Note kalimat End Sub Sub Main ' prosedur Main Dim pesan As String Pesan = "Selamat Datang" Call TulisPesan(pesan) ' pemanggilan prosedur End Sub

Page 24: Modul Map Basic Indo

GeoVISI™ GIS TEXTBOOKS SERIES : GIS Programming Using Map Basic. Silahkan dikopi dan disebarkan secara bebas dengan syarat tidak menghilangkan label Geovisi. Geovisi™ merupakan merk dagang PT. Geovisi Mitratama http://geovisi.com email : [email protected]. E-book ini dipublish di Mailing list Komunitas GIS.

23

Untuk keluar dari prosedur aktif tanpa harus menyelesaikan seluruh program dalam prosedur tersebut,

dapat digunakan key word “Exit Sub”. Berikut contoh penggunaannya:

Declare Sub Main Declare Sub TulisPesan (kalimat As String) Sub TulisPesan(kalimat As String) if (len(kalimat)=1) Then Note "Anda belum menuliskan kalimat" Exit Sub End If Note kalimat End Sub Sub Main ' prosedur Main Dim pesan As String Pesan = "S" Call TulisPesan(pesan) ' pemanggilan prosedur End Sub

2.2 Fungsi

Fungsi merupakan sekumpulan baris-baris kode (instruksi) yang kemudian diberi nama sendiri (terkadang

memiliki parameter dengan tipe data tertentu) dan akan menghasilkan suatu nilai dengan domain yang

telah didefinisikan di dalam spesifikasinya (bersifat mengembalikan nilai). Pada dasarnya, compiler

MapBasic mendukung beberapa jenis fungsi sebagai berikut:

- fungsi-fungsi standard (umum) yang telah dimiliki oleh bahasa pemrograman Basic

- fungsi-fungsi khusus yang hanya dimiliki oleh MapInfo maupun MapBasic sendiri

- fungsi-fungsi buatan sendiri (custom function)

Page 25: Modul Map Basic Indo

GeoVISI™ GIS TEXTBOOKS SERIES : GIS Programming Using Map Basic. Silahkan dikopi dan disebarkan secara bebas dengan syarat tidak menghilangkan label Geovisi. Geovisi™ merupakan merk dagang PT. Geovisi Mitratama http://geovisi.com email : [email protected]. E-book ini dipublish di Mailing list Komunitas GIS.

24

Skema penulisan custom function adalah sebagai berikut:

Declare Function NamaFungsi ([KumpulanParameter]) A s TipeDataOutput ... Function NamaFungsi ([KumpulanParameter]) As TipeDa taOutput Blok baris kode fungsi NamaFungsi = nilai End Function

Nilai pengembalian disimpan dalam variabel yang digunakan pada fungsi dengan nama yang sama

dengan nama fungsi. Untuk memperjelas pembuatan dan penggunaan fungsi berikut diberikan contoh

fungsi.

Declare Function Tambah (a As Integer, b As Integer ) As Integer Function Tambah (a As Integer, b As Integer) As Int eger Dim c As Integer c = a + b Tambah = c End Function Dim bil1, bil2 As Integer bil1 = 2 bil2 = 3 Note bil1 & " + " & bil2 & " = " & Tambah(bil1, bil 2)

Page 26: Modul Map Basic Indo

GeoVISI™ GIS TEXTBOOKS SERIES : GIS Programming Using Map Basic. Silahkan dikopi dan disebarkan secara bebas dengan syarat tidak menghilangkan label Geovisi. Geovisi™ merupakan merk dagang PT. Geovisi Mitratama http://geovisi.com email : [email protected]. E-book ini dipublish di Mailing list Komunitas GIS.

25

Untuk keluar dari fungsi sebelum seluruh kode dalam fungsi dieksekusi dapat menggunakan key word

“Exit Function”

2.3 Passing Variabel (by reference dan by value)

Secara default passing variabel pada argumen/parameter prosedur dan fungsi dalam MapBasic adalah by

reference, dimana variabel yang dijadikan parameter pada prosedur atau fungsi apabila terjadi perubahan

nilai akibat proses di dalam prosedur atau fungsi tersebut maka nilai itu akan tetap berlaku di luar

prosedur atau fungsi. Pada contoh berikut prosedur “CetakNilai” akan menggunakan nilai variabel

“Angka” yang telah dirubah oleh prosedur “RubahNilai” bukan nilai yang didefinisikan di awal pada

prosedur “Main”.

Declare Sub Main Declare Sub RubahNilai(obj As Integer) Declare Sub CetakNilai(obj As Integer) Sub Main Dim Angka As Integer Angka = 10 Note "Nilai Awal " + Angka Call RubahNilai(Angka) Call CetakNilai(Angka) End Sub Sub RubahNilai(obj As Integer) obj = obj * 10 End Sub

Page 27: Modul Map Basic Indo

GeoVISI™ GIS TEXTBOOKS SERIES : GIS Programming Using Map Basic. Silahkan dikopi dan disebarkan secara bebas dengan syarat tidak menghilangkan label Geovisi. Geovisi™ merupakan merk dagang PT. Geovisi Mitratama http://geovisi.com email : [email protected]. E-book ini dipublish di Mailing list Komunitas GIS.

26

Sub CetakNilai(obj As Integer) Note "Nilai Akhir " + obj End Sub

Apabila menghendaki passing variabel dengan menggunakan by Value, MapBasic menyediakan key-

word byVal, maka variabel tidak terpengaruh oleh prosedur atau fungsi yang menggunakan variabel

tersebut. Pada contoh berikut prosedur “CetakNilai” akan menggunakan nilai variabel yang diisikan pada

prosedur “Main” dan tidak terpengaruh oleh perubahan nilai variabel oleh prosedur “RubahNilai”.

Declare Sub Main Declare Sub RubahNilai(byVal obj As Integer) Declare Sub CetakNilai(byVal obj As Integer) Sub Main Dim Angka As Integer Angka = 10 Note "Nilai Awal " + Angka Call RubahNilai(Angka) Call CetakNilai(Angka) End Sub Sub RubahNilai(byVal obj As Integer) obj = obj * 10 End Sub Sub CetakNilai(byVal obj As Integer) Note "Nilai Akhir " + obj End Sub

Page 28: Modul Map Basic Indo

GeoVISI™ GIS TEXTBOOKS SERIES : GIS Programming Using Map Basic. Silahkan dikopi dan disebarkan secara bebas dengan syarat tidak menghilangkan label Geovisi. Geovisi™ merupakan merk dagang PT. Geovisi Mitratama http://geovisi.com email : [email protected]. E-book ini dipublish di Mailing list Komunitas GIS.

27

2.4 Pengendalian Program

END PROGRAM

Jika menghendaki penghentian sementara jalannya eksekusi suatu program aplikasi MapBasic, maka

telah disediakan key-word “End Program”. Berikut diberikan contoh kode program yang menggunakan

End Program

Dim langkah1, langkah2 As String langkah1 = "Melakukan langkah pertaman" langkah2 = "Melakukan langkah kedua" Note langkah1 End Program Note langkah2 'baris kode yang tidak sempat dieksek usi

RUN APPLICATION, TERMINATE APPLICATION dan END MAPINFO

Apabila menghendaki melakukan eksekusi terhadap suatu program aplikasi MapBasic atau menambahkan

workspace MapInfo dari program aplikasi MapBasic yang lain, maka dapat digunakan key-word “Run

Application.

Dan sebaliknya apabila ingin menghentikan eksekusi terhadap suatu program aplikasi dari program

aplikasi yang lain, maka dapat digunakan key-word “Terminate Application”.

Sedangkan untuk menghentikan keseluruhan aktivitas aplikasi serta menutup program aplikasi SIG

MapInfo-nya secara permanen digunakan key-word “End MapInfo”.

Untuk mencoba penggunaannya buatlah dua program aplikasi MapBasic sebagai berikut:

Page 29: Modul Map Basic Indo

GeoVISI™ GIS TEXTBOOKS SERIES : GIS Programming Using Map Basic. Silahkan dikopi dan disebarkan secara bebas dengan syarat tidak menghilangkan label Geovisi. Geovisi™ merupakan merk dagang PT. Geovisi Mitratama http://geovisi.com email : [email protected]. E-book ini dipublish di Mailing list Komunitas GIS.

28

'Program 1 Dim str As String str = "Ini program satu" Note str

Simpan dan compile kode program di atas ke dalam alamat yang nanti dijadikan parameter dalam

program yang kedua barikut:

'Program 2 Dim pesan As String Dim FileProgram1 As String FileProgram1 = "D:\Latihan\MapBasic\3\latihan3_4a.m bx" pesan = "Ini program dua" Note pesan 'Run Application FileProgram1 'menjalankan pro gram yang lain Terminate Application FileProgram1 'menghentikan pr ogram yang lain End MapInfo 'menutup program aplikasi MapInfo

2.5 Include

Key-word “Include” digunakan untuk menggabungkan data-data dalam satu program MapBasic. Dengan

cara seperti ini, data (yang pada umumnya diimplementasikan sebagai suatu konstanta) yang terdapat di

dalam file teks include secara otomatis akan diintegrasikan ke dalam baris-baris kode MapBasic pada saat

kompilasi. Pada MapBasic, pernyataan include (pada umumnya) digunakan untuk memanfaatkan

Page 30: Modul Map Basic Indo

GeoVISI™ GIS TEXTBOOKS SERIES : GIS Programming Using Map Basic. Silahkan dikopi dan disebarkan secara bebas dengan syarat tidak menghilangkan label Geovisi. Geovisi™ merupakan merk dagang PT. Geovisi Mitratama http://geovisi.com email : [email protected]. E-book ini dipublish di Mailing list Komunitas GIS.

29

sejumlah besar baris-baris pernyataan define. Berikut disajikan contoh penggunaan include yang

diimplementasikan pada dua file berisi kode berikut:

'Contoh file def berisi konstanta Define Phi 3.14 'Program MapBasic yang menggunakan file def Include "d:\Latihan\MapBasic\5\konstanta.def" Dim r, Luas as Float Dim nama as String r = 10 Luas = Phi * r^2 Note Luas

2.6 Mengelola Modul Dalam File Project

Untuk menghubungkan file-file modul dalam satu project pada MapBasic dapat dilakukan dengan

membuat sebuah file project MapBasic. Untuk mencoba silahkan buat dua file berisi kode seperti di

bawah ini, kemudian silahkan lakukan langkah Compile.

Declare Sub Main() Declare Function Tambah (a As Integer, b As Integer ) As Integer Sub Main() Dim nilai1, nilai2, jumlah As Integer nilai1 = 10 nilai2 = 20

Page 31: Modul Map Basic Indo

GeoVISI™ GIS TEXTBOOKS SERIES : GIS Programming Using Map Basic. Silahkan dikopi dan disebarkan secara bebas dengan syarat tidak menghilangkan label Geovisi. Geovisi™ merupakan merk dagang PT. Geovisi Mitratama http://geovisi.com email : [email protected]. E-book ini dipublish di Mailing list Komunitas GIS.

30

jumlah = Tambah(nilai1, nilai2) Note jumlah End Sub

Declare Function Tambah (a As Integer, b As Integer ) As Integer Function Tambah (a As Integer, b As Integer) As Int eger Tambah = a + b End Function

Kemudian buatlah file project (*.mbp) dengan kode sebagai berikut:

[LINK] Application=Gabung.mbx Module=Utama.mbo Module=Tambah.mbo

Dengan file project ini maka prosedur Main dan fungsi Tambah dapat saling berhubungan menjadi satu

kesatuan program. Untuk mencobanya silahkan klik menu Project kemudian Link Current Project ,

selanjutnya setelah berhasil klik Run.