Selasa, 02 November 2010

Data set

Data set adalah salah satu tipe file SAS yang paling sering dijumpai dan digunakan. Secara fisik, file ini berekstensi .sas7bdat. Selain data set terdapat tipe file SAS lain, misalnya file SAS untuk catalog.

Secara konsep, data set SAS adalah file yang yang terdiri dari dua bagian, yaitu bagian deskripsi dan bagian data. Kadang-kadang data set SAS juga mengandung index untuk memampukan SAS dalam menemukan suatu record pada data set secara lebih efisien. Untuk sementara bagian tentang index ini bisa diabaikan dulu. Contoh-contoh data set pada tutorial ini pun tidak menggunakan index. Perhatikan Gambar 6 sebagai gambaran susunan data set SAS.


Bagian Deskripsi

Setiap data set SAS pasti memiliki bagian deskripsi. Bagian ini berisi informasi sehubungan dengan data set itu sendiri, diantaranya:
-         nama data set
-         waktu pembuatan
-         waktu modifikasi terakhir
-         jumlah observasi
-         jumlah variable
-         dll

Anda dapat melihat bagian deskripsi pada data set Anda. Untuk keperluan ini, coba jalankan kembali Script 3 kemudian tulis dan jalankan script di bawah ini.

1  proc contents data=DaftarPegawai;
2  run;
Script 7

SAS akan menampilkan bagian deskripsi dari data set Daftarpegawai di Log dan di Result Viewer (berupa HTML).

Bagian Data

Bagian ini berisi data – data yang Anda simpan data data set SAS. SAS menyimpan data – data Anda dalam bentuk sebuah tabel rectangular. Seperti yang Anda liat pada Gambar 6,  terdapat dua elemen penting, yaitu: Variabel dan Observasi.

Istilah Variabel pada SAS mengacu pada kolom dari suatu tabel SAS. Nilai – nilai Vina Widyani, Paul Agus, Jeff Roland, dst, adalah nilai dari Variabel NamaLengkap.

Istilah Observasi pada SAS mengacu pada baris dari suatu tabel SAS. Nilai-nilai TL11223344, Vina Widyani,  W, Staff, 3000000 adalah nilai dari Observasi pertama.

Pengaturan data dalam bentuk tabel rectangular menyebabkan setiap variabel harus memiliki suatu nilai untuk setiap observasi.Jika ada satu variabel di observasi tertentu yang tidak memiliki nilai maka SAS akan menyimpannya sebagai missing value. Jika tipe variabel adalah numerik, SAS menyimpan missing value dalam symbol titik ( . ). Jika tipe variable adalah karakter, SAS menyimpan missing value dalam bentuk spasi kosong.

Kamis, 28 Oktober 2010

Konsep Library

Konsep Library telah digunakan di bagian Import MS Excel ke SAS. Sekarang mari kita lihat lebih dalam tentang Library.

SAS menyimpan semua file-file-nya dalam suatu Library. Library adalah koleksi file SAS. Library adalah sistem pengorganisasian informasi dengan level tertingi dalam SAS.
Implementasi dari SAS Library berbeda-beda tergantung dari sistem operasi yang Anda gunakan. Untuk lingkungan Windows maupun UNIX-like, Library dapat diartikan secara sederhana sebagai suatu grup file-file SAS yang terletak di direktori yang sama.

Untuk melihat Library secara visual, lihat Jendela Explorer. Anda dapat menemukan icon Libraries. Klik dua kali pada icon tersebut, Anda akan melihat daftar Library yang ada. Pilih satu Library, contoh Sasuser, klik kanan pada icon Library itu -> Properties. Di sana Anda akan melihat letak direktori yang menyimpan file-file SAS yang ada di Library Sasuser. Jika Anda mengklik dua kali pada Libarary Sasuser, Anda akan melihat suatu daftar file SAS yang terletak pada Libarary Sasuser (dimana lokasi fisik dari semua file-file tersebut terletak pada direktori seperti yang Anda lihat di Jendela Properties dari Sasuser).


Gambar 5

Sekarang, kunjungi kembali daftar Library (jika Anda sekarang berada di daftar file pada Library Sasuser, aktifkan Jendela Explorer dengan klik pada bagian mana saja di Jendela itu, kemudian tekan Backspace). Pada daftar Library, terdapat library – libarary lain selain Library Sasuser, contohnya: Libarary Work dan Library Sashelp. Library-library ini adalah library special pada SAS karena mereka akan otomatis di-load oleh SAS pada saat program SAS dimulai. Sekarang, perhatikan Library Work. Libarary ini adalah library tempat SAS secara default  menyimpan semua file SAS yang dihasilkan jika Anda tidak secara ekplisit menyebutkan lokasi penyimpanan SAS file tersebut. Agar lebih jelas, tulis script lalu jalankan script di bawah ini.

1  DATA HaloDunia;
2  Ucapan="Halo Dunia";
3  RUN;
Script 5

Sekarang, klik dua kali pada Library Work. Anda akan melihat data set Halodunia yang dihasilkan dari script yang baru saja Anda tulis. Ada satu hal yang Anda harus ingat berkaitan dengan Library Work ini, yaitu bahwa semua data yang ditulis di dalamnya akan otomatis dihapus jika program SAS berakhir. Untuk melihat itu, coba tutup program SAS lalu buka kembali kemudian kunjungi Library Work. Anda tidak akan menemukan data set Halodunia lagi.

Selain menggunakan Library Work, Anda dapat juga mendefinisikan library sendiri. Keuntungan dari memakai library sendiri adalah file-file yang Anda simpan di library itu tidak akan dihapus jika Anda menutup program SAS. Namun, Anda harus menuliskan definisi library itu setiap kali Anda hendak menggunakan library tersebut. Untuk lebih jelasnya, tuliskan script di bawah ini.

1  LIBNAME Halo "C:\BELAJARSAS";
2
3  DATA Halo.HaloDunia2;
4  Ucapan="Kembali, halo dunia";
5  RUN;

Jalankan script di atas, lalu kunjungi daftar Libraries. Anda Selain Libarary Work, Sasuser, dan Sashelp, Anda akan melihat terdapat juga Library Halo. Klik dua kali pada Library Halo, Anda akan menemukan data set Halodunia2 dan jika Anda membuka C:\BELAJARSAS, Anda akan menemukan file halodunia2.sas7bdat yang tidak lain adalah data set Halodunia2. Berikut ini adalah penjelasan dari Script 6,

  1. Di baris  ke-1, Anda mendefinisikan library baru. Secara umum, sintaks pendefinisian library adalah: LIBNAME <libref/name library> <path ke library>.
  2. Untuk dapat menggunakan library yang baru saja Anda buat, Anda harus menuliskan nama library itu di depan nama data set yang Anda buat dan dipisahkan dengan tanda titik ( . ).

Ada beberapa aturan penamaan yang perlu diperhatikan dalam pendefinisian suatu libref (nama dari suatu library, dalam hal ini Halo), yaitu:

  1. Panjang maksimum delapan karakter.
  2. Hanya boleh dimulai dengan karakter _ atau dengan karater huruf. Tidak boleh dimulai dengan angka. Contoh, libref 1Halo adalah error sedangkan libref _Halo diperbolehkan.
  3. Penamaan boleh mengandung kombinasi dari karakter angka, karakter huruf atau karater _. Contoh, libref Halo1 diperbolehkan.

Konvensi

Sebelum melangkah ke materi berikutnya, perhatikan konvensi-konvensi yang akan digunakan mulai dari saat ini:
  1. Jendela Log, Jendela Editor, Jendela Explorer, Jedela Result Viewer dan jendela lainnya akan direfrensikan tanpa menyebut kata Jendela. Jadi, jika disebutkan Log itu berarti Jendela Log, jika disebutkan Explorer itu berarti Jendela Explorer.
  2. Di setiap baris script, akan disertakan nomor baris. Ketika Anda menuliskan script yang ada di tutorial ini ke Jendela Editor Anda, jangan tulis nomor baris-nya, karena nomor baris hanya dimaksudkan untuk keperluan penerangan. Anda dapat juga menampilkan nomor baris di Jendela Editor Anda dengan cara: Tools -> Options -> Enhanced Editors, pada General Tab, tandai pilihan Show line numbers.
  3. Semua kata kunci akan dituliskan dengan memakai huruf besar. Namun demikian, penggunakan huruf besar atau kecil dalam penulis script SAS adalah murni preferensi saja. Penggunaan huruf besar atau huruf kecil tidak berpengaruh dalam eksekusi script kecuali dalam hal pembandingan String. Script SAS termasuk script bertipe case insensitive.

Selasa, 19 Oktober 2010

Import dari MS Excel ke SAS

Setelah melihat beberapa hal dasar, mari kita masuk ke hal praktis: import data dari MS Excel ke SAS. Untuk keperluan ini, saya sudah menyiapkan file DAFTAR_PEGAWAI_1.xls yang dapat Anda unduh di link ini. Anda dapat menyimpan file DAFTAR_PEGAWAI_1.xls di lokasi manapun yang Anda suka. Namun, untuk tujuan kemudahan dalam latihan, saya menyarankan Anda membuat folder BELAJARSAS di drive C:\ kemudian simpan file tersebut pada folder BELAJARSAS. Dengan demikian, path DAFTAR_PEGAWAI_1.xls di komputer Anda menjadi:
C:\BELAJARSAS\DAFTAR_PEGAWAI_1.xls

Kemudian, ketikkan script di bawah ini di jendela editor:

LIBNAME xlslib "C:\BELAJARSAS\DAFTAR_PEGAWAI_1.xls";

DATA DaftarPegawai;
SET xlslib."Sheet1$"n;
RUN;


Jalankan script di atas. Setelah Anda menjalankan script tersebut, cek Jendela Log pastikan bahwa tidak ada pesan berwarna merah yang muncul. Jika tidak ada pesan berwarna merah, berarti Anda telah sukses memasukkan data dari MS Excel ke SAS. Jika ada, pastikan bahwa Anda meletakkan DAFTAR_PEGAWAI_1.xls di C:\BELAJARSAS atau jika Anda menaruhnya di lokasi yang berbeda, pastikan path yang Anda tulis di libname statement menujuk ke lokasi Anda menyimpan DAFTAR_PEGAWAI_1.xls.

Untuk melihat hasil import ke SAS, klik dua kali pada icon Libraries pada Jendela Explorer setelah itu klik dua kali pada icon Work. Anda akan menemukan file Daftarpegawai. Klik dua kali pada Daftarpegawai, maka Jendel Viewtable akan terbuka seperti gambar di bawah:

Gambar 4

Berikut ini adalah penjelasan Script 3:
  1. Baris ke-1 memerintahkan SAS untuk menyiapkan suatu Library (atau bisa disebut representasi logika) xlslib dari DAFTAR_PENGAWAI_1.xls. SAS juga akan menggunakan engine yang bersesuaian dengan ekstensi file yang disebutkan untuk menghandle file tersebut (dalam hal ini Engine yang digunakan adalah: EXCEL)
  2. Baris ke-3 berisi nama tabel output atau nama tabel hasil import dari MS Excel. Secara default semua tabel akan disimpan di Library Work (Library yang Anda  klik dua kali sebelum akhirnya menemukan tabel Daftarpegawai) kecuali Anda menspesifikasikan lain.
  3. Baris ke-4 membaritahu SAS tentang sumber import data. SAS akan membaca Library xlslib (yang adalah representasi logika dari file DAFTAR_PEGAWAI_1.xls) setelah itu membaca “Sheet1”, sesuai dengan nama sheet yang Anda tulis sebelum tanda “$”.
  4. Baris ke-5 memberitahu SAS untuk memulai proses eksekusi.

Keterangan di atas adalah keterangan singkat tentang hal-hal yang terjadi. Jangan khawatir jika Anda belum mengerti seluruhnya sekarang karena hal-hal itu akan diterangkan lebih lanjut.

Cara Alternatif

Selain cara yang telah dituliskan di Script 3, Anda juga dapat menggunakan script di bawah ini:

proc import datafile="C:\BELAJARSAS\DAFTAR_PEGAWAI_1.xls"
out=DaftarPegawai dbms=excel2000 replace;
run;

Untuk tugas import file Excel yang sederhana, Anda dapat menggunakan Script 4. Namun sepanjang tutorial ini saya akan menggunakan Script 3 karena cara ini menyediakan tingkat fleksibilitas yang lebih tinggi.

Jumat, 15 Oktober 2010

BAB 1  HAL HAL DASAR



Bab ini berisi pengetahuan – pengetahuan dasar yang diperlukan untuk memulai penulisan script SAS. Pengetahuan dimulai dari pengenalan screen sampai ke beberapa konsep dasar yang perlu diketahui.


Jendala dan fungsi control pada SAS
Ketika program SAS pertama kali dimulai, tiga jendela akan terbuka secara otomatis.

Gambar 1

Ketiga jendela yang terbuka secara otomatis itu adalah (telah diberi tanda kotak merah dengan label angka warna biru):

  1. Jendela Explorer. Melalui jendela ini Anda dapat benavigasi untuk mencari script SAS (atau file lainnya yg berkaintan) yang hendak Anda sunting.
  2. Jendela Log. Jendela ini berfungsi untuk menampilkan berbagai informasi yang muncul ketika SAS mengeksekusi suatu script. Dari jendela ini juga dapat dilihat apakah suatu script bekerja secara sempurna atau ada error yang terjadi ketika eksekusi.
  3. Jendela Editor. Ini adalah jendela tempat dimana Anda menulis atau menyunting Script SAS Anda.
Anda dapat membuat Jendela Log dan Jendela Editor memiliki ukuran full view dengan dengan klik dua kali pada header jendela (bagian yang berwarna biru) atau dengan klik tombol .

Di bagian bawah Jendela Editor, Anda juga dapat menemukan tiga tab seperti di bawah ini:

Gambar 2

Tiga tab ini berfungsi untuk bernavigasi antara Jendela. Seperti yang Anda lihat bahwa ada tiga tab pada bar yaitu: Tab Output, Tab Log, Tab Editor. Jika Anda klik Tab Editor, maka Jendela Editor menjadi aktif. Jika Anda klik Tab Output maka Jendela Output akan aktif. Khusus untuk Jendela Output, jendela ini sebenarnya turut dibuka oleh SAS secara default ketika Anda membuka SAS, namun SAS menempatkannya di belakang Jendela Log dan Jendela Editor. Jendela Output berfungsi untuk menampilkan output yang dikeluarkan oleh suatu SAS Script (jika ada).


Menjalankan Script SAS
Setelah mengetahui jendela dan fungsi navigasi, mungkin Anda segera ingin mengetahui cara mengeksekusi script SAS. Sebelum kita mengekesekusi suatu script SAS, tentu saja kita harus terlebih dahulu memiliki script untuk dieksekusi. Untuk itu, aktifkan Jendela Editor, lalu ketikkan script di bawah ini:

DATA ScriptAwal;
hasil = 1 + 3;
RUN;
Setelah itu, klik tombol atau tekan tombol F3 pada keyboard. Selamat! Anda telah mengeksekusi script SAS pertama Anda.

Setelah Anda mengekeksekusi script di atas, Anda mungkin memperhatikan beberapa tulisan muncul pada Jendela Log. Tulisan berikut ini muncul pada Jendela Log:

1    DATA ScriptAwal;
2    hasil = 1 + 3;
3    RUN;

NOTE: The data set WORK.SCRIPTAWAL has 1 observations and 1 variables.
NOTE: DATA statement used (Total process time):
      real time           0.95 seconds
      cpu time            0.00 seconds


Seperti yang telah disebutkan sebelumnya, bahwa Jendela Log berfungsi untuk menampilkan berbagai informasi sehubungan dengan eksekusi suatu script. Pesan (atau log) yang ditampilkan terdiri dari dua bagian, yaitu:
  1. Bagian script yang sedang dieksekusi SAS. Ditunjukkan dengan warna hitam dan nomor baris di depan setiap baris.
  2. Bagian pesan hasil eksekusi. Ditunjukkan dengan warna lain selain hitam (pada kasus di atas berwarna biru).

Jika bagian pesan hasil eksekusi berwarna biru, itu berarti script Anda sukses dijalankan. Jika berwarna merah, itu berarti script Anda mengandung error atau kesalahan dan kemungkinan besar proses eksekusi akan berhenti. Jika berwarna hijau itu berarti ada warning yang perlu Anda perhatikan sehubungan dengan script yang dieksekusi.

Selain pengeksekusian secara menyeluruh (seluruh script di Jendela Editor dieksekusi), Anda dapat pula mengeksekusi hanya beberapa bagian dari script yang ada di Jendela Editor. Ketikan script di bawah ini di bawah script yang telah Anda tulis di Jendela Editor:

PROC PRINT DATA=ScriptAwal;
RUN;

Setelah itu, drag bagian yang baru Anda tulis (perhatikan gambar di bawah), lalu klik tombol atau tekan tombol F3 pada keyboard.

Gambar 3

Kini Anda hanya menjalankan perintah yang Anda tandai saja (dengan drag mouse). Bagian sebelumnya (yang tidak Anda tandai) tidak dieksekusi oleh SAS.

Setelah Anda mengeksekusi PROC PRINT di atas, Anda akan melihat bahwa Jendela Editor akan otomatis aktif dengan isi:

The SAS System
Obs    hasil
1      4

Hal ini terjadi karena eksekusi PROC PRINT menghasilkan suatu Output tertentu. Dalam kasus ini, output-nya adalah seperti yang Anda lihat di Jendela Editor. Selain itu, SAS juga secara otomatis menambahkan Jendela Result Viewer. Jika Anda lihat output yang ada pada Jendela Result Viewer hasilnya akan sama dengan yang ada di Jendela Output. Perbedaanya adalah pada hasil pada Jendela Result Viewer berupa HTML sedangkan pada Jendela Output berupa text biasa.

Kamis, 14 Oktober 2010

Daftar Jargon

Obeservasi atau Observation 
Baris. Jika kita menggunakan terminologi SAS pada MS Excel maka baris 1, 2, 3, dst, dapat dipandang sebagai observasi 1, 2, 3, dst.


Sintaks atau Syntax
Aturan penulisan kata untuk memerintahkan komputer mengerjakan suatu tugas tertentu. Contoh: dalam SAS syntax memulai suatu program dan kemudian menugaskannya untuk menambahkan dua konstan kemudian menyimpan hasil penjumlahan pada variable hasil:

data _null_;
hasil = 1 + 3;
run;

sedangkan pada Java:

public class Main{
   public static void main (String[] args){
      int hasil = 0;
      hasil = 1 + 3;
   }
}


Variabel atau Variable
Kolom. Jika kita menggunakan terminologi SAS pada MS Excel maka kolom A, B, C, dst, dapat dipandang sebagai variabel A, B, C, dst.

Pendahuluan

Blog ini adalah blog yang saya dedikasikan untuk membagi pengetahuan saya tentang perangkat lunak SAS (Statistical Analysis Software). Saya akan memberikan tutorial mengenai script SAS dari tingkatan yang paling dasar dan membimbing Anda tahap demi tahap. Saya berasumsi bahwa Anda tidak memiliki kemampuan pemrograman (seperti menguasai: C, Java, Ruby,dll) walaupun mereka yang datang dengan memiliki logika pemrograman yang baik akan tetap merasa bahwa tutorial di blog ini bermanfaat. Saya mengasumsikan juga bahwa Anda mengerti dan mahir dalam menggunakan perangkat lunak MS Excel. Sepanjang tutorial di blog ini, saya akan mencoba menerangkan fungsionalitas script SAS yang saya bahas disertai dengan contoh jika hal yang sama dilakukan melalui MS Excel.

Sebagai suatu perangkat lunak yang memiliki bahasa pemrogramannya sendiri, tentu saja ada beberapa jargon-jargon yang perlu Anda ketahui sehubungan dengan SAS (baik yang berhubungan dengan SAS itu sendiri atau dengan bahasa pemrograman secara umum). Untuk itu, saya menyarankan Anda untuk melihat link jargon ini dan membiasakan diri dengan jargon-jargon yang ada.

Akhir kata, semoga blog ini berguna dalam turut mencerdaskan kehidupan bangsa :)