1 / 46

SYNTAX LOGIC CSPRO

SYNTAX LOGIC CSPRO. Nucke Widowati KP, S.Si , M.Sc. Pengantar Sintaksis Program CSPro. Merupakan kendali dan cek operasional pemasukan data Ditulis dalam Form designerView-logic untuk elemen yang berkaitan Diletakkan pada seluruh aplikasi , level, formulir , field, roster/group.

lewis-lyons
Download Presentation

SYNTAX LOGIC CSPRO

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. SYNTAX LOGIC CSPRO NuckeWidowati KP, S.Si, M.Sc

  2. PengantarSintaksis Program CSPro • Merupakankendalidancekoperasionalpemasukan data • Ditulisdalam Form designerView-logicuntukelemen yang berkaitan • Diletakkanpadaseluruhaplikasi, level, formulir, field, roster/group

  3. ProsedurpadaCSPro Prosedur global • Berisideklarasidandefinisi • Tidakdapatberisipernyataan yang dapatdieksekusi (kec. Membuatfungsisendiri) • Padaawal file logika ‘PROC GLOBAL’

  4. ProsedurpadaCSPro Prosedur File Formulir • Preproc ( pernyataan yang adadibawahnyaakandieksekusipadaawalblok) • Postproc ( pernyataan yang adadibawahnyaakandieksekusipadaakhirblok)

  5. ProsedurpadaCSPro Prosedur level, formulir, roster dan field • Berisipernyataan yang dapatdieksekusiataupenugasan. • Semuapernyataanakandiasumsikanpostprockecualijikasecaraeksplisistdinyatakanpreproc

  6. PerintahPreproc dan Postproc • Preprocadalahperintahmembacakondisipersyaratansebelumdata di input kedalam variabel yang ditetapkan. • Postprocadalahperintahmembacakondisipersyaratansetelahdata di input kedalamvariabel yang sedangdijalankan.

  7. Contoh: • penempatanpreprocdanpostprocpadavariabel PROP PROC PROP preproc $=b1r1; noinput; postproc if (B1R1<>$) then e=err; reenter B1R1; endif;

  8. Perintahpreprocmemintaisi prop tidakperludiinput (noinput), nilainyadiambildarinilai-nilaivariabel b1r1 yang sudahterlebihdahulu terisi di awal pengisian. • Perintahpostprocmemberikanperintahuntukmemberikankepastiansaja, apabilaisian b1r1 (diawalpengisianblok 1 pertanyaanpertama), tidaksamadengan $ (prop), makadiberikaninstruksierror yang artinya proses terhentisampaidenganpetugas membetulkan pengisian yang benar. Perintah reenter b1r1 menunjukkankursorakankembalikeposisi b1r1 untukmengisiulangisian yang betultersebut

  9. PerintahIf, Then dan Reenter • Perintah if dan thenseringdigunakansecaraberpasangandalaminstruksiuntuk proses pengecekanduaataulebihvariabel • Perintah if dan thenbiasanyadiikutiolehinstruksierror, bisa ditulisdengan e saja, diikutiperintahreenter dan endif

  10. Contoh: PROC B5R1G if $=1 and umur=0 then e=display("APA BENAR BAYI SAKIT GIGI",umur); reenter;endif; • Lambang $ adalah kata lain darinamavariabel yang ruangnyasedangdi tuliskaninstruksi program, alias dari $ adalah b5r1g

  11. PerintahIf, Then dan Reenter • Penulisanselanjutnyareenter;endif; dua kata tersebutmemberikaninstruksiloncatankebelakangkearahvariabelyang sama (program berhenti sampai dengan persyaratan diperbaiki menjadibenar). • Penulisan reenter kemudiandiikutidengannamavariabelyang berada di awalatausebelumvariabel yang sedangdi input diperbolehkan,

  12. Contoh: reenter b1r1a; • Perintahtersebutmemberikaninstruksiloncatkembalike • belakangsampaidenganposisi input variabel b1r1a.

  13. PerintahMelompati (Skip to Next) • Perintahan melompati pengisian berdasarkan persyaratan kondisional tertentu sesuai dengan alur pengisian data dengan menggunakanperintah skip to.

  14. Contoh: PROC B4K8and b4k1<b2r2 then skip t preproc if b4k5>6 o next b4k1;endif; if b4k5>6 and b4k1=b2r2 then endsect;endif; Perintah diatas memberikan perintah apabila b4k5>6 (umur lebih besardari 6 tahun) dan b4k1<b2r2 (dannomorurut art (b4k1) masihlebihkecildarijumlahanggotarumahtangga (b2r2)), makaselanjutnyaloncatankursor (skip to) mengarahpada b4k1 (next b4k1) yaituanggotarumahtanggaselanjutnya.

  15. Contoh: • Biasanyadigunakanjugaperintahpendukunglainnyayaituendsect. • Penggunaanendsectuntukmemberikaneksekusijikapersyaratansudahterpenuhimaka proses input data di section tersebutsudahselesaidandilanjutkanke section selanjutnya.

  16. PerintahMelompati (Skip to Next) • Penggunaanperintah skip yang seringdigunakanadalahmelewativariabelyang tidakrelevanuntukdiinputseperticontoh, yaituapabila isian b5r7 sama dengan kode 2, maka lompat pengisian langsungkeb5r9a. • Dengandemikianapabilaisian b5r7 berkode1, makaalur program tidakmeloncatke b5r9a.

  17. Contoh: PROC B5R7 if $=2 then skip to b5r9a; endif;

  18. Perintah Box • Perintahan box digunakanuntukmengecekpengisianterdahuludalambentuk yang lebihkompleks. • Apabilapersyaratanpengecekan melibatkan lebih dari satu variabel dan mempunyai persyaratanyang sangatprinsipharusdilakukansertakompleks

  19. PROC B5R15 {tingkatpendidikan} box b5r13 : $ : umur =>x; 2 : 1,2 : 5-17 =>1; 2 : 3,4 : 11-30 =>1; 2 : 5,6,7 : 12-64 =>1; 2 : 8,9,10 : 15-64 =>1; 2 : 11 : 15-64 =>1; 3 : 1,2 : 5-98 =>1; 3 : 3,4 : 11-98 =>1; 3 : 5,6,7 : 12-98 =>1; 3 : 8,9,10 : 15-98 =>1; 3 : 11 : 20-98 =>1; : : =>0; endbox; if x<>1 then e=errmsg(064,b5r13,$,umur); reenter; endif; Contoh: Partisipasisekolah

  20. Perintah Box • Program diatasmembatasipengisiansesuaidenganalurlogika, dalam box ditetapkan tiga buah variabel yang saling bersinggungan. • Variabel-variabel tersebut antara lain status pendidikankode 2 (masihsekolah) dankode 3 (sudahtidaksekolahlagi), b5r15 (tingkatpendidikan yang ditamatkanmulaidari SD, SMP, SLTA, D3, S1, S2, dan S3), kemudian konsisten denganumur. Apabilapersyaratan yang ditetapkantidakterpenuhimaka program akanterhentidandinyatakansalah.

  21. Perintah Box • Untuk yang masihsekolahdengan status SD danSD sederajat, usianya hanya boleh antara 5 sampai dengan 17 tahun. • Untukyang masihsekolahdengan status SMP danSMP sederajat, usianya hanya boleh antara 11 sampai dengan 30 tahun

  22. Perintah Box • Untukyang masihsekolahdengan status SLTA, SLTA kejuruan, dan SLTA sederajat, usianya hanya boleh antara 12 sampaidengan 64 tahun • Untuk yang masih sekolah dengan status D1, D3, S1, S2, dan S3, usianyahanyabolehantara 15 sampaidengan 64 tahun • Untukyang tidaksekolahlagidengan status SD danSD sederajat usianya hanya boleh antara 5 sampai dengan 98tahun

  23. Perintah endif, endsect dan endlevel • adalahperintah-perintahuntukmengakhirisuatuperintah. • Apabilaperintahdiawalidenganif makadiakhiridenganendif. • Untukmengakhiripengisiansatusection walaupunbelumselesaisampaiakhirvariabel, apabilaharus berakhir maka diberikan perintah endsect.

  24. Perintah endif, endsect dan endlevel • Sedangkanuntukperintahmenyelesaikansatudokumenapabilabelumsampaiakhirdokumenakantetapiharusberakhirsesuaialurpengisiannyamakadiberikaninstruksiendlevel.

  25. Contoh: PROC B4K6 postproc if $>1 and b4k5<10 then e=errmsg(021);reenter;endif; if ((B4K3=6 or B4K3=4 or B4K3=2) and $=1) then e=errmsg(147);reenter B4K3;endif; if ((B4K3=2 or b4k3=4) and $<>2) then e=errmsg(020);reenter;endif; if b4k5>6 and b4k1<b2r2 then skip to next b4k1;endif; if b4k5>6 and b4k1=b2r2 then endsect;endif; PROC B7R4A if $=2 then endlevel;endif;

  26. Perintah pos ( ) then • Penulisanposadalahperintahposisiinput data. • Bisaditetapkanjenishurufbukanangka, formasipenulisanperintahtersebutdisesuaikandenganjenisvariabel yang di bangun di file dictionary dalam format karakter atau numerik.

  27. Contoh: PROC B1R10A if !pos($[1:1],alphalst) then errmsg("NAMA HARUS HURUF,BUKAN ANGKA DAN HARUS HURUF BESAR"); reenter; endif;

  28. Perintah pos ( ) then • Pertamaharusdiciptakanterlebihdahulunamaalphalstyang merupakansekumpulan huruf dari a sampai dengan z. • alphalst = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";

  29. Perintah pos ( ) then • !posmemerintahkanposisi data input harus huruf bukan angka, dan untuk!pos($[1:1],alphalst) artinya, padavariabel ($) yang sedangdalamposisimau di input posisipertamaharusberupahurufa sampaidengan z (alphalist). • Perintahdiatasmemberikan alias untukalphalstberupahurufkapitas(hurufbesar) dantidakdiperbolehkanberupaangka.

  30. Perintah Menghitung Jumlah Kasus Tertentu • Penghitungan jumlah kasus tertentu sebagai kontrol konsistensi pengisian sangat diperlukan. • Biasanya penempatan penghitungandiletakkanpada section bersangkutanatausetelahnya.

  31. Contoh: PROC SEC2_ROSTER a=count(sec2_ROSTER where b4k5<5); if a>b2r21 then e=errmsg(901);reenter b2r21; endif; b=count(sec2_ROSTER where b4k5>=5 and b4k5<=9); if b>b2r22 then e=errmsg(902);reenter b2r22; endif; c=count(sec2_ROSTER where b4k5>=10); if c>b2r23 then e=errmsg(903);reenter b2r23; endif;

  32. Perintah While dan Do • Perintah while dan do dituliskanberpasangan, memberikaninstruksi membaca atau mengecek jumlah putaran atau pemasukandaripola input data multiple entry atau yang bersifatberulangdenganmemberikankontrolberdasarkanvariabeltertentuyang sudahditetapkan.

  33. Contoh: PROC SEC1 i = 1 ; while i<=b2R2 do b4k1(i)=i; i=i+1; enddo;

  34. Perintah While dan Do • Perintahdalam sec1 selanjutnyadimulaidarii = 1, dapatdinyatakanprogram akanmembacamulaidariputaranpertama, kemudianpenulisan while ilebihkecilatausamadenganb2r2 (jumlahanggotarumahtangga) mengisaratkan program akanberjalanapabilaterpenuhikondisitersebutyaitunilaiitidakmelebihinilai b2r2.

  35. Perintah While dan Do • Syaratlainnyadimintaapabila b4k1 (i) = I (nomorurutanggotarumahtangga) datanyabisadimasukkanmulaidari yang pertamasampaidengan yang terakhir. • Apabilajumlahi > b2r2 yaitujumlahanggotarumahtanggasudahmelebihidari yang harus di input, maka program entry berakhirdansecaraotomatisbergantikerumahtanggaberikutnyayang harusdi input.

  36. Perintah While dan Do • Setiap perintah while…..do diakhiri dengan enddo. • FormatpenulisansebagaiberikutWhile…… do…….enddo. • Untukmemberikanbatasaninstruksipertamadenganinstruksikeduadanberikutnya, makasetiapakhirperintahdiberikantandasemi kolom“;”.

  37. PerintahSoccurs dan Noccurs (Multiple Entry) • Perintahan melakukan putaran pengisian untuk type data multiple entry • Program untukmemanipulasiputaranmultiple entry dapatdilakukandenganmemberikanperintahnoccursapabilabentukentry data multiple denganmenggunakanperintahsame location (lokasi yang sama) atau bentuk tabel (roster).

  38. Contoh: PROC B4K1 preproc n=noccurs(sec2_ROSTER)+1; if n<=b2R2 then $(n)=n; noinput; endif; PROC NART preproc n=soccurs(SEC05)+1; nart(n)=n;

  39. PerintahSoccurs dan Noccurs (Multiple Entry) • Penggunaansoccursdenganbentuk entry data multiple tetapitampilanpengisian data seolah-olahberbentuksingle, ataudengan kata lain tampilan entry menggunakan pilihan different location (lokasi yang berbeda). • Perintahtersebutmemandupengisiansecaraberurutansehinggajumlahpengisianyang berulangtersebutsesuaidenganpersyaratannya.

  40. PerintahError dan Display • Errmsgadalahpesankesalahan yang dipersiapkanuntukmembantuoperator entry memahamikenapaterjadikesalahan. • Dengan opsi ini program akan terhenti dan bisa dilanjutkan kembaliproses entry datanyaapabilatelahdiperbaikisesuaiintruksi pesan kesalahan yang ditampilkan tersebut.

  41. PerintahError dan Display • Display adalahperingatankesalahan yang dipersiapkanuntukoperator agar lebihhati-hatidalam proses input datanya. Denganopsiini program tidakterhentiartinyaproses entry tetapdapatdilanjutkan hanya saja operator mendapat peringatan untuk mengecekkembaliisian yang telahdilaksanakannya.

  42. PerintahError dan Display • Model e=errmsg(140), memberikanpesankesalahanyang paling sederhana di dalam penulisan pesannya. if($>98 and $<99) then e=errmsg(140);reenter;endif; if B4K3=3 and $>=50 then e=display(15,$);endif; if B4K3=5 and $>=40 then e=display(15,$);endif; • Display yang ditampilkanmenampilkannilaikesalahan ($) 140 => UMUR TIDAK BOLEH LEBIH DARI 98 TAHUN 015 => UMUR ANAK, CUCU APAKAH BETUL =%D TAHUN?

  43. PerintahError dan Display • Model e=errmsg(134,b4k5,b4k5(1)) lebih kompleks dimana pesan kesalahan 134 memberikan instruksi ortu = %d krt=%d artinya %d yang pertamamenampilkanisib4k5 dan%d yang keduaadalahisidari b4k5(1). if B4K3=6 then if(B4K5-10)<B4K5(1)then e=errmsg(134,B4K5,B4K5(1)); endif;endif; 134 => UMUR ORTU DAN KRT TIDAK WAJAR, ORTU=%D KRT=%

  44. PerintahError dan Display • Untukpenulisanerrmsg("HANYA UNTUK UMUR 0-4 TH SAJA"); adalah bentuk penulisan pesan kesalahan lainnya yang bisadituliskanlangsung. if b4k5<=4 and $=missing then errmsg("HANYA UNTUK UMUR 0-4 TH SAJA");reenter;endif; if b4k5>4 and !$=missing then errmsg("HARUS MISSING TEKAN ENTER SAJA");reenter;endif;

  45. PerintahError dan Display • Pesan kesalahan menggunakan %d, c dan $. Penggunaan c yaitumenghitungjumlahdarisatuvariabel (count) yaitujumlahanak, yang kemudianhasilpenjumlahantersebutditampilkandalampesankesalahan. if $<>(b5r29b1+b5r29b2) then e=errmsg(091); reenter;endif; c=count(sec2_ROSTER where b4k3=3); if c<>$ and hb=2 then e=errmsg("JumlahAnak di Blok IV = %d, JumlahAnakKandungHidup = %d,Cek! ",c,$);endif;

  46. KomentarpadaCSPro • KomentarpadaCSPro • Membuatalurlogikamenjadilebihbaik • Teks komentartidak akan dieksekusi. • Dituliskandalam {}

More Related