Macro Minitab: Local Macro


Macro Minitab merupakan himpunan dari command Minitab dan statement macro yang disimpan dalam sebuah file, biasanya dalam file text. Macro Minitab dapat digunakan untuk automisasi tugas yang berulang, mengembangkan fungsi-fungsi yang telah tersedia dalam Minitab atau untuk simulasi. Biasanya macro Minitab dibuat dengan tujuan untuk menjawab permasalahan yang spesifik atau lebih kompleks dimana fasilitas tersebut masih belum tersedia secara langsung dalam Minitab. Jenis macro Minitab ada beberapa, namun yang jadi pembahasan kali ini adalah Local Macro.


LOKAL MACRO

Local macros atau Macros adalah macro yang lebih kompleks dan lebih rumit namun lebih canggih (powerful) dan fleksibel daripada global macro. Local macro menggunakan variabel sementara (temporary), argumen, dan subcommand (atau bisa disebut elemen). Elemen tersebut berguna untuk meningkatkan kemampuan dari macro sehingga struktur yang digunakan berbeda dengan struktur global macro.


MACRO 

NAMA arg1; arg2; dst 

Declaration statement 

Body of the macro 

ENDMACRO 


NAMA (Nama template untuk local macro sedikit berbeda dengan global macro karena terdapat tambahan argumen setelah nama macro. Nama template ini nantinya digunakan untuk memanggil local macro dan argumen yang menyertai layaknya menjalankan command/ subcommand di Minitab.)


Declaration statements:

Masing-masing variabel yang digunakan di local macro harus dideklarasikan setelah nama macro. Variabel tersebut ada tiga meliputi :

  • kolom (MCOLUMN), 

  • konstanta (MCONSTANT), 

  • matrik (MMATRICES).

Body of macro (Sama dengan global macro)


Cara menjalankan:  %D:\analyze.txt arg1 arg2 arg... (ditulis di Command Window)


Beberapa Contoh LOCAL MACRO :


 
#Distribusi Normal

MACRO
NORMAL n mu sig x
MCOLUMN x
MCONSTANT n mu sig
	RANDOM n x;
	NORMAL mu sig.
ENDMACRO
 

#Mengurutkan Data

MACRO
URUT Xawal Xurut
MCOLUMN Xawal Xurut
MCONSTANT N i j TEMP
    COPY Xawal Xurut
    Let N=Count(Xawal)
	DO i=1:N
		DO j=1:N
		  IF Xurut(i)<Xurut(j)
		    Let TEMP=Xurut(j)
		    Let Xurut(j)=Xurut(i)
		    Let Xurut(i)=TEMP
		  ENDIF
		ENDDO
	ENDDO
NAME Xawal"X" Xurut"X_Urut"
ENDMACRO
 
#Memisahkan Data

MACRO
PISAH X Y ygPISAH
MCOLUMN X Y ygPISAH
MCONSTANT i N yg1 yg0
    LET N=Count(Y)
    LET yg1=0
    LET yg0=0

	DO i=1:N
	    IF X(i)>=3.5
		Let ygPISAH(i)=1
		Let yg1=yg1+1
	    ELSE
		Let ygPISAH(i)=0
		Let yg0=yg0+1
	    ENDIF
	ENDDO
		
		Print yg1 yg0 N
ENDMACRO
 
#Missing Value

macro
MissingValue X
MCOLUMN X
MCONSTANT i N
  Let N=Count(X)
  Print N
	DO i=1:N
	  IF X(i)='*'
	  GOTO 1
	  ENDIF
	ENDDO
  MLABEL 1
  DELETE i X

endmacro

#Pengulangan

MACRO
RATA2 X
MCOLUMN X
MCONSTANT I
  DO I=1:5
    LET X(I)="diulang 5x"
  ENDDO
    Name X"Pengulangan"
ENDMACRO

#Median data X

MACRO
URUT Xawal Xurut
MCOLUMN Xawal Xurut
MCONSTANT N i j TEMP MedX
    COPY Xawal Xurut
    Let N=Count(Xawal)

	DO i=1:N
		DO j=1:N
		  IF Xurut(i)0
	  Let MedX=Xurut((N+1)/2)
	ELSE
	  Let MedX=(Xurut((N/2)+1)+Xurut(N/2))/2
	ENDIF

  Print MedX

#Mean data X

MACRO
Rata2 X
MCOLUMN X 
MCONSTANT i N  Xcod MEANX
  Let N=Count(X)
  Let Xcod=0

	DO i=1:N
	  Let Xcod=Xcod+X(i)
	ENDDO
	  
  Let MEANX=Xcod/N
  Name MEANX"Rata-rata X"
  Print MEANX

ENDMACRO

#Permutasi

MACRO
Permutasi n r
MCONSTANT n r P
  IF n>r
    Let P=factorial(n)/factorial(n-r)
    print P
  ELSE
    Note n kecil dari r
  ENDIF

ENDMACRO

#kombinasi

MACRO
Kombinasi n r
MCONSTANT n r K
  IF n>r
    Let K=factorial(n)/(factorial(r)*factorial(n-r))
    print K
  ELSE
    Note n kecil dari r
  ENDIF

ENDMACRO