SlideShare a Scribd company logo
D3.JS
ibrary
script L
Java
Proverb:
“Sebuah gambar lebih berarti daripada
seribu kata”
Apa yang bisa disimpulkan dari dataset di bawah?
NOOOOOOO

PUSING
Bagaimana jika begini:
Seenggaknya:
'Lebih enak' dilihat dan dipandang

Bahkan:
Memberikan ide lebih
Itulah kenapa dibutuhkan

VISUALISASI DATA
VISUALISASI DATA
Proses PEMETAAN DATA ke dalam bentuk

VISUAL
Visualisasi Data,
menurut Ben Fry(Processing.js)
Acquire: Membaca data dari drive, file, etc...etc...
Parse: Pengelompokkan data (membuat terstruktur).
Filter: Menyaring data berdasarkan kriteria.
Mine: Melakukan perhitungan statistik/algoritmik.
Represent: Memilih model visual (bar, pie, etc...,etc...)

Refine: Dibuat lebih “menarik”
Interact: Tambahan “interaksi”
D3.JS
(animasi)
“POWER”
D3
DATA
DRIVEN
DOCUMENTS (dot)
JAVASCRIPT
D3.JS Memanfaatkan

HTML(5)
JAVASCRIPT
CSS(3)

SVG
Huh, SVG?

“SVG: Scalable Vector
Graphics.Format gambar
vektor berbasis XML untuk
grafis dua dimensi, yang
memiliki dukungan interaksi dan
animasi”
(Google-translated wiki)
HTML + SVG
Ingat bahwa SVG berbasis XML, jadi untuk
menambahkan elemen SVG, dapat digunakan

<TAG>
Menggambar elipse

<svg width="50" height="50">
<ellipse cx="25" cy="25" rx="15" ry="10" fill="red" />
</svg>
Set up
Penggunaan D3.JS:
<html>
<meta charset="utf-8">
<head>
<style>
</style>
</head>
<body>
<script src="d3.js"></script>
<script>
</script>
<div
</body>
</html>
Elemen DOM
Pembuatan elemen DOM baru.
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>D3 Test</title>
<script type="text/javascript" src="d3/d3.v3.js"></script>
</head>
<body>
<script type="text/javascript">
d3.select.(“boddy”).append(“p”).text(“Halo Dunia”);
</script>
</body>
</html>
Chaining Method
Syntax yang 'berantai'
d3.select("body").append("p").text("New paragraph!");

Pemanggilan method dilakukan bersambungan dengan
pemanggilan 'method' lainnya.
START
d3.select("body").append("p").text("New paragraph!");

Bagaimana jika 'rantai' terlalu panjang?
d3.select("body").append("svg").attr("width",200).attr("weight",20
0).selectAll("g").data(dataset).enter().append("ellipse").attr("cx
",function(d){return
d;}).attr("cy",40).attr("rx",10).attr("ry",10).attr("fill","red");
Chaining Method,con't
Membuat 'chain-less-look', lebih mudah untuk dibaca.
var svg = d3.select("body")
.append("svg")
.attr("width",200)
.attr("weight",200);
var dot = svg.selectAll("g")
.data(dataset)
.enter()
.append("ellipse")
.attr("cx",function(d){
return d;
})
.attr("cy",40)
.attr("rx",10)
.attr("ry",10)
.attr("fill","red");

sama

d3.select("body").append("svg").attr("width",200).attr("weight",20
0).selectAll("g").data(dataset).enter().append("ellipse").attr("cx
",function(d){return
d;}).attr("cy",40).attr("rx",10).attr("ry",10).attr("fill","red");
Binding data
Bagaimana 'mengikat' data, kemudian di-'visual'-kan
var dataset =[10,30,50,70,90];
var svg = d3.select("body")
.append("svg")
.attr("width",200)
.attr("weight",200);
svg.selectAll("g")
.data(dataset)
.enter()
.append("ellipse")
.attr("cx",function(d){
return d;
})
.attr("cy",40)
.attr("rx",10)
.attr("ry",10)
.attr("fill","red");

Syntax untuk mengikat data:

.data(dataset).enter()
Power of data()
data() akan melakukan iterasi pada setiap nilai pada
dataset, lalu akan mengeksekusi method - function(d).
.data(dataset).enter().append(“circle”).attr(“r”,function(d)

{retrun d;});

Jika diberikan 10 data:
var dataset = [1,2,3,4,5,6,7,8,9,10];

Akan mengiterasi setiap data
Jika diberikan:
Akan diiterasi
sebanyak:

n

x

n

x
Dasar Transisi
Untuk melakukan transisi, dapat menggunakan method transition()
var svg = d3.select("body")
.append("svg")
.attr("width",500)
.attr("height",200);
var dot = svg.append("circle")
.attr("cx","100")
.attr("cy","100")
.attr("r",20)
.attr("fill","red");
var transition = dot.transition()
.attr("cx","200")
.duration(2000);

duration() - lama transisi
delay() - delay transisi
D3.JS
Memanfaatkan SVG
Manipulasi DOM
Memiliki Chaining-Method
Data-driven – data()
Interaksi dan animasi
Terima Kasih

More Related Content

PDF
楽しくて病みつきになるゲームジャムのススメ
PDF
MMORPGで考えるレベルデザイン
PPTX
Android forensik 2
PPTX
Android forensik 1
PPTX
Android forensik 4
PDF
Android forensik
PPTX
Greedy algorithm
DOCX
Mini magazine
楽しくて病みつきになるゲームジャムのススメ
MMORPGで考えるレベルデザイン
Android forensik 2
Android forensik 1
Android forensik 4
Android forensik
Greedy algorithm
Mini magazine

Recently uploaded (9)

DOCX
Antivirus Versi.FULL.JALiN.KB.PRO Keutuhan Aplikasi Konsep dan Praktik dalam ...
PPTX
Peranan AI dalam Dunia Pendidikan dan Industri Aplikasinya
PPTX
Materi_Array_Karakter_String untuk kelas XI sma.pptx
PPT
pengantar-sistem-informasi manajemen.ppt
PPTX
Implementasi Microservices pada Manufaktur
PDF
Modul_Pemula_Merakit_Komputer untuk smppdf
PPTX
Materi asdsa asd asd sad sa dsa dsa d sa
PDF
Rekomendasi Riset Lanjutan : perspektif_futurologis.pdf
DOCX
Keutuhan Aplikasi Konsep dan Praktik dalam Upaya menciptakan aplikasi Anti Vi...
Antivirus Versi.FULL.JALiN.KB.PRO Keutuhan Aplikasi Konsep dan Praktik dalam ...
Peranan AI dalam Dunia Pendidikan dan Industri Aplikasinya
Materi_Array_Karakter_String untuk kelas XI sma.pptx
pengantar-sistem-informasi manajemen.ppt
Implementasi Microservices pada Manufaktur
Modul_Pemula_Merakit_Komputer untuk smppdf
Materi asdsa asd asd sad sa dsa dsa d sa
Rekomendasi Riset Lanjutan : perspektif_futurologis.pdf
Keutuhan Aplikasi Konsep dan Praktik dalam Upaya menciptakan aplikasi Anti Vi...
Ad
Ad

D3.JS Data-Driven Documents

  • 2. Proverb: “Sebuah gambar lebih berarti daripada seribu kata”
  • 3. Apa yang bisa disimpulkan dari dataset di bawah?
  • 6. Seenggaknya: 'Lebih enak' dilihat dan dipandang Bahkan: Memberikan ide lebih
  • 8. VISUALISASI DATA Proses PEMETAAN DATA ke dalam bentuk VISUAL
  • 9. Visualisasi Data, menurut Ben Fry(Processing.js) Acquire: Membaca data dari drive, file, etc...etc... Parse: Pengelompokkan data (membuat terstruktur). Filter: Menyaring data berdasarkan kriteria. Mine: Melakukan perhitungan statistik/algoritmik. Represent: Memilih model visual (bar, pie, etc...,etc...) Refine: Dibuat lebih “menarik” Interact: Tambahan “interaksi” D3.JS (animasi) “POWER”
  • 12. Huh, SVG? “SVG: Scalable Vector Graphics.Format gambar vektor berbasis XML untuk grafis dua dimensi, yang memiliki dukungan interaksi dan animasi” (Google-translated wiki)
  • 13. HTML + SVG Ingat bahwa SVG berbasis XML, jadi untuk menambahkan elemen SVG, dapat digunakan <TAG> Menggambar elipse <svg width="50" height="50"> <ellipse cx="25" cy="25" rx="15" ry="10" fill="red" /> </svg>
  • 14. Set up Penggunaan D3.JS: <html> <meta charset="utf-8"> <head> <style> </style> </head> <body> <script src="d3.js"></script> <script> </script> <div </body> </html>
  • 15. Elemen DOM Pembuatan elemen DOM baru. <!DOCTYPE html> <html lang="en"> <head> <meta charset="utf-8"> <title>D3 Test</title> <script type="text/javascript" src="d3/d3.v3.js"></script> </head> <body> <script type="text/javascript"> d3.select.(“boddy”).append(“p”).text(“Halo Dunia”); </script> </body> </html>
  • 16. Chaining Method Syntax yang 'berantai' d3.select("body").append("p").text("New paragraph!"); Pemanggilan method dilakukan bersambungan dengan pemanggilan 'method' lainnya. START d3.select("body").append("p").text("New paragraph!"); Bagaimana jika 'rantai' terlalu panjang? d3.select("body").append("svg").attr("width",200).attr("weight",20 0).selectAll("g").data(dataset).enter().append("ellipse").attr("cx ",function(d){return d;}).attr("cy",40).attr("rx",10).attr("ry",10).attr("fill","red");
  • 17. Chaining Method,con't Membuat 'chain-less-look', lebih mudah untuk dibaca. var svg = d3.select("body") .append("svg") .attr("width",200) .attr("weight",200); var dot = svg.selectAll("g") .data(dataset) .enter() .append("ellipse") .attr("cx",function(d){ return d; }) .attr("cy",40) .attr("rx",10) .attr("ry",10) .attr("fill","red"); sama d3.select("body").append("svg").attr("width",200).attr("weight",20 0).selectAll("g").data(dataset).enter().append("ellipse").attr("cx ",function(d){return d;}).attr("cy",40).attr("rx",10).attr("ry",10).attr("fill","red");
  • 18. Binding data Bagaimana 'mengikat' data, kemudian di-'visual'-kan var dataset =[10,30,50,70,90]; var svg = d3.select("body") .append("svg") .attr("width",200) .attr("weight",200); svg.selectAll("g") .data(dataset) .enter() .append("ellipse") .attr("cx",function(d){ return d; }) .attr("cy",40) .attr("rx",10) .attr("ry",10) .attr("fill","red"); Syntax untuk mengikat data: .data(dataset).enter()
  • 19. Power of data() data() akan melakukan iterasi pada setiap nilai pada dataset, lalu akan mengeksekusi method - function(d). .data(dataset).enter().append(“circle”).attr(“r”,function(d) {retrun d;}); Jika diberikan 10 data: var dataset = [1,2,3,4,5,6,7,8,9,10]; Akan mengiterasi setiap data Jika diberikan: Akan diiterasi sebanyak: n x n x
  • 20. Dasar Transisi Untuk melakukan transisi, dapat menggunakan method transition() var svg = d3.select("body") .append("svg") .attr("width",500) .attr("height",200); var dot = svg.append("circle") .attr("cx","100") .attr("cy","100") .attr("r",20) .attr("fill","red"); var transition = dot.transition() .attr("cx","200") .duration(2000); duration() - lama transisi delay() - delay transisi
  • 21. D3.JS Memanfaatkan SVG Manipulasi DOM Memiliki Chaining-Method Data-driven – data() Interaksi dan animasi