• Tidak ada hasil yang ditemukan

Sistem Tanki Air di Rumah

N/A
N/A
Protected

Academic year: 2017

Membagikan "Sistem Tanki Air di Rumah"

Copied!
4
0
0

Teks penuh

(1)

ADT TANGKI AIR

“Tangki Air di Rumah” berfungsi untuk memberikan kenyamanan dan keamanan penggunaan air

di rumah. Asumsikan saja bahwa tangki air terhubung dengan sumber air melalui pipa yang terhubung juga

dengan pompa air. Dari tanki ke rumah terhubung dengan pipa yang ujungnya berupa kran-kran yang dapat

membuka secara otomatis, dikontrol dari peralatan elektronik melalui peralatan mekanik. Untuk

mengambil air dari tanki, terlebih dahulu harus ditekan sebuah tombol yang telah dipasang di rumah. Air

akan dialirkan ke kran yang dimaksud jika air di tanki tidak kosong. Otomatisasi dilakukan oleh peralatan

elektronik melalui peralatan mekanik.

Setiap saat akan terjadi pemanipulasian Tangki Air (mengisi dan mengurangi volume air)

sehingga ketika volume air berkurang dari volume total, mesin pompa akan otomatis hidup dan melakukan

pengisian tanki, mesin pompa akan berhenti secara otomatis jika tanki penuh. Begitu pula jika sipemilik

akan menyalakan tombol untuk mengambil air dari tanki, make terlebih dahulu dilakukan pengecekan

terhadap isi tanki, jika tanki kosong make keran tidak akan membuka.

1. Vocabulary Sistem

Cerita diatas merupakan realita sistem, realita sistem terdiri dari aspek perangkat keras dan

perangkat lunak. Sebelum mengimplementasikan sistem perlu untuk memodelkan permasalahan tersebut

pada model sederhana dalam tataran lojik. Untuk mendapatkan model sistem, perlu dicari pembendaharaan

yang dipunyai oleh sistem tersebut.

Tanki air mempunyai atribut volume total dan volume saat itu (Current), Tanki harus dimanipulasi

untuk dapat digunakan oleh sipemilik rumah. Manipulasi terhadap Tanki Air meliputi :

Mengisi Tanki Air

Mengambil air dari Tanki sebanyak n liter

Sebelum mengisi, harus dicek dahulu isi tankinya, jika penuh make tidak dilakukan pengisian.

Sebelum mengambil air harus dicek dahulu, jika kosong make proses pengambilan air gagal dan kran

tidak membuka.

Jangan lupa untuk mendefinisikan Tanki Air pada saat awal kejadian. Tanki air berisi volume current

adalah 0 liter dan volume total n liter (silahkan definisikan sendiri).

Asumsi sistem :

Ketika sedang mengisi tanki tidak boleh melakukan aksi lain

Aspek waktu pada sistem dihilangkan.

2. Topik Pembicaraan Sistem

Yang menjadi topik pembicaraan adalah Bagaimana memanipulasi Tanki Air ?. Kalimat itu dapat

dipisahkan menjadi 1. Bagaimana memanipulasi ---2. Tanki Air. Potongan kalimat Bagaimana

memanipulasi akan dijabarkan dalam primitif-primitif yang telah dijelaskan secara umum dalam 5 hal di

atas. Sedangkan Potongan kalimat yang kedua adalah Tanki Air, merupakan objek pembicaraan yang

dimanipulasi. Tanki Air terdiri dari 2 atribut yang sangat dominan yaitu Volume Total dan Volume saat

tertentu(Volume Current). Tanki Air akan dijabarkan dalam struktur data komposisi.

(2)

3. Struktur Data Komposisi Tanki Air dan Primitif

Secara lebih lengkap, didapatkan pembendaharaan kalimat Sistem Tanki Air sebagai berikut :

--Kamus Umum

Type TankiAir is record

VolumeTotal : real --- Menyatakan daya tampung maksimum tanki

VolumeCurrent : real --- Menyatakan volume air saat tertentu

end

--Jika T adalah TankiAir, cara deklarasi dan akses :

----Deklarasi :

--- T : TankiAir

--- T.VolumeCurrent untuk mengetahui banyaknya volume air pada saat tertentu.

--- T.VolumeTotal untuk mengetahui daya tampung maksimum tanki

--Definisi

---Tanki Kosong T.VolumeCurrent = 0

---Primitif-primitif- Pembentuk Tanki Air ---Primitif-primitif----

---Procedure CreateTanki(T : out TankiAir);

---I.S : sembarang

---F.S : terbentuk tangki kosong

---Ambil & Isi Tangki Air

---Procedure Isi_Tanki(T : in out TankiAir);

---I.S : Volume tanki, kosong atau tidak penuh.

---F.S : Tanki terisi air sampai penuh.

Function KurangiVolumeTanki(JmlAir : in Real )  TankiAir;

--Mengembalikan volume tanki air (VolumeCurrent) setelah dikurangi sebanyak n liter dari semula yang

--dikirim lewat variabel JmlAir

---Test Volume

Tanki---Function IsEmptyTanki() : boolean ;

--Menentukan apakah tangki air kosong, jika kosong mengembalikan nilai true.

Function IsFullTanki() : boolean ;

--Menentukan apakah tanki air kosong, jika penuh mengembalikan nilai true.

Function IsSisaVolume() : real ;

-- Mengembalikan jumlah sisa volume tanki air.

(3)

Konversikan NA di bawah ini ke dalam bahasa C. Kompilasi dan jalankan !

TEKNIK

ELEKTRO

UNSOED

Nomor Dokumen

Identitas

Nilai

TPNA08-01

Nama :

NIM :

Revisi 1.0

Tgl : 16-08-2008

1.

Program SistemTankiAir

2. { Deskripsi : Program untuk Simulasi manipulasi Tanki Air di Rumah, Versi I. 3. Sistem akan meminta inputan dari user berupa tombol : 'A','a' 'M', 'm'. 4. Selama user tidak menekan tombol apapun, sistem akan mengeksekusi 5. statement di dalam repeat – until yang dalam. Jika user menekan tombol, 6. eksekusi akan dilanjutkan ke statement yang ada di luar repeat-until dalam. 7. Tombol 'A' atau 'a' berfungsi untuk mengambil air dari Tanki dengan Volume air 8. yang diambil acak, sedangkan 'M' atau 'm' untuk mematikan sistem. Sistem akan 9. secara otomatis mengisi Tanki Air jika Volume Current Tanki Air < 5 liter

}

{

10.

Kamus Umum

} 11. Type

12. TankiAir = record

13. VolumeTotal : real {Menyatakan daya tampung maksimum tanki} 14. VolumeCurrent : real {Menyatakan volume air saat tertentu} 15. end

16. T : PTankiAir { T adalah objek Tanki Air } 17. n : Integer { Kapasitas Air }

18. Tombol : Char { Tombol pemilihan aksi } 19. JumlahAir : Integer { Jumlah Air yang diambil } 20. {--Jika T adalah TankiAir, cara deklarasi dan akses : 21. ----Deklarasi :

22. --- T : TankiAir

23. --- T.VolumeCurrent untuk mengetahui banyaknya volume air pada saat tertentu. 24. --- T.VolumeTotal untuk mengetahui daya tampung maksimum tanki

25. --Definisi

26. ---Tanki Kosong T.VolumeCurrent = 0 }

27. {---Deklarasi Primitif-primitif---28. --- Pembentuk Tanki Air ---}

29. Procedure CreateTanki(output V : TankiAir) 30. {---I.S : sembarang

31. ---F.S : terbentuk tangki kosong} 32. Algoritma

33. V.VolumeTotal <---n 34. V.VolumeCurrent<---0

35. {---Ambil & Isi Tangki Air ---} 36. Procedure Isi_Tanki(output V : TankiAir)

37. {---I.S : Volume tanki, kosong atau tidak penuh. 38. ---F.S : Tanki terisi air sampai penuh.}

39. Algoritma

40. V.VolumeCurrent<---V.VolumeTotal

41. Function KurangiVolumeTanki(input V : TankiAir, input JmlAir : Real ) ---> TankiAir 42. {--Mengembalikan volume tanki air (VolumeCurrent) setelah

43. --dikurangi sebanyak n liter dari semula yang 44. --dikirim lewat variabel JmlAir }

45. Algoritma

46. V.VolumeCurrent<---V.VolumeCurrent – JmlAir 47. ---->V;

48. {---Test Volume Tanki---}

49. Function IsEmptyTanki(input V : TankiAir) ---> boolean

50. {--Menentukan apakah tangki air kosong, jika kosong mengembalikan nilai true.} 51. Algoritma

52. --->( V.VolumeCurrent = 0 )

53. Function IsFullTanki(input V : TankiAir) ---> boolean

54. {--Menentukan apakah tanki air kosong, jika penuh mengembalikan nilai true.} 55. Algoritma

(4)

56. ---->(V.VolumeCurrent=V.VolumeTotal)

57. Function IsSisaVolume(input V : TankiAir) --> real 58. {-- Mengembalikan jumlah sisa volume tanki air.} 59. Algoritma

60.

--->

V.VolumeCurrent

61. Function IsKapasitas(input V : TankiAir) --> real 62. {-- Mengembalikan jumlah kapasitas volume tanki air.} 63. Algoritma

64.

--->

V.VolumeTotal

65.

{ALGORTIMA / PROSES PROGRAM UTAMA}

66. Randomize { Inisialissi peng-acakan bilangan integer dari sistem clock } 67. n  20 { Inisialisasi nilai kapasitas TankiAir }

68. CreateTanki(T)

69. {Untuk memperlihatkan hasil dari CreateTanki, akan berpengaruh thd : } 70. output('Awal penciptaan/pendefinisian, Volume Tanki Air sbb : ') 71. output('Kapasitas Tanki : ', IsKapasitas(T))

72. output('Volume Current : ', IsSisaVolume(T)) 73. delay(2500)

74. output('Sedang ngisi...') 75. delay(2500)

76. Isi_Tanki(T)

77. output('Tanki sudah diisi---> Tanki Penuh ') 78. repeat

79. repeat 80. delay(2500)

81. output('Sistem Hidup-->Pilih Menu [A]mbil Air [M]atikan Sistem') 82. if IsFullTanki(T) then

83. output('Tanki Penuh ')

84. else {Tanki kosong, tangki tidak penuh } 85. if IsEmptyTanki(T) then

86. output('Tanki Kosong ') 87. else { Tanki tidak penuh } 88. output('Tanki Tidak Penuh ') 89. until keypressed

90. Tombol Readkey

91. JumlahAir Random(n) { Mengacak bilangan dalam range 0..19} 92. depend on (Tombol) :

93. 'A','a' : output('Aksi ambil Air : ') 94. if ( Not IsEmptyTanki(T) ) Then

95. output('Sukses, Volume Current Sebelumnya :’,IsSisaVolume(T)) 96. if JumlahAir <= IsSisaVolume(T) Then

97. T KurangiVolumeTanki(T, JumlahAir) {Ambil Air} 98. output('Diambil : ',JumlahAir,' Liter')

99. output('Maka Volume Current menjadi : ', IsSisaVolume(T)) 100. else {JumlahAir > IsSisaVolume(T)}

101. output('Gagal,karena Air yang diambil melebihi V Current') 102. output('VolCurrent:',IsSisaVolume(T),'Diambil',jumlahAir) 103. if IsSisaVolume(T) < 5 then

104. output('Hidupkan Pompa Air---> ngisi Tanki...') 105. delay(3500)

106. Isi_Tanki(T)

107. output('Tanki sudah diisi---> Tanki Penuh ') 108. else { Tanki Kosong/Empty }

109. output('Gagal, karena Tanki Kosong, Isi Dulu !') 110. Isi_Tanki(T)

111. output('Sedang ngisi...') 112. delay(2500)

113. output('Tanki sudah diisi---> Tanki Penuh ') 114. 'M','m' : output('Sistem dimatikan ')

115. break 116. until false

Referensi

Dokumen terkait

Artinya : Tafsir bi al- ma’tsur ialah tafsir yang berdasarkan pada kutipan yang shahih menurut urutannya, yaitu menafsirkan al-Qur`an dengan al-Qur`an atau dengan

Dari hasil analisis dan interpretasi pengolahan data yang telah peneliti lakukan maka dapat diambil bahwa atribut-atribut yang diprioritaskan dan dipentingkan oleh konsumen

Massa uap ammonia yang pindah ke tabung G-A pada proses evaporasi hasil simulasi pengaruh konsentrasi awal larutan ammonia. Massa larutan ammonia yang terevaporasi hasil

Salah satu dari tujuan perusahaan yang dinilai dari hasil kinerja karyawan adalah efektivitas kerja karyawan tersebut yaitu melalui pelayanan yang diberikan kepada pelanggan

The present study showed that flavonoid derivative obtained from Oscillatoria terebriformis could be a potent inhibitor against skin cancer protein on the basis of docking

Terdapat faktor pendukung implementasi seperti Faktor Ukuran-Ukuran Dasar dan Tujuan-Tujuan Kebijakan; Faktor Sumber-Sumber; Faktor Komunikasi pada aspek transmisi,

KEPOLISIAN NEGARA REPUBLIK INDONESIA DAERAH NUSA TENGGARA BARAT.

Adanya strategi pemecahan masalah diperlukan untuk mempermudah mengatasi masalah yang muncul berkaitan dengan perancangan fesyen eksklusif lewat eksplorasi motif