To transact in Bitcoin you will need to broadcast the transaction to the Bitcoin network. At this time an internet connection on your phone is going to be a requirement, a wifi hotspot at the cafe is all you need.

In theory there are other ways to get the transaction to the network for example sending the transaction directly from your phone to the point of sale system using NFC or Bluetooth. Search bitcoin over NFC or Bluetooth and you can read about these.

Sending the transaction over SMS is also a possibility in the future

Edit: As pointed out Bluetooth and NFC support is already built into some wallets. See Bitcoin Wallet or Airbitz for example.