Anda di halaman 1dari 11

Pemetaan Area (Mapping) Sederhana

Implementation with C/C++


Fadlika Dita Nurjanto
fadlikadn@gmail.com http://fadlikadn.wordpress.com

Lisensi Dokumen:
Copyright 2003-2011 IlmuKomputer.Com Seluruh dokumen di IlmuKomputer.Com dapat digunakan, dimodifikasi dan disebarkan secara bebas untuk tujuan bukan komersial (nonprofit), dengan syarat tidak menghapus atau merubah atribut penulis dan pernyataan copyright yang disertakan dalam setiap dokumen. Tidak diperbolehkan melakukan penulisan ulang, kecuali mendapatkan ijin terlebih dahul dari IlmuKomputer.Com. u

Ilustrasi Mapping pada game

Komunitas eLearning IlmuKomputer.Com Copyright 2003-2011 IlmuKomputer.Com

emetaan wilayah (mapping) merupakan salah satu aplikasi yang banyak digunakan dalam kehidupan sehari-hari. Mapping bisa diimplementasikan dengan menggunakan sebuah program yang otomatis akan memberitahukan data-data dari area. Implementasi mapping bisa dilakukan menggunakan berbagai bahasa pemrograman. Tapi kali ini, kita akan belajar sebuah mapping yang sederhana. Mungkin ini belum bisa disebut dengan map, tapi cukup memberi ilustrasi tentang map itu sendiri. Bahasa yang digunakan adalah bahasa C/C++. Hehe, tampilannya masih console, belum GUI. Di sini kita akan membuat sebuah simulasi area perang. Diberikan informasi tentang petakpetak dimensi area peta yang ada. Kemudian pemberian informasi tentang area-area perang yang ada. Nantinya program akan memberitahukan jumlah area secara otomatis. Mungkin temen-temen masih banyak yang bingung. Kita masuk ke ilustrasi saja. Diberikan gambar sebagai berikut :

Area merah merupakan area-area yang sedang terjadi perang. Area hijau, orange, dan abuabu merupakan area dari pengaruh kekuasaan yang ada. Dan setelah area dipetakan, program akan secara otomatis menghitung berapa banyak area perang yang terjadi. Perhitungan dilakukan pada area merah dan kemudian akan menghitungnya. Dan ilustrasi berikut merepresentasikan sebuah map.

K C

          

it

8 " $ 2 2 "3 2 5 # % & ! "3" " 3 2 3$ " 3 2"32 8" 3 2$ " 5 # 3 2 2 " " #$ " 3 3 % ) )! 1 1 ! &! & 1 6 & D ! & ! ! 1 6 ! 3 #$ 3 " 3 0 3 2 $2 # " 2 " # 2 2 3 2$ " 3 # $ 5 # 0 2" % ! ) '1 ) &! ) 1 & & % ! 4 ' 5 " 3 3 2 '0 " 3 2$2 #" '3 " 3 0 3 $ ' 3 (A 5 % & & 1 & ! !

8 3" $#" "3" 4 "2 6 % &% 1 4 '3 3 2 ' $ " '2 5 " 3$0 2 C8 2 2 '5 B "C 8" "2 3 6 % ) ) 1 & & 6 & & ! 5 #" 5 # " " 3 2 2 ' 3 0 5 #" 5 # $ 3 2$ 3 3 2$ 3 8 6 6 % & ) ) 7 1 & & & ! ! 1 6 " 3 # " 0 3" 3" 5 # 3 2$2 #" A 03 5 2 3 # B5 2 3 % ) 1 ! ! 1 6 ( 1 % )B % ) 1 1 1 ! ! ! 0 3" ! 1 % A85

8 $4 0 % & & & 5 $4 $4 3 2 3 " $2 3 3 0 5 $ $# 3 3 3 2 %B ) %& % ) ) 1 & ! % ! & " 5 0 A A " # 3 2 3$ 3 5 # "3" " 3 2 3$ " 3 % ! )& (1 1!1 6 11 ) &% & @ !

3 1 6

"3" 0 3 2" 3 #0 " 3 2$ 3$ " 2 0" 3 0 " # % & ) )1 ) & ) 1( )& (1 9 !1 6 3 2$2 #" "4 $ " 3 " 4 33 3 0 3 2 82 0 3 0" 3 6 & ) 1 ' 6 1 & & ! % ! 1 ! 7 &1 ! % 5 4 3 2$5 " 4 3 2 0 " " " $# " % '% & ! % &% ) ) ) 1( % & )(&( & !

La aa ara ra

Pa a e a r

ara a a a e ca e a er e

a a U er # e

ra a a ecara a r ra a a e er a a er a era a a 5 e a Se ara er a aa a a a a a aa a a a a e e e a a r ra ??

a ca a a FS a a e a a xe a a a a ar e e a a w a a era ara er a car a a a w a a ara er # e a 4 ara era a aa a a awa a r ra ra a

"

a a ar a a (U ) a a (R ) awa ( w ) a r (Lef ) Ur a e car a e a ara er # a a a a a e car a a J a a a aa a ee e e a a ar ara er a ea e a a e a a a a aa e re r

&

" "2 3

Komunitas eLearning IlmuKomputer.Com Copyright 2003-2011 IlmuKomputer.Com

a a e r

a aa e e a e a cara re

a a a r r a a a

a FS ( e e a e

F r Searc ) FS a raver a a

a wa area a a a a ?

Komunitas eLearning IlmuKomputer.Com Copyright 2003-2011 IlmuKomputer.Com

TV

S R

Se

aa aa

e a a

er

XW V E

IF F P EHG E

Komunitas eLearning IlmuKomputer.Com Copyright 2003-2011 IlmuKomputer.Com

h Y h vq

Y hqe

Sca

ea

a a a

er

aa

er

a a

ara er #

h i

h Y h vq

q Y d x i c

Y hqe

Sca a a

er

aa

er

a a

ara er #

Y d

Sca e e e e e e a er fa a a a er a a 1)

era a Ja a

e a a ecara a a a a a area e

ea a a a 1 ( erar area era

Y d c

r u e e a i g v e Y Y Y hu e vq` Y Y r Yq gug h g ` Y g g e a w td f i p d f d d i f fi i i Y Y h g e Y Y ` Y ` Y gYg gs r Yq Y ` p p c i a b a dd i i d pd d c f f f h i a i Y wY Y h ddY i i Y i c Y w i p i

Komunitas eLearning IlmuKomputer.Com Copyright 2003-2011 IlmuKomputer.Com

Sca a er

awa a a a

are a e a e a e

a awa er a a ara er # a a a a e re r a raver

y y y

y y y y y y y y y y y y y

a f a ar

FS ara er

Komunitas eLearning IlmuKomputer.Com Copyright 2003-2011 IlmuKomputer.Com

Komunitas eLearning IlmuKomputer.Com Copyright 2003-2011 IlmuKomputer.Com

Implementasi dengan C/C++


/* Simple Mapping With C/C++ Sepuluh Nopember Institute Of Technology, Surabaya, Indonesia Author : Fadlika Dita Nurjanto Blog : fadlikadn.wordpress.com Email : fadlikadn@gmail.com */ #include <stdio.h> #include <cstring> #define MAX 1000 int flag[MAX+1][MAX+1]; char chr[MAX+1][MAX+1]; char arr_chr[27]; int arr_int[27]; //DFS function dengan rekursi void dfs(int row, int col, int h_loc, int w_loc,char search_chr) { flag[row][col] = 1; //up if(row!=0) { if(flag[row-1][col]==0 && chr[row-1][col]==search_chr) dfs(row-1,col,h_loc,w_loc,search_chr); }

Komunitas eLearning IlmuKomputer.Com Copyright 2003-2011 IlmuKomputer.Com

kk hji

ih g

e er

a a

a ara er era

d f e

if(fl [r df (r

} //down if(row+1<h_loc) { if(fl [row+1][col] && chr[row+1][col] rch_chr) df (row+1,col,h_loc,w_loc,search_chr) } //lef if(col ) { if(flag[row][col 1] && chr[row][col 1] search_chr) dfs(row,col 1,h_loc,w_loc,search_chr) } } int main() { int N,W,H,i,j,k,o,a=1; int into_array; int sum; printf("Jumlah Perulangan : "); scanf("%d",&N); for(i=1;i<=N;i++) { printf(" imensi Peta (H-Baris & W-Kolom)\n"); scanf("%d %d",&H,&W); sum = 0; memset(flag,0,sizeof(flag)); memset(chr,'0',sizeof(chr)); for(j=0;j<H;j++) { scanf("%s",chr[j]); } printf("War Area #%d\n",a); a++; for(j=0;j<H;j++) { for(k=0;k<W;k++) { if(flag[j][k]==0) { if(chr[j][k] == '#') { sum++; dfs(j,k,H,W,chr[j][k]); } } }

K C

it


][c l ] && c r[r ][c l ] c l _l c _l c rc _c r)

//ri if(c l {

ml xtr n wml nm v }|~}}| { z u t y wl ml xtr n wml nm v uo otpr sr qp onml

_l c) rc _c r)

10

} printf("Jumlah Wilayah Perang : %d\n\n",sum); } return 0; }

ita r a to. Menyelesaikan pendidikan di D 2 Fa ika Wonosobo tahun 200 , MP Wonosobo tahun 2007, dan MK tahun 20 0. ekarang berstatus sebagai mahasiswa Teknik Informatika Institut Teknologi epuluh Nopember, urabaya. Artikel menarik lainnya bisa ditemukan di http://fadlikadn.wordpress.com. haring dengan penulis bisa kirim email ke fadlikadn@gmail.com.

K C

it

Biografi

is

11

Anda mungkin juga menyukai