SAS/BASE
Departemen Statistika
Fakultas Matematika dan IPA
2012
Pernyataan pada Tahapan DATA
Pernyataan DATA
Pernyataan INPUT
Pernyataan INFILE
Pernyataan CARDS (atau LINES)
Pernyataan
Assignment
Pernyataan Kondisi (IF-THEN-ELSE)
Pernyataan LENGTH
Pernyataan SET
Pernyataan MERGE
Pernyataan pada Tahapan PROC
PROC PRINT
PROC MEAN
PROC UNIVARIATE
PROC FREQ
PROC PLOT
PROC CHART
PROC SORT
PROC FORMAT
Pernyataan DATA
Bentuk umum:
DATA namagugusdataSAS;
Hasil dari tahapan DATA
Sementara (‘WORK.namagugusdataSAS’) atau permanent
Setiap PROC menggunakan gugusdata terbaru
Contoh: DATA;
DATA statlab;
Pernyataan INPUT
[1]Bentuk umum:
INPUT namapeubah tipe lokasi ;
INPUT
list
o Contoh:
o INPUT nama $ umur tinggi bobot x1 x2;
INPUT
column
o Contoh:
o INPUT nama $ 17-41 umur 1-2 tinggi 4-7 bobot 9-11 x1 13 x2 15;
Pernyataan INPUT
[2] penunjuk kolom (@n atau +n)
Contoh:
INPUT x @20 y z +15 w;
penunjuk baris (#n atau /)
Contoh: INPUT x y #2 z; INPUT x y / z; penggunaan tanda @@ Contoh: DATA filexy; INPUT x y @@; LINES; 2 4 5 6 3 8 5 9 15 18 20 21 ;
Pernyataan INFILE
Bentuk umum:
INFILE
fileref
;
Data eksternal dengan nama fileref
Contoh:
DATA skor;
INFILE ‘D:\data\dataskor.txt’; INPUT v1 v2 v3;
Options: FIRSTOBS= n1 dan OBS= n2
Contoh:
Pernyataan
Assignment
[1]Bentuk umum:
Peubah = ekspresi_numerik;
•
Ekspresi_numerik terdiri dari:
1. Konstanta numerik
2. Peubah numerik
3. Operator numerik
a
ac
b
b
x
2
4
2
2 2 12
1
ze
d
x
y
elog
20
1. Konstanta numerik: 4, 2, 20 2. Peubah numerik: x, b, a, c, d 3. Operator numerik: -, +, * 4. Functions: SQRT, LOGPernyataan
Assignment
[2]Bentuk umum:
Peubah = ekspresi_numerik;
Contoh:
a. (-b + SQRT(b**2 – 4*a*c))/2*a
b.IF jk=1 THEN jenis=’pria’;
ELSE jenis=’wanita’;
c. DATA metric;
INFILE statlab;
INPUT bobotpon 16-19;
bobotkg = bobotpon/2.2;
Pernyataan
Assignment
[3]Bentuk umum:
Peubah = ekspresi_string;
•
Ekspresi_string terdiri dari:
1. Konstanta karakter atau string
2. Peubah string
3. Operator string: ||
Pernyataan
Assignment
[4]Contoh:
DATA nama;
LENGTH nama1 $ 20 nama2 $ 20 nama3 $ 40; INPUT nama1 $ nama2 $;
nama3 = TRIM(nama2) || ‘, ‘ || TRIM(nama1); LINES;
Aji Wigena Budi Santoso Rudi Nurtanio ;
PROC PRINT DATA=nama; TITLE ‘Daftar Nama’;
Pernyataan Kondisi (IF-THEN-ELSE)
[1]
Bentuk umum:
IF
kondisi
THEN
pernyataan1
;
ELSE
pernyataan2
;
• kondisi adalah ekspresi logika
• operator pembandingan: EQ (=),NE (<>), GT(>), LT (<), GE (>=), LE (<=)
Pernyataan Kondisi (IF-THEN-ELSE)
[2]Contoh:
1. DATA contoh; LENGTH jenis $ 6; INFILE statlab;INPUT nama $ kode;
IF kode=1 THEN jenis=’pria’; ELSE jenis=’wanita’;
2. IF jk=1 THEN DO;
jenis=’pria’; status=’kawin’; END;
ELSE DO;
jenis=’wanita’; status=’tidak kawin’; END;
nilai ≥ 50 ’A’ 40 ≤ nilai < 50 ’B’ 30 ≤ nilai < 40 ’C’ 20 ≤ nilai < 30 ’D’ nilai < 20 ’F’
IF nilai >= 50 THEN mutu=’A’;
IF nilai >= 40 AND nilai < 50 THEN mutu=’B’; IF nilai >= 30 AND nilai < 40 THEN mutu=’C’; IF nilai >= 20 AND nilai < 30 THEN mutu=’D’; IF nilai < 20 THEN mutu=’F’;
Pernyataan Kondisi (IF-THEN-ELSE)
[3]
IF nilai >= 50 THEN mutu=’A’;
ELSE IF nilai >= 40 THEN mutu=’B’; ELSE IF nilai >= 30 THEN mutu=’C’; ELSE IF nilai >= 20 THEN mutu=’D’; ELSE mutu=’F’;
nilai ≥ 75 ’A’ 70 ≤ nilai < 75 ’AB’ 65 ≤ nilai < 70 ’B’ 60 ≤ nilai < 65 ’BC’ 50 ≤ nilai < 60 ’C’ 40 ≤ nilai < 50 ’D’ nilai < 40 ’E’
Pernyataan LENTGH
Bentuk umum:
LENGTH peubah [$] panjang-string … ;
Contoh:
LENGTH kata $ 15;
Pernyataan SET
Bentuk umum:
SET namagugusdataSAS;
Tidak ada pernyataan INPUT bersamaan dengan pernyataan SET Untuk membuat subset data dari suatu gugusdataSAS
Contoh: DATA temp; INFILE ‘D:/xyzdata’; INPUT x y z; DATA jumlah; SET temp; jum = x+y+z;
Pernyataan MERGE
[1]Bentuk umum:
MERGE namadataSAS1 namadataSAS2;
Menggabungkan dua atau lebih gugus data SAS berdasarkan setiap pengamatan yang sesuai atau pernyataan BY
Contoh: DATA temp; INFILE ‘D:/xyzdata’; INPUT x y z; DATA jumlah; SET temp; jum = x+y+z;
Pernyataan MERGE
[2]Contoh: tanpa pernyataan BY
DATA sopir;
NPUT nama $ kota $; CARDS: Ahmado Bogor Bonita Jakarta Hadian Bandung ; DATA mobil;
INPUT tahun model $; CARDS;
1986 corrola 1987 corrona 1988 mazda ;
PROC PRINT DATA=sopir; PROC PRINT DATA=mobil; DATA gabung;
MERGE sopir mobil; PROC PRINT;
Pernyataan MERGE
[3]Contoh: dengan pernyataan BY
DATA sopir;
NPUT nama $ jeniskel $; CARDS: Ahmado pria Bonita wanita Hadian pria Gandi pria ;
PROC PRINT DATA=sopir; DATA lokasi;
INPUT nama $ kota $ wilayah; CARDS; Budi garut 4 Ahmado bogor 1 Bonita jakarta 2 Hadian bandung 3 ;
PROC SORT DATA=lokasi; BY nama; DATA gabung;
MERGE sopir lokasi; BY nama; PROC PRINT;
Pernyataan DO-loop
[1] Bentuk umum:DO var1 = var2 TO var3 [BY pertambahan]; :
: END;
Contoh:
DATA contoh1; DATA contoh2;
INPUT pon @@; DO pon = 0.0 TO 20.0 BY 0.1; kilo = pon/2.2; kilo = pon / 2.2;
LINES; OUTPUT; 0.1 0.2 … 19.9 20.0 END;
;
PROC PRINT;
TITLE ‘Konversi pon ke kilogram’; VAR kilo;
Pernyataan DO-loop
[2]Contoh:
DATA normal1; DO z = -4 TO 4.05 BY 0.2; density = (1.0/SQRT(2*3.1415926536))*EXP(-z**2/2); OUTPUT; END;
PROC PLOT DATA=normal1;
PLOT density*z / HAXIS=-4 TO 4 BY 1; TITLE ‘Sebaran Normal Baku’;
Pernyataan DO-loop
[3]Contoh:
DATA normal2; DO i = 1 TO 40; x = 50 + 10*NORMAL(0); OUTPUT; END;PROC CHART DATA=normal2;
VBAR x / MIDPOINTS=20 TO 80 BY 5;
TITLE ‘Bangkitan data normal dengan rataan 50 dan simpangan 10’;
Pernyataan DO-loop
[4]Contoh:
DATA seragam; DO i = 1 TO 100; y = UNIFORM(0); OUTPUT; END;PROC CHART DATA=seragam;
VBAR y / MIDPOINTS=0.05 TO 0.95 BY 0.1;
Pernyataan DO-loop
[5]Contoh:
DATA normal3; n = 40; DO i = 1 TO 500; DO j = 1 TO n; x = 50 + 10*NORMAL(0); jum = jum + x; END; Rataan = jum / n; OUTPUT; END;PROC PRINT DATA=normal3;
TITLE ‘Bangkitan data 500 kali masing2 dengan n=40 PROC CHART DATA=normal3;
Pernyataan PROC
Bentuk umum:
PROC namaprosedur [DATA=gugusdataSAS];
PROC PRINT PROC MEANS PROC UNIVARIATE PROC FREQ PROC PLOT PROC CHART PROC SORT POC FORMAT
PROC PRINT
PROC PRINT DATA=gugusdataSAS;
VAR peubah-peubah;
ID peubah;
SUM peubah-peubah;
Contoh: DATA skor; INPUT x y z nama $; LINES; 23 46 5 Budi 32 75 2 Norma 40 55 8 Andre ;PROC MEANS
PROC MEANS DATA=gugusdataSAS;
VAR peubah-peubah;
Options:
MAXDEC = n
N, NMISS, MEAN, STD, MIN, MAX, RANGE, SUM,
VAR, STDERR, SKEWNESS, KURTOSIS
Contoh:
PROC MEANS DATA=xyz MAXDEC=2 MEAN VAR; VAR x y z;
PROC UNIVARIATE
PROC UNIVARIATE DATA=gugusdataSAS;
VAR peubah-peubah;
PROC FREQ
PROC FREQ DATA=gugusdataSAS;
TABLES peubah-peubah;
TABLES peubah*peubah;
Contoh:
PROC FREQ DATA=demo; TABLES jk pendibu;
PROC PLOT
PROC PLOT DATA=gugusdataSAS;
PLOT vertical*horizontal / options;
PLOT vertical*horizontal=’karakter’ / options;
PLOT vertical*horizontal=peubah / options;
Options:
VAXIS=
HAXIS=
VERF=
HREF=
OVERLAY
Contoh:
PROC PLOT;
PLOT tinggi*bobot;
PLOT tinggi*bobot=’+’ / VREF=20 HREF=7; PLOT xtinggi*xbobot=’+’
PROC CHART
[1]PROC CHART DATA=gugusdataSAS;
VBAR peubah-peubah / options;
HBAR peubah-peubah / options;
Options:
TYPE = FREQ
TYPE = PERCENT
TYPE = CFREQ
TYPE = CPERCENT
DISCRETE
MIDPOINTS =
PROC CHART
[2]Contoh:
PROC CHART DATA=gugusdataSAS;
TITLE ‘Frekuensi peubah Pendidikan Ibu’; VBAR pendibu / DISCRETE;
VBAR pendibu / DISCRETE TYPE=CFREQ; VBAR pendibu / DISCRETE TYPE=PERCENT;
PROC SORT
PROC CHART DATA=gugusdataSAS [OUT=gugusdataSAS];
BY peubah-peubah;
BY [DESCENDING] peubah-peubah;
Contoh:
PROC SORT DATA=demo OUT=outsort; BY jk;
PROC FORMAT
PROC FORMAT;
VALUE
nf range=’label’ range=’label’ …
Contoh:
PROC FORMAT;
VALUE jkform 1=’pria’ 2=’wanita’;
VALUE bform LOW-7.5 = ‘ringan 7.6-9.5 = ‘normal’ 9.6-HIGH = ‘berat’; PROC PRINT;
VAR jk bobo;
Pernyataan TITLE
TITLE ‘judul’
TITLEn ‘judul’;
Contoh:
PROC PRINT DATA=skor;
TITLE ‘Skor setiap mahasiswa’; TITLE2 ‘Wilayah Bogor’;