Mari kita masuk ke diagram
terniary, yang sangat banyak sekali dipakai dalam geologi. Buat nya gimana? Sebenarnya
inti dari diagram terniary adalah rumus memplot nya. Kita punya 3 data, A B dan
C. Dan jumlah ketiganya harus 100%. Untuk posisinya udah dikasih rumusnya yaitu:
Untuk elemen kordinat x =
C+A/2
Untuk elemen kordinat y =
√3*A/2
Jadi sebenarnya kalian
cukup punya data A, B, C, bikin segitiga sesuai selera, lalu plot lah data data
sesuai rumus diatas, yang tentu saja pemosisian plot data harus dikoreksi
dengan skala dan posisi penggambaran awal, terus susahnya dimana? Susahnya tu
buat diagram terniary dengan adanya garis-garis skala di dalam segitiga yang
menunjukkan nilai pada masing-masing skala A, B,C. Jadi hal apa saja yang kita
butuhkan dalam pembuatan diagram segitiga ini?
1. Data A, B, C
2. Sisi segitiga maunya
berapa pixel dengan titik awal penggambaran. Cara bikin segitiga sama sisi tau
kan? Intinya kita harus tau kordinat x dan kordinat y nya.
3. interval, yang dalam
hal ini adalah 10 %
4. Skala yaitu
lebar(sisi)/maxskala – minskala => sisi/100-0
5. nilai phi dan radian,
karena kita menggunakan sin dan cos yang perhitungan sudutnya harus dikonversi
ke radian. Radian= phi/180
Jadi untuk membuat
programnya, kali ini saya menggunakan logika berpikir yang sedikit berbeda
dengan yang saya sampaikan di shift selasa 13.00 jadi silahkan dibandingkan saja
mana yang lebih mudah dipahami. Kali ini saya mencoba menjelaskannya per line
dari program saya, coba dipahami
logikanya dan kenapa harus membuat itu. Bukan maksud syntax nya
- header yang saya
gunakan
#include <iostream>
#include
<graphics.h>
#include <math.h>
#include <fstream>
#include <string>
#include <stdio.h>
- jadi yang pertama
dilakukan adalah memasukkan data2nya, cara nya bebas, bisa diinputkan langsung
bisa diambil dari file. yang penting harus dalam bentuk array. Kalau yang saya
lakukan dibawah ini adalah mengambil dari file terniary.csv dimana didalamnya
terdapat angka:
60,20
25,40
Dst
Ingat file terniary.csv
harus dalam folder project
Artinya nilai A di
belakang “,” dan nilai B setelah “,”
Jadi variabel file1
digunakan untuk membuka file terniary.csv
Variabel nilai dan angka
dideklarasikan dalam tipe non-bilangan (huruf)
Mendeklarasikan variabel
i (untuk iterasi/looping) dengan nilai awal 1.
Mendeklarasikan variabel a dan b dengan jumlah room ada 9
yaitu room 0-8
While-} untuk mengambil
angka pada setiap baris pada file1, lalu angka tersebut dimasukkan kedalam
variabel nilai. Dari variabel nilai dikonversi
kedalam variabel a[i]. Jadi berdasarkan nilai i awal, maka room yang
terisi dari a1 – a8.
-------------------------------------------------------------------------------------------------------------------------
Mengembalikan nilai i
menjadi i=0
Variabel file1 ditutup
lalu file2 membuak terniary.csv kembali
Kali ini dia mengambil
angka di setiap barisnya yang setelah “,”
Angka yang terbaca
dimasukkan kedalam variable angka lalu di konversi ke nilai b[i]. Untuk kasus
ini berarti sesuai nilai i nya, dia mengisi dari room b0-b8. Tapi nilai b0
adalah 60 (lihat data diatas) ini dikarenakan emang karena cara kerja getline
nya, sebelum sampai ke kolom ke dua, dia membaca dulu kolom pertama baris pertama.
Baru pada saat i=1 – i=8 dia mengsi nilai yang benar.
Lalu file2 ditutup.
-------------------------------------------------------------------------------------------------------------------------
Kita mendeklarasikan
variabel c yang memiliki room 8 buah yaitu room 0-8
\t maksudnya adalah tab
Jadi kita melakukan
perulangan sebanyak 8 kali dari i =1 hingga 8
Lalu kita menghitung
nilai C yaitu 100-nilaia-nilaib
Lalu kita ngeluarin
variabel a1 b1 c1, a2 b2 c2,s seterusmya hingga a8, b8, c8
Ini Cuma buat ngecek aja
data kita telah masuk dan nilai c sudah terhitung dengan benar atau tidak.
-------------------------------------------------------------------------------------------------------------------------
Lalu kita mendeklarasikan
variabel variabel yang kita perlukan. Variabel rad kita perlukan untuk
menghitung sin dan cos. Sisi untuk mengetahui sisi segitiga, interval untuk
kontrol penskalaannya per 10 persen dan posxa dan posya adalah untuk posisi
awal penggambaran. Sisi*(sin(60*rad)) adalah tinggi segita. Ditambah 100 agar
puncak segita tidak berada di batas window sebelah atas.
-------------------------------------------------------------------------------------------------------------------------
Yang diatas ini adalah
untuk membuat segitiga dan huruf yang menunjukkan titik A B dan C yang bernilai (100). Kita pindah ke
posxa,posya, lalu buat tulisan b(100) lalu kita bikin garis relatif ke
(sisi,0), buat lagi tulisan C(100) lalu kita buat garis relatif kearah –sisi/2(kekiri)
untuk elemen sumbu xnya dan kearah –sisi*sin(60*rad) untuk sumbu y nya yang tak
lain dan tak bukan adalah tinggi segitiga. (lihat gambar segitiga yang diatas
ya) lalu kita buat garis lagi ke titik posxa,posya
-------------------------------------------------------------------------------------------------------------------------
Nah sekarang kita perlu membuat
garis2 skala didalam segitiga. Perhatikan dengan baik gambar dibawah ini:
Intinya kalau kita mau
buat garis kan kita perlu tahu titik awal dan titik tujuannya. Nah disini
xB,xA,xC,Xa.yB,yA,yC,Ya merupakan titik awal dan titik tujuan itu. Kita perlu
tahu nih titik2 tersebut posisinya dimana. Posisinya dapat kita ketahui dengan
rumus diatas. Seharusnya, rumus tersebut harus kalian temukan sendiri polanya. Agar
kita dapat menyelesaikan problem ini. namun saat ini coba pahami aja dengan
cara memasukkan nilai i kedalam rumusnya. Dengan begitu pasti lebih mudah
paham.
Jadi titik (xB,yB) merupakan
titik-titik yang mewakili skala 90 – 10 untuk sisi yang disebelah kiri. Untuk elemen X nya, Skala kan sisi dibagi 100
kan? Sedangkan untuk elemen ini kita
membagi SETENGAH SISI MENJADI 100 dan kita hitung per 10 persennya. Makanya rumusnya
menjadi skala/2. Sedangkan dari elemen
sumbu y nya, kita membagi tingginya menjadi 10 bagian,
Begitu juga untuk xA dan
yA. Sednagnkan untuk xC, kita membagi sumbu x nya sesuai skala.
Beda xA,yA dengan Xa,Ya
apa? Kalau xA,yA kita bergerak dari bawah. Sedangkan Xa,Ya kita bergerak dari
atas kebawah pada setiap perulangannya.
Jadi untuk membuat garis
untuk nilai sumbu A, kita perlu menghubungkan titik xA,yA dengan xB,yB disetiap
perulangannya.
Untuk membuat garis untuk
nilai sumbu B, kita perlu menghubungkan titik xB,yB dengan titik xC,yC disetiap
perulangannya.
Untuk membuat sumbu C,
kita perlu menghubungkan titik xC,yC dengan Xa,Ya disetiap perulangannya.
-------------------------------------------------------------------------------------------------------------------------
Nah untuk diatas kita
memplot data kita. Rumusnya sudah dijelaskan diatas dan di slide kuliah juga
ada. Dan juga perlu kita kali skala kita.
Setfillstyle adalah untuk
mengatur jenis fill (1=penuh) dengan warna yang berbeda2 tergantung nilai i
nya.
X adalah posisi data kita
di window dalam sumbu xnya
Y adalah posisi data kita
dari segi sumbu y
Dan kita membuat elips
diposisi x,y dengan radius x adalah 5 dan radius y adalah 5
-------------------------------------------------------------------------------------------------------------------------
Sudah selesai. Ingat pahami
logikanya. Semoga membantu
-------------------------------------------------------------------------------------------------------------------------
bang, yang skala probabilistik blm ya? bingung nihhhh
ReplyDeleteudah kok dek tapi baru aja hahha monggo di cek tapi logikanya doang sih
Deletemas, kalo membuat diagram terniary di excel bisa gak mas? gimana caranya?
ReplyDelete