tabel
Selain menangani file teks, Processing juga memiliki fungsi khusus untuk menangani file dalam bentuk tabel sederhana, yang ditulis dalam bentuk plain text dengan ekstensi CSV (Comma Separated V), dan TSV (Table Separated V). Hal ini akan sangat memudahkan apabila kita ingin mengambil data tabel, dibandingkan bila harus mengaturnya secara manusal ke dalam baris dan kolom dengan menggunakan fungsi split(). Misalkan kita memiliki sebuah file CSV bernama data.csv dengan isi sebagai berikut:
ID,NomorInduk,UkuranSepatu,Nama,Alamat
1000,1001,39.0021,Jono,Yogya
1001,1034,33.4561,Joni,Sleman
1002,1012,40.1234,Jiko,Magelang
1003,1101,35.2131,Jiki,Papua
Table table = loadTable("data.csv");
Untuk tabel seperti di atas, di mana seperti yang dapat kita lihat, baris pertama bukanlah merupakan data, namun lebih merupakan “header”, Processing secara otomatis akan menyimpan informasi tersebut, jika kita memasukkan opsi “header” saat melakukan loading tabel.
Table table = loadTable("data.csv","header");
membaca tabel
Satu cara dalam mengakses data dalam tabel adalah dengan merequest nilai sesuai dengan posisi baris dan kolom yang diinginkan. Dan seperti halnya array, nilai 0 berarti baris atau kolom pertama. Proses ini juga mirip proses mengakses warna dari sebuah pixel (x, y), namun demikian, pembacaan untuk tabel dilakukan terbalik, untuk nilai pertama adalah kolom, dan kedua adalah baris.
int n1 = table.getInt(2, 1); // n1 = 1012
float n2 = table.getFloat(3, 2); // n2 = 35.2131
String s = table.getString(0, 3); // s = Jono
Cara lain dalam membaca tabel dalam Processing adalah dengan mengakses nama kolom dengan menggunakan objek TableRow.
TableRow row = table.getRow(2);
Perhatikan bahwa objek Table mengacu pada tabel secara keseluruhan, sedangkan objek TableRow mengacu pada baris tertentu dalam Tabel tersebut. Setelah kita menentukan objek dari TableRow, langkah berikutnya adalah mencari data yang diinginkan (bisa menggunakan nama kolom header).
int x = row.getInt("ID"); //1002
int y = row.getInt("NomorInduk"); //1012
float d = row.getFloat("UkuranSepatu"); //40.123
String s = row.getString("Nama");
Jika kita ingin membaca semua baris, kita bisa menggunakan method rows(). Untuk tabel di atas, bisa dipergunakan kode berikut:
for (TableRow rowa : table.rows ()) {
float xa = rowa.getFloat("ID");
float ya = rowa.getFloat("NomorInduk");
float da = rowa.getFloat("UkuranSepatu");
String na = rowa.getString("Nama");
String ma = rowa.getString("Alamat");
println (xa, ya, da, na, ma);
}
Untuk mengubah isi tabel, gunakan setString(), setInt(), setFloat(), bergantung pada jenis data yang dipergunakan. Sementara untuk menambahkan kolom dan baris, gunakan addColumn() dan addRow(). Sebagai catatan, addColumn() dan addRow() umumnya dipergunakan secara bersama-sama, untuk menambahkan data. Terakhir, untuk menyimpan tabel (misalnya yang sudah diedit, gunakan saveTable().
table.addColumn("Tambahan", Table.STRING);
TableRow newRow = table.addRow();
newRow.setInt("ID", 1566);
newRow.setInt("NomorInduk", 2324);
newRow.setFloat("UkuranSepatu", 13.1234);
newRow.setString("Nama", "Joki");
newRow.setString("Alamat", "Langit");
newRow.setString("Tambahan", "Satu");
saveTable(table, "new.csv");
XML
XML menyimpan informasi dalam bentuk struktur pohon. Sebagai contoh, data XML yang berisi data-data mahasiswa mencakup informasi tentang nomor mahasiswa, nama, alamat, email, dan nomor telepon. Dalam informasi alamat terdapat bagian-bagian misalnya nama kota, propinsi, dan kode pos.
<?xml version="1.0" encoding="UTF-8"?>
<bubbles>
<bubble>
<position x="160" y="103"/>
<diameter>43.19838</diameter>
<label>Happy</label>
</bubble>
<bubble>
<position x="372" y="137"/>
<diameter>52.42526</diameter>
<label>Sad</label>
</bubble>
<bubble>
<position x="273" y="235"/>
<diameter>61.14072</diameter>
<label>Joyous</label>
</bubble>
<bubble>
<position x="121" y="179"/>
<diameter>44.758068</diameter>
<label>Melancholy</label>
</bubble>
</bubbles>
XML xml = loadXML("bubbles.xml");
XML[] children = xml.getChildren("bubble");
for (int i = 0; i < children.length; i++) {
XML positionElement = children[i].getChild("position");
float x = positionElement.getInt("x");
float y = positionElement.getInt("y");
XML diameterElement = children[i].getChild("diameter");
float diameter = diameterElement.getFloatContent();
XML labelElement = children[i].getChild("label");
String label = labelElement.getContent();
println(x, y);
println(diameter);
println(label);
}
TUGAS
<?xml version="1.0" encoding="UTF-8"?>
<DataMahasiswa>
<mahasiswa>
<id>001</id>
<nama>Bejo Kurniawan</nama>
<telepon>555-555-5555</telepon>
<email>kurniawan@bejo.net</email>
<alamat>
<jalan>123 Processing</jalan>
<kota>Sleman</kota>
<propinsi>DIY</propinsi>
<kodepos>55280</kodepos>
</alamat>
</mahasiswa>
<mahasiswa>
<id>002</id>
<nama>Nurhadi </nama>
<telepon>555-111-5555</telepon>
<email>nurhadi@nurhadi.net</email>
<alamat>
<jalan>223 Processing </jalan>
<kota>Bantul</kota>
<propinsi>DIY</propinsi>
<kodepos>01234</kodepos>
</alamat>
</mahasiswa>
<mahasiswa>
<id>003</id>
<nama>Marjukik </nama>
<telepon>555-222-5555</telepon>
<email>marjukik@nurhadi.net</email>
<alamat>
<jalan>334 Processing </jalan>
<kota>Jepara</kota>
<propinsi>Jateng</propinsi>
<kodepos>433210</kodepos>
</alamat>
</mahasiswa>
</DataMahasiswa>
// Load XML
XML datanya = loadXML("DataMahasiswa.xml");
// semua child element
XML[] datamhs = datanya.getChildren("mahasiswa");
for (int i = 0; i < datamhs.length; i++) {
XML idElement = datamhs[i].getChild("id");
String nomornya = idElement.getContent();
XML namaElement = datamhs[i].getChild("nama");
String namanya = namaElement.getContent();
XML tlpElement = datamhs[i].getChild("telepon");
String telepon = tlpElement.getContent();
println(nomornya);
println(namanya);
println(telepon);
}
Posting Komentar untuk "tabel xml pada grafika komputer"