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 DO loop
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; PROC PRINT 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;
INPUT campuran (list dan column)
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:
INFILE ‘D:\data\dataskor’ FIRSTOBS=51 OBS=100;
Pernyataan Assignment [1] Bentuk umum:
Peubah = ekspresi_numerik; • Ekspresi_numerik terdiri dari:
1. Konstanta numerik 2. Peubah numerik 3. Operator numerik 4. Functions: SQRT, ABS, MIN,MAX, SIN,dll
b b 2 4ac x 2a
d
1 2
e
1 z2 2
y e log 20 x
1. 2. 3. 4.
Konstanta numerik: 4, 2, 20 Peubah numerik: x, b, a, c, d Operator numerik: -, +, * Functions: SQRT, LOG
Pernyataan 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: || 4. Functions: TRIM, LENGTH
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 (<=) • operator logika: AND (&) dan OR (|)
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;
Pernyataan Kondisi (IF-THEN-ELSE) [3]
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’;
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’
Susun pernyataan IF yang sesuai !
Pernyataan LENTGH Bentuk umum:
LENGTH peubah [$] panjang-string … ; Contoh: LENGTH kata $ 15; INPUT kata $ 1-15 frek 17-20;
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; PROC PRINT DATA=jumlah;
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; PROC PRINT DATA=jumlah;
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; INPUT pon @@; kilo = pon/2.2; LINES; 0.1 0.2 … 19.9 20.0 ; PROC PRINT; TITLE ‘Konversi pon ke kilogram’; VAR kilo;
DATA contoh2; DO pon = 0.0 TO 20.0 BY 0.1; kilo = pon / 2.2; OUTPUT; END;
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; TITLE ‘Bangkitan data seragam (uniform) dengan selang nilai (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; VBAR rataan / MIDPOINTS=40 TO 60 BY 2;
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 PRINT DATA=skor;
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; TABLES jk*pendibu / NOPERCENT;
PROC PLOT PROC PLOT DATA=gugusdataSAS; PLOT vertical*horizontal / options; PLOT vertical*horizontal=’karakter’ / options; PLOT vertical*horizontal=peubah / options; Options: VAXIS=
HAXIS=
VERF=
OVERLAY Contoh: PROC PLOT; PLOT tinggi*bobot; PLOT tinggi*bobot=’+’ / VREF=20 HREF=7; PLOT xtinggi*xbobot=’+’ ytinggi*ybobot=’-’ / OVERLAY;
HREF=
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; FORMAT jk jkform. bobot bform;
Pernyataan TITLE TITLE ‘judul’ TITLEn ‘judul’; Contoh: PROC PRINT DATA=skor; TITLE ‘Skor setiap mahasiswa’; TITLE2 ‘Wilayah Bogor’;