As in subnetting a block of IP adresses are allocated, which leads to consumption of those IP addresses. Then how come we don't use Network Address Translation (NAT) as it will only need one IP address for an entire organization?
NAT and subnetting are two completely, unrelated things.
If you have a block of IP addresses, and you need multiple networks, you use subnetting to break the address block into multiple, smaller networks.
NAT was conceived as a temporary measure to extend the life of IPv4 until IPv6 is ubiquitous. The original premise of IP is that every host has a unique address, which facilitates end-to-end communication. NAT breaks that, and it is a problem for some protocols.
TCP, UDP, and ICMP are not the only transport protocols, and they are not application-layer protocols. NAT really only works with them, and other transport protocols and many application-layer protocols have real problems with NAT.
Then why Network Address Translation (NAT) is not used as it will need only one IP address for an entire organization?
That isn't even close to reality. What if your company has multiple web servers. Which one gets to use TCP ports 80 and 443 for web service? Those are the ports that customers will try to use.
IPv6 gives us enough IP addresses that NAT is unnecessary and undesirable, and it restores the IP end-to-end paradigm.
Many (small) organization do actually use a single public IP address.
But when a company host its own email servers and have 4 SMTP gateways for example, it requires 4 different public IP addresses.
Keep in mind that the IP protocol, and all protocols that run on top of IP were designed so each host get a unique IP address, and with the assumption of end-to-end connectivity.
NAT was introduced as a necessity to mitigate the lack of availability of sufficient IP addresses, until IPv6 is fully deployed, but it broke the protocol in several way and has many drawbacks.