Monday, September 22, 2014

Membuat Skala Linear



Skala linear itu menurut saya merupakan skala yang menggunakan garis lurus dan antar intervalnya memiliki jarak yang tetap. Untuk memahami skala linear, analogi yang paling mudah adalah dengan membuat garis skala dengan menggunakan penggaris.
Bagian-bagian dari skala linear:
 


1. Untuk membuat skala linear pada pada program c++, jangan lupa untuk men setting linker setting yang terdapat pada menu build option seperti praktikum minggu lalu


2. Jangan lupa menuliskan header di bagian paling atas
#include <math.h>
#include <graphics.h>

3. Buatlah window dengan ukuran 600 x 650 px
4. Deklarasikan dahulu titik awal penggambaran dalam sebuah variabel tipe integer
Misal:
posisiXawal = 150
posisiYawal = 200

5..Deklarasikan lebar dan tinggi sumbu dalam sebuah variabel bertipe float
Misal :
lebar=400  à ini untuk membuat sumbu x nya
tinggi=400 à ini untuk membuat sumbu y nya

6. Deklarasikan sebuah variabel i sebagai bilangan bulat (integer) untuk melakukan perulangan (optional)

7. Buatlah garis sumbu horizontal dengan panjang=lebar
moveto(posisiXawal,posisiYawal);
kalian bisa memilih salah satu dari perintah dibawah ini. yang dihasilkan akan sama saja.
lineto(posisiXawal+lebar,posisiYawal);
linerel(lebar,0);
jadi setelah statment2 diatas dilakukan, maka pada window kita akan terbentuk sebuah garis dari titik 150,200 ke 550,200.

8.Tentukan dan deklarasi kan dalam bilangan tidak bulat (float) nilai maksimum dan minimum data yang kita miliki dalam sebuah variabel.
minimumdataX=24
maksimumdataX=153
nah, untuk poin ini, anggap saja kita sudah memiliki sekian banyak data dan telah kita seleksi nilai maksimum dan minimum data yang kita punya. Aslinya kita harus membuat urutan statment2  tersendiri untuk menyeleksi data maksimum dan data minimum yang kita miliki. Gunanya apa? Gunanya untuk menentukan nilai skala minimum dan maksimum kita. Misalnya kita mau bikin jarak antar skala nya 10, maka nilai minimum skalanya adalah 20 dan maksimum skala adalah 160.  Kalau jarak antar skalanya 15, maka nilai minimum skalanya jadi 15 dan maksimumnya adalah 165. Tentu saja kita bisa mengira2 langsung berapa nilai maksimum dan minimumnya dan langsung bisa kita deklarasikan. Namun jauh lebih baik kita menggunakan perumusan untuk mencapai angka yang kita ingin kan sehingga jika ada perubahan data minimum dan maksimum yang kita punya, secara otomatis program kita dapat mencari sendiri nilai skala minimum dan nilai skala maksimumnya.

9. Tentukan interval (jarak) skala minor dan skala major (yang berlabel) dalam sebuah variabel bertipe float

IntervalminorX = 10 ->jadi setiap 10 nilai bakal ada tick mark nya
intervalmajorX = 50 ->setiap 50 nilai tick marknya lebih panjang dan memiliki label

10. Tentukan nilai minimum dan maximum pada skala dan masukkan kedalam sebuah variabel bertipe float



Mengapa rumusnya begini? Sebenarnya mungkin saja ada cara lain untuk mencapai angka yang kita ingin kan. Namun, untuk rumus diatas kegunaan floor dan ceil telah dijelaskan pada tulisan sebelumnya. Nilai minimum kita 24, jika dibagi interval minor yang bernilai 10 maka hasilnya 2,4. Lalu oleh fungsi floor nilai 2,4 dibulatkan menjadi 2,0. Kemudian dikalikan lagi dengan interval minor sehingga hasil akhirnya 20, tepat seperti angka yang kita inginkan. Kamu bisa mencoba menggunakan minimum data lain dan interval minor lain, hasilnya akan selalu sesuai dengan yang kita harapkan. Untuk skala maksimum sama saja, hanya saja ceil itu gunanya untuk membulatkan keatas,

11. Tentukan skala sumbu x dan masukkan kedalam sebuah variabel bertipe float

Skala ini merupakan pendefinisian berapa pixel jarak antar 1nilai yang tertera pada skala kita. Hal ini diperlukan untuk pemposisian apapun yang berkaitan dengan skala linear kita ini. dengan kita tahu 1 nilai pada skala mewakili berapa pixel, maka kita akan tau berapa pixel nilai lain pada skala tersebut. Contohnya pada awalnya saya memiliki lebar skala 500 px. Skala minimum 40 dan skala maksimum 90. Artinya setiap satu nilai pada skala mewakili 10 px. Jadi kalau kita ingin tahu dimana posisi nilai 75 sangat mudah, yaitu (75-40) x 10 350 px dari titik 40 tadi.

12. Tentukan jumlah interval minor sumbu x dan masukkan kedalam sebuah variabel bertipe float

Pendefinisian jumlah interval berguna untuk mebuat tick mark yang jumlahnya pasti 1+jumlah interval.
13. Sekarang kita akan membuat tick mark pada sumbu yang telah kita buat. Kita tahu bahwa jumlah tick mark adalah jumlah interval pada sumbu x ditambah 1. sehingga kita dapat membuat perulangan (for) yang sesuai
For(i=0;i<=jumlahIntervalX;i++)
{

}
14. Didalam perulangan tersebut, tujuan kita adalah untuk membuat tick mark berkali2 sesuai dengan jumlah yang kita inginkan di posisinya masing2.
- Buat dahulu variabel nilai interval X yang menyimpan setiap nilai interval pada tick mark yang kita buat. Artinya garis pertama nilainya 20, garis kedua nilainya 30, dst
pembuktiannya:
- Buat variabel yang menyimpan posisi penggambaran tickmark pada (dalam pixel) sumbu x
 
- Buatlah garis tickmark nya
line (posX,posYa-5,posX,posYa+5)
 
15. Masih didalam perulangan tersebut, seperti yang kita inginkan di awal bahwa setiap interval Major (50) kita ingin tick mark yang lebih panjang dan diberi label. Untuk itu kita perlu mengevaluasi variabel Xint apakah nilai yang terdapat pada Variabel terebut merupakan kelipatan 50 atau bukan. Caranya adalah dengan memenuhi kondisi dibawah ini dengan menggunakan perintah IF
Kita ambil contoh nilai interval X adalah 30, dibagi 50 menjadi 0,6. Dibulatkan jadi 0. Kemudian 0 – 0,6 tidaksama dengan 0 artinya kondisi ini tidak terpenuhi. Kemudian misalnya kita ambil intervalX adalah 100, maka 100/50 = 2, dibulatkan menjadi 2, lalu dikurangi 2, hasilnya adalah 0. Artinya 100 ini adalah kelipatan dari interval major X nya yaitu 50.
- Dalam if tadi, buat lah garis tick mark yang lebih panjang dari yang sebelumnya.
line(posX,posYa-10,posX,posYa+10)
- Buat variabel bertipe char untuk menyimpan huruf sebanyak 5 karakter
char text[5];
- Setelah itu konversikan 3 digit nilai nilaiintervalX (yang bertipe float) kedalam variabel text (char) untuk menjadikan angka yang terdapat dalam variable nilaiintervalX tadi menjadi bertipe char
gcvt (nilaiintervalx,3,text);
-Kita perlu menentukan lebar dan tinggi teks untuk pemosisian labelnya
float lebarteks=textwidth(text);
float tinggiteks=textheight(text);
- Tentukan posisi labelnya
float posteksx=posisix-lebarteks/2;
--> berdasarkan prinsip posisi titik pada text maka jika kita ingin meletakkan label ditengah2 seperti yang tertera pada gambar maka pada posisiX harus dikurangi sebanyak setengah dari lebarteks yang ada
float posteksy=posYawal-10-tinggiteks;
kalau kita tidak ingin labelnya menutup skalanya maka kita harus mengurangi posisinya dari segi sumbu y sebanyak jarak dari skala (10) dan tinggi teks.
Jika kedua hal diatas tidak dilaksanakan maka posisi label akan terletak seperti digambar:

-Berikan perintah untuk mengluarkan text
outtextxy(posteksx,posteksy,text);


Maka sudah selesailah sumbu X skala kita, masih ada satu tugas lagi yaitu untuk mebuat sumbu y nya. Kamu hanya perlu mengulang poin 8-15 untuk mengerjakan sumbu y nya dengan variabel yang khusus untuk sumbu y seperti skalaY, minimumdataY, skalaminimumY, nilaiintervalY, posisiY, dan lain-lain. Lalu yang agak beda adalah pemosisian labelnya, yaitu :
float posteksy=posisiY-tinggiteks/2;
float posteksx=posisiXawal-10-lebarteks;
selamat nugas



 



2 comments:

  1. This comment has been removed by the author.

    ReplyDelete
  2. 100 sure win football prediction today, sure win tips and rb88 rb88 planet win 365 planet win 365 메리트 카지노 주소 메리트 카지노 주소 500Curse of the Werewolf Casino Review 2021 - Bonus Codes

    ReplyDelete