Skip to content

Instantly share code, notes, and snippets.

@johardi
Last active January 16, 2020 10:33
Show Gist options
  • Save johardi/f1c071c1f3e885c443da to your computer and use it in GitHub Desktop.
Save johardi/f1c071c1f3e885c443da to your computer and use it in GitHub Desktop.
Data Penanganan Bencana Pemkar Jakarta per Kelurahan tahun 2013

Grafik gelembung di atas menampilkan data penanganan bencana oleh satuan Pemadam Kebakaran (Pemkar) Jakarta per kelurahan di tahun 2013. Posisi gelembung ditempatkan sesuai dengan jumlah insiden bencana yang diasosiasikan dengan luas wilayah per kelurahan.

Ukuran gelembung diartikan sebagai jumlah korban jiwa yang dialami oleh masyarakat dan petugas pemadam. Semakin besar gelembung menandakan semakin tinggi jumlah korban jiwa. Warna gelembung diartikan sebagai rata-rata waktu penanganan bencana. Apabila intensitas warna merah kian menggelap maka semakin lama waktu penanganan bencana yang dilakukan petugas pemadam kebakaran.

Sumber data: Data Kejadian Bencana DKI Jakarta (periode 2013)

kelurahan total_korban_jiwa waktu_operasi total_jiwa_rugi total_insiden luas_wilayah
Ancol 8 192 34 12 2690
Angke 0 216 225 4 162
Bale Kambang 0 33 0 3 340
Bali Mester 0 85 0 2 136
Bambu Apus 0 19 7 6 698
Bangka 0 86 0 1 631
Baru 0 15 0 1 389
Batu Ampar 0 26 0 5 516
Bidara Cina 0 182 124 8 253
Bintaro 86 68 25 12 923
Bukit Duri 2 254 4030 9 223
Cakung Barat 0 126 15 7 1205
Cakung Timur 0 55 10 4 1704
Cawang 3 143 799 17 350
Ceger 0 32 0 3 336
Cempaka Putih Timur 1 131 116 8 451
Cengkareng Barat 2 131 34 16 809
Cengkareng Timur 0 159 45 15 899
Cibubur 1 49 13 6 993
Cideng 0 32 0 4 263
Ciganjur 0 83 5 5 721
Cijantung 0 33 6 2 514
Cikini 0 61 0 5 151
Cilandak Barat 1 72 80 15 1171
Cilandak Timur 0 72 0 2 750
Cilangkap 1 47 0 2 1197
Cililitan 3 235 638 11 369
Cilincing 0 62 57 6 1366
Cipayung 0 35 6 4 507
Cipedak 0 29 7 5 821
Cipete Selatan 1 77 4 6 484
Cipete Utara 1 72 21 5 350
Cipinang 0 57 24 3 308
Cipinang Besar Selatan 0 48 0 3 333
Cipinang Besar Utara 0 63 0 4 225
Cipinang Cempedak 0 40 0 1 334
Cipinang Melayu 0 447 0 3 512
Cipulir 0 16 10 3 353
Ciracas 0 29 8 9 793
Duren Sawit 0 30 11 10 955
Duren Tiga 6 133 13 3 406
Duri Kepa 3 493 93 35 753
Duri Kosambi 0 68 3 6 1187
Duri Selatan 1 121 403 5 77
Duri Utara 0 60 0 1 72
Gandaria Selatan 0 27 19 3 295
Gandaria Utara 0 53 17 3 310
Gedong 1 68 0 3 494
Glodok 0 15 1 2 74
Gondangdia 0 76 0 3 301
Grogol 1 471 20 34 205
Grogol Selatan 0 41 13 5 584
Grogol Utara 0 57 9 5 648
Guntur 0 105 0 1 130
Gunung 0 33 0 2 291
Halim Perdana Kusuma 0 57 29 7 2607
Jagakarsa 0 78 14 6 915
Jati 0 95 7 3 427
Jati Pulo 0 367 8 5 171
Jatinegara 0 118 715 8 1292
Jatinegara Kaum 5 243 39 2 255
Jelambar 4 388 16 28 309
Jelambar Baru 2 270 9 10 287
Jembatan Besi 0 138 18 8 109
Jembatan Lima 0 242 0 2 94
Joglo 0 47 4 2 899
Kalibata 0 83 9 5 474
Kalideres 0 60 47 14 1145
Kalisari 0 34 11 5 518
Kamal 0 59 0 5 1144
Kamal Muara 0 263 12 3 2197
Kampung Melayu 0 312 358 10 88
Kampung Tengah 0 53 10 4 408
Kapuk 2 333 177 23 1075
Kapuk Muara 0 193 400 4 1677
Karet Semanggi 0 40 0 2 186
Karet Tengsin 0 277 127 5 306
Kartini 0 60 0 3 112
Kayu Manis 0 60 0 1 108
Kayu Putih 0 85 2319 6 782
Keagungan 1 325 65 4 73
Kebagusan 0 63 14 4 567
Kebayoran Lama Selatan 0 70 48 11 475
Kebayoran Lama Utara 0 62 114 3 405
Kebon Baru 0 427 4611 4 258
Kebon Bawang 0 28 19 9 345
Kebon Jeruk 0 82 20 10 755
Kebon Manggis 1 162 82 3 162
Kebon Pala 0 78 0 2 468
Kebon Sirih 0 20 7 2 156
Kedaung Kali Angke 1 360 65 9 603
Kedoya Selatan 0 44 0 5 521
Kedoya Utara 1 413 14 17 602
Kelapa Dua 0 52 9 7 285
Kelapa Dua Wetan 0 33 4 4 685
Kelapa Gading Barat 5 294 5345 16 1367
Kelapa Gading Timur 1 77 20 15 638
Kemanggisan 0 40 11 7 407
Kembangan Selatan 4 70 4 12 902
Kembangan Utara 1 64 43 11 861
Klender 1 122 13 11 608
Koja 0 10 0 2 121
Kota Bambu Selatan 0 24 12 2 118
Kota Bambu Utara 0 481 1 4 137
Kramat 0 58 0 5 148
Kramat Jati 0 64 5 4 305
Kramat Pela 0 34 0 2 257
Krukut 5 290 7 2 113
Kuningan Timur 0 25 0 1 438
Lagoa 0 103 3 3 317
Lebak Bulus 0 72 21 7 895
Lenteng Agung 0 93 6 2 611
Lubang Buaya 0 35 34 5 728
Makasar 0 173 13 5 281
Malaka Jaya 0 15 5 1 219
Malaka Sari 0 21 0 3 266
Mampang Prapatan 0 53 5 2 167
Mangga Besar 0 270 5 4 110
Manggarai Selatan 0 35 13 5 116
Maphar 1 186 0 4 126
Marunda 1 56 5 5 1538
Melawai 0 65 0 3 252
Menteng 0 202 1004 6 503
Menteng Atas 0 34 58 5 211
Menteng Dalam 0 55 36 8 495
Meruya Selatan 0 54 17 4 635
Meruya Utara 0 33 7 6 848
Munjul 0 60 0 1 500
Pademangan Barat 0 324 1258 12 299
Pademangan Timur 0 104 40 8 588
Palmerah 0 103 54 12 466
Pancoran 0 34 4 5 288
Pasar Manggis 0 44 3 3 154
Pasar Minggu 0 53 6 7 403
Pegadungan 5 76 8 10 1519
Pegangsaan Dua 3 123 8 8 1138
Pejagalan 6 151 537 16 763
Pejaten Barat 0 41 7 8 616
Pejaten Timur 0 195 835 7 578
Pekayon 0 43 3 2 605
Pekojan 0 410 29 14 164
Pela Mampang 0 129 24 7 389
Penjaringan 1 470 660 61 985
Pesanggrahan 0 66 240 4 390
Petogogan 0 28 4 4 178
Petojo Utara 0 75 25 4 227
Petukangan Selatan 0 62 13 4 429
Petukangan Utara 0 70 8 2 547
Pinang Ranti 0 25 0 3 484
Pinangsia 0 218 2 9 208
Pisangan Baru 1 30 11 6 144
Pisangan Timur 0 15 0 1 372
Pluit 1 318 620 30 1355
Pondok Bambu 0 49 0 3 802
Pondok Kelapa 0 71 19 8 1172
Pondok Kopi 0 60 0 1 455
Pondok Labu 3 82 6 4 740
Pondok Pinang 8 86 14 19 1433
Pulo 0 51 3 3 228
Pulo Gebang 0 73 13 11 1359
Ragunan 0 35 15 4 962
Rambutan 0 5 0 1 456
Rawa Barat 0 35 0 1 130
Rawa Buaya 0 289 13 10 755
Rawa Terate 0 40 53 9 881
Rawamangun 2 31 0 6 528
Roa Malaka 0 278 3 8 113
Rorotan 0 69 31 7 2066
Selong 0 375 0 1 291
Semanan 2 54 12 10 992
Semper Barat 0 37 9 7 670
Semper Timur 0 75 30 4 858
Senayan 0 205 0 4 283
Setu 0 56 4 1 537
Slipi 0 165 0 1 197
Srengseng 0 120 0 2 996
Srengseng Sawah 0 46 12 5 1111
Sukabumi Selatan 0 70 2 6 339
Sukabumi Utara 2 78 12 5 313
Sumur Batu 0 14 10 4 232
Sungai Bambu 1 79 27 8 513
Sunter Agung 0 87 12 14 1091
Sunter Jaya 0 49 14 7 1065
Susukan 0 13 0 1 430
Taman Sari 0 133 455 5 139
Tambora 0 399 65 13 57
Tanah Sereal 0 186 208 7 125
Tanah Tinggi 0 114 500 2 126
Tangki 0 105 51 3 76
Tanjung Barat 0 41 7 3 740
Tanjung Duren Selatan 0 525 0 4 275
Tanjung Duren Utara 2 353 30 6 270
Tebet Barat 0 37 10 10 326
Tebet Timur 0 34 17 6 267
Tegal Alur 0 72 40 11 1105
Tegal Parang 0 25 2 2 209
Tomang 0 199 15 6 363
Tugu Selatan 6 132 7 4 341
Tugu Utara 0 42 7 5 490
Ulujami 0 133 71 9 370
Utan Kayu Selatan 1 33 3 3 233
Utan Kayu Utara 0 41 0 4 198
Utan Panjang 0 58 30 3 106
Warakas 0 43 100 2 220
<!DOCTYPE html>
<meta charset="utf-8">
<style>
body {
background: #fcfcfa;
color: #333;
font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
margin: 1em auto 4em auto;
position: relative;
width: 700px;
}
svg {
font: 10px sans-serif;
}
.bubble {
stroke: #fff;
stroke-width: .5px;
}
.bubble :hover {
stroke: #000;
}
.axis path, .axis line {
fill: none;
stroke: #000;
shape-rendering: crispEdges;
}
.x.axis line {
stroke: #000;
stroke-opacity: .8;
}
.y.axis line {
stroke: #000;
}
.legend circle {
fill: none;
stroke: #ccc;
}
.legend text {
fill: #777;
font: 10px sans-serif;
text-anchor: middle;
}
.q0-7{fill:rgb(252,187,161)}
.q1-7{fill:rgb(252,146,114)}
.q2-7{fill:rgb(251,106,74)}
.q3-7{fill:rgb(239,59,44)}
.q4-7{fill:rgb(203,24,29)}
.q5-7{fill:rgb(153,0,13)}
</style>
<body>
<script src="http://d3js.org/d3.v2.min.js"></script>
<script>
var margin = {top: 20, right: 40, bottom: 10, left: 22},
width = 750,
height = 500 - margin.top - margin.bottom;
var formatNumber = d3.format(",.0f");
var x = d3.scale.linear()
.domain([0, 3000])
.range([0, width]);
var y = d3.scale.linear()
.domain([1,70])
.range([height, 0]);
var radius = d3.scale.sqrt()
.domain([0, 90])
.range([0, 42]);
var color = d3.scale.quantize()
.domain([0, 600])
.range(d3.range(6).map(function(i) { return "q" + i + "-7"; }));
var xAxis = d3.svg.axis()
.scale(x)
.orient("bottom")
.tickFormat(function(d) { return ''; });
var yAxis = d3.svg.axis()
.scale(y)
.orient("left");
var svg = d3.select("body").append("svg")
.attr("width", width + margin.left + margin.right)
.attr("height", height + margin.top + margin.bottom)
.append("g")
.attr("transform", "translate(" + margin.left + "," + margin.top + ")");
// Add the x-axis
svg.append("g")
.attr("class", "x axis")
.attr("transform", "translate(0," + height + ")")
.call(xAxis);
// Add the y-axis.
svg.append("g")
.attr("class", "y axis")
.call(yAxis);
// Add an x-axis label.
svg.append("text")
.attr("class", "x label")
.attr("text-anchor", "end")
.attr("x", width)
.attr("y", height - 6)
.text("Luas wilayah");
// Add a y-axis label.
svg.append("text")
.attr("class", "y label")
.attr("text-anchor", "end")
.attr("y", 6)
.attr("dy", ".75em")
.attr("transform", "rotate(-90)")
.text("Total insiden");
// Add bubble legend
var legend = svg.append("g")
.attr("class", "legend")
.attr("transform", "translate(" + (width - 80) + "," + (height/4) + ")")
.selectAll("g")
.data([10, 30, 60, 100])
.enter().append("g");
legend.append("circle")
.attr("cy", function(d) { return -radius(d); })
.attr("r", radius);
legend.append("text")
.attr("y", function(d) { return -2 * radius(d); })
.attr("dy", "1.3em")
.text(d3.format(".1s"));
svg.append("g")
.attr("class", "legend")
.append("text")
.attr("transform", "translate(" + (width - 80) + "," + ((height/4) + 12) + ")")
.text("Jumlah korban jiwa");
d3.csv("incident_loss_report.csv", function(incident) {
var bubble = svg.append("g")
.attr("class", "bubble")
.selectAll(".bubble")
.data(incident)
.enter().append("circle")
.attr("class", function(d) { return color(d["waktu_operasi"]); })
.call(position)
.append("title")
.text(function(d) {
return d.kelurahan
+ "\nTotal insiden: " + formatNumber(d["total_insiden"])
+ "\nJumlah korban: " + formatNumber(d["total_korban_jiwa"])
+ "\nRataan lama operasi: " + formatNumber(d["waktu_operasi"]) + " menit";
});
function position(bubble) {
bubble .attr("cx", function(d) { return x(d["luas_wilayah"]); })
.attr("cy", function(d) { return y(d["total_insiden"]); })
.attr("r", function(d) { return radius(d["total_korban_jiwa"]) + 1; });
}
});
d3.select(self.frameElement).style("height", "550px");
</script>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment